C= commodore 64 

Commodore 64 ROM Addresses.

;       Commodore 64 ROM Memory Map
;       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
;

;
; BASIC interpreter ROM ($A000 - $BFFF)
;

a000    40960   -       Restart Vectors                         WORD
a00c    40972   stmdsp  BASIC Command Vectors                   WORD
a052    41042   fundsp  BASIC Function Vectors                  WORD
a080    41088   optab   BASIC Operator Vectors                  WORD
a09e    41118   reslst  BASIC Command Keyword Table             DATA
a129    41257   msclst  BASIC Misc. Keyword Table               DATA
a140    41280   oplist  BASIC Operator Keyword Table            DATA
a14d    41293   funlst  BASIC Function Keyword Table            DATA
a19e    41374   errtab  Error Message Table                     DATA
a328    41768   errptr  Error Message Pointers                  WORD
a364    41828   okk     Misc. Messages                          TEXT
a38a    41866   fndfor  Find FOR/GOSUB Entry on Stack
a3b8    41912   bltu    Open Space in Memory
a3fb    41979   getstk  Check Stack Depth
a408    41992   reason  Check Memory Overlap
a435    42037   omerr   Output ?OUT OF MEMORY Error
a437    42039   error   Error Routine
a469    42089   errfin  Break Entry
a474    42100   ready   Restart BASIC
a480    42112   main    Input & Identify BASIC Line
a49c    42140   main1   Get Line Number & Tokenise Text
a4a2    42146   inslin  Insert BASIC Text
a533    42291   linkprg Rechain Lines
a560    42336   inlin   Input Line Into Buffer
a579    42361   crunch  Tokenise Input Buffer
a613    42515   fndlin  Search for Line Number
a642    42562   scrtch  Perform [new]
a65e    42590   clear   Perform [clr]
a68e    42638   stxpt   Reset TXTPTR
a69c    42652   list    Perform [list]
a717    42775   qplop   Handle LIST Character
a742    42818   for     Perform [for]
a7ae    42926   newstt  BASIC Warm Start
a7c4    42948   ckeol   Check End of Program
a7e1    42977   gone    Prepare to execute statement
a7ed    42989   gone3   Perform BASIC Keyword
a81d    43037   restor  Perform [restore]
a82c    43052   stop    Perform [stop], [end], break
a857    43095   cont    Perform [cont]
a871    43121   run     Perform [run]
a883    43139   gosub   Perform [gosub]
a8a0    43168   goto    Perform [goto]
a8d2    43218   return  Perform [return]
a8f8    43256   data    Perform [data]
a906    43270   datan   Search for Next Statement / Line
a928    43304   if      Perform [if]
a93b    43323   rem     Perform [rem]
a94b    43339   ongoto  Perform [on]
a96b    43371   linget  Fetch linnum From BASIC
a9a5    43429   let     Perform [let]
a9c4    43460   putint  Assign Integer
a9d6    43478   ptflpt  Assign Floating Point
a9d9    43481   putstr  Assign String
a9e3    43491   puttim  Assign TI$
aa2c    43564   getspt  Add Digit to FAC#1
aa80    43648   printn  Perform [print]#
aa86    43654   cmd     Perform [cmd]
aa9a    43674   strdon  Print String From Memory
aaa0    43680   print   Perform [print]
aab8    43704   varop   Output Variable
aad7    43735   crdo    Output CR/LF
aae8    43752   comprt  Handle comma, TAB(, SPC(
ab1e    43806   strout  Output String
ab3b    43835   outspc  Output Format Character
ab4d    43853   doagin  Handle Bad Data
ab7b    43899   get     Perform [get]
aba5    43941   inputn  Perform [input#]
abbf    43967   input   Perform [input]
abea    44010   bufful  Read Input Buffer
abf9    44025   qinlin  Do Input Prompt
ac06    44038   read    Perform [read]
ac35    44085   rdget   General Purpose Read Routine
acfc    44284   exint   Input Error Messages                    TEXT
ad1e    44318   next    Perform [next]
ad61    44385   donext  Check Valid Loop
ad8a    44426   frmnum  Confirm Result
ad9e    44446   frmevl  Evaluate Expression in Text
ae83    44675   eval    Evaluate Single Term
aea8    44712   pival   Constant - pi                           DATA
aead    44717   qdot    Continue Expression
aef1    44785   parchk  Expression in Brackets
aef7    44791   chkcls  Confirm Character
aef7    44791   -       -test ')'-
aefa    44794   -       -test '('-
aefd    44797   -       -test comma-
af08    44808   synerr  Output ?SYNTAX Error
af0d    44813   domin   Set up NOT Function
af14    44820   rsvvar  Identify Reserved Variable
af28    44840   isvar   Search for Variable
af48    44872   tisasc  Convert TI to ASCII String
afa7    44967   isfun   Identify Function Type
afb1    44977   strfun  Evaluate String Function
afd1    45009   numfun  Evaluate Numeric Function
afe6    45030   orop    Perform [or], [and]
b016    45078   dorel   Perform <, =, >
b01b    45083   numrel  Numeric Comparison
b02e    45102   strrel  String Comparison
b07e    45182   dim     Perform [dim]
b08b    45195   ptrget  Identify Variable
b0e7    45287   ordvar  Locate Ordinary Variable
b11d    45341   notfns  Create New Variable
b128    45352   notevl  Create Variable
b194    45460   aryget  Allocate Array Pointer Space
b1a5    45477   n32768  Constant 32768 in Flpt                  DATA
b1aa    45482   facinx  FAC#1 to Integer in (AC/YR)
b1b2    45490   intidx  Evaluate Text for Integer
b1bf    45503   ayint   FAC#1 to Positive Integer
b1d1    45521   isary   Get Array Parameters
b218    45592   fndary  Find Array
b245    45637   bserr   ?BAD SUBSCRIPT/?ILLEGAL QUANTITY
b261    45665   notfdd  Create Array
b30e    45838   inlpn2  Locate Element in Array
b34c    45900   umult   Number of Bytes in Subscript
b37d    45949   fre     Perform [fre]
b391    45969   givayf  Convert Integer in (AC/YR) to Flpt
b39e    45982   pos     Perform [pos]
b3a6    45990   errdir  Confirm Program Mode
b3e1    46049   getfnm  Check Syntax of FN
b3f4    46068   fndoer  Perform [fn]
b465    46181   strd    Perform [str$]
b487    46215   strlit  Set Up String
b4d5    46293   putnw1  Save String Descriptor
b4f4    46324   getspa  Allocate Space for String
b526    46374   garbag  Garbage Collection
b5bd    46525   dvars   Search for Next String
b606    46598   grbpas  Collect a String
b63d    46653   cat     Concatenate Two Strings
b67a    46714   movins  Store String in High RAM
b6a3    46755   frestr  Perform String Housekeeping
b6db    46811   frefac  Clean Descriptor Stack
b6ec    46828   chrd    Perform [chr$]
b700    46848   leftd   Perform [left$]
b72c    46892   rightd  Perform [right$]
b737    46903   midd    Perform [mid$]
b761    46945   pream   Pull sTring Parameters
b77c    46972   len     Perform [len]
b782    46978   len1    Exit String Mode
b78b    46987   asc     Perform [asc]
b79b    47003   gtbytc  Evaluate Text to 1 Byte in XR
b7ad    47021   val     Perform [val]
b7b5    47029   strval  Convert ASCII String to Flpt
b7eb    47083   getnum  Get parameters for POKE/WAIT
b7f7    47095   getadr  Convert FAC#1 to Integer in LINNUM
b80d    47117   peek    Perform [peek]
b824    47140   poke    Perform [poke]
b82d    47149   wait    Perform [wait]
b849    47177   faddh   Add 0.5 to FAC#1
b850    47184   fsub    Perform Subtraction
b862    47202   fadd5   Normalise Addition
b867    47207   fadd    Perform Addition
b947    47431   negfac  2's Complement FAC#1
b97e    47486   overr   Output ?OVERFLOW Error
b983    47491   mulshf  Multiply by Zero Byte
b9bc    47548   fone    Table of Flpt Constants                 DATA
b9ea    47594   log     Perform [log]
ba28    47656   fmult   Perform Multiply
ba59    47705   mulply  Multiply by a Byte
ba8c    47756   conupk  Load FAC#2 From Memory
bab7    47799   muldiv  Test Both Accumulators
bad4    47828   mldvex  Overflow / Underflow
bae2    47842   mul10   Multiply FAC#1 by 10
baf9    47865   tenc    Constant 10 in Flpt                     DATA
bafe    47870   div10   Divide FAC#1 by 10
bb07    47879   fdiv    Divide FAC#2 by Flpt at (AC/YR)
bb0f    47887   fdivt   Divide FAC#2 by FAC#1
bba2    48034   movfm   Load FAC#1 From Memory
bbc7    48071   mov2f   Store FAC#1 in Memory
bbfc    48124   movfa   Copy FAC#2 into FAC#1
bc0c    48140   movaf   Copy FAC#1 into FAC#2
bc1b    48155   round   Round FAC#1
bc2b    48171   sign    Check Sign of FAC#1
bc39    48185   sgn     Perform [sgn]
bc58    48216   abs     Perform [abs]
bc5b    48219   fcomp   Compare FAC#1 With Memory
bc9b    48283   qint    Convert FAC#1 to Integer
bccc    48332   int     Perform [int]
bcf3    48371   fin     Convert ASCII String to a Number in FAC#1
bdb3    48563   n0999   String Conversion Constants             DATA
bdc2    48578   inprt   Output 'IN' and Line Number
bddd    48605   fout    Convert FAC#1 to ASCII String
be68    48744   foutim  Convert TI to String
bf11    48913   fhalf   Table of Constants                      DATA
bf71    49009   sqr     Perform [sqr]
bf7b    49019   fpwrt   Perform power ($)
bfb4    49076   negop   Negate FAC#1
bfbf    49087   logeb2  Table of Constants                      DATA
bfed    49133   exp     Perform [exp]
;
;
;       C64 Kernal ROM
;
e000    57344   (exp continues) EXP continued From BASIC ROM
e043    57411   polyx   Series Evaluation
e08d    57485   rmulc   Constants for RND                       DATA
e097    57495   rnd     Perform [rnd]
e0f9    57593   bioerr  Handle I/O Error in BASIC
e10c    57612   bchout  Output Character
e112    57618   bchin   Input Character
e118    57624   bckout  Set Up For Output
e11e    57630   bckin   Set Up For Input
e124    57636   bgetin  Get One Character
e12a    57642   sys     Perform [sys]
e156    57686   savet   Perform [save]
e165    57701   verfyt  Perform [verify / load]
e1be    57790   opent   Perform [open]
e1c7    57799   closet  Perform [close]
e1d4    57812   slpara  Get Parameters For LOAD/SAVE
e200    57856   combyt  Get Next One Byte Parameter
e206    57862   deflt   Check Default Parameters
e20e    57870   cmmerr  Check For Comma
e219    57881   ocpara  Get Parameters For OPEN/CLOSE
e264    57956   cos     Perform [cos]
e26b    57963   sin     Perform [sin]
e2b4    58036   tan     Perform [tan]
e2e0    58080   pi2     Table of Trig Constants                 DATA

;e2e0   1.570796327     pi/2
;e2e5   6.28318531      pi*2
;e2ea   0.25

;e2ef   #05     (counter)
;e2f0   -14.3813907
;e2f5   42.0077971
;e2fa   -76.7041703
;e2ff   81.6052237
;e304   -41.3417021
;e309   6.28318531

e30e    58126   atn     Perform [atn]
e33e    58174   atncon  Table of ATN Constants                  DATA

;e33e   #0b     (counter)
;e3ef   -0.000684793912
;e344    0.00485094216
;e349   -0.161117018
;e34e    0.034209638
;e353   -0.0542791328
;e358    0.0724571965
;e35d   -0.0898023954
;e362    0.110932413
;e367   -0.142839808
;e36c    0.19999912
;e371   -0.333333316
;e376    1.00

e37b    58235   bassft  BASIC Warm Start [RUNSTOP-RESTORE]
e394    58260   init    BASIC Cold Start
e3a2    58274   initat  CHRGET For Zero-page
e3ba    58298   rndsed  RND Seed For zero-page                  DATA
;e3b2   0.811635157
e3bf    58303   initcz  Initialize BASIC RAM
e422    58402   initms  Output Power-Up Message
e447    58439   bvtrs   Table of BASIC Vectors (for 0300)       WORD
e453    58451   initv   Initialize Vectors
e45f    58463   words   Power-Up Message                        DATA
e4ad    58541   -       Patch for BASIC Call to CHKOUT
e4b7    58551   -       Unused Bytes For Future Patches         EMPTY
e4da    58586   -       Reset Character Colour
e4e0    58592   -       Pause After Finding Tape File
e4ec    58604   -       RS-232 Timing Table -- PAL              DATA
e500    58624   iobase  Get I/O Address
e505    58629   screen  Get Screen Size
e50a    58634   plot    Put / Get Row And Column
e518    58648   cint1   Initialize I/O
e544    58692   -       Clear Screen
e566    58726   -       Home Cursor
e56c    58732   -       Set Screen Pointers
e59a    58778   -       Set I/O Defaults (Unused Entry)
e5a0    58784   -       Set I/O Defaults
e5b4    58804   lp2     Get Character From Keyboard Buffer
e5ca    58826   -       Input From Keyboard
e632    58930   -       Input From Screen or Keyboard
e684    59012   -       Quotes Test
e691    59025   -       Set Up Screen Print
e6b6    59062   -       Advance Cursor
e6ed    59117   -       Retreat Cursor
e701    59137   -       Back on to Previous Line
e716    59158   -       Output to Screen
e72a    59178   -       -unshifted characters-
e7d4    59348   -       -shifted characters-
e87c    59516   -       Go to Next Line
e891    59537   -       Output 
e8a1    59553   -       Check Line Decrement
e8b3    59571   -       Check Line Increment
e8cb    59595   -       Set Colour Code
e8da    59610   -       Colour Code Table
e8ea    59626   -       Scroll Screen
e965    59749   -       Open A Space On The Screen
e9c8    59848   -       Move A Screen Line
e9e0    59872   -       Syncronise Colour Transfer
e9f0    59888   -       Set Start of Line
e9ff    59903   -       Clear Screen Line
ea13    59923   -       Print To Screen
ea24    59940   -       Syncronise Colour Pointer
ea31    59953   -       Main IRQ Entry Point
ea87    60039   scnkey  Scan Keyboard
eadd    60125   -       Process Key Image
eb79    60281   -       Pointers to Keyboard decoding tables    WORD
eb81    60289   -       Keyboard 1 -- unshifted                 DATA
ebc2    60354   -       Keyboard 2 -- Shifted                   DATA
ec03    60419   -       Keyboard 3 -- Commodore                 DATA
ec44    60484   -       Graphics/Text Control
ec78    60536   -       Keyboard 4 -- Control                   DATA
ecb9    60601   -       Video Chip Setup Table                  DATA
ece7    60647   -       Shift-Run Equivalent
ecf0    60656   -       Low Byte Screen Line Addresses          DATA
ed09    60681   talk    Send TALK Command on Serial Bus
ed0c    60684   listn   Send LISTEN Command on Serial Bus
ed40    60736   -       Send Data On Serial Bus
edad    60845   -       Flag Errors
edad    60845   -       Status #80 - device not present
edb0    60848   -       Status #03 - write timeout
edb9    60857   second  Send LISTEN Secondary Address
edbe    60862   -       Clear ATN
edc7    60871   tksa    Send TALK Secondary Address
edcc    60876   -       Wait For Clock
eddd    60893   ciout   Send Serial Deferred
edef    60911   untlk   Send UNTALK / UNLISTEN
ee13    60947   acptr   Receive From Serial Bus
ee85    61061   -       Serial Clock On
ee8e    61070   -       Serial Clock Off
ee97    61079   -       Serial Output 1
eea0    61088   -       Serial Output 0
eea9    61097   -       Get Serial Data And Clock In
eeb3    61107   -       Delay 1 ms
eebb    61115   -       RS-232 Send
ef06    61190   -       Send New RS-232 Byte
ef2e    61230   -       'No DSR' / 'No CTS' Error
ef39    61241   -       Disable Timer
ef4a    61258   -       Compute Bit Count
ef59    61273   -       RS-232 Receive
ef7e    61310   -       Set Up To Receive
ef90    61328   -       Process RS-232 Byte
efe1    61409   -       Submit to RS-232
f00d    61453   -       No DSR (Data Set Ready) Error
f017    61463   -       Send to RS-232 Buffer
f04d    61517   -       Input From RS-232
f086    61574   -       Get From RS-232
f0a4    61604   -       Serial Bus Idle
f0bd    61629   -       Table of Kernal I/O Messages            DATA
f12b    61739   -       Print Message if Direct
f12f    61743   -       Print Message
f13e    61758   getin   Get a byte
f157    61783   chrin   Input a byte
f199    61849   -       Get From Tape / Serial / RS-232
f1ca    61898   chrout  Output One Character
f20e    61966   chkin   Set Input Device
f250    62032   chkout  Set Output Device
f291    62097   close   Close File
f30f    62223   -       Find File
f31f    62239   -       Set File values
f32f    62255   clall   Abort All Files
f333    62259   clrchn  Restore Default I/O
f34a    62282   open    Open File
f3d5    62421   -       Send Secondary Address
f409    62473   -       Open RS-232
f49e    62622   load    Load RAM
f4b8    62648   -       Load File From Serial Bus
f533    62771   -       Load File From Tape
f5af    62927   -       Print "SEARCHING"
f5c1    62913   -       Print Filename
f5d2    62930   -       Print "LOADING / VERIFYING"
f5dd    62941   save    Save RAM
f5fa    62970   -       Save to Serial Bus
f659    63065   -       Save to Tape
f68f    63119   -       Print "SAVING"
f69b    63131   udtim   Bump Clock
f6dd    63197   rdtim   Get Time
f6e4    63204   settim  Set Time
f6ed    63213   stop    Check STOP Key
f6fb    63227   -       Output I/O Error Messages
f6fb    63227   -       'too many files'
f6fe    63230   -       'file open'
f701    63233   -       'file not open'
f704    63236   -       'file not found'
f707    63239   -       'device not present'
f70a    63242   -       'not input file'
f70d    63245   -       'not output file'
f710    63248   -       'missing filename'
f713    63251   -       'illegal device number'
f72d    63277   -       Find Any Tape Header
f76a    63338   -       Write Tape Header
f7d0    63440   -       Get Buffer Address
f7d7    63447   -       Set Buffer Stat / End Pointers
f7ea    63466   -       Find Specific Tape Header
f80d    63501   -       Bump Tape Pointer
f817    63511   -       Print "PRESS PLAY ON TAPE"
f82e    63534   -       Check Tape Status
f838    63544   -       Print "PRESS RECORD..."
f841    63553   -       Initiate Tape Read
f864    63588   -       Initiate Tape Write
f875    63605   -       Common Tape Code
f8d0    63696   -       Check Tape Stop
f8e2    63714   -       Set Read Timing
f92c    63788   -       Read Tape Bits
fa60    64096   -       Store Tape Characters
fb8e    64398   -       Reset Tape Pointer
fb97    64407   -       New Character Setup
fba6    64422   -       Send Tone to Tape
fbc8    64456   -       Write Data to Tape
fbcd    64461   -       IRQ Entry Point
fc57    64599   -       Write Tape Leader
fc93    64659   -       Restore Normal IRQ
fcb8    64696   -       Set IRQ Vector
fcca    64714   -       Kill Tape Motor
fcd1    64721   -       Check Read / Write Pointer
fcdb    64731   -       Bump Read / Write Pointer
fce2    64738   -       Power-Up RESET Entry
fd02    64770   -       Check For 8-ROM
fd12    64786   -       8-ROM Mask '80CBM'                      DATA
fd15    64789   restor  Restore Kernal Vectors (at 0314)
fd1a    64794   vector  Change Vectors For User
fd30    64816   -       Kernal Reset Vectors                    WORD
fd50    64848   ramtas  Initialise System Constants
fd9b    64923   -       IRQ Vectors For Tape I/O                WORD
fda3    64931   ioinit  Initialise I/O
fddd    64989   -       Enable Timer
fdf9    65017   setnam  Set Filename
fe00    65024   setlfs  Set Logical File Parameters
fe07    65031   readst  Get I/O Status Word
fe18    65048   setmsg  Control OS Messages
fe21    65057   settmo  Set IEEE Timeout
fe25    65061   memtop  Read / Set Top of Memory
fe34    65076   membot  Read / Set Bottom of Memory
fe43    65091   -       NMI Transfer Entry
fe66    65126   -       Warm Start Basic [BRK]
febc    65212   -       Exit Interrupt
fec2    65218   -       RS-232 Timing Table - NTSC      DATA
fed6    65238   -       NMI RS-232 In
ff07    65287   -       NMI RS-232 Out
ff43    65347   -       Fake IRQ Entry
ff48    65352   -       IRQ Entry
ff5b    65371   cint    Initialize screen editor
ff80    65408   -       Kernal Version Number [03]      DATA
;
; C64 Kernal Jump Table
;
ff81    jmp $ff5b       cint            Init Editor & Video Chips
ff84    jmp $fd23       ioinit          Init I/O Devices, Ports & Timers
ff87    jmp $fd50       ramtas          Init Ram & Buffers
ff8a    jmp $fd15       restor          Restore Vectors
ff8d    jmp $fd1a       vector          Change Vectors For User
ff90    jmp $fe18       setmsg          Control OS Messages
ff93    jmp $edb9       secnd           Send SA After Listen
ff96    jmp $edc7       tksa            Send SA After Talk
ff99    jmp $fe25       memtop          Set/Read System RAM Top
ff9c    jmp $fe34       membot          Set/Read System RAM Bottom
ff9f    jmp $ea87       scnkey          Scan Keyboard
ffa2    jmp $fe21       settmo          Set Timeout In IEEE
ffa5    jmp $ee13       acptr           Handshake Serial Byte In
ffa8    jmp $eddd       ciout           Handshake Serial Byte Out
ffab    jmp $edef       untalk          Command Serial Bus UNTALK
ffae    jmp $edfe       unlsn           Command Serial Bus UNLISTEN
ffb1    jmp $ed0c       listn           Command Serial Bus LISTEN
ffb4    jmp $ed09       talk            Command Serial Bus TALK
ffb7    jmp $fe07       readss          Read I/O Status Word
ffba    jmp $fe00       setlfs          Set Logical File Parameters
ffbd    jmp $fdf9       setnam          Set Filename
ffc0    jmp ($031a)     (iopen)         Open Vector [f34a]
ffc3    jmp ($031c)     (iclose)        Close Vector [f291]
ffc6    jmp ($031e)     (ichkin)        Set Input [f20e]
ffc9    jmp ($0320)     (ichkout)       Set Output [f250]
ffcc    jmp ($0322)     (iclrch)        Restore I/O Vector [f333]
ffcf    jmp ($0324)     (ichrin)        Input Vector, chrin [f157]
ffd2    jmp ($0326)     (ichrout)       Output Vector, chrout [f1ca]
ffd5    jmp $f49e       load            Load RAM From Device
ffd8    jmp $f5dd       save            Save RAM To Device
ffdb    jmp $f6e4       settim          Set Real-Time Clock
ffde    jmp $f6dd       rdtim           Read Real-Time Clock
ffe1    jmp ($0328)     (istop)         Test-Stop Vector [f6ed]
ffe4    jmp ($032a)     (igetin)        Get From Keyboad [f13e]
ffe7    jmp ($032c)     (iclall)        Close All Channels And Files [f32f]
ffea    jmp $f69b       udtim           Increment Real-Time Clock
ffed    jmp $e505       screen          Return Screen Organization
fff0    jmp $e50a       plot            Read / Set Cursor X/Y Position
fff3    jmp $e500       iobase          Return I/O Base Address

;fff6   Vectors

fff6    [5252]          -
fff8    [5942]          SYSTEM
 
;fffa   Transfer Vectors
fffa    [fe43]          NMI
fffc    [fce2]          RESET
fffe    [ff48]          IRQ




Converted to a human readable format by the IIRG