Category : Tutorials + Patches
Archive   : PCDOCS.ZIP
Filename : MEMORY.DOC

 
Output of file : MEMORY.DOC contained in archive : PCDOCS.ZIP


DOS Memory Map for PC and AT Compatibles and the PS/2


Compiled and Annotated by

William C. Parke
(c) 1984,89

Send comments or corrections to:

William C. Parke
1820 S Street NW
Washington, D.C. 20009

----------------------------------------------------------------------------

00000-003FF Interrupt Vector Table (256 double words):

00000 INT 00H Divide by Zero Interrupt Handler
00004 INT 01H Single Step Interrupt Handler
00008 INT 02H Non-Maskable Interrupt (Memory Parity or I/O Error)
0000C INT 03H Breakpoint
00010 INT 04H Arithmetic Overflow Handler
00014 INT 05H Print Screen
00018 INT 06H Reserved
0001C INT 07H Reserved
00020 INT 08H Timer Interrupt Routine (18.21590 /sec) IRQ00 \
00024 INT 09H Keyboard Service Routine IRQ01 |
00028 INT 0AH VGA Retrace Interrupt (and AT Slave Interrupts) IRQ02 Master
0002C INT 0BH Serial Device 2 Service Routine IRQ03 Int.
00030 INT 0CH Serial Device 1 Service Routine IRQ04 Contr.
00034 INT 0DH Hard Disk Interrupt Routine IRQ05 |
00038 INT 0EH Diskette Interrupt Routine IRQ06 |
0003C INT 0FH Parallel Port Service Routine IRQ07 /
00040 INT 10H Video Services
00044 INT 11H Equipment Check
00048 INT 12H Memory Size Check
0004C INT 13H Diskette and Hard Disk I/O
00050 INT 14H RS-232 Service Call
00054 INT 15H System Services Calls
00058 INT 16H Keyboard Call
0005C INT 17H Printer I/O Call
00060 INT 18H Basic ROM Entry (startup)
00064 INT 19H Boot Loader: Implement System (IPL) from disk
00068 INT 1AH Time of Day Call
0006C INT 1BH Keyboard Break Address
00070 INT 1CH User Timer Interrupt
00074 INT 1DH Monitor ROM Ptr: for 6845 Video Inititialization
00078 INT 1EH Disk Control Table Pointer
0007C INT 1FH Alphanumeric Character Pattern Table Pointer
00080 INT 20H DOS Terminate Program
00084 INT 21H Microsoft DOS Function Calls
00088 INT 22H DOS Terminate Address (not a callable function)
0008C INT 23H DOS Ctrl-break Exit Address (not a callable function)
00090 INT 24H DOS Fatal Error Exit Address (not a callable function)
00094 INT 25H DOS Absolute Disk Read
00098 INT 26H DOS Absolute Disk Write
0009C INT 27H Terminate and Stay Resident (control passes to COMMAND.COM)
000A0 INT 28H Idle Loop, spooler waiting; issued by DOS when waiting
000A4 INT 29H CON Device Raw Output Handler
000A8 INT 2AH 3.x Network Communications
000AC INT 2BH-2DH Reserved for DOS
000B8 INT 2EH Execute DOS Command (undocumented)
000BC INT 2FH Print Spool Control (Multiplex Interrupt)
000C0 INT 30H-31H Internal Use
000C8 INT 32H Reserved for DOS
000CC INT 33H Microsoft Mouse Driver Calls
000D0 INT 34H-3EH Reserved for DOS
000FC INT 3FH Used by LINK to manage overlay segments
00100 INT 40H Fixed disk/Floppy Disk Handler
00104 INT 41H ROM pointer; Fixed Disk Parameters
00108 INT 42H EGA: Org. Video Vector Screen BIOS Entry
0010C INT 43H EGA: Initialization Parameters
00100 INT 44H EGA: Graphics Character Patterns
00114 INT 45H Reserved
00118 INT 46H AT: Pointer to Second Fixed Disk Parameters
0011C INT 47H Reserved
00120 INT 48H PCjr Cordless Keyboard Xlat Routine
00124 INT 49H PCjr Non-Keyboard Scan Code Xlat Table
00128 INT 4AH AT, PS/2 User Alarm Routine
0012C INT 4BH-4FH Reserved
00140 INT 50H Periodic Alarm Interrupt from Timer
00144 INT 51H-59H Reserved
00168 INT 5AH Cluster Adapter BIOS-entry Address
0016C INT 5BH Cluster Boot
00170 INT 5CH NETBIOS Entry Point
00174 INT 5DH-5FH Reserved
00180 INT 60H-66H Reserved for user program interrupts
0019C INT 67H EMM: Expanded Memory Manager Routines
001A0 INT 68H-6BH Unused
001B0 INT 6CH System Resume Vector
001B4 INT 6DH-6FH Unused
001C0 INT 70H Real Time Clock IRQ08 \
001C4 INT 71H LAN Adapter (and IRQ2 hardware replacement) IRQ09 AT
001C8 INT 72H Reserved IRQ10 Slave
001CC INT 73H Reserved IRQ11 Int.
001D0 INT 74H Mouse Interrupt IRQ12 Contr.
001D4 INT 75H 80287 NMI Error BIOS Redirected to INT 2 IRQ13 |
001D8 INT 76H Fixed disk controller IRQ14 |
001DC INT 77H Reserved IRQ15 /
001E0 INT 78H-7FH Unused
00200 INT 80H-85H Reserved for BASIC
00218 INT 86H AT: NetBIOS relocated INT 18H
0021C INT 87H-F0H Reserved for BASIC Interpreter
003C4 INT F1H-FFH Reserved for User Program Interrupts

003FF-00300 Used for power-on and initial boot stack

00400-004FF BIOS Data Area:

00400 4 words COM1: to COM4: port addresses
00408 3 words LPT1: to LPT3: port addresses
0040E 1 word LPT4: address except PS/2 Reserved
00410 1 word Equipment flag
bits: 15-14 number of LPTs attached
13 internal modem (CVT) or reserved
12 joystick
11- 9 number of COMs
8 unused (jr: DMS chip present)
7- 6 number of disk drives
5 1=80x25 0=40x25 screen
4 1=color 0=monochrome
3- 2 00=64K chips; 11=256K chips (PC,XT,AT)
reserved, pointing device (PS/2)
1 math coprocessor installed
0 IPL disk installed
00412 1 byte Init Flag; Reserved (CVT self-test status)
00413 1 word Memory size in K bytes
00415 1 byte Reserved
00416 1 byte Reserved
00417 2 bytes Keyboard monitor flag bytes 0 and 1:
bit 7 ins lock 7 ins pressed
6 caps lock 6 caps pressed
5 num lock 5 num lock pressed
4 scroll lock 4 scroll pressed
3 alt pressed 3 pause locked
2 crtl pressed 2 sysreq pressed
1 0 >shift pressed 0 >alt pressed
00419 1 byte Alternate keypad entry
0041A 1 word Keyboard buffer head pointer
0041C 1 word Keyboard buffer tail pointer
0041E 32 byte Keyboard buffer
0043E 1 byte Drive recalibration status
bit 7 Interrupt flag
6-4 reserved
3 Recalibrate drive 3
2 Recalibrate drive 2
1 Recalibrate drive 1
0 Recalibrate drive 0
0043F 1 byte Motor Status
bit 7 Currently reading or writing
6 reserved
5-4 00 drive 0 selected
01 drive 1 selected
10 drive 2 selected
11 drive 3 selected
3-0 Drive 3-0 Motor On status
00440 1 byte Motor Control time-out counter
00441 1 byte Diskette Status Return Code
00H - No error
01H - Invalid diskette drive parameter
02H - Address Mark not found
03H - Write-protect error
04H - Requested Sector not found
05H - reserved
06H - Diskette Change Line active
07H - reserved
08H - DMA overrun on operation
09H - Attempt to DMA Across a 64K boundary
0AH - reserved
0BH - reserved
0CH - Media Type not found
0DH - reserved
0EH - reserved
0FH - reserved
10H - CRC error on diskette read
20H - General Controller failure
40H - Seek operation failed
80H - Diskette drive not ready
00442 7 bytes Diskette Drive Controller Status Bytes (NEC)
00449 1 byte CRT_MODE
bit 7 text 80x25 mono on mono card
6 graphics 640x200 mono on color card
5 graphics 320x200 mono on color card
4 graphics 320x200 on color card
3 text 80x25 color
2 text 80x25 mono on color
1 text 40x25 color
0 text 40x25 mono on color card
0044A 1 word CRT_COLS Number of columns (80)
0044C 1 word CRT_LEN Length of Regen Buffer in bytes
0044E 1 word CRT_START Starting Address in Regen Buffer
00450 8 words Cursor Position on each of eight pages
00460 1 word CURSOR_MODE top-bottom line of cursor (Cursor Type)
00462 1 byte ACTIVE_PAGE index
00463 1 word ADDR_6845 Base Address for 6845 Display Chip
3B4H for monochrome; 3D4H for color
00465 1 byte CRT_MODE_SETting for 3x8 Register (3B8H MDA; 3D8H CGA)
00466 1 byte CRT_PALLETTE Setting Register (3D9H) on Color Card
00467 1 dword Temporary storage for SS:SP during shutdown
(PS/2: Pointer to reset code with memory preserved.)
0046B 1 byte Flag to indicate interrupt
0046C 2 words Timer counter (Timer Low, Timer High words)
00470 1 byte Timer overflow (24 hour roll over flag byte)
00471 1 byte Break key state (bit 7=1 if break key pressed)
00472 1 word Reset flag word:
1234 bypass mem. test 4321 preserve memory
5678 sys suspend 9ABC manufact. test
ABCD sys POST loop (CVT)
00474 1 byte Hard Disk status or Reserved for ESDI Adapter/A
00H - No error
01H - Invalid Function Request
02H - Address Mark not found
03H - Write Protect error
04H - Requested Sector not found
05H - Reset Failed
06H - Reserved
07H - Drive Parameter Activity Failed
08H - DMA overrun on operation
09H - Data boundary error
0AH - Bad Sector Flag detected
0BH - Bad Track detected
0CH - Reserved
0DH - Invalid number of sectors on format
0EH - Control Data Address Mark detected
0FH - DMA Arbitration Level out of range
10H - Uncorrectable ECC or CRC error
20H - General Controller failure
40H - Seek operation failed
80H - Time out
AAH - Drive not ready
BBH - Undefined error occurred
CCH - Write fault on selected drive
E0H - Status error/Error Register 0
FFH - Sense operation failed
00475 1 byte Number of hard disk drives
00476 1 byte Fixed Disk Drive Control byte (PC XT)
00477 1 byte Fixed Disk Drive Controller Port (PC XT)
00478 4 bytes LPT1: to LPT4: time-out byte values (PS/2 has no LPT4:)
0047C 4 bytes COM1: to COM4: timeout byte values
00480 1 word Keyboard buffer start pointer (word)
00482 1 word Keyboard buffer end pointer (word)
00484 1 byte ROWS Video Character Rows - 1
00485 1 word POINTS Height of character matrix-bytes per character
00487 1 byte INFO byte:
bit 7 Video mode number (of INT 10H funct.0)
6- 5 Size of video RAM 00 - 64K 10 -192K
01 -128K 11 -256K
4 reserved
3 1 - video subsystem is inactive
2 reserved
1 1 - video subsystem on monochrome
0 1 - alphanumeric cursor emulation enabled
00488 1 byte INFO_3 byte:
bit 7 Input FEAT1 (bit 6 of ISR0 (Input Status Reg.)
after output on FCR1 (featue control reg.)
6 Input FEAT1 (bit 5 of ISR0)
after output on FCR1
5 Input FEAT0 (bit 6 of ISR0)
after output on FCR0
4 Input FEAT0 (bit 5 of ISR0)
after output on FCR0
3 EGA Config. switch 4 (1=off)
2 EGA Config. switch 3
1 EGA Config. switch 2
0 EGA Config. switch 1
00489 1 byte Flags
bit 7 bit 4 Alphanumeric scan lines:
0 0 350 line mode
0 1 400
1 0 200
1 1 reserved
6 1 - display switching enabled
5 reserved
3 1 - default palett loading is disabled
2 1 - using monochrome monitor
1 1 - gray scale is enabled
0 1 - VGA is active
0048A 1 byte DCC Display Combination Code table index (VGA)
0048B 1 byte Media Control
bit 7-6 Last diskettee drive data rate selected
00 - 500Kb per second
01 - 300Kb per second
10 - 250Kb per second
11 - reserved
5-4 Last diskette drive step rate selected
3-0 reserved
0048C 1 byte Hard Disk Status Register
0048D 1 byte Hard Disk Error Register
0048E 1 byte Hard Disk Interrupt Control Flag
0048F 1 byte Combination Hard Disk/Floppy Card (bit 0=1)
00490 1 byte Drive 0 media state byte
00491 1 byte Drive 1 media state byte
00492 1 byte Drive 2 media state byte
00493 1 byte Drive 3 media state byte
bit 7-6 Diskettee drive date rate
00 - 500Kb per second
01 - 300Kb per second
10 - 250Kb per second
11 - reserved
5 Double stepping required
4 Media established
3 Reserved
2-0 Drive/Media State
000 - 360Kb diskette/360Kb drive not established
001 - 360Kb diskette/1.2Mb drive not established
010 - 1.2Mb diskette/1.2Mb drive not established
011 - 360Kb diskette/360Kb drive established
100 - 360Kb diskette/1.2Mb drive established
101 - 1.2Mb diskette/1.2Mb drive established
110 - Reserved
111 - None of the above
00494 1 byte Drive 0 track (cylinder) currently seeked
00495 1 byte Drive 1 track (cylinder) currently seeked
00496 1 byte Keyboard mode state and type flags
bit 7 Read ID in progress
6 Last character was first ID character
5 Force Num Lock if read ID and KBX
4 101/102 keyboard installed
3 Right Alt key pressed
2 Right Ctrl key pressed
1 Last code was E0 Hidden code
0 Last code was E1 Hidden code
00497 1 byte Keyboard LED flags
bit 7 Keyboard transmit error flag
6 Mode indicator update
5 Resend receive flag
4 Acknowledgment received
3 = 0 reserved
2-0 Keyboard LED state bits
00498 1 word Offset address to user wait complete flag
0049A 1 word Segment to user wait complete flag
0049C 1 word User wait count, microseconds low word
0049E 1 word User wait count, microseconds high word
004A0 1 byte Wait active flag
bit 7 wait-time elapse and post flag
6-1 reserved
0 INT 15, AH=86 wait has occurred
004A1 1 byte LANA DMA channel flags
004A2 1 byte LANA 0 status
004A3 1 byte LANA 1 status
004A4 1 dword Saved hardfile interrupt vector
004A8 1 dword BIOS Video Save Table and overrides
Save Pointer Table:
dword 1 Address of Video Parameter table
Video Parameter table
1 byte Value for CRT_COLS
1 byte Value for ROWS
1 byte Value for POINTS
1 word Value for CRT_LEN
4 bytes Values for Sequencer regisers 1-4
1 byte Value for Miscellaneous Output Register
25 bytes Values for CRTC registers 0-18H
20 bytes Values for Attribute Controller Regs. 0-13H
9 bytes Values for Graphics Controller Regs. 0-8
dword 2 Address of Dynamic Parameter Save Area (EGA, VGA)
Parameter Save Area
16 bytes Current contents of Graphics Controller Pallette Regs.
1 byte Current contents of Graphics Controller Overscan Reg.
239 bytes reserved
dword 3 Address of Alphanumeric Character Set Override
Alphanumeric Character Set Override
1 byte Length in bytes of each char. definition
1 byte Character generator RAM bank
1 word Number of characters defined
1 word First character code in table
1 dword Address of character definition (font) table
1 byte Number of displayed character rows
n byte array Applicable video mode values
1 byte 0FFH end of list of modes
dword 4 Address of Graphics Character Set Override
Graphics Character Set Override
1 byte Number of displayed character rows
1 word Length in bytes of each character definition
1 dword Address of character definition (font) table
n byte array Applicable video mode values
1 byte 0FFH end of list of video modes
dword 5 Address of Secondary Save Pointer Table (VGA)
dword 6 = 0:0 reserved
dword 7 = 0:0 reserved
Secondary Save Pointer Table
word 1 Length of Secondary Save Pointer table in bytes
dword 2 Address of Display Combination Code table
Display Combination Code Table
1 byte Numberof entries in table
1 byte DCC table version number
1 byte Maximum display type code
1 byte reserved
word array Valid display combinations
0,0 entry 0 No displays
0,1 entry 1 MDPA
0,2 entry 2 CGA
2,1 entry 3 MDPA + CGA
0,4 entry 4 EGA
4,1 entry 5 EGA + MDPA
0,5 entry 6 MEGA
2,5 entry 7 MEGA + CGA
0,6 entry 8 PGC
1,6 entry 9 PGC + MDPA
5,6 entry 10 PGC + MEGA
0,8 entry 11 CVGA
1,8 entry 12 CVGA + MDPA
0,7 entry 13 MVGA
2,7 entry 14 MVGA + CGA
2,6 entry 15 MVGA + PGC
dword 3 Address of second Alphanumeric Character Set Override
Second Alpha Mode Auxillary Character Generator Table
1 byte Bytes/Character
1 byte Block to load
1 byte Reserved
1 dword Pointer to a font table
n byte Mode values for this font
1 byte 0FFH end of mode values
dword 4 Address of User Palette Profile table
Palette Profile Table (VGA only)
1 byte Underlining 1 - enable in all alphanumeric modes
0 - enable in monochrome alpha modes
-1 - disable in all alpha modes
1 byte reserved
1 word reserved
1 word Number of Attribute Controller registers in table
(Internal palette count 0-17, 17 normal)
1 word First Attribute Controller reg. number
(Internal palette index 0-16, 0 normal)
1 dword Address of Attribute Controller reg. table
(Pointer to internal palette)
1 word Number of video DAC Color registers in table
(External palette count 0-256, 256 normal)
1 word First video DAC Color register number
(External Palette index 0-255, 0 normal)
1 dword Address of video DAC Color register table
(Pointer to external palette)
n byte array Applicable video mode values for this font
1 byte 0FFH end of list of video modes
dword 5 reserved
dword 6 reserved
dword 7 reserved
004AC 8 bytes Reserved
004B4 1 byte Keyboard NMI control flags (CVT)
004B5 1 dword Keyboard break pending flags (CVT)
004B9 1 byte Port 60 single byte queue (CVT)
004BA 1 byte Scan code of last key (CVT)
004BB 1 byte Pointer to NMI buffer head (CVT)
004BC 1 byte Pointer to NMI buffer tail (CVT)
004BD 16 bytes NMI scan code buffer (CVT)
004CE 1 word Day counter (CVT and after)
004D0 32 bytes Reserved
004F0 16 bytes Application program communication area

00500-005FF DOS Data Area:

00500 1 byte Print screen status flag
1 = printer active, 0FFH = printer fault
00501 3 bytes Reserved for BASIC and POST work area
00504 1 byte Single-drive mode status byte: 0=drive A, 1=drive B
00505 10 bytes Reserved POST work area
00510 18 bytes Reserved for BASIC
0050F 1 bytes BASIC Shell Flag =2 if current shell
00510 1 word BASIC segment address storage set with DEF SEG
00512 1 dword BASIC int 1Ch clock interrupt vector
00516 1 dword BASIC int 23h ctrl-break interrupt vector
0051A 1 dword BASIC int 24h disk error interrupt vector
0051B 5 bytes BASIC dynamic storage
00520 2 bytes DOS dynamic storage
00522 14 bytes Used by DOS for diskette initialization (see INT 1EH)
00530 4 bytes Used by MODE command
00534 204 bytes Reserved for DOS data
00600 256 bytes Reserved for DOS
00700 - I/O drivers from xIO.SYS (Disk data, Console handler,
Serial Ports drivers, Parallel Port drivers, Null driver)
00847 xIO.SYS IRET for interrupts 1, 3, and 0FH during POST
MS-DOS kernel from xDOS.SYS: Interrupt handlers and routines
MS-DOS disk buffer cache, FCBs and installable device drivers
MCB (Memory control block, 16 bytes, paragraph aligned)
1 byte 4Dh Signature byte of intermediate MCB
1 word Segment of owner program (0 if transient program)
1 word Paragraphs in block
11 bytes reserved
Resident portion of COMMAND (Int 22, 23, 24 handlers)
(Transient portion, batch processor loaded into high memory)
MCB of original environment
Original Environment (COMSPEC=xxxx, PATH=yyyy, etc.)
MCB for first resident program
PSP (Program Segment Prefix) 256 bytes: Hex offsets:
0 CDh,20h (Int 20h terminate program handler)
1 Segment for end of allocation block
4 Reserved
5 Long call to DOS function dispatcher
0A Previous Int 22h vector
0E Previous Int 23h vector
12 Previous Int 24h vector
14 Reserved
2C Segment of local environment block
2E Reserved
5C First File Control Block
6C Second File Control Block
80 Command tail and default Disk Transfer Area
First resident program
MCB for Environment copy #1
Environment copy #1
MCB for second resident program
PSP for second resident program
Second resident program
MCB for Environment copy #2
Environment copy #2
MCB for current transient program, Last MCB:
16 bytes: 5AH, seg. of prog., paragraph size to xxxxxx.

4Dh and 5Ah are ASCII 'MZ', the initials of Mark Zbikowski,
who, along with Aaron Reynolds, were the developers of DOS.
'MZ' is also used as the first two bytes in an EXE file.

PSP for transient program
Start of Transient Program
xxxxx-yyyyy User's transient program, memory allocated to zzzzz
zzzzz-end Possible user resident program loaded into high memory
(end is A0000 for MS-DOS 2.x, 9FC00 for 3.x)

Extended BIOS Data Area: POST in PS/2 allocates memory for
data in high memory below 640K (A0000H) in (n) Kbytes. The
word value at 00413H (memory size) is decremented by (n) by
this allocation. The first byte in the Extended BIOS
Data Area is initialized to (n). To access this segment,
issue Int 15h, AH=C1h (return Extended BIOS Data Area
Segment Address). To determine if an Extended BIOS
Data Area is allocated, use Int 15h, AH=C0h (Return
System Configuration Parameters).

A0000-AFFFF Start of EGA and VGA graphics display RAM Modes 0Dh and above
B0000-B3FFF Start of MDPA and Hercules graphics display RAM
B4000-B7FFF Reserved for Graphics display RAM
B8000-BBFFF Start of CGA Color graphics display RAM
BC000-BFFFF Reserved for Graphics display RAM

C0000-C3FFF EGA BIOS ROM
C4000-C5FFF Video adapter ROM space
C6000-C63FF 256 bytes of PGA communication area
C6400-C7FFF Last 7Kb of video adapter ROM space

C8000-CBFFF 16K of hard disk BIOS adapter ROM space
CC000-CFFFF
D0000-D7FFF 32K cluster adapter BIOS ROM
D8000-DBFFF
DC000-DFFFF Last 16Kb of adapter ROM space

E0000-EFFFF 64K expansion ROM space (AT, PS/2)
F0000-F3FFF System Monitor ROM
F4000-F7FFF System Expansion ROMs
F8000-FBFFF "
FC000-FEFFF BIOS ROM; BASIC and simple BIOS
FF000-FFFEF System ROM
FFFF0-FFFF3 Hardware boot far jump vector

At reset or power up, program execution begins at
this address (this is a feature of the 80x86, not
DOS or the BIOS). The standard ROM reads the boot
sector from disk in A: or hard disk if A: not read.
The boot record resides on track 0, sector 1, side 0
of every formated diskette, or on the first sector
of the DOS partition on hard disks.

The boot code is loaded at 0:7C00H. (This is 1K less
than 32K, half of the original IBM PC 64K.) Control
is transferred to the boot code. A hard disk boot code
checks for a disk partition table. If an active disk
partition is found, the DOS boot code is loaded. The
MS-DOS boot loader searches for xxxBIO.SYS as the
first file in the root directory. xxxDOS.SYS
must be the second file in the root. If they are
found, then xxxBIO.SYS is loaded, which in turn,
loads xxxDOS.SYS.

xxxBIO.SYS is the interface module to the ROM BIOS,
which performs the low-level interface to devices.
When initialization is completed, DOS code is relocated
downward and entered at its first byte.

xxxDOS.SYS initializes its interrupt handlers and
then uses the EXEC function to run COMMAND.COM.

Early in the POST (power on self test) the absolute
addresses 0C0000H through 0C7FFFH are scanned in 2Kb
blocks in search of valid video adapter ROM. If found,
POST executes a far call to byte 3 of the ROM to allow
power-on video initialization.

Similarly, addresses 0C8000H through 0DFFFFH are
scanned in 2Kb blocks for valid adapter ROM modules.
Valid adapter ROM have 55H,AAH as the first two bytes.
The third byte gives the length of 512b blocks (up
to 7FH) in the ROM. The ROM is checked by summing
each byte modulo 100H. The sum must be 0 for a valid
ROM.

FFFF5-FFFFC ROM date in ASCII form. E.g.: '09/02/86'
FFFFD Reserved
FFFFE-FFFFF IBM Model Bytes:
PC PC PC PC PC PC PC PS/2 PS/2 PS/2 PS/2
XT jr AT AT3x9 XT/2 CVT 30 50 60 80
------------------------------------------------------
Model bytes FF FE FD FC FC FB F9 FA FC FC F8
Submodels 0 0-1 0-1 0 0 0 4 5 0-1
Revisions 1-2 0-1 1-2 0 0 0 0 0

COMPACT PC XT DP HP110
------------------ -----
Model bytes 2D 9A FE B6

100000-15FFFF 384K RAM on AT, PS/2 system board
15FFFF-FDFFFF Extended RAM for the 80286. Additional memory in 8086
machines use bank switching of a segment of memory
within the 1 Meg address range of the 8086. This is
called expanded memory. The standard interface to
expanded memory is through the EMM (Expanded Memory
Manager) at Int 67h. The 80286 can directly address
16 Megabytes of memory.
FE0000-FEFFFF Reserved
FF0000-FFFFFF 64K ROM BIOS on AT, PS/2

01000000-FFFFFFFF Extended RAM for the 80386. The 80386 can address up
to 4 Gigabytes of physical memory.



  3 Responses to “Category : Tutorials + Patches
Archive   : PCDOCS.ZIP
Filename : MEMORY.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/