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