home *** CD-ROM | disk | FTP | other *** search
Text File | 2019-04-13 | 46.3 KB | 1,569 lines |
-
- 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 Ensbled
- 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 <CR> 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 <ESC> 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 <Shift><C*>, <CTRL> S
- SCROLL 00F8 248 Disables Screen Scroll, Line Linker
- BEEPER 00F9 249 Disables <CTRL> 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 <C=><SHFT> 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, <SHIFT RUN>, 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.
-
-
- <end>
-