Low memory


Summary: Low memory is the memory at the beginning of the address space. Some processors use designated low memory addresses during power on, exception processing, interrupt processing, and other hardware conditions. Some operating systems use designated low memory addresses for global system variables, global system structures, jump tables, and other system purposes.
  • PC-DOS and MS-DOS low memory
    • BIOS Communication Area
    • Reserved
    • Inter-Application (User) Communication Area
    • DOS Communication Area
  • Macintosh low memory

 

PC-DOS and MS-DOS low memory


    Addresses are hexadecimal in segment: offset form.

BIOS Communication Area


0000:0400h-0000:04ABh
    0000:0400h-000:0407h   addresses of RS232 adaptors
    0000:0408h-0000:040Fh   addresses of printers

0000:0410h-0000:0411h   equipment flag: Also returned by interrupt 11h. MS-DOS only sets this value at startup. Programs that switch video adapters or switch modes in mulitadapter video cards should correctly set bit pair 5:4 — 00=not used, 01=CGA card 40 columns, 10=CGA card 80 columns, 11=monochrome card

    0000:0412h   initialization flag

    0000:0413h-0000:0414h   memory size: normally accessed via interrupt 12h.

    0000:0415h-0000:0416h   amount of memory in I/O channel

    0000:0417h-0000:043Dh   keyboard data area 1: keyboard status flags and 15-byte keyboard buffer. Normally read via interrupt 16h.

    0000:043Eh-0000:0448h   diskette data

    0000:0449h-0000:0466h   video control data area 1: normally accessed via interrupt 10h.

    0000:00467h--0000:046Bh   cassette data; in some models of PS/2 this contains the far (doubleword) address of the code that resets the computer while preserving memory.

    0000:046Ch-0000:0470h   time data: normally accessed via interrupt 1Ah.

    0000:0471h   break flag: set to 1 if the break key has been pressed.

    0000:0472h-0000:0473h   reset flag: if set to 1234h, the BIOS initialization routine (starting at segment FFFFh) will bypass the memory check normally performed during a cold boot. In many models of the PS/2, if the flag is set to 4321h, the system will perform a reset operation without erasing memory.

Reserved


0000:04ACh-0000:04EFh
    Reserved for BIOS.

 

Inter-Application (User) Communication Area


0000:04F0h-0000:04FFh

    May be used by any program in any way. Originally intended for communications and exchange of data between programs, but because Microsoft couldn’t figure out a standard, the area is in complete anarchy and programs should assume that other programs will act destructively on any attempts to use the area.

DOS Communication Area


0000:0500h-0000:05FFh
    Reserved for use by DOS and BASIC.
    0000:0500   print screen status flag: one byte value — 0=print screen not active or successful termination, 1=print screen in progress, 255=error occurred during print screen.

 

Macintosh low memory

    0x0000   unassigned
    0x0004   ResetSPPC
    0x0008   BusError
    0x000C   AddrErr
    0x0010   Illegal
    0x0014   ZeroDiv
    0x0018   ChkError
    0x001C   TrapVErr
    0x0020   Privileg
    0x0024   Trace
    0x0028   Line1010
    0x002C   Line 1111
    0x0030   unassigned
    0x0034   Coproces
    0x0038   FmtErrVect
    0x003C   Uninited
    0x0040   Unassig2
    0x0060   Spurious
    0x0064   AutoInt1
    0x0068   AutoInt2
     0x006C   AutoInt3
    0x0070   AutoInt4
    0x0074   AutoInt5
    0x0078   AutoInt6
    0x007C   AutoInt7
    0x0080   TRAPtble
    0x00C0   FP-68881
    0x00DC   reserved
    0x00E0   PMMU
    0x00E0   SMgrOldCore
    0x00EC   reserved
    0x0100   MonkeyLives
    0x0100   SysCom
    0x0102   ScrVRes
    0x0104   ScrHRes
    0x0106   ScreenRow
    0x0108   MemTop
    0x010C   BufPtr
    0x0110   StkLowPtr
    0x0114   HeapEnd
    0x0118   TheZone
    0x011C   UTableBase
    0x0120   MacJmp
    0x0124   DskRtnAdr
    0x0128   PollRtnAdr
    0x012C   DskVerify
    0x012D   LoadTrap
    0x012E   MmInOK
    0x012F   CPUFlag
    0x012F   DskWr11
    0x0130   ApplLimit
     0x0134   SonyVars
    0x0138   PWMValue
    0x013A   PollStack
    0x013E   PollProc
    0x0142   DskErr
    0x0144   SysEvtMask
    0x0146   SysEvtBuf
    0x014A   EventQueue
    0x0154   EvtBufCnt
    0x0156   RndSeed
    0x015A   SysVersion
    0x015C   SEvtEnb
    0x015D   DSWndUpdate
    0x015E   FontFlag
    0x015F   IntFlag
    0x0160   VBLQueue
    0x016A   Ticks
    0x016E   MBTicks
    0x0172   MBState
    0x0173   Tocks
    0x0174   KeyMap
    0x017C   KeyPadMap
    0x0180   unknown
    0x0184   KeyLast
    0x0186   KeyTime
    0x018A   KeyRepTime
    0x018E   KeyThresh
    0x0190   KeyRepThresh
    0x0192   Lvl1DT
    0x01B2   Lvl2DT
    0x01D2   UnitNtryCnt
    0x01D4   VIA
    0x01D8   SCCRd
    0x01DC   SCCWr
    0x01E0   IWM
    0x01E4   GetParam
    0x01F8   SysParam
    0x01F8   SPValid
    0x01F9   SPATalkA
    0x01FA   SPATalkB
    0x01FB   SPConfig
    0x01FC   SPPortA
    0x01FE   SPPortB
    0x0200   SPAlarm
    0x0204   SPFont
    0x0206   SPKbd
    0x0207   SPPrint
    0x0208   SPVolCtl
    0x0209   SPClikCaret
    0x020A   SPMisc1
    0x020B   CDeskPat
    0x020C   Time
    0x0210   BootDrive
    0x0212   JShell
    0x0214   SFSaveDisk
    0x0216   KbdVars
    0x0218   KbdLast
    0x021A   JKybdTask
    0x021E   KbdType
    0x021F   AlarmState
    0x0220   MemErr
    0x0222   JFigTrkSpd
    0x0226   JDiskPrime
    0x022A   JRdAddr
    0x022E   JRdData
    0x0232   JWrData
    0x0236   JSeek
    0x023A   JSetUpPoll
    0x023E   JRecal
    0x0242   JControl
    0x0246   JWakeUp
    0x024A   JReSeek
    0x024E   JMakeSpdTbl
    0x0252   JAdrDisk
    0x0256   JSetSpeed
    0x025A   NiblTbl
    0x025E   FlEvtMask
    0x0260   SdVolume
    0x0261   Finder
    0x0262   SoundVars
    0x0262   SoundPtr
    0x0266   SoundBase
    0x026A   SoundVBL
    0x027A   SoundDCE
    0x027E   SoundActive
    0x027F   SoundLevel
    0x0280   CurPitch
    0x0282   SoundLast
    0x0282   Switcher
    0x0286   SwitcherTPtr
    0x028A   RSDHndl
    0x028E   ROM85
    0x0290   PortAUse
    0x0291   PortBUse
    0x0292   ScreenVars
    0x029A   JGNEFilter
    0x029E   Key1Trans
    0x02A2   Key2Trans
    0x02A6   SysZone
    0x02AA   ApplZone
    0x02AE   ROMBase
    0x02B2   RAMBase
    0x02B6   BasicGlob
    0x02B6   ExpandMem
    0x02BA   DSAlertTab
    0x02BE   ExtStsDT
    0x02CE   SCCASts
    0x02CF   SCCBSts
    0x02D0   SerialVars
    0x02D8   ABusVars
    0x02E0   FinderName
    0x02F0   DoubleTime
    0x02F4   CaretTime
    0x02F8   ScrDmpEnb
    0x02F9   ScrDmpType
    0x02FA   TagData
    0x02FC   BufTgFNum
    0x0300   BufTgFFlg
    0x0302   BufTgFBkNum
    0x0304   BufTgDate
        
    0x0308   DrvQHdr
    0x0312   PWMBuf2
    0x0316   MacPgm
    0x031A   Lo3Bytes
    0x031E   MinStack
    0x0322   DefltStack
    0x0326   MMDefFlags
    0x0328   GZRootHnd
    0x032C   GZRootPtr
    0x0330   GZMoveHnd
    0x0334   DSDrawProc
    0x0338   EjectNotify
    0x033C   IAZNotify
    0x0340   CkdDB
    0x0342   NxtDB
    0x0344   MaxDB
    0x0346   FlushOnly
    0x0347   RegRscr
    0x0348   FLckUnlck
    0x0349   FrcSync
    0x034A   NewMount
    0x034C   DrMstrBlk
    0x034E   FCBSPtr
    0x0352   DefVCBPtr
   0x0356   VCBQHdr
    0x0360   FSBusy
    0x0362   FSQHead
    0x0366   FSQTail
    0x036A   RgSvArea
    0x0372   WDCBsPtr
    0x0376   HFSVars
    0x0384   DefVRefnum
    0x0392   HFSDSErr
    0x0398   CurDirStore
    0x03A2   ErCode
    0x03A4   Params
    0x03D6   FSTemp8
    0x03DE   FSTemp4
    0x03E2   FSQueueHook
    0x03E6   ExtFSHook
    0x03EA   DskSwtchHook
    0x03EE   RegstVol
    0x03F2   ToExtFS
    0x03F6   FSFCBLen
    0x03F8   DSAlertRect
    0x0400   OSTable
    0x0800   GrafBegin
    0x0800   JHideCursor
    0x0804   JShowCursor
    0x0808   JShieldCursor
    0x080C   JScrnAddr
    0x0810   JScrnSize
    0x0814   JInitCursor
    0x0818   JSetCrsr
    0x081C   JCrsrObscure
    0x0820   JUpdateProc
    0x0824   ScrnBase
    0x0828   MTemp
    0x082C   RawMouse
    0x0830   Mouse
    0x0834   CrsrPin
    0x083C   CrsrRect
    0x0844   TheCrsr
    0x0888   CrsrAddr
    0x088C   JAllocCrsr
    0x0890   JSetCCrsr
    0x0894   JOpcodeProc
    0x0898   CrsrBase
    0x089C   CrsrDevice
    0x08A0   SrcDevice
    0x08A4   MainDevice
    0x08A8   DeviceList
    0x08AC   CrsrRow
    0x08AE   unknown
    0x08B0   QDColors
    0x08CC   CrsrVis
    0x08CD   CrsrBusy
    0x08CE   CrsrNew
    0x08CF   CrsrCouple
    0x08D0   CrsrState
    0x08D2   CrsrObscure
    0x08D3   CrsrScale
    0x08D4   unknown
    0x08D6   MouseMask
    0x08DA   MouseOffset
    0x08DE   JournalFlag
    0x08E0   JSwapFont
    0x08E4   WidthListHand
    0x08E8   JournalRef
    0x08EA   unknown
    0x08EC   CrsrThresh
    0x08EE   JCrsrTask
    0x08F2   WWExist
    0x08F3   QDExist
    0x08F4   JFetch
    0x08F8   JStash
    0x08FC   JIODone
    0x0900   CurApRefNum
    0x0902   LaunchFlag
    0x0903   FondState
    0x0904   CurrentA5
    0x0908   CurStackBase
    0x090C   LoadFiller
    0x0910   CurApName
    0x0930   SaveSegHandle
    0x0934   CurJTOffset
    0x0936   CurPageOption
    0x0938   HiliteMode
    0x0939   unknown
    0x093A   LoaderPBlock
    0x0944   PrintErr
    0x0946   ChooserBits
    0x0954   CoreEditVars
    0x0960   ScrapSize
    0x0964   ScrapHandle
    0x0968   ScrapCount
    0x096A   ScrapState
    0x096C   ScrapName
    0x0970   ScrapTag
    0x0980   RomFont0
    0x0984   ApFontID
    0x0986   SaveFondFlags
    0x0987   FMDefaultSize
    0x0988   CurFMInput
    0x098A   CurFMSize
    0x098C   CurFMFace
    0x098D   CurFMNeedBits
    0x098E   CurFMDevice
    0x0990   CurFMNumer
    0x0994   CurFMDenom
    0x0998   FOutError
    0x099A   FOutFontHandle
    0x099E   FOutBold
    0x099F   FOutItalic
    0x09A0   FOutULOffset
    0x09A1   FOutULShadow
    0x09A2   FOutULThick
    0x09A3   FOutShadow
    0x09A4   FOutExtra
    0x09A5   FOutAccent
    0x09A6   FOutDescent
    0x09A7   FOutWidMax
    0x09A8   FOutLeading
    0x09A9   FOutUnused
    0x09AA   FOutNumer
    0x09AE   FOutDenom
    0x09B2   FMDotsPerInch
    0x09B6   FMStyleTab
    0x09CE   ToolScratch
    0x09D6   WindowList
    0x09DA   SaveUpdate
    0x09DC   PaintWhite
    0x09DE   WMgrPort
    0x09E2   DeskPort
    0x09E6   OldStructure
    0x09EA   OldContent
    0x09EE   GrayRgn
    0x09F2   SaveVisRgn
    0x09F6   DragHook
    0x09FA   TempRect
    0x0A02   OneOne
    0x0A06   MinusOne
    0x0A0A   TopMenuItem
    0x0A0C   AtMenuBotom
    0x0A0E   IconBitMap
    0x0A1C   MenuList
    0x0A20   MBarEnable
    0x0A22   CurDeKind
    0x0A24   MenuFlash
    0x0A26   TheMenu
    0x0A28   SavedHandle
    0x0A2C   MBarHook
    0x0A30   MenuHook
    0x0A34   DragPattern
    0x0A3C   DeskPattern
    0x0A44   DragFlag
    0x0A46   CurDragAction
    0x0A4A   FPState
    0x0A50   TopMapHndl
    0x0A54   SysMapHndl
    
    0x0A58   SysMap
    0x0A5A   CurMap
    0x0A5C   ResReadOnly
    0x0A5E   ResLoad
    0x0A60   ResErr
    0x0A62   TaskLock
    0x0A63   FScaleDisable
    0x0A64   CurActivate
    0x0A68   CurDeactive
    0x0A6C   DeskHook
    0x0A70   TEDoText
    0x0A74   TERecal
    0x0A78   ApplScratch
    0x0A84   GhostWindow
    0x0A88   CloseOrnHook
    0x0A8C   ResumeProc
    0x0A90   SaveProc
    0x0A94   SaveSP
    0x0A98   ANumber
    0x0A9A   ACount
    0x0A9C   DABeeper
    0x0AA0   DAStrings
    0x0AB0   TEScrpLength
    0x0AB2   unknown
    0x0AB4   TEScrpHandle
    0x0AB8   AppPacks
    0x0AD8   SysResName
    0x0AE8   SoundGlue
    0x0AEC   AppParmHandle
    0x0AF0   DSErrCode
    0x0AF2   ResErrProc
    0x0AF6   TEWdBreak
    0x0AFA   DlgFont
    0x0AFC   LastTGlobal
    0x0B00   TrapAgain
    0x0B04   KeyMVars
    0x0B06   ROMMapHndl
    0x0B0A   PWMBuf1
    0x0B0E   BootMask
    0x0B10   WidthPtr
    0x0B14   AtalkHk1
    0x0B18   AtalkHk2
    0x0B1C   FourDHack
    0x0B20   unknown
    0x0B22   HWCfgFlags
    0x0B24   TimeSCSIDB
    0x0B26   TopMenuItem
    0x0B28   AtMenuBottom
    0x0B2A   WidthTabHandle
    0x0B2E   SCSIDrvrs
    0x0B30   TimeVars
    0x0B34   BtDskRfn
    0x0B36   BootTmp8
    0x0B3E   unknown
    0x0B3F   T1Arbitrate
    0x0B4C   JDiskSel
    0x0B44   JSendCmd
    0x0B48   JDCDReset
    0x0B4C   LastSPExtra
    0x0B50   AppleShare
    0x0B54   MenuDisable
    0x0B58   MBDFHndl
    0x0B5C   MBSaveLoc
    0x0B60   BNMQHd
    0x0B64   Twitcher1
    0x0B68   unknown
    0x0B7C   Twitcher2
    0x0B80   RMgrHiVars
    0x0B9E   RomMapInsert
    0x0B9F   TmpResLoad
    0x0BA0   IntlSpec
    0x0BA0   SMgrCore
    0x0BA4   RMgrPerm
    0x0BA5   WordRedraw
    0x0BA6   SysFontFam
    0x0BA8   SysFontSize
    0x0BAA   MBarHeight
    0x0BAC   TESysJust
    0x0BAE   HiHeapMask
    0x0BB2   SegHiEnable
    0x0BB3   FDevDisable
    0x0BB4   CMVector
    0x0BB8   XFSGlobs
    0x0BBC   ShutDownQHdr
    0x0BC0   NewUnused
    0x0BC2   LastFOND
    0x0BC6   FONDID
    0x0BC8   App2Packs
    0x0BE8   MAErrProc
    0x0BEC   MASuperTab
    0x0BF0   MimeGlobs
    0x0BF4   FractEnable
    0x0BF5   UsedWidths
    0x0BF6   FScaleHFact
    0x0BFA   FScaleVFact
    0x0BFE   unknown
    0x0C00   SCSIBase
    0x0C04   SCSIDMA
    0x0C08   SCSIHsk
    0x0C0C   SCSIGlobals
    0x0C10   RGBBlack
    0x0C16   RGBWhite
    0x0C1C   unknown
    0x0C20   RowBits
    0x0C22   ColLines
    0x0C24   ScreenBytes
    0x0C28   IOPMgrVars
    0x0C2C   NMIFlag
    0x0C2D   VidType
    0x0C2E   VidMode
    0x0C2F   SCSIPoll
    0x0C30   SEVarBase
    0x0CB0   MMUFlags
    0x0CB1   MMUType
    0x0CB2   MMU32bit
    0x0CB3   WhichBox
    0x0CB4   MMUTbl
    0x0CB   MMUTblSize
    0x0CBC   SInfoPtr
    0x0CC0   ASCBase
    0x0CC4   SMGlobals
    0x0CC8   TheGDevice
    0x0CCC   CQDGlobals
    0x0CD0   AuxWinHead
    0x0CD4   AuxCtlHead
    0x0CD8   DeskCPat
    0x0CDC   SetOSDefKey
    0x0CE0   LastBinPat
    0x0CE8   DeskPatEnable
    0x0CEA   unknown
    0x0CF8   ADBBase
    0x0CFC   WarmStart
    0x0D00   TimeDBRA
    0x0D02   TimeSCCDB
    0x0D04   SlotQDT
    0x0D08   SlotPrTbl
    0x0D0C   SlotVBLQ
    0x0D10   ScrnVBLPtr
    0x0D14   SlotTICKS
    0x0D18   PowerMgrVars
    0x0D1C   AGBHandle
    0x0D20   TableSeed
    0x0D24   SRsrcTblPtr
    0x0D28   JVBLTask
    0x0D2C   WMgrCPort
    0x0D30   VertRRate
    0x0D32   SynListHandle
    0x0D36   LastFore
    0x0D3E   LastMode
    0x0D40   LastDepth
    0x0D42   FMExist
    0x0D43   SavedHilite
    0x0D44   unknown
    0x0D50   MenuCInfo
    0x0D54   MBProcHndl
    0x0D58   MBSaveLoc
    0x0D58   MRect
    0x0D5C   MBFlash
    0x0D5C   MenuCInfo
    0x0D60   ChunkyDepth
    0x0D62   CrsrPtr
    0x0D64   unknown
    0x0D66   PortList
    0x0D6A   MickeyBytes
    0x0D6E   QDErr
    0x0D70   VIA2DT
    0x0D90   SInitFlags
    0x0D92   DTQFlags
    0x0D92   DTQueue
    0x0D94   DtskQHdr
    0x0D98   DTskQTail
    0x0D9C   JDTInstall
    0x0DA0   HiliteRGB
    0x0DA6   TimeSCSIDB
    0x0DA8   DSCtrAdj
    0x0DAC   IconTLAddr
    0x0DB0   VideoInfoOK
    0x0DB4   EndSRTPtr
    0x0DB8   SDMJmpTblPtr
    0x0DBC   JSwapMMU
    0x0DC0   SdmBusErr
    0x0DC4   LastTxGDevice
    0x0DC8   PmgrHandle
    0x0DCC   LayerPalette
    0x0E00   ToolTable
    0x1E00   SystemHeap