| C++ Memory Management
|
| Dorman, Neuberger
|
| McGraw Hill
|
| 1994
|
| 0-8306-4288-9 (0070178143 1998)
|
| $32.95 (US)
|
This was a good book for learning some interesting aspects of conventional memory structure. I
used it to build an EMS library for allocating and managing large chunks of memory. Although I
was able to figure out how to do what i needed, it still seemed to zip through many of the other
aspects of EMS and XMS. I was left wondering why they were doing that, and what this or that
really did and why. If you want a good reference for EMS and XMS i think this would do the trick.
If you want a good book to learn how it all works, i'd look somewhere else. It covers XMS and EMS
3.0, 3.2, and 4.0. It also has a lot of code included that shows the uses of most of the memory
functions including a virtual memory manager that uses XMS, EMS and HD space. This is now just
a dust collector since i've switched to using Virtual Memory in Protected Mode, but thats a
different story :).
What you need to use this book VI
Introduction VII
Memory Management overview
Using expanded memory for dynamic memory allocation 4
Using extended memory for dynamic memory allocation 6
Using the hard disk for dynamic memory allocation 7
Summary 7
Understanding Memory Control Blocks
Preparatory memory management routines 11
Writing a Memory Chain display utility program 12
Summary 23
EMS 3.0 and 3.2
About the EMS programmer's interface 25
EMS 3.0 demonstration programs 26
The EMS 3.0 and 3.2 interface 46
C++ interface functions 64
Initialize EMS 64
Get the EMM status 64
Get the page frame address 66
Get the number of free EMS Ppages 67
Allocati EMS handle and pages 68
Map an expanded memory page 70
Free a handel and the asociated EMS pages 71
Get the EMS version number 72
Save the contents of page map registers 74
EMS 4.0
EMS 4.0 enhancements 89
EMS 4.0 demonstration programs 90
C++ interface functions 115
Save a partial page map 115
Restore a partial page map 117
Get the size of partial page map information 118
Map multiple pages by number 119
Map multiple page by address 121
Reallocate pages for handle 123
Get handle attribute 124
Set handle attribute 125
Get attribute capabilities 126
Get handle name 128
Set handle name 130
Get all handle names 131
Search for handle name 132
Get total number of handles 134
Map pages by number and jump 135
Map pages by segment and jump 137
Map pages by number and call 138
Map pages by segment and call 140
Get stack space for map and call 141
Move a memory region 143
Swap memory regions 144
Get addresses of mappable pages 146
Get number of mappable pages 148
Get hardware configuration 149
Get number of raw pages 150
Allocate handle and standard pages 152
Allocate handle and raw pages 153
Prepare EMM for warm boot 154
EMS 4.0 operating system only functions 156
Summary 156
Extended Memroy Specifications (XMS) 2.0
An overview of the XMS interface 158
XMS 2.0 demonstration programs 159
The XMS interface classes 184
The XMS assembly language definition file 193
Intilize the XMS interface 195
Get the XMS version number 197
Allocate the HMA (High Memory Area) 198
Release the HMA 200
Enable the global A20 line 201
Desable the global A20 line 202
Get the current A20 line state 203
Get amount of free extended memory 204
Allocating an extended memory block 206
Free an extended memroy block 207
Copy an extended memory block 208
Lock an extended memory block 210
Unlock an extended memory bock 211
Get extended memory block information 212
Resize an extended memory block 214
Allocate an Upper Memory Block(UMB) 215
Release an UMB 217
Move raw XMS memory 218
XMS function error reporting 220
Summary 220
The Virtual Memory Manager
An overview of the Virtual memory Manager 221
Overview of the VMM's architecture 222
Initialize the VMM 224
Shut down the VMM 224
Allocate a VMM block 224
Free a previously allocated VMM block 225
Wrie a VMM ara for reading and wirtging 225
Unwire a VMM page 225
VMM demonstration programs 226
The complete VMM source code listings 232
Summary 288
Epilogue 289
Index 291
