home *** CD-ROM | disk | FTP | other *** search
- ;
- ; Commodore 64 ROM Memory Map
- ;
-
- ;
- ; 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
- ;
-
- ;
- ; 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 42121 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
- 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
- e30e 58126 atn Perform [atn]
- e33e 58174 atncon Table of ATN Constants DATA
- e37b 58235 bassft BASIC Warm Start
- e394 58260 init BASIC Cold Start
- e3a2 58274 initat CHRGET For Zero-page
- e3ba 58298 rndsed RND Seed For zero-page DATA
- e3bf 58303 initcz Initialize BASIC RAM
- e422 58402 initms Output Power-Up Message
- e447 58439 bvtrs Table of BASIC Vectors DATA
- 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
- 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
- e87c 59516 - Go to Next Line
- e891 59537 - Output <CR>
- e8a1 59553 - Check Line Decrement
- 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
- eacb 60107 - Set Colour Code
- eadd 60125 - Process Key Image
- eb79 60281 - Keyboard Select Vectors 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 / LISTEN
- ed40 60736 - Send Data On Serial Bus
- edad 60845 - Flag Errors
- 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 / 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 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
- 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 error Messages
- 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 Reset Entry
- fd02 64770 - Check For 8-ROM
- fd12 64786 - 8-ROM Mask DATA
- fd15 64789 restor Kernal Reset
- fd1a 64794 vector Kernal Move
- 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 Save Filename Data
- fe00 65024 setlfs Save File Details
- fe07 65031 readst Get Status
- fe18 65048 setmsg Flag Status
- 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 Entry Point
- fe66 65126 - Warm Start Basic
- 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 Lister
- 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 [5252] -
- fff8 [5942] SYSTEM
-
- fffa Transfer Vectors
- fffa [fe43] NMI
- fffc [fce2] RESET
- fffe [ff48] IRQ
-
-