Memory Map
          
          
          $00         CPU_DDR         Address of 6510 data direction register
          $01         CPU_DATA        Built-in 6510 I/O port, bit oriented
                                      Bit 0 - 0=RAM, 1=BASIC ROM
                                      Bit 1 - 0=RAM, 1=Kernal ROM
                                      Bit 2 - 0=Character set ROM,
                                      1=I/O ports
                                      Bits 3-5 - Cassette control lines
                                      Bits 6-7 - Unconnected
          $02-$03     R0              General pointer,  usually used to pass a
                                      parameter to a Kernal routine.
          $04-$05     R1              General pointer
          $04         R1L             Track number for disk operations
          $05         R1H             Sector number for disk operations
          $05         R1H             Row to print text on
          $06-$0B     R2L-R4H         Box size descriptor
          $06         R2L             Top row of a box
          $07         R2H             Bottom row of a box
          $08-$09     R3              Left margin of a box
          $0A-$0B     R4              Right margin of a box
          $0C-$0D     R5              Directory  entry  pointer,  returned  by
                                      lookup.  Also  used as  the  destination
                                      indirect   pointer  for  hires   graphic
                                      operations.
          $0E-$0F     R6              Filename  pointer,  used to point  to  a
                                      file name for file operations. Also used
                                      as the source indirect pointer for hires
                                      graphic operations.
          $10         R7L             Selected GEOS file type; used by FindFTypes
          $11         R7H             Maximum number of files to find; used by
                                      table
          $12-$13     R8              Temporary storage areas
          $14-$15     R9              Alternate   directory   entry   pointer,
                                      usually  points to $8400.  Also used  to
                                      point to a file's info sector when it is
                                      in memory.
          $16         R10L            Number of directory sectors to skip before
                                      finding a hole in  the  directory;  used
                                      by file save routines and GetFreeDirBlk.
                                      Also  used  as a parameter value  to  be
                                      passed to programs.  Could be  DESKTOP's
                                      page number.
          $16-$17     R10             Pointer to class string; used by FindFTypes
          $18-$19     R11             Column to print text in
          $1A-$1B     R12
          $1C-$1D     R13
          $1E-$1F     R14
          $20-$21     R15             Unused
          $22-$23     curPattern      Pointer to fill pattern data
          $24-$25     string          Pointer to input buffer
          $26-$2E     (font data)     Current font data table.  See Font  File
                                      Format  for  a complete  description  of
                                      this header information.
          $26         baselineOffset  Number  of  pixels above line of  print.
                                      Underlining  appears 1 pixel  below  the
                                      line of print.
          $27-$28     curSetWidth     Number   of  bytes  in  the  font's  bit
                                      streams
          $29         curHeight       Point size of the font
          $2A-$2B     curIndexTable   Address of bit stream indices table
          $2C-$2D     curDataPntr     Address of the first bit stream
          $2E         currentMode     Defines the current print style
                                      Bit 7 - Underline
                                      Bit 6 - Boldface
                                      Bit 5 - Reversed video
                                      Bit 4 - Italics
                                      Bit 3 - Outline
          $2F         dispBufferOn    Controls  the  source  and   destination
                                      screens,  used by GetScanLine. Bits 6 & 7 are
                                      used   to   determine  the  source   and
                                      destination screens as follows:
                                      7 6  $0C-$0D  $0E-$0F
                                      0 0    AF00     AF00  (MIDSCREEN)
                                      0 1     2        1
                                      1 0     1        1
                                      1 1     1        2
                                      If bit 5 is set,  then only screen 1  is
                                      used for text (Mode 10).
          $30         mouseOn         Mouse control flag
                                      Bit 7 - Mouse is not visible
                                      Bit 6 - Enable   checking   mouse's
                                      position   against  current
                                      menu limits.
                                      Bit 5 - Enable   checking   mouse's
                                      position against click  box
                                      table.
          $31-$32     msePicPtr       Pointer  to  the  sprite  data  for  the
                                      default mouse, usually $84C1
          $33         windowTop       Top margin, usually 0 (Top of screen)
          $34         windowBottom    Bottom  margin,  usually 199 (Bottom  of
                                      screen)
          $35-$36     leftMargin      Left margin
          $37-$38     rightMargin     Right margin,  if an attempt is made  to
                                      print  text  past  this column,  control
                                      passes through $84AB.
          $39         pressFlag       Input control flags
                                      Bit 7 - There   is  data   in   the
                                      keyboard buffer
                                      Bit 6 - Input  device  has  changed
                                      direction
                                      Bit 5 - Button status has changed
          $3A-$3B     mouseXPos       Mouse's X position
          $3C         mouseYPos       Mouse's Y position
          $3D-$3E                     Address for inline return
          $3F-$40     returnAddress   Pointer to click box data table
          $41-$42                     Jump vector used by CallRoutine
          $43-$44                     Pointer  used by DoDlgBox to point to  the
                                      window descriptor block.
          $45-$6F                     Unused in GEOS?  For main Kernal, are BASIC vars
          $70         A2L             General application pointer
          $71         A2H             General application pointer
          $72         A3L             General application pointer
          $73         A3H             General application pointer
          $74         A4L             General application pointer
          $75         A4H             General application pointer
          $76         A5L             General application pointer
          $77         A5H             General application pointer
          $78         A6L             General application pointer
          $79         A6H             General application pointer
          $7A         A7L             General application pointer
          $7B         A7H             General application pointer
          $7C         A8L             General application pointer
          $7D         A8H             General application pointer
          $7E         A9L             General application pointer
          $7F         A9H             General application pointer
          $80-$8D                     Unknown - seem to be more BASIC vars for KERNAL
          $8E                         The least significant 3 bits of location
                                      $DD00,  used  by  serial  communications
                                      routines. These three bits represent the
                                      VIC  memory  bank number and the  RS-232
                                      output line.
          $8F                         A  copy  of location $8E with the  clock
                                      and data lines set.
          $90         STATUS          C64 status register
          $91-$B9                     KERNAL I/O registers and variables
          $BA         curDevice       Current serial device number
          $BB-$FA                     KERNAL I/O registers and variables
          $FB         A0L             General application pointer
          $FC         A0H             General application pointer
          $FD         A1L             General application pointer
          $FE         A1H             General application pointer
          $FF                         Unknown - in KERNAL, is a BASIC work area
          $0100-$013E                 Tape Input Error log.
          $0100-$01FF                 6510 Hardware Stack Area.
          $013F-$01FF                 BASIC Stack Area.
          $0200-$0258                 BASIC Input Buffer (Input Line from Screen).
          $0259-$0262                 Kernal Table: Active logical File numbers.
          $0263-$026C                 Kernal Table: Active File First Addresses
                                      (Device numbers).
          $026D-$0276                 Kernal Table: Active File Secondary
                                      Addresses.
          $0277-$0280                 Keyboard Buffer Queue (FIFO).
          $0281-$0282                 Pointer: Bottom of Memory for Operating
                                      System ($0800).
          $0283-$0284                 Pointer: Top of Memory for Operating
                                      System ($A000).
          $0285                       Serial IEEE Bus timeout defeat Flag.
          $0286                       Current Character Color code.
          $0287                       Background Color under Cursor.
          $0288                       High Byte of Screen Memory Address ($04).
          $0289                       Maximum number of Bytes in Keyboard
                                      Buffer ($0A).
          $028A                       Flag: Repeat keys; $00 = Cursors, INST/DEL &
                                      Space repeat, $40 no Keys repeat, $80 all
                                      Keys repeat ($00).
          $028B                       Repeat Key: Speed Counter ($04).
          $028C                       Repeat Key: First repeat delay Counter ($10).
          $028D                       Flag: Shift Keys: Bit 1 = Shift, Bit 2 = CBM,
                                      Bit 3 = CTRL; ($00 = None, $01 = Shift, etc.).
          $028E                       Last Shift Key used for debouncing.
          $028F-$0290                 Vector: Routine to determine Keyboard table
                                      to use based on Shift Key Pattern ($EB48).
          $0291                       Flag: Upper/Lower Case change: $00 = Disabled,
                                      $80 = Enabled ($00).
          $0292                       Flag: Auto scroll down: $00 = Disabled ($00).
          $0293                       RS232 Pseudo 6551 control Register Image.
          $0294                       RS232 Pseudo 6551 command Register Image.
          $0295-$0296                 RS232 Non-standard Bits/Second.
          $0297                       RS232 Pseudo 6551 Status Register Image.
          $0298                       RS232 Number of Bits left to send.
          $0299-$029A                 RS232 Baud Rate; Full Bit time microseconds.
          $029B                       RS232 Index to End of Input Buffer.
          $029C                       RS232 Pointer: High Byte of Address of Input
                                      Buffer.
          $029D                       RS232 Pointer: High Byte of Address of Output
                                      Buffer.
          $029E                       RS232 Index to End of Output Buffer.
          $029F-$02A0                 Temporary store for IRQ Vector during Tape
                                      operations.
          $02A1                       RS232 Enables.
          $02A2                       TOD sense during Tape I/O.
          $02A3                       Temporary storage during Tape READ.
          $02A4                       Temporary D1IRQ Indicator during Tape READ.
          $02A5                       Temporary for Line Index.
          $02A6                       Flag: TV Standard: $00 = NTSC, $01 = PAL.
          $02A7-$02FF                 Unused.
          $02C0-$02FE                 Sprite #11 Data Area.
                                      (SCREEN + $03F8 + SPR number)
                                      POKE 1024+1016+0,11  to use Sprite#0 DATA
                                      from ($02C0-$02FE).
          $0300-$0301                 Vector: Indirect entry to BASIC Error
                                      Message, (X) points to Message ($E38B).
          $0302-$0303                 Vector: Indirect entry to BASIC Input Line
                                      and Decode ($A483).
          $0304-$0305                 Vector: Indirect entry to BASIC Tokenise
                                      Routine ($A57C).
          $0306-$0307                 Vector: Indirect entry to BASIC LIST
                                      Routine ($A71A).
          $0308-$0309                 Vector: Indirect entry to BASIC Character
                                      dispatch Routine ($A7E4).
          $030A-$030B                 Vector: Indirect entry to BASIC Token
                                      evaluation ($AE86).
          $030C                       Storage for 6510 Accumulator during SYS.
          $030D                       Storage for 6510 X-Register during SYS.
          $030E                       Storage for 6510 Y-Register during SYS.
          $030F                       Storage for 6510 Status Register during SYS.
          $0310                       USR Function JMP Instruction ($4C).
          $0311-0312                  USR Address ($LB,$MB).
          $0313                       Unused.
          $0314-$0315 irqvec          IRQ vector
          $0316-$0317 bkvec           Break ins vector
          $0318-$0319 nmivec          Non-masked interrupt vector
          $031A-      kernalVectors   Location of kernal vectors
          
          $0400-$5FFF APP_RAM         Start of application space
          $6000-$7F3F BACK_SCR_BASE   Secondary hires screen, used as a backup
                                      for erasing menus and windows.
          $7900-$7F3F PRINT_BASE      Printer  driver  address;   see  printer
                                      driver definitions
          $7F40-$7FFF APP_VAR         Application variable space
          $8000-$80FF diskBlkBuf      Disk buffer #0
          $8100-$81FF fileHeader      Disk buffer #1, Info sector
          $8200-$82FF curDirHead      Disk buffer #2, Directory work area
          $8300-$83FF fileTrScTab     Disk  buffer  #3,  Table of  tracks  and
                                      sectors
          $8400-$841D dirEntryBuf     Current  directory  entry,   set  up  by
                                      FindFile
          $841E-$842F DrACurDkNm      Name of disk in drive 0 (device 8)
          $8430-$8441 DrBCurDkNm      Name of disk in drive 1 (device 9)
          $8442-$8452 dataFileName    Name of data file (passed to application)
          $8453-$8464 dataDiskName    Name of disk in drive 3 (device 11)
          $8465-$8475 PrntFilename    Name of current printer driver
          $8476-$8484 PrntDiskName    Name of disk containing printer driver
          $8485                       Unknown
          $8486                       Point to index from to reach $848E
          $8489       curDrive        Current drive's device number
          $848A       diskOpenFlg     Point to index from to reach $8492
          $848B       isGEOS          Format flag of current disk,
                                      $00 - GEOS format
                                      $FF - Non-GEOS diskette
          $848C       interleave      Skew factor for diskette operations
          $848D       numDrives       Number of drive in the system
          $848E-$8491 driveType       GEOS  uses  this table to designate  the
                                      boot  drive,  by  placing a $01  in  the
                                      location   corresponding  to  the   boot
                                      drive. This table is reached by indexing
                                      off of $8486 with the device number.
          $8492-$8495 turboFlags      Drive status bytes,  indexed from  $848A
                                      with the device number.
                                      Bit 7 - Turbodos is loaded
                                      Bit 6 - Turbodos is running
          $8496       curRecord       Current VLIR chain number
          $8497       usedRecords     Number of VLIR chains in the open file
          $8498       fileWritten     Modified  flag,  set to $FF if the  open
                                      VLIR   file   has  been   changed;   $00
                                      otherwise
          $8499-$849A fileSize        VLIR file size
          $849B-$849C appMain         Vector  for user additions to  the  GEOS
                                      main loop
          $849D-$849E intTopVector    Vector for GEOS's IRQ routine
          $849F-$84A0 intBotVector    Vector for a user's additions to the IRQ
                                      routine
          $84A1-$84A2 mouseVector     Vector for button status changes
          $84A3-$84A4 keyVector       Vector  for any  key  entered  from  the 
                                      keyboard
          $84A5-$84A6 inputVector     Vector for mouse direction change
          $84A7-$84A8 mouseFaultVec   Vector to close a menu
          $84A9-$84AA otherPressVec   This vector is used for a lot of  things
                                      that  require an action to be performed.
                                      These  items include:  the  button  was  
                                      released,  the button was  pressed  and 
                                      either the  mouse was visible or  Bit  5 
                                      of MSFLAG (location $30) was set.
          $84AB-$84AC StringFaultVec  Vector for margins exceeded
          $84AD-$84AE alarmTmrVector  Vector for the alarm clock routine
          $84AF-$84B0 BRKVector       Vector    for   the   BRK   instruction,
                                      initially this is set to Panic
          $84B1-$84B2 RecoverVector   Vector  for a routine to clear a  region
                                      of the screen, initially set to ImprintRectangle
          $84B3       selectionFlash  Default delay value for flashing boxes
          $84B4       alphaFlag       Text cursor flag - ** BSW = alphanum input flag
                                      Bit 7 - Blink the cursor
                                      Bit 6 - Cursor is turned on
                                      Bits 0-5 - Blink rate
          $84B5       iconSelFlag     Control flag for click box
                                      Bit 7 - Flash the box
                                      Bit 6 - Only invert the box
          $84B6       faultData       Mouse position flag, set by InterruptMain
                                      Bit 7 - Mouse  is below the  bottom
                                      of the window, windowBottom, $84B9
                                      Bit 6 - Mouse  is above the top  of
                                      the window, windowTop, $84B8
                                      Bit 5 - Mouse is to the left of the
                                      window, leftMargin, $84BA-$84BB
                                      Bit 4 - Mouse  is to the  right  of
                                      the window,  rightMargin, $84BC-
                                      $84BD
                                      Bit 3 - Mouse  is outside the menu,
                                      windowTop,windowBottom,leftMargin,
                                      rightMargin, $86C1-$86C6
          $84B7       menuNumber      Number of menu levels
          $84B8-$84BD                 Window size description
          $84B8       mouseTop        Top row of window
          $84B9       mouseBottom     Bottom row of window
          $84BA-$84BB mouseLeft       Left margin of window
          $84BC-$84BD mouseRight      Right margin of window
          $84BE-$84BF stringX         Text cursor's X position
          $84C0       stringY         Text cursor's Y position
          $84C1-$84FF mousePicData    Sprite data for default mouse
          $8500                       Unused
          $8501       maxMouseSpeed   Maximum mouse speed
          $8502       minMouseSpeed   Minimum mouse speed
          $8503       mouseAccel      Mouse's acceleration rate
          $8504       keyData         Next  key from keyboard buffer,  set  by
                                      GetNextChar
          $8505       mouseData       Current button status
                                      $00 - Pressed
                                      $FF - Released
          $8506       inputData       Mouse's current direction, 0-7,$FF
                                      3 2 1
                                      4 * 0
                                      5 6 7
          $8507                       Current mouse speed
          $8508-$8509                 Unused
          $850A-$850B random          Random number generator value
          $850C-$8514 saveFontTab     Temporary  storage for font data  during
                                      menu   processing,   copy   of   font data,
                                      locations $26-$2E
          $8515       dblClickCount   A counter used by the click box routine,
                                      which  is decremented by the IRQ service
                                      routine if it is nonzero.  See  Appendix
                                      IV.
          $8516       year            Current year (0-99)
          $8517       month           Current month
          $8518       day             Current day of the month
          $8519       hour            Current hour
          $851A       minutes         Current minute of the hour
          $851B       seconds         Current second of the minute
          $851C       alarmSetFlag    **BSW says TRUE if alarm is set for geos to mon
          $851D       sysDBData       Command  byte  returned  by  the  window
                                      processor
          $851E       screencolors    Preferred  colors;  high nibble for  the
                                      foreground color and low nibble for  the
                                      background color
          $851F-$8697 dlgBoxRamBuf    Temporary  storage buffer for the window
                                      processor;    see   DoDlgBox   for    more
                                      information
          $8698-$86BB                 Unused
          $86BC-$86BF                 Unknown
          $86C0                       Number of options in the current menu
          $86C1-$86C6                 Current menu size description
          $86C1                       Top row of menu
          $86C2                       Bottom row of menu
          $86C3-$86C4                 Left margin of menu
          $86C5-$86C6                 Right margin of menu
          $86C7-$86CE                 Stack for menu descriptors
          $86CF-$86D2                 Menu option that was clicked on, indexed
                                      by menu level (0-3)
          $86D3-$86E1                 Menu  option  box  limits,   either  row
                                      values or column high bytes
          $86E2-$86F0                 Menu option box limits, column low bytes
          $86F1-$8718                 Table of running timers, see $8755
          $8719-$872C                 Timer command bytes
                                      Bit 7 - Execute   routine,    timer
                                      reached zero
                                      Bit 6 - Disable routine  execution,
                                      leave timer running
                                      Bit 5 - Stop timer
                                      Bit 4 - Stop timer
          $872D-$8754                 Subroutine   addresses  associated  with
                                      each timer
          $8755-$877C                 Initial  values for  timers,  copied  to
                                      $86F1 when the timer reaches zero
          $877D                       Number of timers in table
          $877E                       Stack pointer for delay stack
          $877F-$87A6                 Time delay values
          $87A7-$87CE                 Return addresses for when the delay time
                                      has expired
          $87CF                       Length of user entry
          $87D0                       Maximum length of user entry
          $87D1-$87D2                 Copy of IMARGN, locations $84A3-$84A4
          $87D3                       Margin control flag,
                                      Bit 7 - User  supplies  the  margin
                                      exceeded  routine  for  the
                                      window with a line of text,
                                      GetString or window command 13
          $87D4-$87D6                 Column  and  row  variables  for  GraphicsString
                                      processor
          $87D7                       Head of keyboard queue
          $87D8                       Tail of keyboard queue
          $87D9                       If this flag is zero,  then the value of
                                      NXTKEY, location $87EA, is placed in the
                                      keyboard queue
          $87DA-$87E9                 Keyboard queue
          $87EA                       Next  key to be placed in  the  keyboard
                                      buffer
          $87EB-$87F2                 Used   by  keyboard  scan  routine   for
                                      debouncing the keyboard
          $87F3-$87FA                 Used by keyboard scan routine to prevent
                                      multiple key hits
          $87FB-$8806                 Used  by SmallPutChar to manipulate  the  font
                                      bit streams
          $8807       realSize        Width  of previous character for  delete
                                      character
          $8808                       Temporary  storage used by the click box
                                      routine
          $8809                       Temporary  storage used by the click box
                                      routine
          $880A                       A non-zero value disables alarm chimes
          $880B                       Temporary   storage  used  by  the   IRQ
                                      routine
          $880C-$884F                 Default  click  box  table used  by  the
                                      window processor; see also DoIcons
          $880C                       Number of click boxes (8 maximum)
          $880D-$880E                 X  position of mouse after  click  boxes
                                      have been drawn
          $880F                       Y  position  of mouse after click  boxes
                                      have been drawn
          $8810-$884F                 Click box definitions; see DoIcons
          $8850-$8851                 Return address of caller to LdDeskAcc
          $8852                       Copy of the SP register from LdDeskAcc
          $8853-$8854                 Return address of caller to DoDlgBox
          $8855                       Copy of the SP register from DoDlgBox
          $8856-$885C                 Used by command 16 in DoDlgBox
          $8856                       Number of files found
          $8857                       Left indent of file subwindow
          $8858                       Down indent of file subwindow
          $8859-$885A                 Pointer to filename table
          $885B                       Index of first file in the subwindow
          $885C                       Index on selected file
          $885D                       Parameter  passed to a program,  copy of
                                      DPAGE, location $16
          $885E                       Copy  of  the  status  register   during
                                      serial communications
          $885F                       Copy  of  location $D01A  during  serial
                                      communications
          $8860                       Copy  of  R6510,  location  $01,  during
                                      serial communications
          $8861                       Copy  of  location $D015  during  serial
                                      communication
          $8862                       Copy  of  location $DD00 before  sending
                                      Turbodos
          $8863-$8866                 Command buffer for Turbodos
          $8867                       Copy of location $DD00 with serial lines
                                      cleared
          $8868                       Copy  of location $DD00 with clock  line
                                      set
          $8869                       Try   counter   for   disk    read/write
                                      operations
          $886A                       Disk status byte read by Turbodos
          $886B                       Load flag
                                      Bit 0 - Do  not run the application
                                      being  loaded;  use  LDADRS
                                      locations  $886C-$886D   as
                                      load address
          $886C-$886D                 Alternate file load address
          $886E                       Reports which drive is being searched
                                      $00 - logged disk
                                      $FF - checking other drive
          $886F-$8874                 Used by VLIR file routines
          $886F                       Track  number  of  VLIR  file  directory
                                      entry
          $8870                       Sector  number  of VLIR  file  directory
                                      entry
          $8871-$8872                 Index into directory sector to VLIR file
                                      directory entry
          $8873                       Track number of VLIR sector
          $8874                       Sector number of VLIR sector
          $8875                       Try counter used by VerWriteBlock
          $8876                       Verify flag; $00=NO, $FF=YES
          $8877-$88BA                 Unused
          $88BB       savedmoby2      Saved value of moby2 for context saving done
                                      in dlg boxes & desk accessories.  Left out of
                                      original GEOS save code, put here so we don't
                                      screw up desk accessories, etc. that know the
                                      size of TOT_SRAM_SAVED above.
          $88BC       scr80polar      Copy of reg 24 in VDC for C128
          $88BD       scr80colors     Screen colors for 80 column
          $88BE       vdcClrMode      Holds current color mode for C128 color rtns.
          $88BF-$88C2 driveData       1 byte each drive reserved for disk drivers
          $88C3       ramExpSize      Size of ram expansion unit
          $88C4       sysRAMFlg       Tells how ram expansion is being used
                                      Bank 0 - reserved for kernal use
                                      Bit 7 - whether $000-$78FF used by MoveData
                                      Bit 6 - $8300-$B8FF holds disk drivers for A-C
                                      Bit 5 - $7900-$7DFF is loaded with $8400-$88FF
                                      Bit 4 - $7E00-$82FF has reboot code
                                              $B900-$FCFF is saved with kernal rboot
          $88C5       firstBoot       $00 if deskTop not yet loaded, $FF otherwise
          $88C6       curType         Current disk type (copied from diskType)
          $88C7-$88CA ramBase         RAM bank for each drive to use if RAM/shadowed
          $88CB-$88DB inputDevName    Holds name of current input device
          $88DC-$88ED DrCCurDkNm      Name of disk in drive C, padded with $A0
          $88EE-$88FF DrDCurDkNm      Name of disk in drive D, padded with $A0
          $8900-$89FF dir2Head        2nd directory header block for larger drives
          $8A00-$8A3E                 Sprite data block #40, GEOS sprite 0
          $8A40-$8A7E                 Sprite data block #41, GEOS sprite 1
          $8A80-$8ABE                 Sprite data block #42, GEOS sprite 2
          $8AC0-$8AFE                 Sprite data block #43, GEOS sprite 3
          $8B00-$8B3E                 Sprite data block #44, GEOS sprite 4
          $8B40-$8B7E                 Sprite data block #45, GEOS sprite 5
          $8B80-$8BBE                 Sprite data block #46, GEOS sprite 6
          $8BC0-$8BFE                 Sprite data block #47, GEOS sprite 7
          $8C00-$8FE7 COLOR_MATRIX    Color ram for hires screen
          $8FE8-$8FFF                 Sprite pointers; usually set to 40 to 47
          $9000-$9FFF DISK_BASE       Disk driver base address
          $9C78-$9D78                 3rd BAM sector?
          $A000-$BF3F SCREEN_BASE     Primary hires screen
          $BF40-$FE7F                 GEOS Kernal
          $FE80-$FFF9                 Input driver
          $FFFA-$FFFB NMI_VECTOR      NMI vector
          $FFFC-$FFFD RESET_VECTOR    Power up reset vector
          $FFFE-$FFFF IRQ_VECTOR      IRQ vector
          

 

                                  GEOS EQUATES and LOGICALS

          For $2F - dispBufferOn
          ST_WR_FORE           - $80
          ST_WR_BACK           - $40
          ST_WRGS_FORE         - $20

          For GraphicsString
          MOVEPENTO            - 1                  Move Pen to X,Y
          LINETO               - 2                  Draw line to X,Y
          RECTANGLETO          - 3                  Draw a rectangle to x,y
                               - 4 
          NEWPATTERN           - 5                  Set a new pattern
          ESC_PUTSTRING        - 6                  Start PutString interpretation
          FRAME_RECTO          - 7                  Draw frame or rectangle
          PEN_X_DELTA          - 8                  Move pen by signed word delta in x
          PEN_Y_DELTA          - 9                  PEN_XY_DELTA

          For PutDecimal
          SET_LEFTJUST         - %10000000          Left justified
          SET_RIGHTJUST        - %00000000          Right justified
          SET_SUPRESS          - %01000000          Supress leading 0's
          SET_NOSUPRESS        - %00000000          Leading 0's

          For $01 - CPU_DATA
          IO_IN                - $35                60K RAM, 4K IO space in
          RAM_64K              - $30                64K RAM
          KRNL_BAS_IO_IN       - $37                Both Kernal and BASIC ROMS mapped in
          KRNL_IO_IN           - $36                Kernal and IO space mapped in

          For DoMenu
          HORIZONTAL           - %00000000
          VERTICAL             - %10000000
          CONSTRAINED          - %01000000
          UN_CONSTRAINED       - %00000000
          .
          SUB_MENU             - $80                Defining action of a menu item click
          DYN_SUB_MENU         - $40
          MENU_ACTION          - $00

          For $2E - currentMode
          SET_UNDERLINE        - %10000000
          SET_BOLD             - %01000000
          SET_REVERSE          - %00100000
          SET_ITALIC           - %00010000
          SET_OUTLINE          - %00001000
          SET_SUPERSCRIPT      - %00000100
          SET_SUBSCRIPT        - %00000010
          SET_PLAINTEXT        - %00000000
          .
          UNDERLINE_BIT        - 7
          BOLD_BIT             - 6
          REVERSE_BIT          - 5
          ITALIC_BIT           - 4
          OUTLINE_BIT          - 3
          SUPERSCRIPT_BIT      - 2
          SUBSCRIPT_BIT        - 1

          For PutChar, PutString, etc.
          BOLDON               - 24
          ITALICON             - 25
          OUTLINEON            - 26
          PLAINTEXT            - 27
          USELAST              - 127                Erase characters
          SHORTCUT             - 128                Shortcut characters

          For directory entries "GEOS file type" byte
          NOT_GEOS             - 0
          BASIC                - 1
          ASSEMBLY             - 2
          DATA                 - 3
          SYSTEM               - 4
          DESC_ACC             - 5
          APPLICATION          - 6
          APPL_DATA            - 7
          FONT                 - 8
          PRINTER              - 9
          INPUT_DEVICE         - 10
          DISK_DEVICE          - 11
          SYSTEM_BOOT          - 12
          TEMPORARY            - 13
          AUTO_EXEC            - 14
          INPUT_128            - 15
          NUM_FILE_TYPES       - 15

          For "GEOS File Structure"
          SEQUENTIAL           - 0
          VLIR                 - 1

          GEOS Error Messages
          NO_BLOCKS            - 1
          INSUFF_SPACE         - 3
          FULL_DIRECTORY       - 4
          FILE_NOT_FOUND       - 5
          OUT_OF_RECORDS       - 9
          DEV_NOT_FOUND        - 13
          WR_VERR_ERR          - $25
          WR_PR_ON             - $26

          File Types
          DEL                  - 0
          SEQ                  - 1
          PRG                  - 2
          USR                  - 3
          REL                  - 4