C= commodore 64 

Commodore 128 RAM Addresses

;       Commodore 128 RAM Memory Map
;       V1.2    1 Sep 1994


  C128 Memory Map

  This is as complete as possible compilation of two separate memory maps,
  and a few random sources which naturally do differ from each other.


  C128 RAM

All Banks

0000            I/O direction register
0001            I/O port, similar to C64
0002            Bank Number, Jump to SYS Address
0003-0004       SYS address, MLM register PC
0005-0009       SYS and MLM register save (SR, A, X, Y, SP)
000a            Scan-quotes flag
000b            TAB column save
000c            0 = LOAD, 1 = VERIFY
000d            Input buffer pointer / number of subscripts
000e            default DIM flag
000f            Type: FF = string, 00 = numeric
0010            Type: 80 = integer, 00 = floating point
0011            DATA scan / LIST quote / memory flag
0012            Subscript / FNxx flag
0013            0 = INPUT, $40 = GET, $98 = READ
0014            ATN sign / Comparison evaluation flag
0015            Current I/O prompt flag
0016-0017       Integer value
0018            Pointer: temporary string stack
0019-0023       Stack for temporary strings
0024-0027       Utility pointer area
0028-002c       Product area for multiplication
002d-002e       Pointer: Start-of-BASIC (bank 0)
002f-0030       Pointer: Start-of-variables (bank 1)
0031-0032       Pointer: Start-of-arrays
0033-0034       Pointer: End-of-arrays
0035-0036       Pointer string-storage (moving down)
0037-0038       Utility string pointer
0039-003a       Pointer: Limit-of-memory (bank 1)
003b-003c       Current BASIC line number
003d-003e       Textpointer: BASIC work point (chrget)
003f-0040       Utility Pointer
0041-0042       Current DATA line number
0043-0044       Current DATA address
0045-0046       Input vector
0047-0048       Current variable name
0049-004a       Current variable address
004b-004c       Variable pointer for FOR/NEXT
004d-004e       Y-save, op-save, BASIC pointer save
004f            Comparison symbol accumulator
0050-0055       Miscellaneous work area, pointers, and so on

0056-0058       Jump vector for functions
0059-0062       Miscellaneous numeric work area
0063            Accum #1 exponent
0064-0067       Accum #1 mantissa
0068            Accum #1 sign
0069            Series evaluation constant pointer
006a-006f       Accum #2 exponent, and so on
0070            Sign comparison Acc #1 versus #2
0071            Accum #1 lo-order (rounding)
0072-0073       Cassette buffer len / Seris pointer
0074-0075       Auto line number increment
0076            Graphics flag: FF = Graphics allocated
0077            Color source number
0078-0079       Temporary counters
007a-007c       DS$ descriptor
007d-007e       BASIC pseudo-stack pointer
007f            Flag: 0 = direct mode
0080-0081       DOS, USING work flags
0082            Stack pointer save for errors
0083            Graphic color source
0084            Multicolor 1 (1)
0085            Multicolor 2 (2)
0086            Graphic foreground color (13)
0087-008a       Graphic scale factors, X & Y
008b-008f       Graphic work values
0090            Status word ST
0091            Keyswitch 1A: STOP and RVS flags
                 7      STOP
                 6      Q
                 5      C=
                 4      Space
                 3      2
                 2      CTRL
                 1      <-
                 0      1

0092            Timing constant for tape ($80)
0093            Work value, monitor, LOAD / SAVE
                        0 = LOAD, 1 = VERIFY
0094            Serial output, deferred character flag
0095            Serial deferred character
0096            Cassette work value
0097            Register save
0098            How many open files
0099            Input device, normally 0
009a            Output CMD device, normally 3
009b-009c       Tape parity, output-received flag
009d            I/O messages: 192 = all, 128 = commands, 64 = errors, 0 = nil
009e-009f       Tape error pointers
00a0-00a2       Jiffy clock HML
00a3-00a4       Scratch registers. (don't use)
00a5-00a6       I/O work bytes (tape)
00a7-00ab       RS-232C Receive, Misc Work Values
00a7            RS-232 Input Bit Storage, Cassette Short Count
00a8            RS-232 Bit Count In, Cassette Read Error
00a9            RS-232 Flag For Start Bit Check, Cassette Reading Zeroes
00aa            RS-232 Byte Buffer, Cassette Read Mode
00ab            RS-232 Parity Storage, Cassette Short Cnt

00ac-00ad       Pointer for tape buffer and screen scrolling
00ae-00af       Tape end address / End of program
00b0-00b1       Tape timing constants
00b2-00b3       Pointer: Start of tape buffer
00b4-00b6       RS-232 Send, Misc work values
00b4            RS-232 Bit Count
00b5            RS-232 Next Bit To Be Sent
00b6            RS-232 Byte Buffer
00b7            Number of characters in file name
00b8            Current logical file
00b9            Current secondary address
00ba            Current device
00bb-00bc       Pointer to file name
00bd            RS-232 TRNS Parity Buffer
00be            Cassette Read Block Count
00bf            Serial Word Buffer
00c0            Cassette Manual/Cntrolled Switch (Updated during IRQ)
00c1-00c2       I/O Start Address
00c3-00c4       Cassette LOAD Temps (2 bytes)
00c5            Tape Read/Write Data

00c6-00c7       BANKS: I/O data, filename
00c8-00c9       RS-232 input buffer addresses  ($0c00)
00ca-00cb       RS-232 output buffer addresses ($0d00)
00cc-00cd       Keyboard decode pointer (bank 15) ($fa80)
00ce-00cf       Print string work pointer
00d0            Number of characters in keyboard buffer
00d1            Number of programmed chars waiting
00d2            Programmed key character index
00d3            Key shift flag:
                 0      No shift
                 1      Shift
                 2      C=
                 4      Control
                 8      Alt
                15      Caps Lock

00d4            Current key code: 88 = no key
00d5            Previous key code: 88 = no key
00d6            Input from screen / from keyboard
00d7            40 / 80 columns: 0 = 40 column screen
00d8            Graphics mode code
                 000    0       Graphic 0
                 001    1               1
                 011    2               2
                 101    3               3
                 111    4               4

00d9            Character base: 0 = ROM, 4 = RAM
00da-00df       Misc work area

00e0-00e1       Pointer to screen line / cursor
00e2-00e3       Color line pointer
00e4            Current screen bottom margin
00e5            Current screen top margin
00e6            Current screen left margin
00e7            Current screen right margin
00e8-00e9       Input cursor log (row, column)
00ea            End-of-line for input pointer
00eb            Row where cursor lives
00ec            Position of cursor on screen line
00ed            Maximum screen lines (24)
00ee            Maximum screen columns (39)
00ef            Current I/O character
00f0            Previous character printed
00f1            Character color
00f2            Temporary color save
00f3            Screen reverse flag
00f4            0 = direct cursor, else programmed
00f5            Number of INSERTs outstanding
00f6            255 = Auto Insert enabled
00f7            Text mode lockout (SHFT-C=): 0 = enabled, 128 = disabled
00f8            Scrolling: 0 = enabled, 128 = disabled
00f9            Bell (CTRL-G):  0= enable, 128 = disable
00fa-00fe       Not used
00ff            Basic Scratch

0100-01ff       Processor Stack Area
0100-013e       Tape error log
0100-0124       DOS work area
0125-0138       PRINT / USING work area

0200-03ff       Vectors, buffers, Kernal RAM

0200-02a1       BASIC input buffer

                        512-673 BASIC & Monitor Input Buffer (161 bytes)
        02a2-02ae       674-686 Kernal RAM: 

02a2-02ae       Bank Peek Subroutine
02af-02bd       Bank Poke Subroutine
02be-02cc       Bank Compare Subroutine
02cd-02e2       JSR to Another Bank
02e3-02fb       JMP to Another Bank
02fc-02fd       Function Execute Hook   [4c78]

0300-0301       Error Message Link      [4D3F]
0302-0303       BASIC Warm Start Link   [4DC6]
0304-0305       Crunch BASIC Tokens Link [430D]
0306-0307       Print Tokens Link       [5151]
0308-0309       Start New BASIC Code Link [4AA2]
030a-030b       Get Arithmetic Element Link [78DA]
030c-030d       Crunch FE Hook  [4321]
030e-030f       List FE Hook    [51CD]
0310-0311       Execute FE Hook [4BA9]
0312-0313       Unused
0314-0315       IRQ Vector      [FA65]
0316-0317       Break Interrupt Vector [B003]
0318-0319       NMI Interrupt Vector [FA40]
031a-031b       OPEN Vector     [EFBD]
031c-031d       CLOSE Vector    [F188]
031e-031f       Set Input Vector [F106]
0320-0321       Set Output Vector [F14C]
0322-0323       Restore I/O Vector [F226]
0324-0325       Input Vector    [EF06]
0326-0327       Output Vector   [EF79]
0328-0329       Test STOP Key   [F66E]
032a-03ab       GET Vector      [EEEB]
032c-032d       Abort I/O Vector [F222]
032e-032f       Machine Lang Monitor Link [B006]
0330-0331       LOAD Link       [F26C]
0332-0333       SAVE Link       [F54E]
0334-0335       Print Control Code Link [C7B9]
0336-0337       Print High ASCII Code Link [C805]
0338-0339       Print ESC Sequence Link [C9C1]
033a-033b       Keyscan Link    [C5E1]
033c-033d       Store Key       [C6AD]

033e-033f       Pointer to KBD Decoding Table: Unshifted [FA80 / FD29]
0340-0341       Pointer to KBD Decoding Table: Shifted   [FAD9 / FD82]
0342-0343       Pointer to KBD Decoding Table: Commodore [FB32 / FDDB]
0344-0345       Pointer to KBD Decoding Table: Control   [FB8B / FE34]  1)
0346-0347       Pointer to KBD Decoding Table: Alt       [FA80 / FD29]
0348-0349       Pointer to KBD Decoding Table: Ascii/DIN [FB4E / FD29]

    1) The value FE34 is used in German version, it doesn't change in others.

034a-0353       IRQ Keyboard Buffer (10 Bytes)  FF = No key
0354-035d       Bitmap Of TAB Stops (10 Bytes)
035e-0361       Bitmap Of Line Wraps
0362-036b       Logical File Number Table
036c-0375       Device Number Table
0376-037f       Secondary Addresse Table
0380-039e       CHRGET Subroutine
0386            CHRGOT Entry

039f-03aa       Fetch From RAM Bank 0
03ab-03b6       Fetch From RAM Bank 1
03b7-03bf       Index1 Indirect Fetch From RAM Bank 1
03c0-03c8       Index2 Indirect Fetch From RAM Bank 0
03c9-03d1       Txtptr Fetch From RAM Bank 0
03d2-03d4       Numeric Constant For BASIC
03d5            Current Bank For SYS, POKE, PEEK
03d6-03d9       INSTR Work Values
03da            Bank Pointer For String/Number CONVERT RTN
03db-03dd       Sprite: Work bytes for SSHAPE
03df            FAC#1 Overflow
03e0-03e1       Sprite: Work bytes for SPRSAV
03e2            Graphic Foreground/ Background Color Nybbles
03e3            Graphic Foreground/ Multicolor 1 Color Nybbles
03f0-03f6       DMA Link Code

ff00            MMU Configuration Register
ff01            MMU LCR: Bank 0
ff02            MMU LCR: Bank 1
ff03            MMU LCR: Bank 14
ff04            MMU LCR: Bank 14 Over RAM 1

        Page Four & Higher Declarations (Beginning Of Bankable RAM)


Bank 0

0400-07e7       VIC 40-Column Text Screen
07e8-07ff       Sprite Identity Pointers For Text Mode
0800-09ff       BASIC Pseudo Stack (gosub and loop addresses and commands)

0a0c            CIA 1 Interrupt Log
0a0d            CIA 1 Timer Enabled
0a0f-0a17       RS-232 Work Values
0a18            RS-232 Receive Pointer
0a19            RS-232 Input Pointer
0a1a            RS-232 Transmit Pointer
0a1b            RS-232 Send Pointer
0a1d-0a1f       Sleep Countdown, FFFF = disable
0a20            Keyboard Buffer Size
0a21            Screen Freeze Flag
0a22            Key Repeat: 128 = all, 64 = none
0a23            Key Repeat Timing
0a24            Key Repeat Pause
0a25            Graphics / Text Toggle Latch
0a26            40-Col Cursor Mode
0a27-0a2a       40-Col Blink Values
0a2b            80-Col Cursor Mode
0a2c            40-Col Video $D018 Image
0a2d
0a2e-0a2f       80-Col Pages-Screen, Color
0a40-0a5a       40/80 Pointer Swap (to E0-FA)

0a60-0a6d       40/80 Data Swap (0354-0361)

0ac0            PAT Counter
0ac1-0ac4       ROM Physical Address Table

0b00-0bbf       Cassette Buffer
0bc0-0bff
0c00-0dff       RS-232 Input, Output Buffers
0e00-0fff       System Sprites (56-63)
1000-1009       Programmed Key Lenghts
100a-10ff       Programmed Key Definitions
1100-1130       DOS Command Staging Area
1131-116e       Graphics Work Area

116f            Trace Mode: FF = on
1170-1173       Renumbering Pointers
1174-1177       Directory Work Pointers
1178-1197       Graphics Index
117a-117b       Float-fixed Vector [849F]
117c-117d       Fixed-float Vector [793C]
117e-11d5       Sprite Motion Tables (8 x 11 bytes)
11d6-11e5       Sprite X/Y Positions
11e6            Sprite X-High Positions
11e7-11e8       Sprite Bumb Masks (sprite - backgnd)
11e9-11ea       Light Pen Values, X and Y
11eb            CHRGEN ROM Page, Text Mode [D8]
11ec            CHRGEN ROM Page, Graphics Mode [D0]
11ed            Secondary Address For RECORD
11ee-11ff       Unused

1204-1207       PU Characters (,.$)
120b-120c       TRAP Address, FFFF = none
1210-1211       End of Basic, Bank 0
1212-1213       Basic Program Limit [FF00]
1214-1217       DO Work Pointers
1218-121a       USR Program Jump [7D28]
121b-121f       RND Seed Value

1222            Sound Tempo
122f            Music Sequencer (Envelope)

1234-1237       Note Image
1239-123e       Current Envelope Pattern
123f-1270       Envelope Tables
123f-1248       AD(SR) Pattern
1249-1252       (AD)SR Pattern
1253-125c       Waveform Pattern
125d-1266       Pulse Width Lo Pattern
1267-1270       Pulse Width Hi Pattern
1271-1274       Note: xx, xx, volume
1275            Previous Volume Image
1276-1278       Collision IRQ Task Table
1279-127e       Collision IRQ Address Tables
127f            Collision Mask
1280            Collision Work Value

12b1            PEN Work Value
12ff            ?
1300-17ff       Unused
1800-1bff       Reserved for Key Functions
1c00-fbff       BASIC RAM Memory (Text)
1c00-1ff7       Video Color Matrix For Graphics Mode
1ff8-1fff       Sprite Identity Pointers For Graphics Mode
2000-3fff       Screen Memory For Graphics Mode
4000-fbff       BASIC RAM Memory (with graphics enabled)


Bank 1

0400-fbff       BASIC Variables, Arrays, And Strings


Bank 14
The same as Bank 15, except:

d000-dfff       Character Generator ROM


Bank 15

4000-cfff       BASIC ROM
d000-d030       VIC, 40 Col Video Chip 8564 (NTSC) or 8566 (PAL)
d400-d41c       SID Sound Chip 6581
d500-d50b       MMU, Memory Management Unit 8722
d600-d601       VDC, 80 Col Video Controller 8563
d800-d8e7       Color Nybbles For VIC Text Screen
dc00-dc0f       CIA 1 (IRQ), 6526
dd00-dd0f       CIA 2 (NMI), 6526
df00-df0a       DMA Slot
e000-ffff       KERNAL ROM
ff00-ff04       MMU
ff05-ffff       Transfer, Jump Table


        *****

502 COMMODORE 128

This chapter provides the memory maps for both C128 and C64 modes. A memory
map tells you exactly how memory is laid out internally in both RAM and ROM.
It tells you exactly what resides in each memory location. The memory map
directs you in finding address vectors for routines and entry points and provi-
des information about the general layout of the computer. The memory map is
probably the most vital programming tool.

Refer to the memory map whenever you need directions throughout the memory of 
your Commodore 128. Addresses listed with more than one address label are used
for more than one purpose. To BASIC, the variable has one purpose; to the Mac-
hine Language Monitor, it may have another.

The conventions used for the memory maps are as follows:

Column 1        Column 2        Column3         Column 4
MEMORY
ADDRESS         HEXADECIMAL     DECIMAL
LABEL           ADDRESS         ADDRESS         DESCRIPTION

        See Appendix K for the Z80 memory map for CP/M on the Commodore 128.


                C128 MEMORY MAP

MEMORY ADDRESS    ADDRESS
LABEL           HEX     DEC     DESCRIPTION

D6510           0000    0       6510 Data Direction Register
R6S10           0001    1       6510 Data Register
BANK            0002    2       Token 'SEARCH' looks for, or Bank #
PC_HI           0003    3       Address for BASIC SYS command or MONITOR and
                                LONG CALL/JUMP Routines
PC_LO           0004    4       Address
S_REG           0005    5       STATUS REG Temp
A_REG           0006    6       .A REG Temp
X_REG           0007    7       .X REG Temp
Y_REG           0008    8       .Y REG Temp
STKPTR          0009    9       Stack Pointer Temp


                BASIC ZERO PAGE STORAGE

INTEGR          0009    9
CHARAC                          Search Character
ENDCHR          000A    10      Flag: Scan For Quote at End Of String
TRMPOS          000B    11      Screen Column from Last Tab
VERCIC          000C    12      Flag: 0 = LOAD, 1 = VERIFY

COUNT           000D    13      Input Buf.ptr / # of Subscripts

DIMFLG          000E    14      Flag: Default Array Dimension
VALTYP          000F    15      DATA Type: $FF=String, $00 = Numeric
INTFLG          0010    16      DATA Type: $00=Float.Pt, $80 = Integer
GARBFL          0011    17      Flag: DATA Scan/ LIST Quote/ Garbage Collection

DORES
SUBFLG          0012    18      Flag: Subscript Ref. / User Func. Call

INPFLG          0013    19      Flag: $00=INPUT, $40=GET, $98 = READ

DOMASK          0014    20
TANSGN                          Flag: TAN Sign / Comparison Result

CHANNL          0015    21
POKER           0016    22
LINNUM                          Temp Integer Value
TEMPPT          0018    24      Pointer: Temp String Stack
LASTPT          0019    25      Last Temp String Address
TEMPST          001B    27      Stack For Temp Strings
INDEX           0024    36      Utility Pointer Area
INDEX1
INDEX2          0026    38
RESHO           0028    40      Floating Pt. Product of Multiply
RESMOH          0029    41
ADDEND          002A    42
RESMO
RESLO           002B    43
TXTTAB          002D    45      Pointer: Start Of BASIC Text
VARTAB          002F    47      Pointer: Start Of BASIC Variables

ARYTAB          0031    49      Pointer: Start Of BASIC Arrays
STREND          0033    51      Pointer: End Of BASIC Arrays + 1

FRETOP          0035    53      Pointer: Bottom of String Storage
FRESPC          0037    55      Utility String Pointer
MAX_MEM_1       0039    57      Top of String/Variable Bank (Bank 1)

CURLIN          003B    59      Current BASIC Line Number
TXTPTR          003D    61      Pointer to BASIC Text used by CHRGET,etc.
FORM            003F    63      Used by PRINT USING
FNDPNT                          Pointer to Item Found By Search

DATLIN          0041    65      Current DATA Line Number
DATPTR          0043    67      Current DATA Item Address
INPPTR          0045    69      Vector: INPUT Routine
VARNAM          0047    71      Current BASIC Variable Name
FDECPT          0049    73
VARPNT                          Pointer: Current BASIC Variable DATA

LSTPNT          004B    75
FORPNT                          Pointer: Index Variable For FOR/NEXT

ANDMSK
EORMSK          004C    76
VARTXT          004D    77
OPPTR
OPMASK          004F    79
GRBPNT          0050    80
TEMPF3
DEFPNT
DSCPNT          0052    82
                0054    84

HELPER          0055    85      Flags 'HELP' or 'LIST'
JMPER           0056    86
                0057    87
OLDOV           0058    88
TEMPF1          0059    89
PTARG1                          Multiply defined for INSTR
PTARG2          005B    91
STRl            005D    93
STR2            0060    96
POSITN          0063    99
MATCH           0064    100

ARYPNT          005A    90
HIGHDS
HIGHTR          005C    92
TEMPF2          005E    94
DECCNT          005F    95      Number of Digits after the Decimal Point
TENEXP          0060    96
T0                              ML MONITOR Z.P. Storage in FAC

GRBTOP          0061    97
DPTFLG                          Decimal Point Flag
LOWTR
EXPSGN          0062    98
FAC             0063    99

DSCTMP
LEFT_FLAG                       Paint-Left Flag
FACEXP                          FAC#1 Exponent
Tl                              MONITOR Z.P. Storage in FAC
RIGHT_FLAG      0064    100     Paint-Right Flag
FACHO                           FAC#1 Mantissa
FACMOH          0065    101
INDICE          0066    102
FACMO
T2                              MONITOR Z.P. Storage in FAC
FACLO           0067    103
FACSGN          0068    104     FAC#1 Sign
DEGREE          0069    105
SGNFLG                          Pointer: Series-Eval. Constant
ARGEXP          006A    106     FAC#2 Exponent
ARGHO           006B    107     FAC#2 Mantissa
ARGMOH          006C    108
INIT_AS_0                       Just a count for INIT

ARGMO           006D    109
ARGLO           006E    110
ARGSGN          006F    111     FAC#2 Sign
STRNGI          0070    112
ARISGN                          Sign Comparison Result: FAC#1 vs #2

FACOV           0071    113     FAC#1 Low-Order (Rounding)
STRNG2          0072    114
POLYPT
CURTOL
FBUFPT                          Pointer: Cassette Buffer
AUTINC          0074    116     Inc. Val for AUTO (0 = Off)
MVDFLG          0076    118     Flag If 10K HIRES Allocated
Z_P_TEMP_1      0077    119     PRINT USING's Leading Zero Counter
                                MOVSPR & Sprite Temporary
                                MID$ Temporary

HULP            0078    120     Counter
KEYSIZ
SYNTMP          0079    121     Used as Temp For Indirect
DSDESC          007A    122     Descriptor for DS$
TXTPTR                          MONITOR Z.P. Storage
TOS             007D    125     Top of Run Time Stack
RUNMOD          007F    127     Flags Run/Direct Mode
PARSTS          0080    128     DOS Parser Status Word
POINT                           USING's Pointer to Dec.Pt

PARSTX          0081    129
OLDSTK          0082    130


                BASIC Z-P STORAGE FOR GRAPHIC COMMANDS

COLSEL          0083    131     Current COLOR Selected

MULTICOLOR      0084    132
MULTICOLOR_2    0085    133
FOREGROUND      0086    134
SCALE_X         0087    135     Scale Factor In X
SCALE_Y         0089    137     Scale Factor In Y
STOPNB          008B    139     Stoppaint if not Background/Not same color
GRAPNT          008C    140
VTEMPI          008E    142
VTEMP2          008F    143


                KERNAL/EDITOR STORAGE

STATUS          0090    144     I/O Operation Status Byte
STKEY           0091    145     STOP KEY Flag
SVXT            0092    146     Tape Temporary
VERCK           0093    147     LOAD or VERIFY Flag
C3P0            0094    148     Serial Buffered Char Flag
BSOUR           0095    149     Char Buffer For Serial
SYNO            0096    150     Cassette Sync #
XSAV            0097    151     Temp For BASIN
LDTND           0098    152     Index to Logical File
DFLTN           0099    153     Default Input Device #
DFLTO           009A    154     Default Output Device #
PRTY            009B    155     Cassette Parity
DPSW            009C    156     Cassette Dipole Switch
MSGFLG          009D    157     OS Message Flag
PTR1            009E    158     Cassette Error Pass1
T1                              Temporary 1
PTR2            009F    159     Cassette Error Pass2
T2                              Temporary 2
TIME            00A0    160     24 Hour Clock In 1/60th Seconds
R2D2            00A3    163     Serial Bus Usage

PCNTR                           Cassette
BSOUR1          00A4    164     Temp used by Serial Routine
FIRT
COUNT           00A5    165     Temp used by Serial Routine
CNTDN                           Cassette Sync Countdown
BUFPT           00A6    166     Cassette Buffer Pointer

INBIT           00A7    167     RS-232 RCVR Input Bit Storage
SHCNL                           Cassette Short Count
BITCI           00A8    168     RS-232 RCVR Bit Count In
RER                             Cassette Read Error
RINONE          00A9    169     RS-232 RCVR Flag For Start Bit Check
REZ                             Cassette Reading Zeroes
RIDATA          00AA    170     RS-232 RCVR Byte Buffer
RDFLG                           Cassette Read Mode
RIPRTY          00AB    171     RS-232 RCVR Parity Storage
SHCNH                           Cassette Short Cnt
SAL             00AC    172     Pointer: Tape Buffer / Screen Scrolling
SAH             00AD    173
EAL             00AE    174     Tape End Addresses / End of Program
EAH             00AF    175
CMP0            00B0    176     Tape Timing Constants
TEMP            00B1    177
TAPE1           00B2    178     Address of Tape Buffer
BITTS           00B4    180     RS-232 TRNS Bit Count
SNSW1
NXTBIT          00B5    181     RS-232 TRNS Next Bit To Be Sent
DIFF
RODATA          00B6    182     RS-232 TRNS Byte Buffer
PRP
FNLEN           00B7    183     LENGTH Current File N Str
LA              00B8    184     Current File Logical Addr
SA              00B9    185     Current File 2nd Addr
FA              00BA    186     Current File Primary Addr
FNADR           00BB    187     Addr Current File Name Str
ROPRTY          00BD    189     RS-232 TRNS Parity Buffer
OCHAR
FSBLK           00BE    190     Cassette Read Block Count
DRIVE           00BF    191
MYCH                            Serial Word Buffer
CAS1            00C0    192     Cassette Manual/Cntrled Switch (Updated during IRQ)
TRACK           00C1    193
STAL                            I/O Start Address (LO)
SECTOR          00C2    194
STAH                            I/O Start Address (HI)
MEMUSS          00C3    195     Cassette LOAD Temps (2 bytes)
DATA            00C5    197     Tape Read/Write Data

BA              00C6    198     Bank For Current LOAD/SAVE/VERIFY Operation
FNBANK          00C7    199     Bank Where Current FN is found (at 'FNADR')
RIBUF           00C8    200     RS-232 Input Buffer Pointer
ROBUF           00CA    202     RS-232 Output Buffer Pointer


                GLOBAL SCREEN EDITOR VARIABLES

KEYTAB          00CC    204     Keyscan Table Pointer
IMPARM          00CE    206     PRIMM Utility String Pointer
NDX             00D0    208     Index to Keyboard Queue
KYNDX           00D1    209     Pending Function Key Flag
KEYIDX          00D2    210     Index Into Pending Function Key String
SHFLAG          00D3    211     Keyscan Shift Key Status
SFDX            00D4    212     Keyscan Current Key Index
LSTX            00D5    213     Keyscan Last Key Index
CRSW            00D6    214      Input Flag     
MODE            00D7    215     40/80 Column Mode Flag
GRAPHM          00D8    216     Text/Graphic Mode Flag
CHAREN          00D9    217     RAM/ROM VIC Character Fetch Flag (Bit-2)


        THE FOLLOWING LOCATIONS ARE SHARED BY SEVERAL EDITOR ROUTINES.

SEDSAL          00DA    218     Pointers For MOVLIN
BITMSK          00DA    218     Temporary For TAB & LINE WRAP Routines
SAVER           00DB    219     Another Temporary Place To Save A Reg.
SEDEAL          00DC    220
SEDT1           00DE    222     SAVPOS
SEDT2           00DF    223
KEYSIZ          00DA    218     Programmable Key Variables
KEYLEN          00DB    219
KEYNUM          00DC    220
KEYNXT          00DD    221
KEYBNK          00DE    222
KEYTMP          00DF    223


                LOCAL SCREEN EDITOR VARIABLES.
        These are swapped out to $0a40 when screen (40/80) mode changes.

PNT             00E0    224     Pointer to Current Line (Text)
USER            00E2    226     Pointer to Current Line (Attribute)

SCBOT           00E4    228     Window Lower Limit
SCTOP           00E5    229     Window Upper Limit
SCLF            00E6    230     Window Left Margin
SCRT            00E7    231     Window Right Margin
LSXP            00E8    232     Current Input Column Start
LSTP            00E9    233     Current Input Line Start
INDX            00EA    234     Current Input Line End
TBLX            00EB    235     Current Cursor Line
PNTR            00EC    236     Current Cursor Column
LINES           00ED    237     Maximum Number of Screen Lines
COLUMNS         00EE    238     Maximum Number of Screen Columns
DATAX           00EF    239     Current Character to Print
LSTCHR          00F0    240     Previous Char Printed (For  Test)
COLOR           00F1    241     Curr Attribute to Print (Default FGND Color)
TCOLOR          00F2    242     Saved Attrib to Print ('INSERT' & 'DELETE')

RVS             00F3    243     Reverse Mode Flag
QTSW            00F4    244     Quote Mode Flag
INSRT           00F5    245     Insert Mode Flag
INSFLG          00F6    246     Auto-Insert Mode Flag
LOCKS           00F7    247     Disables  S
SCROLL          00F8    248     Disables Screen Scroll, Line Linker
BEEPER          00F9    249     Disables  G

FREKZP          00FA    250     Free Zero Page reserved for applications
                                software ($FA-$FE)
LOFBUF          00FF    255


                BASIC/DOS INTERFACE VARS

BAD             0100    256     Tape Read Errors
FBUFFR                          Area to build filename in (16 bytes)
XCNT            0110    272     DOS Loop Counter

DOSF1L          0111    273     DOS Filename 1 Len
DOSDS1          0112    274     DOS Disk Drive 1
DOSF2L          0113    275     DOS Filename 2 Len
DOSDS2          0114    276     DOS Disk Drive 2
DOSF2A          0115    277     DOS Filename 2 Addr
DOSOFL          0117    279     BLOAD/BSAVE Starting Address
DOSOFH          0119    281     ....    and Ending Address
DOSLA           011B    283     DOS Logical Addr
DOSFA           011C    284     DOS Phys Addr
DOSSA           011D    285     DOS Sec. Addr
DOSRCL          011E    286     DOS Record Length
DOSBNK          011F    287
DOSDID          0120    288     DOS Disk ID
DIDCHK          0122    290     DOS DSK ID FLG SPACE Used by PRINT USING
BNR             0123    291     Pointer to Begin. NO.
ENR             0124    292     Pointer to End NO.
DOLR            0125    293     Dollar Flag
FLAG            0126    294     Comma Flag
SWE             0127    295     Counter
USGN            0128    296     Sign Exponent
UEXP            0129    297     Pointer to Exponent
VN              012A    298     # Of Digits Before Decimal Point
CHSN            012B    299     Justify Flag
VF              012C    300     # Of Pos Before Decimal Point (Field)
NF              012D    301     # Of Pos After Decimal Point (Field)
POSP            012E    302     +/- Flag (Field)
FESP            012F    303     Exponent Flag (Field)
ETOF            0130    304     Switch
CFORM           0131    305     Char Counter (Field)
SNO             0132    306     Sign No
BLFD            0133    307     Blank/Star Flag
BEGFD           0134    308     Pointer to Begin of Field
LFOR            0135    309     Length of Format
ENDFD           0136    310     Pointer to End Of Field
SYSTK           0137    311     System Stack ($0137-$01FF)
BUF             0200    512     Input Buffer: BASIC & MONITOR
FETCH           02A2    674     LDA(-),Y From Any Bank
FETCHVEC        02AA    682
STASH           02AF    687     STA(-),Y to Any Bank
STAVEC          02B9    697
CMPARE          02C8    702     CMP(-),Y to Any Bank
CMPVEC          02C8    712
JSRFAR          02CD    716     JSR XXXX to Any Bank & Return
JMPFAR          02E3    739     JMP XXXX to Any Bank


                VECTORS

ESC_FN_VEC      02FC    764     Vector For Additional Function Routines
K EC            02FE    766     Vector For Function Cart.
IERROR          0300            Users
                0302            (ERR IN .X)
ICRNCH          0304    772     Vector to Crunch
                        774     Vector to List BASIC Text
                        776     Vector to Gone (BASIC Char
                        778     Vector to BASIC Token
                        780     Vector to Escape-Token
                030E    782     LIST
IESCEX          0310    784     ... And Execute.
IIRO            0314    788     IRQ RAM Vector
IBRK            0316    790     BRK INSTR RAM Vector
INMI            0318    792     NMI Vector
IOPEN           031A    794     KERNAL OPEN Routine Vector

                        796     KERNAL CLOSE Routine Vector

                        798     KERNAL CHKIN Routine Vector
                        800     KERNAL CHKOUT Routine

CLRCH           0322    Vector
VECTOR

IBASIN          0324    804     KERNAL CHRIN Routine Vector
IBSOUT          0326    806     KERNAL CHROUT Routine Vector
ISTOP           0328    808     KERNAL STOP Routine Vector
IGETIN          032A    810     KERNAL GETIN Routine Vector
ICLALL          032C    812     KERNAL CLALL Routine Vector
EXMON           032E    814     Monitor Command Vector
ILOAD           0330    816     KERNAL LOAD Routine Vector
ISAVE           0332    818     KERNAL SAVE Routine Vector


        EDITOR INDIRECT VECTORS

CTLVEC          0334    820     Editor: PRINT 'CONTRL' Indirect
SHFVEC          0336    822     Editor: PRINT 'SHIFTD' Indirect
ESCVEC          0338    824     Editor: PRINT 'ESCAPE' Indirect
KEYVEC          033A    826     Editor: Keyscan Logic Indirect
KEYCHK          033C    828     Editor: Store Key Indirect
DECODE          033E    830     Vectors to Keyboard Matrix Decode Tables
KEYD            034A    842     IRQ Keyboard Buffer (10 Bytes)

TABMAP          0354    852     Bitmap Of TAB Stops (10 Bytes, $0354-D)
BITABL          035E    862     Bitmap Of Line Wraps

                                TABMAP and BITABL get swapped to $0A60 when
                                screen 40/80 mode is changed.

LAT             0362    866     Logical File Numbers
FAT             036C    876     Primary Device Numbers
SAT             0376    886     Secondary Addresses
CHRGET          0380    896
CHRGOT          0386    902
QNUM            0390    912


        INDIRECT LOAD SUBROUTINE AREA

INDSUB_RAM0     039F    927     Shared ROM Fetch Sub
INDSUB_RAM1     03AB    939     Shared ROM Fetch Sub
INDIN1_RAM1     03B7    950     Index1 Indirect Fetch
INDIN2          03C0    959     Index2 Indirect Fetch
INDIXT          03C9    968     Txtptr

ZERO            03D2    977     Numeric Constant For BASIC
CURRENT_BANK    03D5    979     Context For SYS,POKE,PEEK From Bank Cmmd
TMPDES          03D6    980     Temp For INSTR
FIN_BANK        03DA    984     Bank Pointer For String/Number CONVERT RTN
SAVSIZ          03DB    985     Temp Work Locations for SSHAPE
BITS            03DF    989     FAC#1 OVERFLOW DIGIT
SPRTMP_1        03E0    990     Temp For SPRSAV
SPRTMP_2        03E1    991
FG_BG           03E2    992     Packed Foreground/ Background Color Nybbles
FG_MC1          03E3    993     Packed Foreground/ Multicolor 1 Color Nybbles


        Page Four & Higher Declarations (Beginning Of Bankable RAM)

VICSCN          0400    1024    VIDEO MATRIX #1: VIC 40-Column Text Screen
                                $0400-$07FF

                0800    2048    BASIC RUN-TIME STACK (512 BYTES)
                                $0800-$09FF


        ABSOLUTE KERNAL VARIABLES

SYSTEM_VECTOR   0A00    2560    Vector to Restart System (BASIC Warm)
DEJAVU          0A02    2562    KERNAL Warm/Cold Init'n Status Byte
PALNTS          0A03    2563    PAL/NTSC System Flag
INIT_STATUS     0A04    2564    Flags RESET vs. NMI Status for init'n rtns
MEMSTR          0A05    2565    Ptr to Bottom of Avail. Memory in System Bank
MEMSIZ          0A07    2567    Ptr to Top of Available Memory in System Bank
IRQTMP          0A09    2569    Tape Handler preserves IRQ Indirect here
CASTON          0AOB    2571    TOD Sense during tape operations
KIKA26          0AOC    2572    Tape Read Temporary
STUPID          0AOD    2573    Tape Read D1IRQ Indicator
TIMOUT          0AOE    2574    Fast Serial Timeout Flag
ENABL           0A0F    2575    RS-232 Enables

M51CTR          0A10    2576    RS-232 Control Register
MSICDR          0A11    2577    RS-232 Command Register
MSIAJB          0A12    2578    RS-232 User Baud Rate
RSSTAT          0A14    2580    RS-232 Status Register
BITNUM          0A15    2581    RS-232 Number of Bits To Send
BAUDOF          0A16    2582    RS-232 Baud Rate Full Bit Time (Created by OPEN)
RIDBE           0A18    2584    RS-232 Input Buffer Index to End
RIDBS           0A19    2585    RS-232 Input Buffer Index to Start
RODBS           0A1A    2586    RS-232 Output Buffer Index to Start
RODBE           0A1B    2587    RS-232 Output Buffer Index to End
SERIAL          0A1C    2588    Fast Serial Internal/External Flag
TIMER           0A1D    2589    Decrementing Jiffie Register


        GLOBAL ABSOLUTE SCREEN EDITOR DECLARATIONS

XMAX            0A20    2592    Keyboard Queue Maximum Size
PAUSE           0A21    2593    CTRL-S Flag
RPTFLG          0A22    2594    Enable Key Repeats
KOUNT           0A23    2595    Delay Between Key Repeats
DELAY           0A24    2596    Delay Before a Key Starts Repeating
LSTSHF          0A25    2597    Delay Between  Toggles
BLNON           0A26    2598    VIC Cursor Mode (Blinking, Solid)
BLNSW           0A27    2599    VIC Cursor Disable
BLNCT           0A28    2600    VIC Cursor Blink Counter
GDBLN           0A29    2601    VIC Cursor Character Before Blink
GDCOL           0A2A    2602    VIC Cursor Color Before Blink
CURMOD          0A2B    2603    VDC Cursor Mode (when enabled)
VMl             0A2C    2604    VIC Text Screen/Character Base Pointer
VM2             0A2D    2605    VIC Bit-Map Base Pointer
VM3             0A2E    2606    VDC Text Screen Base
VM4             0A2F    2607    VDC Attribute Base
LINTMP          0A30    2608    Temporary Pointer to Last Line For LOOP4
SAV80A          0A31    2609    Temporary For 80-Col Routines
SAV80B          0A32    2610    Temporary For 80-Col Routines
CURCOL          0A33    2611    VDC Cursor Color Before Blink
SPLIT           0A34    2612    VIC Split Screen Raster Value
FNADRX          0A35    2613    Save .X During Bank Operations
PALCNT          0A36    2614    Counter for PAL Systems (Jiffie adjustment)
SPEED           0A37    2615    Save System Speed During Tape and Serial Ops
SPRITES         0A38    2616    Save Sprite Enables During Tape and Serial Ops
BLANKING        0A39    2617    Save Blanking Status During Tape Ops
HOLD_OFF        0A3A    2618    Flag set by user to resrv full control of VIC
LDTBI_SA        0A3B    2619    Hi byte:SA Of VIC Scrn (Use W/VMI to move scrn)
CLR_EA_LO       0A3C    2620    8563 Block Fill
CLR_EA_HI       0A3D    2621    8563 Block Fill
                0A40    2624    $0A40-$0A7F Reserved Swap Area For Screen
                                Variables When (40/80) Mode Changes
                                MONITOR's domain

XCNT            0A80    2688    Compare Buffer (32 bytes)
HULP            0AA0    2720
FORMAT          0AAA    2730
LENGTH          0AAB    2731    ASM/DIS
MSAL            0AAC    2732    For Assembler
SXREG           0AAF    2735    1 Byte Temp used all over
SYREG           0AB0    2736    1 Byte Temp used all over
WRAP            0AB1    2737    1 Byte Temp for Assembler
XSAVE           0AB2    2738    Save .X here during Indirect Subroutine Calls
DIRECTION       0AB3    2739    Direction Indicator For 'TRANSFER'
COUNT           0AB4    2740    Parse Number Conversion
NUMBER          0AB5    2741    Parse Number Conversion
TEMPS           0AB7    2743    Parse Number Conversion


        FUNCTION KEY ROM CARD TABLES

CURBNK          0AC0    2752    Current Function Key ROM Bank Being Polled

PAT             0AC1    2753    Physical Address Table (IDS OF LOGGED-IN CARDS)

DK_FLAG         0AC5    2757    Reserved For Foreign Screen Editors
                0AC6    2758    $0AC6-$0AFF Reserved For System

TBUFFR          0B00    2810    Cassette Buffer (192 BYTES)
                                $0B00-$0BC0, This page also used as a buffer
                                for the disk auto-boot.

RS232I          0C00    3072    RS-232 Input Buffer

RS2320          0D00    3328    RS-232 Output Buffer
                0E00    3584    Sprite Definition Area (Must be below $1000)
                                $0E00-$0FFF, 512 Bytes

PKYBUF          1000    4096    Programmable Function Key Lengths Table For
                                10 Keys (F1-F8, , HELP)

PKYDEF          100A    4106    Programmable Function Key Strings


        DOS/VSP AREA


DOSSTR          1100    4352    DOS OUTPUT STR. BUF
                                48 Bytes to Build DOS String

VWORK           1131    4401    Graphics Vars

XYPOS           1131    4401
XPOS            1131    4401    Current X Position
YPOS            1133    4403    Current Y Position
XDEST           1135    4405    X-Coordinate Destination
YDEST           1137    4407    Y-Coordinate Destination
XYABS           1139    4409    Line Drawing Variables
XABS            1139    4409
YABS            113B    4411
XYSGN           113D    4413
XSGN            113D    4413
YSGN            113F    4415
FCT             1141    4417
ERRVAL          1145    4421
LESSER          1147    4423
GREATR          1148    4424


        ANGLE ROUTINE VARIABLES

ANGSGN          1149    4425    Sign Of Angle
SINVAL          114A    4426    Sine Of Value Of Angle


        DOS/VSP AREA

COSVAL          114C    4428    Cosine of Value of Angle
ANGCNT          114E    4430    Temps For Angle Distance Routines


                BASIC GRAPHIC VARIABLES.
        The following 24 bytes are multiply defined.

        CIRCLE DRAWING VARIABLES

XCIRCL          1150    4432    CIRCLE Center, X Coordinate
YCIRCL          1152    4434    CIRCLE Center, Y Coordinate
XRADUS          1154    4436    X Radius
YRADUS          1156    4438    Y Radius
ROTANG          1158    4440    Rotation Angle
ANGBEG          115C    4444    Arc Angle Start
ANGEND          115E    4446    Arc Angle End
XRCOS           1160    4448    X Radius * COS(Rotation Angle)
YRSIN           1162    4450    Y Radius * SIN(Rotation Angle)
XRSIN           1164    4452    X Radius * SIN(Rotation Angle)
YRCOS           1166    4454    Y Radius * COS(Rotation Angle)

        BASIC GENERAL USE PARAMETERS

XCENTR          1150    4432
YCENTR          1152    4434
XDIST1          1154    4436
YDIST1          1156    4438
XDIST2          1158    4440
YDIST2          115A    4442
DISEEND         115C    4444    Placeholder
COLCNT          115E    4446    Char's Col. Counter
ROWCNT          115F    4447
STRCNT          1160    4448

        BOX-DRAWING VARIABLES

XCORDI          1150    4432    POINT I X-Coord.
YCORDl          1152    4434    POINT I Y-Coord.
BOXANG          1154    4436    Rotation Angle
XCOUNT          1156    4438
YCOUNT          1158    4440
BXLENG          115A    4442    Length of a side
XCORD2          115C    4444
YCORD2          115E    4446

        SHAPE AND MOVE-SHAPE VARIABLES

KEYLEN          1151    4433
KEYNXT          1152    4434
STRSZ           1153    4435    String Len

GETTYP          1154    4436    Replace Shape Mode
STRPTR          1155    4437    String Pos'n Counter
OLDBYT          1156    4438    Old Bit Map byte
NEWBYT          1157    4439    New String or Bit Map Byte
                1158    4440    Placeholder

XSIZE           1159    4441    SHAPE Column Length
YSIZE           115B    4443    SHAPE Row Length
XSAVE           115D    4445    Temp For Column Length
STRADR          115F    4447    Save SHAPE String Descriptor
BITIDX          1161    4449    Bit Index Into Byte


        BASIC GRAPHIC VARIABLES

CHRPAG          1168    4456    HIGH BYTE: ADDR OF CHARROM For 'CHAR' CMD.

BITCNT          1169    4457    Temp For GSHAPE
SCALEM          116A    4458    SCALE Mode Flag
WIDTH           116B    4459    Double Width Flag
FILFLG          116C    4460    Box Fill Flag
BITMSK          116D    4461    Temp For Bit Mask
NUMCNT          116E    4462
TRCFLG          116F    4463    Flags Trace Mode
RENUM_TMP_1     1170    4464    A Temp For Renumber
RENUM_TMP_2     1172    4466    A Temp For Renumber
T3              1174    4468
T4              1175    4469

VTEMP3          1177    4471    Graphic Temp Storage
VTEMP4          1178    4472
VTEMP5          1179    4473
ADRAY1          117A    4474    Ptr to routine: Convert Float -> Integer
ADRAY2          117C    4476    Ptr to routine: Convert Integer -> FLOAT
SPRITE_DATA     117E    4478    Sprite Speed/Direction Tables ($117E-D5)

VIC_SAVE        11D6    4566    Copy of VIC Reg's, Used to update chip during
                                retrace (21 bytes, $11D6-EA)

UPPER_LOWER     11EB    4587    Pointer to Upper/Lower Char Set for CHAR
UPPER_GRAPHIC   11EC    4588    Ptr. to Upper/Graphic Char Set
DOSSA           11ED    4589    Temp storage for file SA during RECORD cmd


        BASIC GENERAL NON-ZP STORAGE

OLDTXT          1220    4608    Previous BASIC Line
                        4610    Pointer: BASIC Statement for CONTINUE


        PRINT USING DECLARATIONS

PUCHRS          1204    4612
PUFILL          1204    4612    PRINT USING Fill Symbol
PUCOMA          1205    4613    PRINT USING Comma Symbol
PUDOT           1206    4614    PRINT USING D.P. Symbol
PUMONY          1207    4614    Print Using Monetary Symbol
ERRNUM          1208    4616    Used by Error Trapping Routine - Last Err No
ERRLIN          1209    4617    Line # of Last Error. $FFFF if No Error

TRAPNO          120B    4619    Line to go to on error - $FFFF if none set

TMPTRP          120D    4621    Hold Trap # of Tempor.
ERRTXT          120E    4622
TEXT_TOP        1210    4624    Top of Text Pointer
MAX_MEM_0       1212    4626    Highest Address Available to BASIC in RAM 0

TMPTXT          1214    4628    Used by DO-LOOP. Could be Mult. Assigned
TMPLIN          1216    4630
USRPOK          1218    4632
RNDX            121B    4635
CIRCLE_SEGMENT  1220    4640    Degrees Per CIRCLE 51:6MENT
DEJAVU          1221    4641    'Cold' or 'Warm' Reset Status


        BASIC STORAGE FOR MUSIC VECTORS

TEMPO_RATE      1222    4642
VOICES          1223    4643
NTIME           1229    4649
OCTAVE          122B    4651
SHARP           122C    4652
PITCH           122D    4653
VOICE           122F    4655
WAVE0           1230    4656
DNOTE           1233    4659
FLTSAV          1234    4660
FLTFLG          1238    4664
NIBBLE          1239    4665
TONNUM          123A    4666

TONVAL          123B    4667
PARCNT          123E    4668
ATKTAB          123F    4669
SUSTAB          1249    4681
WAVTAB          1253    4691
PULSLW          125D    4701
PULSHI          1267    4711
FILTERS         1271    4721


        INTERRUPT VECTORS

INT_TRIP_FLAG   1276    4726
INT_ADR_LO      1279    4729
INT_ADR_HI      127C    4732
INTVAL          127F    4735
COLTYP          1280    4736


        BASIC SOUND COMMAND VARS

SOUND_VOICE     1281    4737
SOUND_TIME_LO   1282    4738
SOUND_TIME_HI   1285    4741
SOUND_MAX_LO    1288    4744
SOUND_MAX_HI    128B    4747
SOUND_MIN_LO    128E    4750
SOUND_MIN_HI    1291    4753

SOUND_DIRECTION 1294    4756
SOUND_STEP_LO   1297    4759
SOUND_STEP_HI   129A    4762
SOUND_FREQ_LO   129D    4765
SOUND_FREQ_HI   12A0    4768
TEMP_TIME_LO    12A3    4771
TEMP_TIME_HI    12A4    4772
TEMP_MAX_LO     12A5    4773
TEMP_MAX_HI     12A6    4774

TEMP_MIN_LO     12A7    4775
TEMP_MIN_HI     12A8    4776
TEMP_DIRECTION  12A9    4777
TEMP_STEP_LO    12AA    4778
TEMP_STEP_HI    12AB    4779

TEMP_FREQ_LO    12AC    4780

TEMP_FREQ_HI    12AD    4781
TEMP_PULSE_LO   12AE    4782
TEMP_PULSE_HI   12AF    4783
TEMP_WAVEFORM   12B0    4784
POT_TEMP_1      12B1    4785    Temporaries for 'POT' Function
POT_TEMP_2      12B2    4786
WINDOW_TEMP     12B3    4787
SAVRAM          12B7    4791    Used BY SPRDEF & SAVSPR
DEFMOD          12FA    4858    Used BY SPRDEF & SAVSPR
LINCNT          12FB    4859    Used BY SPRDEF & SAVSPR
SPRITE_NUMBER   12FC    4860    Used BY SPRDEF & SAVSPR
IRQ_WRAP_FLAG   12FD    4861    Used BY BASIC IRQ to BLOCK
                                All BUT ONE IRQ CALL

                1300    4864    Application Program Area $1300-$1BFF

RAMBOT          1C00    7168    Start Of Basic Text $1C00-$EFFF
                                (KERNAL sets MEMBOT here)

                1C00    7168    Video Matrix #2 (1KB of colors for
                                Bitmap, if allocated) $1C00-$1FFF

                2000    8192    VIC BITMAP (8KB, if allocated)
                                $2000-$3FFF


        BEGINNING OF ROM OVER RAM

                4000    16384   C128 BASIC LO ROM

                                Start of BASIC Text if Bit Map
                                is allocated (RAM) $4000-$EFFF

                8000    32768   C128 BASIC Hl ROM (or Function ROM) $8000-$BFFF



        BASIC JUMP TABLE


                BASIC ENTRY

JMP HARD_RESET  4000    16384   COLD ENTRY
JMP SOFT_RESET  4003    16387   WARM ENTRY
JMP BASIC_IRQ   4006    16390   IRQ ENTRY


                FORMAT CONVERSIONS

JMP AYINT       AF00    44800   Convert F.P. to Integer
JMP GIVAYF      AF03    44803   Convert Integer to F.P.

JMP FOUT        AF06    44806   Convert F.P. to ASCII String
JMP VAL_l       AF09    44809   Convert ASCII String to F.P.
JMP GETADR      AF0C    44812   Convert F.P. to an Address
JMP FLOATC      AF0F    44815   Convert Address to F.P.


                MATH FUNCTIONS

JMP FSUB        AF12    44818   MEM - FACC
JMP FSUBT       AF15    44821   ARG - FACC
JMP FADD        AF18    44824   MEM + FACC
JMP FADDT       AF1B    44827   ARG - FACC
JMP FMULT       AF1E    44830   MEM * FACC
JMP FMULTT      AF21    44833   ARG * FACC
JMP FDIV        AF24    44836   MEM / FACC
JMP FDIVT       AF27    44839   ARG / FACC
JMP LOG         AF2A    44842   Compute Natural LOG Of FACC
JMP INT         AF2D    44845   Perform BASIC INT On FACC
JMP SQR         AF30    44848   Compute Square Root OF FACC
JMP NEGOP       AF33    44851   Negate FACC
JMP FPWR        AF36    44854   Raise ARG to The Mem Power
JMP FPWRT       AF39    44857   Raise ARG to The FACC Power
JMP EXP         AF3C    44860   Compute EXP Of FACC

JMP COS         AF3F    44863   Compute COS Of FACC
JMP SIN         AF42    44866   Compute SIN Of FACC
JMP TAN         AF45    44869   Compute TAN Of FACC
JMP ATN         AF48    44872   Compute ATN Of FACC
JMP ROUND       AF4B    44875   Round FACC
JMP ABS         AF4E    44878   Absolute Value Of FACC
JMP SIGN        AF51    44881   Test Sign Of FACC
JMP FCOMP       AF54    44884   Compare FACC With Memory
JMP RND 0       AF57    44887   Generate Random F.P. Number


                MOVEMENT

JMP CONUPK      AF5A    44890   Move RAM MEM to ARG
JMP ROMUPK      AF5D    44893   Move ROM MEM to ARG
JMP MOVFRM      AF60    44896   Move RAM MEM to FACC
JMP MOVFM       AF63    44899   Move ROM MEM to FACC
JMP MOVMF       AF66    44902   Move FACC to MEM
JMP MOVFA       AF69    44905   Move ARG to FACC
JMP MOVAF       AF6C    44908   Move FACC to ARG


                OTHER BASIC ROUTINES

JMP OPTAB       AF6F    44911
JMP DRAWLN      AF72    44914


MEMORY
ADDRESS         HEXADECIMAL DECIMAL
LABEL           ADDRESS ADDRESS DESCRIPTION

                OTHER BASIC ROUTINES

JMP GPLOT       AF75    44917
JMP CIRSUB      AF78    44920
JMP RUN         AF7B    44923
JMP RUNC        AF7E    44926
JMP CLEAR       AF81    44929
JMP NEW         AF84    44932
JMP LNKPRG      AF87    44935
JMP CRUNCH      AF8A    44938

JMP FNDLIN      AF8D    44941
JMP NEWSTT      AF90    44944
JMP EVAL        AF93    44947
JMP FRMEVL      AF96    44950
JMP RUN_A_PROGRAM
                AF99    44953

JMP SETEXC      AF9C    44956
JMP LINGET      AF9F    44959
JMP GARBA2      AFA2    44962
JMP EXECUTE_A_LINE
                AFA5    44965


                MONITOR ENTRY

JMP CALL        B000    45056   MONITOR Call Entry

JMP BREAK       B003    45059   MONITOR Break Entry
JMP MONCMD      B006    45062   MONITOR Command Parser Entry
                C000    49152   KERNAL (or Function) ROM $C000-$FFFF


                EDITOR JUMP TABLE

JMP CINT        C000    491S2   Initialize Editor & Screen
JMP DISPLY      C003    49155   Display Charac in .A, Color

JMP LP2         C006    49158   Get Key From IRQ Buffer

JMP LOOP5       C009            Into A

JMP PRINT       C00C    49164   Print Character In .A
JMP SCRORG      C00F    49167   Get # of Scrn Rows, Cols Into X & Y

JMP SCNKEY      C012    49170   Scan Keyboard Subroutine
JMP REPEAT      C015    49173   Handle Repeat Key & Store Decoded Key
JMP PLOT        C018    49176   Read Or Set CRSR Position In X, Y
JMP CURSOR      C01B    49179   Move 8563 Cursor Subroutine
JMP ESCAPE      C01E    49182   Execute ESC Function using chr in .A
JMP KEYSET      C021    49185   Redefine A Programmable Func'n Key
JMP IRQ         C024    49188   IRQ Entry
JMP INIT80      C027    49191   Initialize 80-Column Character Set
JMP SWAPPER     C02A    49194   Swap Editor Locals (in 40/80 change)
JMP WINDOW      C02D    49197   Set Top-Left or Bot-Right of Window
                D000    53248   VIC Character ROM ($D000-$DFFF)


                VIC CHIP REGISTERS

VICREG0         D000    53248   Sprite 0, X-Location
VICREG1         D001    53249   Sprite 0, Y-Location
VICREG2         D002    53250   Sprite 1, X-Location
VICREG3         D003    53251   Sprite 1, Y-Location
VICREG4         D004    53252   Sprite 2, X-Location
VICREG5         D005    53253   Sprite 2, Y-Location
VICREG6         D006    53254   Sprite 3, X-Location
VICREG7         D007    53255   Sprite 3, Y-Location
VICREG8         D008    53256   Sprite 4, X-Location
VICREG9         D009    53257   Sprite 4, Y-Location
VICREG10        D00A    53258   Sprite 5, X-Location
VICREG11        D00B    53259   Sprite 5, Y-Location
VICREG12        D00C    53260   Sprite 6, X-Location
VICREG13        D00D    53261   Sprite 6, Y-Location
VICREG14        D00E    53262   Sprite 7, X-Location
VICREG15        D00F    53263   Sprite 7, Y-Location
VICREG16        D010    53264   M.S. Bit of X-Location for Sprites 0 - 7



        THE COMMODORE 128 AND COMMODORE 64 MEMORY MAPS


                KERNAL JUMP TABLE
                New Entries For C128

JMP SPIN SPOUT  FF47            65351   Set up Fast Serial Port for I/O
JMP CLOSE ALL   FF4A            65354   Close All Logical Files for a device
JMP C64MODE     FF4D            65357   Reconfigure System as a C64 (no return)
JMP DMA CALL    FF50            65360   Initiate DMA Request to External RAM
                                        Expansion, Send command to DMA Device

JMP BOOT CALL   FF53            65363   Boot Load Program From Disk
JMP PHOENIX     FF56            65366   Call All Function Cards' Cold Start
                                        Routines, Initialize

JMP LKUPLA      FF59            65369   Search Tables For Given LA
JMP LKUPSA      FF5C            65372   Search Tables For Given SA
JMP SWAPPER     FF5F            65375   Switch Between 40 and 80 Columns (Editor)
JMP DLCHR       FF62            65378   Init 80-Col Character RAM (Editor)
JMP PFKEY       FF65            65381   Program Function Key (Editor)
JMP SETBNK      FF68            65384   SET Bank For I/O Operations
JMP GETCFG      FF6B            65387   Lookup MMU Data For Given Bank
JMP JSRFAR      FF6E            65390   JSR to Any Bank, RTS to Calling Bank
JMP JMPFAR      FF71            65393   JMP to Any Bank
JMP INDFET      FF74            65396   LDA (FETVEC),Y FROM Any Bank
JMP INDSTA      FF77            65499   STA (STAVEC),Y to Any Bank
JMP INDCMP      FF7A            65402   CMP (CMPVEC),Y to Any Bank
JMP PRIMM       FF7D            65405   Print Immediate Utility
                                        (Always JSR to this routine)


                STANDARD KERNAL JUMP TABLE

                FF80            65408   Release Number Of KERNAL
JMP CINT        FF81            65409   Init Editor & Display
JMP IOINIT      FF84            65412   Init I/O Devices (ports, timers, etc.)
JMP RAMTAS      FF87            6S415   Initialize RAM And Buffers For System
JMP RESTOR      FF8A            65418   Restore Vectors to Initial System
JMP VECTOR      FF8D            65421   Change Vectors For USER
JMP SETMSG      FF90            65424   Control O.S. Message
JMP SECND       FF93            65427   Send SA After LISTEN
JMP TKSA        FF96            65430   Send SA After TALK
JMP MEMTOP      FF99            65433   Set/Read Top Of System RAM
JMP MEMBOT      FF9C            65436   Set/Read Bottom Of System RAM
JMP KEY         FF9F            65439   Scan Keyboard (Editor)
JMP SETTMO      FFA2            65442   Set Timeout In IEEE (reserved)
JMP ACPTR       FFA5            65445   Handshake Serial Byte In
JMP CIOUT       FFA8            65448   Handshake Serial Byte Out
JMP UNTLK       FFAB            65451   Send UNTALK Out Serial
JMP UNLSN       FFAE            65454   Send UNLISTEN Out Serial
JMP LISTN       FFB1            65457   Send LISTEN Out Serial
JMP TALK        FFB4            65460   Send TALK Out Serial
JMP READSS      FFB7            65463   Return I/O Status Byte
JMP SETLFS      FFBA            65460   Set LA, FA, SA
JMP SETNAM      FFBD            65469   Set Length And File Name Address
JMP (IOPEN)     FFC0    OPEN    65472   OPEN Logical File
JMP (ICLOSE)    FFC3    CLOSE   65475   CLOSE Logical File
JMP (ICHKIN)    FFC6    CHKIN   65478   Set Channel In
JMP (ICKOUT)    FFC9    CKOUT   65481   Set Channel Out
JMP (ICLRCH)    FFCC    CLRCH   65484   Restore Default I/O Channel
JMP (IBASIN)    FFCF    BASIN   65487   INPUT From Channel
JMP (IBSOUT)    FFD2    BSOUT   65490   OUTPUT To Channel
JMP LOADSP      FFD5            65493   LOAD From File
JMP SAVESP      FFD8            65496   SAVE to File
JMP SETTIM      FFDB            65599   Set Internal Clock
JMP RDTIM       FFDE            65502   Read Internal Clock
JMP (ISTOP)     FFE1    STOP    65505   Scan STOP Key
JMP (IGETIN)    FFE4    GETIN   65508   Read Buffered Data
JMP (ICLALL)    FFE7    CLALL   65511   Close All Files And Channels
JMP UDTIM       FFEA    CLOCK   65514   Increment Internal Clock
JMP SCRORG      FFED            65517   Return Screen Window Size (Editor)
JMP PLOT        FFF0            65520   Read/Set X,Y Cursor Coord (Editor)
JMP IOBASE      FFF3            65523   Return I/O Base
SYSTEM          FFF8            65528   Operating System Vector (RAM1)
NMI             FFFA            65530   Processor NMI Vector
RESET           FFFC            65532   Processor RESET Vector
IRQ             FFFE            65534   Processor IRQ/BRK Vector



                KERNAL/EDITOR FLAGS AND SHADOW REGISTERS

The following symbols are used by the C128 Editor. Note that the Editor IRQ
VIC screen handler depends upon them. In most cases the contents of these
locations will be placed directly into the appropriate register and should be
used instead of the actual register. For example, to change the location of the
character set used by VIC, use VM1 ($0A2C) instead of VIC register 24 ($D018).
VM1 will be used by the editor to update VIC register 24.


ADDRESS NAME    EXPLANATION

$00D8/GRAPHM    See below. IF = $FF THEN EDITOR LEAVES VIC ALONE.
$00D9/CHAREN    MASK For 8502 /CHAREN BIT.
$0A2C/VM1       VIC Text Mode Video Matrix & Character Base Pointer.
$0A2D/VM2       VIC Graphic Mode Video Matrix & Bit Map Pointer.
$0A2E/VM3       8563 TEXT DISPLAY BASE Address.
$0A2F/VM4       8S63 ATTRIBUTE BASE Address.
$0A34/SPLIT     IN SPLIT SCREEN MODE, CONTAINS VALUE For MIDDLE RASTER IRQ.
$0A2B/CURMOD    8563 CURSQR Mode.
$0A21/PAUSE     CONTROL S Flag (In effect = $13)



540 COMMODORE 128


        EXPLANATION OF VARIOUS KERNAL/EDITOR FLAG BYTES, ETC.

ADDRESS SYMBOL                  DESCRIPTION

                7       6       5       4       3       2       1       0


0000    D6510   -       (IN)    (OUT)   (IN)    (OUT)   (OUT)   (OUT)   (OUT)
0001    R6510   -       CAPKEY  CASMTR  CASSEN  CASWRT  CHAREN  HIRAM   LORAM

00F7    LOCKS   CASE    CTL S   -       -       -       -       -       -

00F8    SCROLL  OFF     LINKER

00D3    SHFLAG  -       -       -       ALT     ALPHA   CTRL            SHIFT

OA22    RPTFLG  ALL     NONE    -       -       -       -       -       -

OA26    BLNON   ON      BLNK    -       -       -       -       -       -

00F9    BEEPER  ON      -       -       -       -       -       -       -

00D8    GRAPHM  MCM     SPLIT   BMM     -       -       -       -       -

00D7    MODE    40/80   -       -       -       -       -       -       -

OA04    INIT_   CHRSET  CINT    -       -       -       -       -       BASIC
        STATUS

Notes on Kernal Symbols:
Init_Status. See also above. Lets system know what has been initialized and what hasn't. Set to $00 by a reset but untouched by NMI.

System_Vector. Where the Kernal goes when it has to go somewhere. It's set to BASIC cold at reset. BASIC itself sets it to BASIC warm after it has initialized. The monitor respects it too.

System. Vector in RAM1 at $FFF8. Set at power-up to C128MODE, user may redirect it to his code. Taken at reset always providing user with control (protection) from reset. 


Converted  to a human readable format by the IIRG