C= commodore 64 

Commodore 128 ROM Addresses

;       Commodore 128 ROM Memory Map
;       with RAM Subroutines
;
;       V1.3    8 Nov 1994
;       1986 Basic and VDC patch information added
;
;       V1.2    1 Sep 1994
;

; Data types in headers (for reassembler):
;
;       DATA            Misc data
;       TEXT            String terminated with 00
;       WORD            Vectors in LO/HI byte pairs
;       CHIP            I/O Area
;       EMPTY           ROM containing FF's or AA's
;

;
; C128 RAM Subroutines
;

0002    Bank Number, Jump to SYS address
0056    Jump vector for functions

02a2    Bank Peek Subroutine
02af    Bank Poke Subroutine
02be    Bank Compare Subroutine
02cd    JSR to another bank
02e3    JMP to another bank
0380    CHRGET
0386    CHRGOT entry
0390    ?
039f    Fetch From Bank 0
03ab    Fetch From Bank 1
03b7    Fetch From Bank 1
03c0    Fetch From Bank 0
03c9    Fetch From Bank 0
03f0    DMA Link Code

;
; BASIC v7.0 interpreter ROM ($4000 - $AFFF)
;
;  BASIC ROM LO
;
4000    Basic Entry Jumps
4009    Basic Restart
4023    Basic Cold Start
4045    Set-Up Basic Constants
4112    Chime
417a    Set Preconfig Registers
4189    Registers For $D501             DATA
418d    Init Sprite Movement Tabs
419b    Print Startup Message
41bb    Startup Message                 DATA
4251    Set Basic Links
4267    Basic Links                     DATA
4279    Chrget For $0380
42ce    Get From ($50) Bank1
42d3    Get From ($3f) Bank1
42d8    Get From ($52) Bank1
42dd    Get From ($5c) Bank0
42e2    Get From ($5c) Bank1
42e7    Get From ($66) Bank1
42ec    Get From ($61) Bank0
42f1    Get From ($70) Bank0
42f6    Get From ($70) Bank1
42fb    Get From ($50) Bank1
4300    Get From ($61) Bank1
4305    Get From ($24) Bank0
430a    Crunch Tokens
43e2    Check Keyword Match
4417    Keywords                        DATA
46fc    Action Vectors                  WORD
47d8    Function Vectors                WORD
4828    Defunct Vectors                 WORD
4846    Unimplemented Commands
484b    Messages                        DATA
4a82    Find Message
4b34    Update Continue Pointer
4b3f    Execute/Trace Statement
4bcb    Perform [stop]
4bcd    Perform [end]
4bf7    Setup FN Reference
4c86    Evaluate 
4c89    Evaluate 
4cb6    Evaluate 
4d2a    Print 'ready'
4d2d    'ready.'                        TEXT
4d37    Error or Ready
4d3a    Print 'out of memory'
4d3c    Error
4daf    Break Entry
4dc3    Ready For Basic
4de2    Handle New Line
4f4f    Rechain Lines
4f82    Reset End-of-Basic
4f93    Receive Input Line
4faa    Search B-Stack For Match
4ffe    Move B-Stack Down
5017    Check Memory Space
5047    Copy B-Stack Pointer
5050    Set B-Stack Pointer
5059    Move B-Stack Up
5064    Find Basic Line
50a0    Get Fixed Pt Number
50e2    Perform [list]
5123    List Subroutine
51d6    Perform [new]
51f3    Set Up Run
51f8    Perform [clr]
5238    Clear Stack & Work Area
5250    Pudef Characters
5254    Back Up Text Pointer
5262    Perform [return]
528f    Perform [data/bend]
529d    Perform [rem]
52a2    Scan To Next Statement
52a5    Scan To Next Line
52c5    Perform [if]
5320    Search/Skip Begin/Bend
537c    Skip String Constant
5391    Perform [else]
53a3    Perform [on]
53c6    Perform [let]
54f6    Check String Location
553a    Perform [print#]
5540    Perform [cmd]
555a    Perform [print]
5600    Print Format Char
5607    -print ''-
560a    -print '?'-
5612    Perform [get]
5635    Getkey
5648    Perform [input#]
5662    Perform [input]
569c    Prompt & Input
56a9    Perform [read]
57f4    Perform [next]
587b    Perform [dim]
5885    Perform [sys]
58b4    Perform [tron]
58b7    Perform [troff]
58bd    Perform [rreg]
5901    Assign 
5975    Perform [auto]
5986    Perform [help]
59ac    Insert Help Marker
59cf    Perform [gosub]
59db    Perform [goto]
5a15    Undef'd Statement
5a1d    Put Sub To B-Stack
5a3d    Perform [go]
5a60    Perform [cont]
5a9b    Perform [run]
5aca    Perform [restore]
5af0    Keywords To Renumber            DATA
5af8    Perform [renumber]
5bae    Renumber-Continued
5bfb    Renumber Scan
5d19    Convert Line Number
5d68    Get Renumber Start
5d75    Count Off Lines
5d89    Add Renumber Inc
5d99    Scan Ahead
5da7    Set Up Block Move
5dc6    Block Move Down
5ddf    Block Move Up
5dee    Check Block Limit
5df9    Perform [for]
5e87    Perform [delete]
5efb    Get Line Number Range
5f34    Perform [pudef]
5f4d    Perform [trap]
5f62    Perform [resume]
5fb7    Reinstate Trap Point
5fd8    Syntax Exit
5fdb    Print 'can't resume'
5fe0    Perform [do]
6039    Perform [exit]
608a    Perform [loop]
60b4    Print 'loop not found'
60b7    Print 'loop without do'
60db    Eval While/Until Argument
60e1    Define Programmed Key
610a    Perform [key]
619a                                    DATA
61a8    Perform [paint]
627c    Check Painting Split
62b7    Perform [box]
63f5    Authors                         DATA
642b    Perform [sshape]
658d    Perform [gshape]
668e    Perform [circle]
6750    Draw Circle
6797    Perform [draw]
67d7    Perform [char]
6955    Perform [locate]
6960    Perform [scale]
69dc                                    DATA
69e2    Perform [color]
6a4c    Color Codes                     DATA
6a5c    Log Current Colors
6a79    Perform [scnclr]
6b06    Fill Memory Page
6b17    Set Screen Color
6b5a    Perform [graphic]
6bc9    Perform [bank]
6bd7    Perform [sleep]
6c09    Multiply Sleep Time
6c2d    Perform [wait]
6c4f    Perform [sprite]
6cb3    Bit Masks                       DATA
6cc6    Perform [movspr]
6dd9                                    DATA
6de1    Perform [play]
6e02    Analyze Play Character
6eb2    Set SID Sound
6efd    Play Error
6f03    Dotted Note
6f07    Note Length Char
6f1e    Note-A-G
6f52    ...votxnum...
6f69    Sharp
6f6c    Flat
6f78    Rest
6fd7    Perform [tempo]
6fe4    Voice Times Two                 DATA
6fe7    Length Characters               DATA
6fec    Command Characters              DATA
6ff9    ?                               DATA
7011    ?                               DATA
702f    Chime Seq                       DATA
7039    SID Voice Steps                 DATA
7046    Perform [filter]
70c1    Perform [envelope]
7164    Perform [collision]
7190    Perform [sprcolor]
71b6    Perform [width]
71c5    Perform [vol]
71ec    Perform [sound]
72cc    Perform [window]
7335    Perform [boot]
7372    Perform [sprdef]
7663    ?                               DATA
7691    Sprite Vectors                  DATA
76b4    ?                               DATA
76ec    Perform [sprsav]
77b3    Perform [fast]
77c4    Perform [slow]
77d7    Type Match Check
77da    Confirm Numeric
77dd    Confirm String
77e7    Print 'type mismatch'
77ea    Print 'formula too complex'
77ef    Evaluate Expression
78d7    Evaluate Item
793c    Fixed-Float
7950    Eval Within Parens
795c    Check Comma
796c    Syntax Error
7978    Search For Variable
7a85    Unpack RAM1 to FAC#1
7aaf    Locate Variable
7b3c    Check Alphabetic
7b46    Create Variable
7cab    Set Up Array
7d25    Print 'bad subscript'
7d28    Print 'illegal quantity'
7e3e    Compute Array Size
7e71    Array Pointer Subroutine

7e82    Reserved For Future Patches

; Patches added in the 1986 release:
7e82    Set Bank patch for [char]
7e88    Set Bank patch for Screen Print Link
7e8e    Patch for Renumber Scan
7e94    Patch for [delete]
7ea6    Patch for Note-A-G
7eb9    Patch (alternate for 6FF9)      DATA
7ed1    String Stack patch for Error
7ed9    Unused                          EMPTY
7fc0    Copyright Banner                DATA
7ffc    Checksum (?)                    DATA


;
; BASIC ROM HI
;
8000    Evaluate 
8020    Decrypt Message
804a    Evaluate 
8052    String to Float
8076    Evaluate 
80c5    Evaluate 
80e5    Perform [poke]
80f6    Evaluate 
8139    Swap x With y
8142    Evaluate 
816b    Byte to Hex
8182    Evaluate 
818c    Evaluate 
81f3    ?                               DATA
8203    Evaluate 
8242    Joystick Values                 DATA
824d    Evaluate 
82ae    Evaluate 
82fa    Evaluate 
831e    Evaluate 
835b    ?                               DATA
8361    Evaluate 
837c    Evaluate 
8397    Evaluate 
83e1    Evaluate 
8407    Evaluate 
8434    Evaluate 
8490    Rnd Multiplier                  DATA
849a    Value 32768                     DATA
849f    Float-Fixed Unsigned
84a7    Evaluate Fixed Number
84ad    Float-Fixed Signed
84c9    Float (.y, .a)
84d0    Evaluate 
84d9    Check Direct
84dd    Print 'illegal direct'
84e0    Print 'undef'd function'
84e5    Set Up 16 Bit Fix-Float
84f5    Print 'direct mode only'
84fa    Perform [def]
8528    Check FN Syntax
853b    Perform [fn]
85ae    Evaluate 
85bf    Evaluate 
85d6    Evaluate 
860a    Evaluate 
861c    Evaluate 
864d    Pull String Parameters
8668    Evaluate 
866e    Exit String Mode
8677    Evaluate 
8688    Calc String Vector
869a    Set Up String
874e    Build String to Memory
877b    Evaluate String
87e0    Clean Descriptor Stack
87f1    Input Byte Parameter
8803    Params For Poke/Wait
8815    Float/Fixed
882e    Subtract From Memory
8831    Evaluate 
8845    Add Memory
8848    Evaluate 
8917    Trim FAC#1 Left
894e    Round Up FAC#1
895d    Print 'overflow'
899c    Log Series                      DATA
89ca    Evaluate 
8a0e    Add 0.5
8a24    Multiply By Memory
8a27    Evaluate 
8a89    Unpack ROM to FAC#2
8ab4    Unpack RAM1 to FAC#2
8ae3    Adjust FAC#1/#2
8b17    Multiply By 10
8b2e    +10
8b33    Print 'division by zero'
8b38    Divide By 10
8b49    Divide Into Memory
8b4c    Evaluate 
8bd4    Unpack ROM to FAC#1
8bf9    Pack FAC#1 to $5e
8bfc    Pack FAC#1 to $59
8c00    Pack FAC#1 to RAM1
8c28    FAC#2 to FAC#1
8c38    FAC#1 to FAC#2
8c47    Round FAC#1
8c57    Get Sign
8c65    Evaluate 
8c68    Byte Fixed-Float
8c75    Fixed-Float
8c84    Evaluate 
8c87    Compare FAC#1 to Memory
8cc7    Float-Fixed
8cfb    Evaluate 
8d22    String to FAC#1
8db0    Get Ascii Digit
8e17    Conversion Values               DATA
8e26    Print 'in...'
8e32    Print Integer
8e42    Float to Ascii
8f76    +0.5                            DATA
8f7b    Decimal Constants               DATA
8f9f    TI Constants                    DATA
8fb7    Evaluate 
8fbe    Raise to Memory Power
8fc1    Evaluate 
8ffa    Evaluate 
9005    Exp Series                      DATA
9033    Evaluate 
90d0    I/O Error Message
90d8    Basic 'open'
90df    Basic 'chrout'
90e5    Basic 'input'
90eb    Redirect Output
90fd    Redirect Input
9112    Perform [save]
9129    Perform [verify]
912c    Perform [load]
918d    Perform [open]
919a    Perform [close]
91ae    Get Load/Save Parameters
91dd    Get Next Byte Value
91e3    Get Character or Abort
91eb    Move to Next Parameter
91f6    Get Open/Close Parameters
9243    Release I/O String
9251    Call 'status'
9257    Call 'setlfs'
925d    Call 'setnam'
9263    Call 'getin'
9269    Call 'chrout'
926f    Call 'clrchn'
9275    Call 'close'
927b    Call 'clall'
9281    Print Following Text
9287    Set Load/Save Bank
928d    Call 'plot'
9293    Call 'get'
9299    Make Room For String
92ea    Garbage Collection
9409    Evaluate 
9410    Evaluate 
9459    Evaluate 
9485    Trig Series                     DATA
94b3    Evaluate 
94e3    Series                          DATA
9520    Print Using
96ee    ?
97b9    ?
98eb    ?
98f2    ?
99c1    Evaluate 
9b0c    Evaluate 
9b30    Draw Line
9bfb    Plot Pixel
9c49    Examine Pixel
9c70    Set Hi-Res Color Cell
9cca    Video Matrix Lines Hi           DATA
9ce3    Position Pixel
9d1c    Bit Masks                       DATA
9d24    Calc Hi-Res Row/Column
9df2    Restore Pixel Cursor
9e2f    Parse Graphics Command
9e32    Get Color Source Param
9f29    Conv Words Hi                   DATA
9f3d    Conv Words Lo                   DATA
9f4f    (graphic/sprdef subroutine)
a022    Move Basic to $1c01
a07e    Perform [catalog/directory]
a11d    Perform [dopen]
a134    Perform [append]
a157    Find Spare SA
a16f    Perform [dclose]
a18c    Perform [dsave]
a1a4    Perform [dverify]
a1a7    Perform [dload]
a1c8    Perform [bsave]
a218    Perform [bload]
a267    Perform [header]
a2a1    Perform [scratch]
a2d7    Perform [record]
a322    Perform [dclear]
a32f    Perform [collect]
a346    Perform [copy]
a362    Perform [concat]
a36e    Perform [rename]
a37c    Perform [backup]
a3bf    Parse DOS Commands
a5e7    Print 'missing file name'
a5ea    Print 'illegal device number'
a5ed    Print 'string too long'
a627    DOS Command Masks               DATA
a667    DOS Command
a6d6    ?
a778    ?
a7e1    Print 'are you sure'
a7e8    'are you sure?'                 TEXT
a80d    Release String
a845    Set Bank 15
a84d    IRQ Work
aa1f    Perform [stash]
aa24    Perform [fetch]
aa29    Perform [swap]

aa6e    Reserved For Future Patches

; Patch added in the 1986 release:
aa6e    Patch for Print Using

;

aa81    Unused                          EMPTY
ae64    Encrypted Message               DATA
af00    Basic Vectors

;af00   JMP $84B4
;af03   JMP $793C       ; Fixed-Float
;af06   JMP $8E42       ; Float to Ascii
;af09   JMP $8052       ; String to Float
;af0c   JMP $8815       ; Float/Fixed
;af0f   JMP $8C75       ; Fixed-Float
;af12   JMP $882E       ; Subtract From Memory
;af15   JMP $8831       ; Evaluate 
;af18   JMP $8845       ; Add Memory
;af1b   JMP $8848       ; Evaluate 
;af1e   JMP $8A24       ; Multiply By Memory
;af21   JMP $8A27       ; Evaluate 
;af24   JMP $8B49       ; Divide Into Memory
;af27   JMP $8B4C       ; Evaluate 
;af2a   JMP $89CA       ; Evaluate 
;af2d   JMP $8CFB       ; Evaluate 
;af30   JMP $8FB7       ; Evaluate 
;af33   JMP $8FFA       ; Evaluate 
;af36   JMP $8FBE       ; Raise to Memory Power
;af39   JMP $8FC1       ; Evaluate 
;af3c   JMP $9033       ; Evaluate 
;af3f   JMP $9409       ; Evaluate 
;af42   JMP $9410       ; Evaluate 
;af45   JMP $9459       ; Evaluate 
;af48   JMP $94B3       ; Evaluate 
;af4b   JMP $8C47       ; Round FAC#1
;af4e   JMP $8C84       ; Evaluate 
;af51   JMP $8C57       ; Get Sign
;af54   JMP $8C87       ; Compare FAC#1 to Memory
;af57   JMP $8437
;af5a   JMP $8AB4       ; Unpack RAM1 to FAC#2
;af5d   JMP $8A89       ; Unpack ROM to FAC#2
;af60   JMP $7A85       ; Unpack RAM1 to FAC#1
;af63   JMP $8BD4       ; Unpack ROM to FAC#1
;af66   JMP $8C00       ; Pack FAC#1 to RAM1
;af69   JMP $8C28       ; FAC#2 to FAC#1
;af6c   JMP $8C38       ; FAC#1 to FAC#2
;af6f   JMP $4828       ; Defunct Vectors
;af72   JMP $9B30       ; Draw Line
;af75   JMP $9BFB       ; Plot Pixel
;af78   JMP $6750       ; Draw Circle
;af7b   JMP $5A9B       ; Perform [run]
;af7e   JMP $51F3       ; Set Up Run
;af81   JMP $51F8       ; Perform [clr]
;af84   JMP $51D6       ; Perform [new]
;af87   JMP $4F4F       ; Rechain Lines
;af8a   JMP $430A       ; Crunch Tokens
;af8d   JMP $5064       ; Find Basic Line
;af90   JMP $4AF6
;af93   JMP $78D7       ; Evaluate Item
;af96   JMP $77EF       ; Evaluate Expression
;af99   JMP $5AA6
;af9c   JMP $5A81
;af9f   JMP $50A0       ; Get Fixed Pt Number
;afa2   JMP $92EA       ; Garbage Collection
;afa5   JMP $4DCD
;

afa8    Unused                          EMPTY

;
; C128 Machime Language Monitor
; B000 - BFFF
;
b000    Perform [monitor]
b009    Break Entry
b009    Print 'break'
b00c    'break'                         TEXT
b021    Print 'call' entry
b03a    Print 'monitor'
b03d    'monitor'                       TEXT
b050    Perform [r]
b050    Print '   pc sr ac xr yr sp'
b053    '   pc sr ac xr yr sp'          TEXT
b08b    Get Command
b0bc    Error
b0bf    Print '?'
b0e3    Perform [x]
b0e6    Commands                        DATA
b0fc    Vectors                         WORD
b11a    Read Banked Memory
b12a    Write Banked Memory
b13d    Compare Banked Memory
b152    Perform [m]
b194    Perform [:]
b1ab    Perform [>]
b1c9    Print 'esc-o-up'
b1cc    'esc-o-up'                      TEXT
b1d6    Perform [g]
b1df    Perform [j]
b1e8    Display Memory
b20b    Print ''
b20e    ''                      TEXT
b231    Perform [c]
b234    Perform [t]
b2c3    Add 1 to Op 3
b2c6    Do Next Address
b2ce    Perform [h]
b337    Perform [lsv]
b3c4    Print 'error'
b3db    Perform [f]
b406    Perform [a]
b533    Print 'space'
b57c    Check 2 A-Matches
b57f    Check A-Match
b58b    Try Next Op Code
b599    Perform [d]
b5ae    Print ''
b5b1    ''                      TEXT
b5d4    Display Instruction
b5f2    Print '<3 spaces>'
b5f5    '<3 spaces>'                    TEXT
b659    Classify Op Code
b6a1    Get Mnemonic Char
b6c3    Mode Tables                     DATA
b715    Mode Characters                 DATA
b721    Compacted Mnemonics             DATA
b7a5    Input Parameter
b7ce    Read Value
b88a    Number Bases                    DATA
b88e    Base Bits                       DATA
b892    Display 5-Digit Address
b8a5    Display 2-digit Byte
b8a8    Print Space
b8ad    Print Cursor-Up
b8b4    New Line
b8b9    Blank New Line
b8c2    Output 2-Digit Byte
b8d2    Byte to 2 ascii
b8e7    Get Input Char
b8e9    Get Character
b901    Copy Add0 to Add2
b90e    Calculate Add2 - Add0
b922    Subtract Add0
b93c    Subtract Add1
b950    Increment Pointer
b960    Decrement Pointer
b974    Copy to Register Area
b983    Calculate Step/Area
b9b1    Perform [$+&%]
ba07    Convert to Decimal
ba47    Transfer Address
ba5d    Output Address
ba90    Perform [@]

bb72    Reserved For Future Patches

; Patches added in the 1986 release:
bb72    Unused                          EMPTY
bfc0    Copyright Banner                DATA
bffc    Checksum (?)                    DATA
;


;
; C128 KERNEL Rev 1  ROM ($C000 - $FFFF)
;
;  Editor
;
c000    -cint-
c006    Get from Keyboard
c009    Screen Input Link
c00c    Screen Print Link
c00f    -screen-
c012    -scnkey-
c018    -plot-
c021    Define FN Key
c024    IRQ Link
c027    Upload 80 Col [ce0c]
c02a    Swap 40/80 Col [cd2e]
c02d    Set Window
c033    Screen Address Low              DATA
c04c    Screen Address High             DATA
c065    I/O Link Vectors                WORD
c06f    Keyboard Shift Vectors          WORD
c07b    Initialize Screen
c142    Reset Window
c150    Home Cursor
c156    Goto Left Border
c15c    Set Up New Line
c17c    Do Screen Color
c194    (IRQ) Split Screen
c234    Get a Key
c29b    Input From Screen
c2bc    Read Screen Char
c2ff    Check For Quotes
c30c    Wrap Up Screen Print
c320    Ascii to Screen Code
c33e    Check Cursor Range
c363    Do New Line
c37c    Insert a Line
c3a6    Scroll Screen
c3dc    Delete a Line
c40d    Move Screen Line
c4a5    Clear a Line
c53c    Set 80-Column Counter to 1
c53e    Set 80-Column Counter
c55d    Keyboard Scan Subroutine
c651    Key Pickup & Repeat
c6dd    Keycodes for Programmed Keys    DATA
c6e7    Flash 40 Column Cursor
c72d    Print to Screen
c77d    Esc-o (escape)
c78c    ?                               DATA
c79a    Vectors                         WORD
c7b6    Print Control Char
c802    Print Hi-Bit Char
c854    Chr$(29)  Cursor Right
c85a    Chr$(17)  Cursor Down
c875    Chr$(157) Cursor Left
c880    Chr$(14)  Text Mode
c8a6    Chr$(11)  Lock
c8ac    Chr$(12)  Unlock
c8b3    Chr$(19)  Home
c8bf    Chr$(146) Clear Rvs Mode
c8c2    Chr$(18)  Reverse
c8c7    Chr$(2)   Underline On
c8ce    Chr$(130) Underline Off
c8d5    Chr$(15)  Flash On
c8dc    Chr$(143) Flash Off
c8e3    Open Screen Space
c91b    Chr$(20)  Delete
c932    Restore Cursor
c94f    Chr$(9)  Tab
c961    Chr$(24) Tab Toggle
c96c    Find Tab Column
c980    Esc-z    Clear All Tabs
c983    Esc-y    Set Default Tabs
c98e    Chr$(7)  Bell
c9b1    Chr$(10) Linefeed
c9be    Analyze Esc Sequence
c9de    Vectors                         WORD
ca14    Esc-t   Top
ca16    Esc-b   Bottom
ca1b    Set Window Part
ca24    Exit Window
ca3d    Esc-i   Insert Line
ca52    Esc-d   Delete Line
ca76    Esc-q   Erase End
ca8b    Esc-p   Erase Begin
ca9f    Esc-@   Clear Remainder of Screen
cabc    Esc-v   Scroll Up
caca    Esc-w   Scroll Down
cae2    Esc-l   Scroll On
cae5    Esc-m   Scroll Off
caea    Esc-c   Cancel Auto Insert
caed    Esc-a   Auto Insert
caf2    Esc-s   Block Cursor
cafe    Esc-u   Underline Cursor
cb0b    Esc-e   Cursor Non Flash
cb21    Esc-f   Cursor Flash
cb37    Esc-g   Bell Enable
cb3a    Esc-h   Bell Disable
cb3f    Esc-r   Screen Reverse
cb48    Esc-n   Screen Normal
cb52    Esc-k   End-of-Line
cb58    Get Screen Char/Color
cb74    Check Screen Line of Location
cb81    Extend/Trim Screen Line
cb9f    Set Up Line Masks
cbb1    Esc-j   Start-of-Line
cbc3    Find End-of-Line
cbed    Move Cursor Right
cc00    Move Cursor Left
cc1e    Save Cursor
cc27    Print Space
cc2f    Print Character
cc32    Print Fill Color
cc34    Put Char to Screen
cc5b    Get Rows/Columns
cc6a    Read/Set Cursor
cca2    Define Function Key
cd2c    Esc-x   Switch 40/80 Col
cd57    Position 80-col Cursor
cd6f    Set Screen Color
cd9f    Turn Cursor On
cdca    Set CRTC Register 31
cdcc    Set CRTC Register
cdd8    Read CRTC Register 31
cdda    Read CRTC Register
cde6    Set CRTC to Screen Address
cdf9    Set CRTC to Color Address
ce0c    Set Up 80 Column Char Set
ce4c    Ascii Color Codes               DATA
ce5c    System Color Codes              DATA
ce6c    Bit Masks                       DATA
ce74    40-col Init Values ($e0)        DATA
ce8e    80-col Init Values ($0a40)      DATA
cea8    Prog Key Lengths                DATA
ceb2    Prog Key Definitions            DATA
cef5    Unused                          EMPTY
;
d000    I/O or Chargen                  DATA

;
; C128 Kernel revision 1
; E000 - FFFF
;
e000    Reset Code
e04b    MMU Set Up Bytes                DATA
e056    -restor-
e05b    -vector-
e073    Vectors to $0314                WORD
e093    -ramtas-
e0cd    Move Code For High RAM Banks
e105    RAM Bank Masks                  DATA
e109    -init-
e1dc    Set Up CRTC Registers
e1f0    Check Special Reset
e242    Reset to 64/128
e24b    Switch to 64 Mode
e263    Code to $02
e26b    Scan All ROMs
e2bc    ROM Addresses High              DATA
e2c0    ROM Banks                       DATA
e2c4    Print 'cbm' Mask                DATA
e2c7    VIC 8564 Set Up                 DATA
e2f8    CRTC 8563 Set Up Pairs          DATA
e33b    -talk-
e33e    -listen-
e43e    -acptr-
e4d2    -second-
e4e0    -tksa-
e503    -ciout-  Print Serial
e515    -untlk-
e526    -unlsn-
e535    Reset ATN
e545    Set Clock High
e54e    Set Clock Low
e557    Set Data High
e560    Set Data Low
e569    Read Serial Lines
e573    Stabilize Timing
e59f    Restore Timing
e5bc    Prepare For Response
e5c3    Fast Disk Off
e5d6    Fast Disk On
e5fb    Fast Disk On/Off
e5ff    (NMI) Transmit RS-232
e64a    RS-232 Handshake
e68e    Set RS-232 Bit Count
e69d    (NMI) RS-232 Receive
e75f    Send To RS-232
e795    Connect RS-232 Input
e7ce    Get From RS-232
e7ec    Interlock RS-232/Serial
e805    (NMI) RS-232 Control I/O
e850    RS-232 Timings For NTSC         DATA
e878    (NMI) RS-232 Receive Timing
e8a9    (NMI) RS-232 Transmit Timing
e8d0    Find Any Tape Header
e919    Write Tape Header
e980    Get Buffer Address
e987    Get Tape Buffer Start & End Addrs
e99a    Find Specific Header
e9be    Bump Tape Pointer
e9c8    Print 'press play on tape'
e9df    Check Tape Status
e9e9    Print 'press record ...'
e9f2    Initiate Tape Read
ea15    Initiate Tape Write
ea26    Common Tape Code
ea7d    Wait For Tape
ea8f    Check Tape Stop
eaa1    Set Read Timing
eaeb    (IRQ) Read Tape Bits
ec1f    Store Tape Chars
ed51    Reset Pointer
ed5a    New Char Set Up
ed69    Write Transition to Tape
ed8b    Write Data to Tape
ed90    (IRQ) Tape Write
ee2e    (IRQ) Tape Leader
ee57    Wind Up Tape I/O
ee9b    Switch IRQ Vector
eea8    IRQ Vectors                     WORD
eeb0    Kill Tape Motor
eeb7    Check End Address
eec1    Bump Address
eec8    (IRQ) Clear Break
eed0    Control Tape Motor
eeeb    -getin-
ef06    -chrin-
ef48    Get Char From Tape
ef79    -chrout-
efbd    -open-
f0b0    Set CIA to RS-232
f0cb    Check Serial Open
f106    -chkin-
f14c    -chkout-
f188    -close-
f1e4    Delete File
f202    Search For File
f212    Set File Parameters
f222    -clall-
f226    -clrchn-
f23d    Clear I/O Path
f265    -load-
f27b    Serial Load
f32a    Tape Load
f3a1    Disk Load
f3ea    Burst Load
f48c    Close Off Serial
f4ba    Get Serial Byte
f4c5    Receive Serial Byte
f503    Toggle Clock Line
f50c    Print 'u0' Disk Reset           DATA
f50f    Print 'searching'
f521    Send File Name
f533    Print 'loading'
f53e    -save-
f5b5    Terminate Serial Input
f5bc    Print 'saving'
f5c8    Save to Tape
f5f8    -udtim-
f63d    Watch For RUN or Shift
f65e    -rdtim-
f665    -settim-
f66e    -stop-
f67c    Print 'too many files'
f67f    Print 'file open'
f682    Print 'file not open'
f685    Print 'file not found'
f688    Print 'device not present'
f68b    Print 'not input file'
f68e    Print 'not output file'
f691    Print 'missing file name'
f694    Print 'illegal device no'
f697    Error #0
f6b0    Messages                        DATA
f71e    Print If Direct
f722    Print I/O Message
f731    -setnam-
f738    -setlfs-
f73f    Set Load/Save Bank
f744    -rdst-
f757    Set Status Bit
f75c    -setmsg-
f75f    Set Serial Timeout
f763    -memtop-
f772    -membot-
f781    -iobase-
f786    Search For SA
f79d    Search & Set Up File
f7a5    Trigger DMA
f7ae    Get Char From Memory
f7bc    Store Loaded Byte
f7c9    Read Byte to be Saved
f7d0    Get Char From Memory Bank
f7da    Store Char to Memory Bank
f7e3    Compare Char With Memory Bank
f7ec    Load Memory Control Mask
f800    Subroutines to $02a2-$02fb
f85a    DMA Code to $03f0
f867    Check Auto Start ROM
f890    Check For Boot Disk
f908    Print 'booting'
f92c    Print '...'
f98b    Wind Up Disk Boot
f9b3    Read Next Boot Block
f9fb    To 2-Digit Decimal
fa08    Block Read Command String       DATA
fa15    Print '#i'
fa17    Print a Message
fa40    NMI Sequence
fa65    (IRQ) Normal Entry
fa80    Keyboard Matrix Un-Shifted      DATA
fad9    Keyboard Matrix Shifted         DATA
fb32    Keyboard Matrix C-Key           DATA
fb8b    Keyboard Matrix Control         DATA
fbe4    Keyboard Matrix Caps-Lock       DATA

; Patch for the C128 D
fc62    Patch for Set Up CRTC Registers

;
fc6f    Unused                          EMPTY
fd29    DIN Keyboard Matrix Un-Shifted  DATA
fd81    DIN Keyboard Matrix Shifted     DATA
fdd8    DIN Keyboard Matrix C-Key       DATA
fe34    DIN Keyboard Matrix Control     DATA
;fe8?   DIN Keyboard Matrix Caps-Lock   DATA
feff    Patch byte

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

ff05    NMI Transfer Entry
ff17    IRQ Transfer Entry
ff33    Return From Interrupt
ff3d    Reset Transfer Entry
ff47    Jumbo Jump Table
;
; C128 Kernal Jump Table
;
ff47    jmp $e5fb       spinspout       (fast serial)
ff4a    jmp $f23d       close all
ff4d    jmp $e24b       64mode
ff50    jmp $f7a5       dma call
ff53    jmp $f890       boot call
ff56    jmp $f867       foenix
ff59    jmp $f79d       lkupla          (logical addr)
ff5c    jmp $f786       lkupsa          (second addr)
ff5f    jmp $c02a       swapper         40/80 swap
ff62    jmp $c027       dlchr           Init 80col charam
ff65    jmp $c021       pfkey           Prog Function Key
ff68    jmp $f73f       setbnk
ff6b    jmp $f7ec       setcfg
ff6e    jmp $02cd       jsrfar
ff71    jmp $02e3       jmpfar
ff74    jmp $f7d0       indfet          Bank LDA (fetchvec),y
ff77    jmp $f7da       indsta          Bank STA (stavec),y
ff7a    jmp $f7e3       indcmp          Bank CMP (cmpvec),y
ff7d    jmp $fa17       primm           Print Immediate
ff80    [01]                            Kernal Version Number           DATA
ff81    jmp $c000       cint            Init Editor & Video Chips
ff84    jmp $e109       ioinit          Init I/O Devices, Ports & Timers
ff87    jmp $e093       ramtas          Init Ram & Buffers
ff8a    jmp $e056       restor          Restore Vectors
ff8d    jmp $e05b       vector          Change Vectors For User
ff90    jmp $f75c       setmsg          Control OS Messages
ff93    jmp $e4d2       secnd           Send SA After Listen
ff96    jmp $e4e0       tksa            Send SA After Talk
ff99    jmp $f763       memtop          Set/Read System RAM Top
ff9c    jmp $f772       membot          Set/Read System RAM Bottom
ff9f    jmp $c012       key             Scan Keyboard
ffa2    jmp $f75f       settmo          Set Timeout In IEEE
ffa5    jmp $e43e       acptr           Handshake Serial Byte In
ffa8    jmp $e503       ciout           Handshake Serial Byte Out
ffab    jmp $e515       untlk           Command Serial Bus UNTALK
ffae    jmp $e526       unlsn           Command Serial Bus UNLISTEN
ffb1    jmp $e33e       listn           Command Serial Bus LISTEK
ffb4    jmp $e33b       talk            Command Serial Bus TALK
ffb7    jmp $f744       readss          Read I/O Status Word
ffba    jmp $f738       setlfs          Set Logical File Parameters
ffbd    jmp $f731       setnam          Set Filename
ffc0    jmp ($031a)     (iopen)         Open Vector [efbd]
ffc3    jmp ($031c)     (iclose)        Close Vector [f188]
ffc6    jmp ($031e)     (ichkin)        Set Input [f106]
ffc9    jmp ($0320)     (ichkout)       Set Output [f14c]
ffcc    jmp ($0322)     (iclrch)        Restore I/O Vector [f226]
ffcf    jmp ($0324)     (ibasin)        Input Vector, chrin [ef06]
ffd2    jmp ($0326)     (ibsout)        Output Vector, chrout [ef79]
ffd5    jmp $f265       loadsp          Load RAM From Device
ffd8    jmp $f53e       savesp          Save RAM To Device
ffdb    jmp $f665       settim          Set Real-Time Clock
ffde    jmp $f65e       rdtim           Read Real-Time Clock
ffe1    jmp ($0328)     (istop)         Test-Stop Vector [f66e]
ffe4    jmp ($032a)     (igetin)        Get Vector [eeeb]
ffe7    jmp ($032c)     (iclall)        Close All Channels And Files [f222]
ffea    jmp $f5f8       udtim           Increment Real-Time Clock
ffed    jmp $c00f       scrorg          Return Screen Organization
fff0    jmp $c018       plot            Read / Set Cursor X/Y Position
fff3    jmp $f781       iobase          Return I/O Base Address

fff6    System Vectors
fff6    [ffff]                                  WORD
fff8    [e224]          SYSTEM                  WORD

fffa    Transfer Vectors
fffa    [ff05]          NMI                     WORD
fffc    [ff3d]          RESET                   WORD
fffe    [ff17]          IRQ                     WORD




Converted to a human readable format by the IIRG