      +------------------------------------------------------------------------
      |
      |      ZEROPAGE AND EXTENDED ZEROPAGE - DESCRIPTIONS
      |
      +------------------------------------------------------------------------
      |
      | Zeropage:
      |
      |   $00/0                   6510 On-chip Data Direction Register
      |   $01/1                   6510 On-chip 8-bit Input/Output Register
      |   $02/2                   Unused
      |   $03-$04/3-4             Jump Vector: Convert FAC to Integer
      |   $05-$06/5-6             Jump Vector: Convert Integer to Floating point
      |   $07/7                   Search Character/Temporary Integer during INT
      |   $08/8                   Flag: Scan for Quote at end of String
      |   $07-$08/7-8             Temporary Integer during OR/AND
      |   $09/9                   Screen Column for last TAB
      |   $0A/10                  Load/Verify-Flag
      |   $0B/11                  Input Buffer Pointer/Number of Subscripts
      |   $0C/12                  Flag: Default Array dimension
      |   $0D/13                  Data type Flag
      |   $0E/14                  Data type Flag
      |   $0F/15                  Flag: DATA scan/List Quote/Garbage collection
      |   $10/16                  Flag: Subscript reference/User Function call
      |   $11/17                  Input Flag
      |   $12/18                  Flag: TAN sign/Comparative result
      |   $13/19                  File number of current Input Device
      |   $14-$15/20-21           Temporary: Integer value
      |   $16/22                  Pointer: Temporary String Stack
      |   $17-$18/23-24           Last temporary String Address
      |   $19-$21/25-33           Stack for temporary Strings
      |   $22-$25/34-37           Utility Pointer Area
      |   $22-$23/34-35           First Utility Pointer
      |   $24-$25/36-37           Second Utility Pointer
      |   $26-$2A/38-42           Floating point product of Multiply and Divide
      |   $2B-$2C/43-44           Pointer: Start of BASIC Text Area
      |   $2D-$2E/45-46           Pointer: Start of BASIC Variables
      |   $2F-$30/47-48           Pointer: Start of BASIC Arrays
      |   $31-$32/49-50           Pointer: End of BASIC Arrays + 1
      |   $33-$34/51-52           Pointer: Bottom of String space
      |   $35-$36/53-54           Utility String Pointer
      |   $37-$38/55-56           Pointer: Highest Address available to BASIC
      |   $39-$3A/57-58           Current BASIC Line number
      |   $3B-$3C/59-60           Previous BASIC Line number
      |   $3D-$3E/61-62           Pointer: BASIC Statement for CONT
      |   $3F-$40/63-64           Current DATA Line number
      |   $41-$42/65-66           Pointer: Used by READ - current DATA Item
      |   $43-$44/67-68           Pointer: Temporary storage during INPUT
      |   $45-$46/69-70           Name of Variable being sought in Variable Table
      |   $47-$48/71-72           Value/Descriptor-Pointer
      |   $49-$4A/73-74           Pointer: Index Variable for FOR/NEXT loop
      |   $4B-$4C/75-76           Temporary storage for TXTPTR
      |   $4D/77                  Mask used during FRMEVL
      |   $4E-$52/78-82           Temporary storage for FLPT value
      |   $53/83                  Length of String Variable during Garbege collection
      |   $54-$56/84-86           Jump Vector used in Function Evaluation
      |   $57-$5B/87-91           Temporary storage for FLPT value
      |   $5C-$60/92-96           Temporary storage for FLPT value
      |   $61-$66/97-102          Main Floating point Accumulator
      |   $61/97                  FAC Exponent
      |   $62-$65/98-101          FAC Mantissa
      |   $66/102                 FAC Sign
      |   $67/103                 Pointer: Series Evaluation Constant
      |   $68/104                 Bit Overflow Area during normalisation Routine
      |   $69-$6E/105-110         Auxiliary Floating point Accumulator
      |   $69/105                 AFAC Exponent
      |   $6A-$6D/106-109         AFAC Mantissa
      |   $6E/110                 AFAC Sign
      |   $6F/111                 Sign of result of Arithmetic Evaluation
      |   $70/112                 FAC low-order rounding
      |   $71-$72/113-114         Pointer: Used during CRUNCH/ASCII conversion
      |   $73-$8A/115-138         Subroutine: Get next Byte of BASIC Text
      |   $79/121                 Entry to Get same Byte again
      |   $7A-$7B/122-123         Pointer: Current Byte of BASIC Text
      |   $8B-$8F/139-143         Floating RND Function Seed Value
      |   $90/144                 Kernal I/O Status Word ST
      |   $91/145                 Flag: $7F = STOP key
      |   $92/146                 Timing Constant for Tape
      |   $93/147                 Flag: 0 = Load, 1 = Verify
      |   $94/148                 Flag: Serial Bus - Output Character buffered
      |   $95/149                 Buffered Character for Serial Bus
      |   $96/150                 Cassette Sync number
      |   $97/151                 Storage of X Register during CHRIN
      |   $97/151                 Storage of Y Register during RS232 fetch
      |   $98/152                 Number of Open Files/Index to File Table
      |   $99/153                 Default Input Device (0)
      |   $9A/154                 Default Output Device (3)
      |   $9B/155                 Parity of Byte Output to Tape
      |   $9C/156                 Flag: Byte received from Tape
      |   $9D/157                 Error-Mode-Flag
      |   $9E/158                 Index to Tape File name/Header ID for Tape write
      |   $9E/158                 Tape Error log pass 1
      |   $9F/159                 Tape Error log pass 2
      |   $A0-$A2/160-162         Real-time jiffy Clock
      |   $A3/163                 Bit Counter Tape Read or Write
      |   $A3/163                 Serial Bus EOI (End Of Input) Flag
      |   $A4/164                 Pulse Counter Tape Read or Write
      |   $A4/164                 Serial Bus shift Counter
      |   $A5/165                 Tape Synchronising count down
      |   $A6/166                 Pointer: Tape I/O buffer
      |   $A7/167                 RS232 temporary for received Bit
      |   $A7/167                 Tape temporary
      |   $A8/168                 RS232 Input Bit count/Tape temporary
      |   $A9/169                 RS232 Flag: Start Bit check/Tape temporary
      |   $AA/170                 RS232 Input Byte Buffer/Tape temporary
      |   $AB/171                 RS232 Input parity/Tape temporary
      |   $AC-$AD/172-173         Pointer: Tape Buffer/Screen scrolling
      |   $AE-$AF/174-175         Tape End Address/End of Program
      |   $B0-$B1/176-177         Tape timing Constants
      |   $B2-$B3/178-179         Pointer: Start Address of Tape Buffer
      |   $B4/180                 RS232 Write bit count/Tape Read timing Flag
      |   $B5/181                 RS232 Next Bit to send/Tape Read - End of Tape
      |   $B6/182                 RS232 Output Byte Buffer/Tape Read Error Flag
      |   $B7/183                 Number of Characters in Filename
      |   $B8/184                 Current File - Logical File number
      |   $B9/185                 Current File - Secondary Address
      |   $BA/186                 Current File - First Address (Device number)
      |   $BB-$BC/187-188         Pointer: Current File name Address
      |   $BD/189                 RS232 Output Parity/Tape Byte to be Input or Output
      |   $BE/190                 Tape Input/Output Block count
      |   $BF/191                 Serial Word Buffer
      |   $C0/192                 Tape Motor Switch
      |   $C1-$C2/193-194         Start Address for LOAD and Cassette Write
      |   $C3-$C4/195-196         Pointer: Type 3 Tape LOAD and general use
      |   $C5/197                 Matrix value of last Key pressed
      |   $C6/198                 Number of Characters in Keyboard Buffer queue
      |   $C7/199                 Flag: Reverse On/Off
      |   $C8/200                 Pointer: End of Line for Input
      |   $C9-$CA/201-202         Cursor X/Y position at start of Input
      |   $CB/203                 Matrix value of last Key pressed
      |   $CC/204                 Flag: Cursor blink
      |   $CD/205                 Timer: Count down for Cursor blink toggle
      |   $CE/206                 Character under Cursor while Cursor Inverted
      |   $CF/207                 Flag: Cursor Status
      |   $D0/208                 Flag: Input from...
      |   $D1-$D2/209-210         Pointer: Current Screen Line Address
      |   $D3/211                 Cursor Column on current Line
      |   $D4/212                 Flag: Editor in Quote Mode
      |   $D5/213                 Current logical Line length: 39 or 79
      |   $D6/214                 Current Screen Line number of Cursor
      |   $D7/215                 Screen value of current Input Character /
      |                                  Last Character Output
      |   $D8/216                 Count of number of inserts outstanding
      |   $D9-$F2/217-242         Screen Line link Table /
      |                                  Editor temporaries High Byte of Line Screen Memory Location
      |   $F3-$F4/243-244         Pointer: Current Color RAM Location
      |   $F5-$F6/245-246         Vector: Current Keyboard decoding Table
      |   $F7-$F8/247-248         RS232 Input Buffer Pointer
      |   $F9-$FA/249-250         RS232 Output Buffer Pointer
      |   $FB-$FE/251-254         Free Zero Page space for User Programs
      |   $FF/255                 BASIC temporary Data Area
      |   $FF-$010A/255-266       Assembly Area for Floating point to ASCII
      |
      | Extended Zeropage:
      |
      |   $0100-$013E/256-318     Tape Input Error log
      |   $0100-$01FF/256-511     6510 Hardware Stack Area
      |   $013F-$01FF/319-511     BASIC Stack Area
      |   $0200-$0258/512-600     BASIC Input Buffer (Input Line from Screen)
      |   $0259-$0262/601-610     Kernal Table: Active logical File numbers
      |   $0263-$026C/611-620     Kernal Table: Active File First Addresses (Device numbers)
      |   $026D-$0276/621-630     Kernal Table: Active File Secondary Addresses
      |   $0277-$0280/631-640     Keyboard Buffer Queue (FIFO)
      |   $0281-$0282/641-642     Pointer: Bottom of Memory for Operating System
      |   $0283-$0284/643-644     Pointer: Top of Memory for Operating System
      |   $0285/645               Serial IEEE Bus timeout defeat Flag
      |   $0286/646               Current Character Color code
      |   $0287/647               Background Color under Cursor
      |   $0288/648               High Byte of Screen Memory Address
      |   $0289/649               Maximum number of Bytes in Keyboard Buffer
      |   $028A/650               Flag: Repeat keys
      |   $028B/651               Repeat Key: Speed Counter
      |   $028C/652               Repeat Key: First repeat delay Counter
      |   $028D/653               Flag: Shift Keys
      |   $028E/654               Last Shift Key used for debouncing
      |   $028F-$0290/655-656     Vector: Routine to determine Keyboard table
      |   $0291/657               Flag: Upper/Lower Case change:
      |   $0292/658               Flag: Auto scroll down
      |   $0293/659               RS232 Pseudo 6551 control Register Image
      |   $0294/660               RS232 Pseudo 6551 command Register Image
      |   $0295-$0296/661-662     RS232 Non-standard Bits/Second
      |   $0297/663               RS232 Pseudo 6551 Status Register Image
      |   $0298/664               RS232 Number of Bits left to send
      |   $0299-$029A/665-666     RS232 Baud Rate; Full Bit time microseconds
      |   $029B/667               RS232 Index to End of Input Buffer
      |   $029C/668               RS232 Pointer: High Byte of Input Buffer
      |   $029D/669               RS232 Pointer: High Byte of Output Buffer
      |   $029E/670               RS232 Index to End of Output Buffer
      |   $029F-$02A0/671-672     Temp. store for IRQ Vector during Tape I/O
      |   $02A1/673               RS232 Enables
      |   $02A2/674               TOD sense during Tape I/O
      |   $02A3/675               Temporary storage during Tape READ
      |   $02A4/676               Temporary D1IRQ Indicator during Tape READ
      |   $02A5/677               Temporary for Line Index
      |   $02A6/678               Flag: TV Standard
      |   $02A7-$02FF/679-767     Unused
      |   $02C0-$02FE/704-766     Sprite #11 Data Area
      |   $0300-$0301/768-769     Vector: BASIC Error Message
      |   $0302-$0303/770-771     Vector: BASIC Input Line and Decode
      |   $0304-$0305/772-773     Vector: BASIC Tokenise Routine
      |   $0306-$0307/774-775     Vector: BASIC LIST Routine
      |   $0308-$0309/776-777     Vector: BASIC Character dispatch Routine
      |   $030A-$030B/778-779     Vector: BASIC Token evaluation
      |   $030C/780               Storage for 6510 Accumulator during SYS
      |   $030D/781               Storage for 6510 X-Register during SYS
      |   $030E/782               Storage for 6510 Y-Register during SYS
      |   $030F/783               Storage for 6510 Status Register during SYS
      |   $0310/784               USR Function JMP Instruction
      |   $0311-$0312/785-786     USR Address
      |   $0313/787               Unused
      |   $0314-$0315/788-789     Vector: Hardware IRQ Interrupt Address
      |   $0316-$0317/790-791     Vector: BRK Instruction Interrupt Address
      |   $0318-$0319/792-793     Vector: Hardware NMI Interrupt Address
      |   $031A-$031B/794-795     Vector: Kernal OPEN Routine
      |   $031C-$031D/796-797     Vector: Kernal CLOSE Routine
      |   $031E-$031F/798-799     Vector: Kernal CHKIN Routine
      |   $0320-$0321/800-801     Vector: Kernal CHKOUT Routine
      |   $0322-$0323/802-803     Vector: Kernal CLRCHN Routine
      |   $0324-$0325/804-805     Vector: Kernal CHRIN Routine
      |   $0326-$0327/806-807     Vector: Kernal CHROUT Routine
      |   $0328-$0329/808-809     Vector: Kernal STOP Routine
      |   $032A-$032B/810-811     Vector: Kernal GETIN Routine
      |   $032C-$032D/812-813     Vector: Kernal CLALL Routine
      |   $032E-$032F/814-815     User Defined Vector
      |   $0330-$0331/816-817     Vector: Kernal LOAD Routine
      |   $0332-$0333/818-819     Vector: Kernal SAVE Routine
      |   $0334-$033B/820-827     Unused
      |   $033C-$03FB/828-1019    Tape I/O Buffer
      |   $0340-$037E/832-894     Sprite #13
      |   $0380-$03BE/896-958     Sprite #14
      |   $03C0-$03FE/960-1022    Sprite #15
      |   $03FC-$03FF/1020-1023   Unused
      |
      +------------------------------------------------------------------------

       Back to Mainpage