| Basic ROM von A000 BFFF |
|
| |
| A000-A001 | Restart Vectors |
| A00C-A00D | BASIC Command Vectors |
| A052-A053 | BASIC Function Vectors |
| A080-A081 | BASIC Operator Vectors |
| A09E-A128 | BASIC Command Keyword Table |
| A129-A13F | BASIC Misc. Keyword Table |
| A140-A14C | BASIC Operator Keyword Table |
| A14D-A19D | BASIC Function Keyword Table |
| A19E-A327 | Error Message Table |
| A328-A329 | Error Message Pointers |
| A364-A389 | Misc. Messages |
| |
| A38A | Find FOR/GOSUB Entry on Stack |
| A3B8 | Open Space in Memory |
| A3FB | Check Stack Depth |
| A408 | Check Memory Overlap |
| A435 | Output OUT OF MEMORY Error |
| A437 | Error Routine |
| A469 | Break Entry |
| A474 | Restart BASIC |
| A480 | Input & Identify BASIC Line |
| A49C | Get Line Number & Tokenise Text |
| A4A2 | Insert BASIC Text |
| A533 | Rechain Lines |
| A560 | Input Line Into Buffer |
| A579 | Tokenise Input Buffer |
| A613 | Search for Line Number |
| A642 | Perform 'new' |
| A65E | Perform 'clr' |
| A68E | Reset (TXTPTR) |
| A69C | Perform 'list' |
| A717 | Handle LIST Character |
| A742 | Perform 'for' |
| A7AE | BASIC Warm Start |
| A7C4 | Check End of Program |
| A7E1 | Prepare to execute statement |
| A7ED | Perform BASIC Keyword |
| A81D | Perform 'restore' |
| A82C | Perform 'stop', 'end', 'break' |
| A857 | Perform 'cont' |
| A871 | Perform 'run' |
| A883 | Perform 'gosub' |
| A8A0 | Perform 'goto' |
| A8D2 | Perform 'return' |
| A8F8 | Perform 'data' |
| A906 | Search for Next Statement / Line |
| A928 | Perform 'if' |
| A93B | Perform 'rem' |
| A94B | Perform 'on' |
| A96B | Fetch linnum From BASIC |
| A9A5 | Perform 'let' |
| A9C4 | Assign Integer |
| A9D6 | Assign Floating Point |
| A9D9 | Assign String |
| A9E3 | Assign TI$ |
| AA2C | Add Digit to FAC#1 |
| AA80 | Perform 'print#' |
| AA86 | Perform 'cmd' |
| AA9A | Print String From Memory |
| AAA0 | Perform 'print' |
| AAB8 | Output Variable |
| AAD7 | Output CR/LF |
| AAE8 | Handle comma, TAB(, SPC( |
| AB1E | Output String |
| AB3B | Output Format Character |
| AB4D | Handle Bad Data |
| AB7B | Perform 'get' |
| ABA5 | Perform 'input#' |
| ABBF | Perform 'input' |
| ABEA | Read Input Buffer |
| ABF9 | Do Input Prompt |
| AC06 | Perform 'read' |
| AC35 | General Purpose Read Routine |
| ACFC-AD1D | Input Error Messages |
| AD1E | Perform 'next' |
| AD61 | Check Valid Loop |
| AD8A | Confirm Result |
| AD9E | Evaluate Expression in Text |
| AE83 | Evaluate Single Term |
| AEA8-AEAC | Constant PI |
| AEAD | Continue Expression |
| AEF1 | Expression in Brackets |
| AEF7 | Confirm Character |
| AEF7 | test ')' |
| AEFA | test '(' |
| AEFD | test comma |
| AF08 | Output SYNTAX Error |
| AF0D | Set up NOT Function |
| AF14 | Identify Reserved Variable |
| AF28 | Search for Variable |
| AF48 | Convert TI to ASCII String |
| AFA7 | Identify Function Type |
| AFB1 | Evaluate String Function |
| AFD1 | Evaluate Numeric Function |
| AFE6 | Perform 'or', 'and' |
| |
| B016 | Perform <, =, > |
| B01B | Numeric Comparison |
| B02E | String Comparison |
| B07E | Perform 'dim' |
| B08B | Identify Variable |
| B0E7 | Locate Ordinary Variable |
| B11D | Create New Variable |
| B128 | Create Variable |
| B194 | Allocate Array Pointer Space |
| B1A5-B1A9 | Constant -32768 in Flpt |
| B1AA | FAC#1 to Integer in (AC/YR) |
| B1B2 | Evaluate Text for Integer |
| B1BF | FAC#1 to Positive Integer |
| B1D1 | Get Array Parameters |
| B218 | Find Array |
| B245 | BAD SUBSCRIPT/ILLEGAL QUANTITY |
| B261 | Create Array |
| B30E | Locate Element in Array |
| B34C | Number of Bytes in Subscript |
| B37D | Perform 'fre' |
| B391 | Convert Integer in (AC/YR) to Flpt |
| B39E | Perform 'pos' |
| B3A6 | Confirm Program Mode |
| B3E1 | Check Syntax of FN |
| B3F4 | Perform 'fn' |
| B465 | Perform 'str$' |
| B487 | Set Up String |
| B4D5 | Save String Descriptor |
| B4F4 | Allocate Space for String |
| B526 | Garbage Collection |
| B5BD | Search for Next String |
| B606 | Collect a String |
| B63D | Concatenate Two Strings |
| B67A | Store String in High RAM |
| B6A3 | Perform String Housekeeping |
| B6DB | Clean Descriptor Stack |
| B6EC | Perform 'chr$' |
| B700 | Perform 'left$' |
| B72C | Perform 'right$' |
| B737 | Perform 'mid$' |
| B761 | Pull sTring Parameters |
| B77C | Perform 'len' |
| B782 | Exit String Mode |
| B78B | Perform 'asc' |
| B79B | Evaluate Text to 1 Byte in XR |
| B7AD | Perform 'val' |
| B7B5 | Convert ASCII String to Flpt |
| B7EB | Get parameters for POKE/WAIT |
| B7F7 | Convert FAC#1 to Integer in LINNUM |
| B80D | Perform 'peek' |
| B824 | Perform 'poke' |
| B82D | Perform 'wait' |
| B849 | Add 0.5 to FAC#1 |
| B850 | Perform Subtraction |
| B862 | Normalise Addition |
| B867 | Perform Addition |
| B947 | 2's Complement FAC#1 |
| B97E | Output OVERFLOW Error |
| B983 | Multiply by Zero Byte |
| B9BC-B9E9 | Table of Flpt Constants |
| B9EA | Perform 'log' |
| BA28 | Perform Multiply |
| BA59 | Multiply by a Byte |
| BA8C | Load FAC#2 From Memory |
| BAB7 | Test Both Accumulators |
| BAD4 | Overflow / Underflow |
| BAE2 | Multiply FAC#1 by 10 |
| BAF9-BAFD | Constant 10 in Flpt |
| BAFE | Divide FAC#1 by 10 |
| BB07 | Divide FAC#2 by Flpt at (AC/YR) |
| BB0F | Divide FAC#2 by FAC#1 |
| BBA2 | Load FAC#1 From Memory |
| BBC7 | Store FAC#1 in Memory |
| BBFC | Copy FAC#2 into FAC#1 |
| BC0C | Copy FAC#1 into FAC#2 |
| BC1B | Round FAC#1 |
| BC2B | Check Sign of FAC#1 |
| BC39 | Perform 'sgn' |
| BC58 | Perform 'abs' |
| BC5B | Compare FAC#1 With Memory |
| BC9B | Convert FAC#1 to Integer |
| BCCC | Perform 'int' |
| BCF3 | Convert ASCII String to a Number in FAC#1 |
| BDB3-BDC1 | String Conversion Constants |
| BDC2 | Output 'IN' and Line Number |
| BDDD | Convert FAC#1 to ASCII String |
| BE68 | Convert TI to String |
| BF11-BF70 | Table of Constants |
| BF71 | Perform 'sqr' |
| BF7B | Perform power ($) |
| BFB4 | Negate FAC#1 |
| BFBF-BFEC | Table of Constants |
| BFED | Perform 'exp' |
| |
| Kernal ROM von E000 FFFF |
|
| |
| E000 | EXP continued From BASIC ROM |
| E043 | Series Evaluation |
| E08D-E096 | Constants for RND |
| E097 | Perform 'rnd' |
| E0F9 | Handle I/O Error in BASIC |
| E10C | Output Character |
| E112 | Input Character |
| E118 | Set Up For Output |
| E11E | Set Up For Input |
| E124 | Get One Character |
| E12A | Perform 'sys' |
| E156 | Perform 'save' |
| E165 | Perform 'verify'/'load' |
| E1BE | Perform 'open' |
| E1C7 | Perform 'close' |
| E1D4 | Get Parameters For LOAD/SAVE |
| E200 | Get Next One Byte Parameter |
| E206 | Check Default Parameters |
| E20E | Check For Comma |
| E219 | Get Parameters For OPEN/CLOSE |
| E264 | Perform 'cos' |
| E26B | Perform 'sin' |
| E2B4 | Perform 'tan' |
| |
| E2E0-E2E4 | Float: 1.570796327 (pi/2) |
| E2E5-E2E9 | Float: 6.28318531 (pi*2) |
| E2EA-E2EE | Float: 0.25 |
| E2EF | #05 (counter) |
| E2F0-E2F4 | Float: -14.3813907 |
| E2F5-E2F9 | Float: 42.0077971 |
| E2FA-E2FE | Float: -76.7041703 |
| E2FF-E303 | Float: 81.6052237 |
| E304-E308 | Float: -41.3417021 |
| E309-E30D | Float: 6.28318531 |
| |
| E30E | Perform 'atn' |
| |
| E33E | #0b (counter) |
| E3EF-E343 | Float: -0.000684793912 |
| E344-E348 | Float: 0.00485094216 |
| E349-E34D | Float: -0.0161117018 |
| E34E-E352 | Float: 0.034209638 |
| E353-E357 | Float: -0.0542791328 |
| E358-E35C | Float: 0.0724571965 |
| E35D-E361 | Float: -0.0898023954 |
| E362-E366 | Float: 0.110932413 |
| E367-E36B | Float: -0.142839808 |
| E36C-E370 | Float: 0.19999912 |
| E371-E375 | Float: -0.333333316 |
| E376-E37A | Float: 1.00 |
| |
| E37B | BASIC Warm Start [RunStop-Restore] |
| E394 | BASIC Cold Start |
| E3A2 | CHRGET For Zero-page |
| E3BA-E3BE | RND Seed For zero-page |
| E3BF | Initialize BASIC RAM |
| E422 | Output Power-Up Message |
| E447-E452 | Table of BASIC Vectors (for 0300) WORD |
| E453 | Initialize Vectors |
| E45F-E4AC | Power-Up Message |
| E4AD | Patch for BASIC Call to CHKOUT |
| E4B7-E4D9 | Unused Bytes For Future Patches |
| E4DA | Reset Character Colour |
| E4E0 | Pause After Finding Tape File |
| E4EC-E4FF | RS-232 Timing Table PAL |
| E500 | Get I/O Address |
| E505 | Get Screen Size |
| E50A | plot Put / Get Row And Column |
| E518 | Initialize I/O |
| E544 | Clear Screen |
| E566 | Home Cursor |
| E56C | Set Screen Pointers |
| E59A | Set I/O Defaults (Unused Entry) |
| E5A0 | Set I/O Defaults |
| E5B4 | Get Character From Keyboard Buffer |
| E5CA | Input From Keyboard |
| E632 | Input From Screen or Keyboard |
| E684 | Quotes Test |
| E691 | Set Up Screen Print |
| E6B6 | Advance Cursor |
| E6ED | Retreat Cursor |
| E701 | Back on to Previous Line |
| E716 | Output to Screen |
| E72A | unshifted characters |
| E7D4 | shifted characters |
| E87C | Go to Next Line |
| E891 | Output |
| E8A1 | Check Line Decrement |
| E8B3 | Check Line Increment |
| E8CB | Set Colour Code |
| E8DA | Colour Code Table |
| E8EA | Scroll Screen |
| E965 | Open A Space On The Screen |
| E9C8 | Move A Screen Line |
| E9E0 | Syncronise Colour Transfer |
| E9F0 | Set Start of Line |
| E9FF | Clear Screen Line |
| EA13 | Print To Screen |
| EA24 | Syncronise Colour Pointer |
| EA31 | Main IRQ Entry Point |
| EA87 | Scan Keyboard |
| EADD | Process Key Image |
| EB79-EB80 | Pointers to Keyboard decoding tables |
| EB81-EBC1 | Keyboard 1 unshifted |
| EBC2-EC02 | Keyboard 2 Shifted |
| EC03-EC43 | Keyboard 3 Commodore |
| EC44 | Graphics/Text Control |
| EC78-ECB8 | Keyboard 4 Control |
| ECB9-ECE6 | Video Chip Setup Table |
| ECE7 | Shift-Run Equivalent |
| ECF0-ED08 | Low Byte Screen Line Addresses |
| ED09 | Send TALK Command on Serial Bus |
| ED0C | listn Send LISTEN Command on Serial Bus |
| ED40 | Send Data On Serial Bus |
| EDAD | Status #80 - device not present |
| EDB0 | Status #03 - write timeout |
| EDB9 | Send LISTEN Secondary Address |
| EDBE | Clear ATN |
| EDC7 | Send TALK Secondary Address |
| EDCC | Wait For Clock |
| EDDD | Send Serial Deferred |
| EDEF | Send UNTALK / UNLISTEN |
| EE13 | Receive From Serial Bus |
| EE85 | Serial Clock On |
| EE8E | Serial Clock Off |
| EE97 | Serial Output 1 |
| EEA0 | Serial Output 0 |
| EEA9 | Get Serial Data And Clock In |
| EEB3 | Delay 1 ms |
| EEBB | RS-232 Send |
| EF06 | Send New RS-232 Byte |
| EF2e | 'No DSR' / 'No CTS' Error |
| EF39 | Disable Timer |
| EF4A | Compute Bit Count |
| EF59 | RS-232 Receive |
| EF7E | Set Up To Receive |
| EF90 | Process RS-232 Byte |
| EFE1 | Submit to RS-232 |
| F00D | No DSR (Data Set Ready) Error |
| F017 | Send to RS-232 Buffer |
| F04D | Input From RS-232 |
| F086 | Get From RS-232 |
| F0A4 | Serial Bus Idle |
| F0BD-F12A | Table of Kernal I/O Messages |
| F12B | Print Message if Direct |
| F12F | Print Message |
| F13E | Get a byte |
| F157 | Input a byte |
| F199 | Get From Tape / Serial / RS-232 |
| F1CA | Output One Character |
| F20E | Set Input Device |
| F250 | Set Output Device |
| F291 | Close File |
| F30F | Find File |
| F31F | Set File values |
| F32F | Abort All Files |
| F333 | Restore Default I/O |
| F34A | Open File |
| F3D5 | Send Secondary Address |
| F409 | Open RS-232 |
| F49E | Load RAM |
| F4B8 | Load File From Serial Bus |
| F533 | File From Tape |
| F5AF | Print "SEARCHING" |
| F5C1 | Print Filename |
| F5D2 | Print "LOADING / VERIFYING" |
| F5DD | Save RAM |
| F5FA | Save to Serial Bus |
| F659 | Save to Tape |
| F68F | Print "SAVING" |
| F69B | Bump Clock |
| F6DD | Get Time |
| F6E4 | Set Time |
| F6ED | Check STOP Key |
| F6FB | Output 'too many files' |
| F6FE | Output 'file open' |
| F701 | Output 'file not open' |
| F704 | Output 'file not found' |
| F707 | Output 'device not present' |
| F70A | Output 'not input file' |
| F70D | Output 'not output file' |
| F710 | Output 'missing filename' |
| F713 | Output 'illegal device number' |
| F72D | Find Any Tape Header |
| F76A | Write Tape Header |
| F7D0 | Get Buffer Address |
| F7D7 | Set Buffer Stat / End Pointers |
| F7EA | Find Specific Tape Header |
| F80D | Bump Tape Pointer |
| F817 | Print "PRESS PLAY ON TAPE" |
| F82E | Check Tape Status |
| F838 | Print "PRESS RECORD..." |
| F841 | Initiate Tape Read |
| F864 | Initiate Tape Write |
| F875 | Common Tape Code |
| F8D0 | Check Tape Stop |
| F8E2 | Set Read Timing |
| F92C | Read Tape Bits |
| FA60 | Store Tape Characters |
| FB8e | Reset Tape Pointer |
| FB97 | New Character Setup |
| FBA6 | Send Tone to Tape |
| FBC8 | Write Data to Tape |
| FBCD | IRQ Entry Point |
| FC57 | Write Tape Leader |
| FC93 | Restore Normal IRQ |
| FCB8 | Set IRQ Vector |
| FCCA | Kill Tape Motor |
| FCD1 | Check Read / Write Pointer |
| FCDB | Bump Read / Write Pointer |
| FCE2 | Power-Up RESET Entry |
| FD02 | Check For 8-ROM |
| FD12 | 8-ROM Mask '80CBM' DATA |
| FD15 | restor Restore Kernal Vectors (at 0314) |
| FD1A | Change Vectors For User |
| FD30-FD4F | Kernal Reset Vectors WORD |
| FD50 | Initialise System Constants |
| FD9B-FDA2 | IRQ Vectors For Tape I/O WORD |
| FDA3 | Initialise I/O |
| FDDD | Enable Timer |
| FDF9 | Set Filename |
| FE00 | Set Logical File Parameters |
| FE07 | Get I/O Status Word |
| FE18 | Control OS Messages |
| FE21 | Set IEEE Timeout |
| FE25 | Read / Set Top of Memory |
| FE34 | Read / Set Bottom of Memory |
| FE43 | Transfer Entry |
| FE66 | Warm Start Basic [BRK] |
| FEBC | Exit Interrupt |
| FEC2-FED5 | RS-232 Timing Table - NTSC |
| FED6 | NMI RS-232 In |
| FF07 | NMI RS-232 Out |
| FF43 | Fake IRQ Entry |
| FF48 | IRQ Entry ff5b 65371 cint Initialize screen editor |
| FF80 | Kernal Version Number [03] |
| |
| FF81 | JMP $FF5B Init Editor & Video Chips |
| FF84 | JMP $FD23 Init I/O Devices, Ports & Timers |
| FF87 | JMP $FD50 Init Ram & Buffers |
| FF8A | JMP $FD15 Restore Vectors |
| FF8D | JMP $FD1A Change Vectors For User |
| FF90 | JMP $FE18 Control OS Messages |
| FF93 | JMP $EDB9 Send SA After Listen |
| FF96 | JMP $EDC7 Send SA After Talk |
| FF99 | JMP $FE25 Set/Read System RAM Top |
| FF9C | JMP $FE34 Set/Read System RAM Bottom |
| FF9F | JMP $EA87 Scan Keyboard |
| FFA2 | JMP $FE21 Set Timeout In IEEE |
| FFA5 | JMP $EE13 Handshake Serial Byte In |
| FFA8 | JMP $eDDD Handshake Serial Byte Out |
| FFAb | JMP $EDEF Command Serial Bus UNTALK |
| FFAE | JMP $EDFE Command Serial Bus UNLISTEN |
| FFB1 | JMP $ED0C Command Serial Bus LISTEN |
| FFB4 | JMP $ED09 Command Serial Bus TALK |
| FFB7 | JMP $FE07 Read I/O Status Word |
| FFBA | JMP $FE00 Set Logical File Parameters |
| FFBD | JMP $FDF9 Set Filename |
| FFC0 | JMP ($031A) Open Vector [f34a] |
| FFC3 | JMP ($031C) Close Vector [f291] |
| FFC6 | JMP ($031E) Set Input [f20e] |
| FFC9 | JMP ($0320) Set Output [f250] |
| FFCC | JMP ($0322) Restore I/O Vector [f333] |
| FFCF | JMP ($0324) Input Vector, chrin [f157] |
| FFD2 | JMP ($0326) Output Vector, chrout [f1ca] |
| FFD5 | JMP $F49E Load RAM From Device |
| FFD8 | JMP $F5DD Save RAM To Device |
| FFDb | JMP $F6E4 Set Real-Time Clock |
| FFDE | JMP $F6DD Read Real-Time Clock |
| FFE1 | JMP ($0328) Test-Stop Vector [f6ed] |
| FFE4 | JMP ($032A) Get From Keyboad [f13e] |
| FFE7 | JMP ($032C) Close All Channels And Files [f32f] |
| FFEA | JMP $F69B Increment Real-Time Clock |
| FFED | JMP $E505 Return Screen Organization |
| FFF0 | JMP $E50A Read / Set Cursor X/Y Position |
| FFF3 | JMP $E500 Return I/O Base Address |
| |
| FFF6 | - |
| FFF8 | System-Vektor |
| FFFA | NMI-Vektor |
| FFFC | RESET-Vektor |
| FFFE | IRQ-Vektor |