Basic ROM von A000 BFFF | |
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 |
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 |