TB/KERNAL
FILE INFORMATION
FILENAME(S): TB/KERNAL
FILE TYPE(S): PRG
FILE SIZE: 5.6K
FIRST SEEN: 2025-11-30 16:59:31
APPEARS ON: 1 disk(s)
FILE HASH
231dd695f05e16bb555f3b3be6689f22f74104f667e365157182a425ac1b5a30
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| BASIC UTILITIES | TB/KERNAL | PRG | High Voltage Complete C64 Collection | 12 | 7 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
> DETECTED: COMMODORE BASIC PROGRAM (LOAD ADDRESS $0801)
00000000: 01 08 27 08 00 00 8F 20 54 52 41 4E 53 42 41 53 |..'.... TRANSBAS|
00000010: 49 43 20 4B 45 52 4E 41 4C 20 28 53 45 54 50 20 |IC KERNAL (SETP |
00000020: 32 38 2F 38 34 29 3A 00 2D 08 01 00 3A 00 4D 08 |28/84):.-...:.M.|
00000030: 02 00 8F 20 32 20 53 54 41 54 45 4D 45 4E 54 53 |... 2 STATEMENTS|
00000040: 2C 20 30 20 46 55 4E 43 54 49 4F 4E 53 00 53 08 |, 0 FUNCTIONS.S.|
00000050: 03 00 3A 00 70 08 04 00 8F 20 4B 45 59 57 4F 52 |..:.p.... KEYWOR|
00000060: 44 53 20 43 48 41 52 41 43 54 45 52 53 3A 20 38 |DS CHARACTERS: 8|
00000070: 00 76 08 05 00 3A 00 99 08 06 00 8F 20 4B 45 59 |.v...:...... KEY|
00000080: 57 4F 52 44 20 20 52 4F 55 54 49 4E 45 20 20 4C |WORD ROUTINE L|
00000090: 49 4E 45 20 20 53 45 52 23 00 BB 08 07 00 8F 20 |INE SER#...... |
000000A0: 53 2F 45 4C 53 45 20 20 20 45 4C 53 52 54 4E 20 |S/ELSE ELSRTN |
000000B0: 20 20 32 35 31 34 20 20 30 30 31 00 DD 08 08 00 | 2514 001.....|
000000C0: 8F 20 53 2F 45 58 49 54 20 20 20 45 58 54 20 20 |. S/EXIT EXT |
000000D0: 20 20 20 20 32 35 34 32 20 20 30 30 32 00 E3 08 | 2542 002...|
000000E0: 09 00 3A 00 04 09 0A 00 8F 20 55 54 49 4C 49 54 |..:...... UTILIT|
000000F0: 59 3A 20 43 49 46 43 48 52 20 28 32 35 36 30 2F |Y: CIFCHR (2560/|
00000100: 30 30 33 29 00 0A 09 0B 00 3A 00 2E 09 0C 00 8F |003).....:......|
00000110: 20 4B 45 52 4E 41 4C 20 41 4C 53 4F 20 49 4E 43 | KERNAL ALSO INC|
00000120: 4C 55 44 45 53 20 4D 4F 44 49 46 49 45 44 00 54 |LUDES MODIFIED.T|
00000130: 09 0D 00 8F 20 22 49 46 22 20 53 54 41 54 45 4D |.... "IF" STATEM|
00000140: 45 4E 54 20 28 49 46 52 54 4E 2F 32 34 37 34 2F |ENT (IFRTN/2474/|
00000150: 30 30 30 29 00 5A 09 0E 00 3A 00 96 09 19 00 8B |000).Z...:......|
00000160: 20 C2 28 37 37 33 29 B3 31 39 32 20 89 20 32 39 | .(773).192 . 29|
00000170: 3A 20 8F 20 54 45 53 54 20 49 46 20 54 52 41 4E |: . TEST IF TRAN|
00000180: 53 42 41 53 49 43 20 41 4C 52 45 41 44 59 20 45 |SBASIC ALREADY E|
00000190: 4E 41 42 4C 45 44 00 9C 09 1A 00 3A 00 BC 09 1B |NABLED.....:....|
000001A0: 00 5F 41 3A 8F 20 27 45 58 49 54 27 20 53 54 41 |._A:. 'EXIT' STA|
000001B0: 54 45 4D 45 4E 54 20 54 4F 4B 45 4E 00 C2 09 1C |TEMENT TOKEN....|
000001C0: 00 3A 00 CC 09 1D 00 9E 20 37 30 30 00 D8 09 1E |.:...... 700....|
000001D0: 00 2E 4F 50 54 20 4F 4F 00 E5 09 1F 00 AC B2 20 |..OPT OO....... |
000001E0: 24 43 30 30 30 00 EB 09 20 00 3B 00 11 0A 21 00 |$C000... .;...!.|
000001F0: 54 32 20 B2 20 32 20 3B 54 52 41 4E 53 42 41 53 |T2 . 2 ;TRANSBAS|
00000200: 49 43 20 54 41 4B 45 53 20 4F 56 45 52 20 54 48 |IC TAKES OVER TH|
00000210: 45 00 34 0A 22 00 54 33 20 B2 20 33 20 3B 55 4E |E.4.".T3 . 3 ;UN|
00000220: 55 53 45 44 20 4C 4F 43 41 54 49 91 20 41 54 20 |USED LOCATI. AT |
00000230: 32 2C 20 AF 00 55 0A 23 00 54 34 20 B2 20 34 20 |2, ..U.#.T4 . 4 |
00000240: 3B 54 48 45 20 4E 55 4D 45 52 49 43 20 43 91 56 |;THE NUMERIC C.V|
00000250: 45 52 53 49 91 00 77 0A 24 00 54 35 20 B2 20 35 |ERSI..w.$.T5 . 5|
00000260: 20 3B 56 45 43 A4 52 53 20 41 54 20 33 20 AF 20 | ;VEC.RS AT 3 . |
00000270: 35 20 81 20 49 54 53 00 96 0A 25 00 54 36 20 B2 |5 . ITS...%.T6 .|
00000280: 20 36 20 3B 5A 45 52 4F 20 50 41 47 45 20 57 B0 | 6 ;ZERO PAGE W.|
00000290: 4B 53 50 41 43 45 00 9C 0A 26 00 3B 00 A2 0A 5B |KSPACE...&.;...[|
000002A0: 00 3B 00 B0 0A 5C 00 4A 4D 50 20 53 54 41 52 54 |.;...\.JMP START|
000002B0: 00 D3 0A 5D 00 4A 4D 50 20 45 58 54 20 3B 45 4D |...].JMP EXT ;EM|
000002C0: 45 52 47 45 4E 43 59 20 45 58 49 54 20 9E 34 39 |ERGENCY EXIT .49|
000002D0: 31 35 35 00 D9 0A 5E 00 3B 00 FA 0A 5F 00 58 54 |155...^.;..._.XT|
000002E0: 52 41 20 2E 42 59 54 45 20 32 2C 30 20 3B 53 54 |RA .BYTE 2,0 ;ST|
000002F0: 4D 54 53 2C 46 55 4E 43 54 53 00 00 0B 60 00 3B |MTS,FUNCTS...`.;|
00000300: 00 0C 0B 61 00 2E 42 59 54 45 20 30 00 12 0B 62 |...a..BYTE 0...b|
00000310: 00 3B 00 32 0B 63 00 53 4B 57 20 B2 20 AC 20 3B |.;.2.c.SKW . . ;|
00000320: 53 54 41 54 45 4D 45 4E 54 20 4B 45 59 57 B0 44 |STATEMENT KEYW.D|
00000330: 20 9B 00 44 0B 64 00 2E C6 20 22 45 4C 53 C5 45 | ..D.d... "ELS.E|
00000340: 58 49 D4 22 00 4A 0B 56 02 3B 00 69 0B 57 02 46 |XI.".J.V.;.i.W.F|
00000350: 4B 57 20 B2 20 AC 20 3B 46 55 4E 43 54 49 91 20 |KW . . ;FUNCTI. |
00000360: 4B 45 59 57 B0 44 53 20 9B 00 6F 0B 48 04 3B 00 |KEYW.DS ..o.H.;.|
00000370: 8F 0B 49 04 2E 42 59 54 45 20 30 20 3B 4B 45 59 |..I..BYTE 0 ;KEY|
00000380: 57 B0 44 20 9B 20 54 45 52 4D 49 4E 41 A4 52 00 |W.D . TERMINA.R.|
00000390: 95 0B 4A 04 3B 00 B1 0B 4B 04 9D 53 20 B2 20 AC |..J.;...K..S . .|
000003A0: 20 3B 53 54 41 54 45 4D 45 4E 54 20 56 45 43 A4 | ;STATEMENT VEC.|
000003B0: 52 00 C6 0B 4C 04 2E 57 B0 44 20 24 41 39 33 41 |R...L..W.D $A93A|
000003C0: 2C 45 58 54 AB 31 00 CC 0B 3E 06 3B 00 E8 0B 3F |,EXT.1...>.;...?|
000003D0: 06 A5 43 53 20 B2 20 AC 20 3B 46 55 4E 43 54 49 |..CS . . ;FUNCTI|
000003E0: 91 20 56 45 43 A4 52 53 00 EE 0B 33 08 3B 00 0D |. VEC.RS...3.;..|
000003F0: 0C 34 08 53 54 41 52 54 20 4C 44 58 20 23 37 20 |.4.START LDX #7 |
00000400: 3B 53 57 41 50 20 4F 55 54 20 4F 4C 44 00 30 0C |;SWAP OUT OLD.0.|
00000410: 36 08 53 54 54 31 20 4C 44 41 20 24 33 30 34 2C |6.STT1 LDA $304,|
00000420: 58 20 3B 42 41 53 49 43 20 56 45 43 A4 52 53 2C |X ;BASIC VEC.RS,|
00000430: 00 4E 0C 38 08 53 54 41 20 54 56 45 43 2C 58 20 |.N.8.STA TVEC,X |
00000440: 3B 53 57 41 50 20 49 4E 20 A2 20 91 45 53 00 5F |;SWAP IN . .ES._|
00000450: 0C 3A 08 4C 44 41 20 4E 55 56 45 43 53 2C 58 00 |.:.LDA NUVECS,X.|
00000460: 6E 0C 3C 08 53 54 41 20 24 33 30 34 2C 58 00 76 |n.<.STA $304,X.v|
00000470: 0C 3E 08 44 45 58 00 83 0C 40 08 42 50 4C 20 53 |.>.DEX...@.BPL S|
00000480: 54 54 31 00 A0 0C 42 08 4C 44 41 20 58 54 52 41 |TT1...B.LDA XTRA|
00000490: 20 3B 43 41 4C 43 55 4C 41 54 45 20 A4 54 41 4C | ;CALCULATE .TAL|
000004A0: 00 A8 0C 44 08 43 4C 43 00 B7 0C 46 08 41 44 43 |...D.CLC...F.ADC|
000004B0: 20 58 54 52 41 AA 31 00 C6 0C 48 08 53 54 41 20 | XTRA.1...H.STA |
000004C0: 58 54 52 41 AA 32 00 E1 0C 4A 08 4C 44 41 20 23 |XTRA.2...J.LDA #|
000004D0: 24 36 30 20 3B 44 49 53 41 42 4C 45 20 54 48 49 |$60 ;DISABLE THI|
000004E0: 53 00 01 0D 4C 08 53 54 41 20 53 54 41 52 54 20 |S...L.STA START |
000004F0: 3B 52 4F 55 54 49 4E 45 20 57 49 54 48 20 52 54 |;ROUTINE WITH RT|
00000500: 53 00 09 0D 4E 08 52 54 53 00 0F 0D 50 08 3B 00 |S...N.RTS...P.;.|
00000510: 2D 0D 52 08 54 56 45 43 20 2E 57 B0 44 20 24 41 |-.R.TVEC .W.D $A|
00000520: 35 37 43 20 3B 53 A4 52 41 47 45 20 81 00 4D 0D |57C ;S.RAGE ..M.|
00000530: 54 08 4C 56 45 43 20 2E 57 B0 44 20 24 41 37 31 |T.LVEC .W.D $A71|
00000540: 41 20 3B 4F 4C 44 20 56 45 43 A4 52 53 00 61 0D |A ;OLD VEC.RS.a.|
00000550: 56 08 45 56 45 43 20 2E 57 B0 44 20 24 41 37 45 |V.EVEC .W.D $A7E|
00000560: 34 00 75 0D 58 08 46 56 45 43 20 2E 57 B0 44 20 |4.u.X.FVEC .W.D |
00000570: 24 41 45 38 36 00 7B 0D 5A 08 3B 00 A4 0D 5C 08 |$AE86.{.Z.;...\.|
00000580: 4E 55 56 45 43 53 20 2E 57 B0 44 20 A4 4B 2C 4C |NUVECS .W.D .K,L|
00000590: 49 53 2C 45 58 43 2C 46 55 4E 20 3B A2 20 56 45 |IS,EXC,FUN ;. VE|
000005A0: 43 A4 52 53 00 AA 0D 5E 08 3B 00 C1 0D 60 08 A4 |C.RS...^.;...`..|
000005B0: 4B 20 4C 44 58 20 23 30 20 3B A4 4B 45 4E 49 5A |K LDX #0 ;.KENIZ|
000005C0: 45 00 CC 0D 62 08 4C 44 59 20 23 30 00 ED 0D 64 |E...b.LDY #0...d|
000005D0: 08 54 4B 31 20 4C 44 41 20 24 32 30 30 2C 58 20 |.TK1 LDA $200,X |
000005E0: 3B 46 45 54 43 48 20 41 20 42 59 54 45 00 0B 0E |;FETCH A BYTE...|
000005F0: 66 08 43 4D 50 20 23 24 32 32 20 3B 43 48 45 43 |f.CMP #$22 ;CHEC|
00000600: 4B 20 81 20 9F 20 51 55 4F 54 45 00 17 0E 68 08 |K . . QUOTE...h.|
00000610: 42 45 51 20 54 4B 39 00 39 0E 6A 08 4A 53 52 20 |BEQ TK9.9.j.JSR |
00000620: 43 8B 43 48 52 20 3B 43 48 45 43 4B 20 81 20 41 |C.CHR ;CHECK . A|
00000630: 4C 50 48 41 42 45 54 49 43 00 4F 0E 6C 08 42 43 |LPHABETIC.O.l.BC|
00000640: 43 20 54 4B 34 20 3B 53 4B 49 50 20 8B 20 A8 00 |C TK4 ;SKIP . ..|
00000650: 66 0E 6E 08 53 54 59 20 24 37 31 20 3B 94 20 2E |f.n.STY $71 ;. .|
00000660: 58 20 AF 20 2E 59 00 71 0E 70 08 53 54 58 20 54 |X . .Y.q.p.STX T|
00000670: 33 00 7C 0E 72 08 4C 44 59 20 23 30 00 98 0E 74 |3.|.r.LDY #0...t|
00000680: 08 53 54 59 20 24 30 42 20 3B 53 45 54 20 55 50 |.STY $0B ;SET UP|
00000690: 20 43 4F 55 4E 54 45 52 00 B0 0E 76 08 44 45 59 | COUNTER...v.DEY|
000006A0: 20 3B 53 45 54 20 55 50 20 49 4E 44 49 43 45 53 | ;SET UP INDICES|
000006B0: 00 B8 0E 78 08 44 45 58 00 C4 0E 7A 08 54 4B 32 |...x.DEX...z.TK2|
000006C0: 20 49 4E 59 00 CC 0E 7C 08 49 4E 58 00 F6 0E 7E | INY...|.INX...~|
000006D0: 08 54 4B 33 20 4C 44 41 20 24 32 30 30 2C 58 20 |.TK3 LDA $200,X |
000006E0: 3B 46 45 54 43 48 20 55 4E A4 4B 45 4E 49 5A 45 |;FETCH UN.KENIZE|
000006F0: 44 20 42 59 54 45 00 FE 0E 80 08 53 45 43 00 23 |D BYTE.....SEC.#|
00000700: 0F 82 08 53 42 43 20 53 4B 57 2C 59 20 3B 43 4F |...SBC SKW,Y ;CO|
00000710: 4D 50 41 52 45 20 57 49 54 48 20 4B 45 59 57 B0 |MPARE WITH KEYW.|
00000720: 44 20 9B 00 44 0F 84 08 42 45 51 20 54 4B 32 20 |D ..D...BEQ TK2 |
00000730: 3B CB 20 42 41 43 4B 20 81 20 41 A8 48 45 52 20 |;. BACK . A.HER |
00000740: 42 59 54 45 00 70 0F 86 08 43 4D 50 20 23 24 38 |BYTE.p...CMP #$8|
00000750: 30 20 3B 43 48 45 43 4B 20 81 20 4D 41 54 43 48 |0 ;CHECK . MATCH|
00000760: 20 45 58 43 45 50 54 20 48 49 47 48 20 42 49 54 | EXCEPT HIGH BIT|
00000770: 00 8A 0F 88 08 42 4E 45 20 54 4B 35 20 3B 54 52 |.....BNE TK5 ;TR|
00000780: 59 20 82 20 4B 45 59 57 B0 44 00 AC 0F 8A 08 4C |Y . KEYW.D.....L|
00000790: 44 41 20 23 24 35 46 20 3B 46 49 52 53 54 20 42 |DA #$5F ;FIRST B|
000007A0: 59 54 45 20 4F 46 20 A4 4B 45 4E 2C 00 C8 0F 8C |YTE OF .KEN,....|
000007B0: 08 4C 44 59 20 24 37 31 20 3B 54 48 45 20 4C 45 |.LDY $71 ;THE LE|
000007C0: 46 54 20 41 52 52 4F 57 00 D7 0F 8E 08 53 54 41 |FT ARROW.....STA|
000007D0: 20 24 32 30 30 2C 59 00 DF 0F 90 08 49 4E 59 00 | $200,Y.....INY.|
000007E0: FF 0F 92 08 4C 44 41 20 24 30 42 20 3B 53 45 43 |....LDA $0B ;SEC|
000007F0: 91 44 20 42 59 54 45 20 4F 46 20 A4 4B 45 4E 00 |.D BYTE OF .KEN.|
00000800: 0C 10 94 08 41 44 43 20 23 24 33 46 00 18 10 96 |....ADC #$3F....|
00000810: 08 54 4B 34 20 49 4E 58 00 27 10 98 08 53 54 41 |.TK4 INX.'...STA|
00000820: 20 24 32 30 30 2C 59 00 2F 10 9A 08 49 4E 59 00 | $200,Y./...INY.|
00000830: 5A 10 9C 08 4C 44 41 20 24 32 30 30 2C 59 20 3B |Z...LDA $200,Y ;|
00000840: 4C 4F 4F 50 20 55 4E 4C 45 53 53 20 4C 49 4E 45 |LOOP UNLESS LINE|
00000850: 20 45 58 48 41 55 53 54 45 44 00 66 10 9E 08 42 | EXHAUSTED.f...B|
00000860: 4E 45 20 54 4B 31 00 83 10 A0 08 4A 4D 50 20 28 |NE TK1.....JMP (|
00000870: 54 56 45 43 29 20 3B 52 45 4A 4F 49 4E 20 42 41 |TVEC) ;REJOIN BA|
00000880: 53 49 43 00 89 10 A2 08 3B 00 A7 10 A4 08 54 4B |SIC.....;.....TK|
00000890: 35 20 4C 44 58 20 54 33 20 3B 46 49 4E 44 20 82 |5 LDX T3 ;FIND .|
000008A0: 20 4B 45 59 57 B0 44 00 B7 10 A6 08 54 4B 36 20 | KEYW.D.....TK6 |
000008B0: 49 4E 43 20 24 30 42 00 C3 10 A8 08 4C 44 41 20 |INC $0B.....LDA |
000008C0: 24 30 42 00 EA 10 AA 08 43 4D 50 20 23 24 31 45 |$0B.....CMP #$1E|
000008D0: 20 3B 53 4B 49 50 20 50 41 53 54 20 BD 91 45 4E | ;SKIP PAST ..EN|
000008E0: 54 49 41 54 45 20 A4 4B 45 4E 00 F6 10 AC 08 42 |TIATE .KEN.....B|
000008F0: 45 51 20 54 4B 36 00 02 11 AE 08 54 4B 37 20 49 |EQ TK6.....TK7 I|
00000900: 4E 59 00 12 11 B0 08 4C 44 41 20 53 4B 57 AB 31 |NY.....LDA SKW.1|
00000910: 2C 59 00 1E 11 B2 08 42 50 4C 20 54 4B 37 00 2C |,Y.....BPL TK7.,|
00000920: 11 B4 08 4C 44 41 20 53 4B 57 2C 59 00 38 11 B6 |...LDA SKW,Y.8..|
00000930: 08 42 4E 45 20 54 4B 33 00 59 11 B8 08 4C 44 59 |.BNE TK3.Y...LDY|
00000940: 20 24 37 31 20 3B 4E 4F 20 4D 41 54 43 48 49 4E | $71 ;NO MATCHIN|
00000950: 47 20 4B 45 59 57 B0 44 2C 00 7B 11 BA 08 4C 44 |G KEYW.D,.{...LD|
00000960: 41 20 24 32 30 30 2C 58 20 3B 47 49 56 45 20 55 |A $200,X ;GIVE U|
00000970: 50 20 41 54 54 45 4D 50 54 20 A4 00 90 11 BC 08 |P ATTEMPT ......|
00000980: 42 50 4C 20 54 4B 34 20 3B A4 4B 45 4E 49 5A 45 |BPL TK4 ;.KENIZE|
00000990: 00 96 11 BE 08 3B 00 B6 11 C0 08 54 4B 38 20 4C |.....;.....TK8 L|
000009A0: 44 41 20 24 32 30 30 2C 58 20 3B 53 43 41 4E 20 |DA $200,X ;SCAN |
000009B0: 81 20 80 20 4F 46 00 CF 11 C2 08 42 45 51 20 54 |. . OF.....BEQ T|
000009C0: 4B 34 20 3B 4C 49 4E 45 20 B0 20 80 20 4F 46 00 |K4 ;LINE . . OF.|
000009D0: EC 11 C4 08 43 4D 50 20 23 24 32 32 20 3B 51 55 |....CMP #$22 ;QU|
000009E0: 4F 54 45 53 20 57 49 54 48 4F 55 54 00 03 12 C6 |OTES WITHOUT....|
000009F0: 08 42 45 51 20 54 4B 34 20 3B A4 4B 45 4E 49 5A |.BEQ TK4 ;.KENIZ|
00000A00: 49 4E 47 00 16 12 C8 08 54 4B 39 20 53 54 41 20 |ING.....TK9 STA |
00000A10: 24 32 30 30 2C 59 00 1E 12 CA 08 49 4E 59 00 26 |$200,Y.....INY.&|
00000A20: 12 CC 08 49 4E 58 00 32 12 CE 08 42 4E 45 20 54 |...INX.2...BNE T|
00000A30: 4B 38 00 38 12 D0 08 3B 00 57 12 D2 08 4C 49 53 |K8.8...;.W...LIS|
00000A40: 20 43 4D 50 20 23 24 35 46 20 3B 9B 20 AB 20 BD | CMP #$5F ;. . .|
00000A50: AF 20 A4 4B 45 4E 53 00 77 12 D4 08 42 4E 45 20 |. .KENS.w...BNE |
00000A60: 4C 32 20 3B 53 4B 49 50 20 8B 20 A8 20 4C 45 46 |L2 ;SKIP . . LEF|
00000A70: 54 AB 41 52 52 4F 57 00 8A 12 D6 08 49 4E 59 20 |T.ARROW.....INY |
00000A80: 3B A1 20 82 20 42 59 54 45 2C 00 A9 12 D8 08 4C |;. . BYTE,.....L|
00000A90: 44 41 20 28 24 35 46 29 2C 59 20 3B 43 91 56 45 |DA ($5F),Y ;C.VE|
00000AA0: 52 54 20 A4 20 A4 4B 45 4E 00 BE 12 DA 08 53 42 |RT . .KEN.....SB|
00000AB0: 43 20 23 24 34 30 20 3B 4E 55 4D 42 45 52 00 CB |C #$40 ;NUMBER..|
00000AC0: 12 DC 08 43 4D 50 20 23 24 31 45 00 D6 12 DE 08 |...CMP #$1E.....|
00000AD0: 42 43 43 20 4C 31 00 E1 12 E0 08 53 42 43 20 23 |BCC L1.....SBC #|
00000AE0: 31 00 06 13 E2 08 4C 31 20 43 4D 50 20 58 54 52 |1.....L1 CMP XTR|
00000AF0: 41 AA 32 20 3B 43 48 45 43 4B 20 8B 20 49 4E 20 |A.2 ;CHECK . IN |
00000B00: 42 4F 55 4E 44 53 00 22 13 E4 08 42 43 43 20 4C |BOUNDS."...BCC L|
00000B10: 33 20 3B CB 20 53 43 41 4E 20 4B 45 59 57 B0 44 |3 ;. SCAN KEYW.D|
00000B20: 20 9B 00 2A 13 E6 08 44 45 59 00 48 13 E8 08 4C | ..*...DEY.H...L|
00000B30: 44 41 20 28 24 35 46 29 2C 59 20 3B 52 45 4A 4F |DA ($5F),Y ;REJO|
00000B40: 49 4E 20 42 41 53 49 43 00 53 13 EA 08 4C 32 20 |IN BASIC.S...L2 |
00000B50: 54 41 58 00 62 13 EC 08 4A 4D 50 20 28 4C 56 45 |TAX.b...JMP (LVE|
00000B60: 43 29 00 68 13 EE 08 3B 00 87 13 F0 08 4C 33 20 |C).h...;.....L3 |
00000B70: 53 54 59 20 54 33 20 3B 43 4F 55 4E 54 44 4F 57 |STY T3 ;COUNTDOW|
00000B80: 4E 20 49 4E 20 2E 58 00 A2 13 F2 08 4C 44 59 20 |N IN .X.....LDY |
00000B90: 23 30 20 3B 57 48 49 4C 45 20 53 43 41 4E 4E 49 |#0 ;WHILE SCANNI|
00000BA0: 4E 47 00 B4 13 F4 08 54 41 58 20 3B 4B 45 59 57 |NG.....TAX ;KEYW|
00000BB0: B0 44 20 9B 00 BF 13 F6 08 42 45 51 20 4C 35 00 |.D ......BEQ L5.|
00000BC0: D0 13 F8 08 4C 34 20 4C 44 41 20 53 4B 57 2C 59 |....L4 LDA SKW,Y|
00000BD0: 00 D8 13 FA 08 50 48 50 00 E0 13 FC 08 49 4E 59 |.....PHP.....INY|
00000BE0: 00 E8 13 FE 08 50 4C 50 00 00 14 00 09 42 50 4C |.....PLP.....BPL|
00000BF0: 20 4C 34 20 3B 4C 41 53 54 20 4B 45 59 57 B0 44 | L4 ;LAST KEYW.D|
00000C00: 00 1B 14 02 09 44 45 58 20 3B 43 48 41 52 41 43 |.....DEX ;CHARAC|
00000C10: 54 45 52 20 48 41 53 20 42 49 54 00 2D 14 04 09 |TER HAS BIT.-...|
00000C20: 42 4E 45 20 4C 34 20 3B 37 20 53 45 54 00 33 14 |BNE L4 ;7 SET.3.|
00000C30: 06 09 3B 00 4E 14 08 09 4C 35 20 4C 44 41 20 53 |..;.N...L5 LDA S|
00000C40: 4B 57 2C 59 20 3B 99 20 4B 45 59 57 B0 44 00 63 |KW,Y ;. KEYW.D.c|
00000C50: 14 0A 09 50 48 50 20 3B 55 BF 47 20 42 41 53 49 |...PHP ;U.G BASI|
00000C60: 43 27 53 00 7B 14 0C 09 AF 20 23 24 37 46 20 3B |C'S.{.... #$7F ;|
00000C70: 43 48 41 52 41 43 54 45 52 AB 99 00 9B 14 0E 09 |CHARACTER.......|
00000C80: 4A 53 52 20 24 41 42 34 37 20 3B 52 4F 55 54 49 |JSR $AB47 ;ROUTI|
00000C90: 4E 45 20 41 54 20 24 41 42 34 37 00 A3 14 10 09 |NE AT $AB47.....|
00000CA0: 49 4E 59 00 AB 14 12 09 50 4C 50 00 B6 14 14 09 |INY.....PLP.....|
00000CB0: 42 50 4C 20 4C 35 00 C1 14 16 09 4C 44 59 20 54 |BPL L5.....LDY T|
00000CC0: 33 00 E0 14 18 09 4C 36 20 4A 4D 50 20 24 41 37 |3.....L6 JMP $A7|
00000CD0: 30 30 20 3B 52 45 4A 4F 49 4E 20 42 41 53 49 43 |00 ;REJOIN BASIC|
00000CE0: 00 E6 14 1A 09 3B 00 09 15 1C 09 45 58 43 20 4A |.....;.....EXC J|
00000CF0: 53 52 20 24 37 33 20 3B 45 58 45 43 55 54 45 20 |SR $73 ;EXECUTE |
00000D00: 53 54 41 54 45 4D 45 4E 54 00 2C 15 1E 09 45 58 |STATEMENT.,...EX|
00000D10: 31 20 43 4D 50 20 23 24 38 42 20 3B 27 8B 27 AB |1 CMP #$8B ;'.'.|
00000D20: 48 AF 4C 45 20 41 54 20 8B 52 54 4E 00 38 15 20 |H.LE AT .RTN.8. |
00000D30: 09 42 45 51 20 45 58 38 00 55 15 22 09 43 4D 50 |.BEQ EX8.U.".CMP|
00000D40: 20 23 24 35 46 20 3B 54 48 45 20 4C 45 46 54 20 | #$5F ;THE LEFT |
00000D50: 41 52 52 4F 57 00 76 15 24 09 42 4E 45 20 45 58 |ARROW.v.$.BNE EX|
00000D60: 35 20 3B 53 4B 49 50 20 A4 20 52 45 4A 4F 49 4E |5 ;SKIP . REJOIN|
00000D70: 20 42 41 53 49 43 00 8C 15 26 09 4A 53 52 20 24 | BASIC...&.JSR $|
00000D80: 37 33 20 3B A1 20 82 20 42 59 54 45 00 A1 15 28 |73 ;. . BYTE...(|
00000D90: 09 4A 53 52 20 45 58 32 20 3B 45 58 45 43 55 54 |.JSR EX2 ;EXECUT|
00000DA0: 45 00 C3 15 2A 09 4A 4D 50 20 24 41 37 41 45 20 |E...*.JMP $A7AE |
00000DB0: 3B 53 45 54 20 55 50 20 82 20 53 54 41 54 45 4D |;SET UP . STATEM|
00000DC0: 45 4E 54 00 C9 15 2C 09 3B 00 E4 15 2E 09 45 58 |ENT...,.;.....EX|
00000DD0: 32 20 53 45 43 20 3B 43 91 56 45 52 54 20 A4 4B |2 SEC ;C.VERT .K|
00000DE0: 45 4E 20 A4 00 00 16 30 09 53 42 43 20 23 24 34 |EN ....0.SBC #$4|
00000DF0: 30 20 3B 4B 45 59 57 B0 44 20 4E 55 4D 42 45 52 |0 ;KEYW.D NUMBER|
00000E00: 00 0D 16 32 09 43 4D 50 20 23 24 31 45 00 19 16 |...2.CMP #$1E...|
00000E10: 34 09 42 43 43 20 45 58 33 00 24 16 36 09 53 42 |4.BCC EX3.$.6.SB|
00000E20: 43 20 23 31 00 48 16 38 09 45 58 33 20 43 4D 50 |C #1.H.8.EX3 CMP|
00000E30: 20 58 54 52 41 20 3B 43 48 45 43 4B 20 8B 20 49 | XTRA ;CHECK . I|
00000E40: 4E 20 42 4F 55 4E 44 53 00 61 16 3A 09 42 43 53 |N BOUNDS.a.:.BCS|
00000E50: 20 45 58 37 20 3B 53 59 4E 54 41 58 20 45 52 52 | EX7 ;SYNTAX ERR|
00000E60: B0 00 69 16 3C 09 41 53 4C 00 71 16 3E 09 54 41 |..i.<.ASL.q.>.TA|
00000E70: 59 00 8D 16 40 09 4C 44 41 20 9D 53 AA 31 2C 59 |Y...@.LDA .S.1,Y|
00000E80: 20 3B 46 45 54 43 48 20 56 45 43 A4 52 00 A9 16 | ;FETCH VEC.R...|
00000E90: 42 09 50 48 41 20 3B 41 44 44 52 45 53 53 20 46 |B.PHA ;ADDRESS F|
00000EA0: 52 4F 4D 20 54 41 42 4C 45 00 B6 16 44 09 4C 44 |ROM TABLE...D.LD|
00000EB0: 41 20 9D 53 2C 59 00 D1 16 46 09 50 48 41 20 3B |A .S,Y...F.PHA ;|
00000EC0: 4A 55 4D 50 20 54 48 52 4F 55 47 48 20 43 48 52 |JUMP THROUGH CHR|
00000ED0: A1 00 F2 16 48 09 4A 4D 50 20 24 37 33 20 3B A4 |....H.JMP $73 ;.|
00000EE0: 20 53 54 41 54 45 4D 45 4E 54 20 52 4F 55 54 49 | STATEMENT ROUTI|
00000EF0: 4E 45 00 F8 16 4A 09 3B 00 18 17 4C 09 45 58 35 |NE...J.;...L.EX5|
00000F00: 20 4C 44 41 20 24 37 41 20 3B 44 45 43 8F 45 4E | LDA $7A ;DEC.EN|
00000F10: 54 20 43 48 52 47 45 54 00 2B 17 4E 09 42 4E 45 |T CHRGET.+.N.BNE|
00000F20: 20 45 58 36 20 3B 50 4F B5 45 52 00 37 17 50 09 | EX6 ;PO.ER.7.P.|
00000F30: 44 45 43 20 24 37 42 00 47 17 52 09 45 58 36 20 |DEC $7B.G.R.EX6 |
00000F40: 44 45 43 20 24 37 41 00 64 17 54 09 4A 4D 50 20 |DEC $7A.d.T.JMP |
00000F50: 28 45 56 45 43 29 20 3B 52 45 4A 4F 49 4E 20 42 |(EVEC) ;REJOIN B|
00000F60: 41 53 49 43 00 6A 17 56 09 3B 00 89 17 58 09 45 |ASIC.j.V.;...X.E|
00000F70: 58 37 20 4A 4D 50 20 24 41 46 30 38 20 3B 53 59 |X7 JMP $AF08 ;SY|
00000F80: 4E 54 41 58 20 45 52 52 B0 00 8F 17 5A 09 3B 00 |NTAX ERR....Z.;.|
00000F90: AC 17 5C 09 45 58 38 20 4A 53 52 20 45 58 39 3B |..\.EX8 JSR EX9;|
00000FA0: 20 45 58 45 43 55 54 45 20 27 8B 27 00 CE 17 5E | EXECUTE '.'...^|
00000FB0: 09 4A 4D 50 20 24 41 37 41 45 20 3B 53 45 54 20 |.JMP $A7AE ;SET |
00000FC0: 55 50 20 82 20 53 54 41 54 45 4D 45 4E 54 00 D4 |UP . STATEMENT..|
00000FD0: 17 60 09 3B 00 F1 17 62 09 45 58 39 20 4C 44 41 |.`.;...b.EX9 LDA|
00000FE0: 20 23 B1 8B 52 54 4E AB 31 20 3B 4A 55 4D 50 20 | #..RTN.1 ;JUMP |
00000FF0: A4 00 07 18 64 09 50 48 41 20 3B 27 8B 27 20 45 |....d.PHA ;'.' E|
00001000: 58 45 43 55 54 49 91 00 21 18 66 09 4C 44 41 20 |XECUTI..!.f.LDA |
00001010: 23 B3 8B 52 54 4E AB 31 20 3B 52 4F 55 54 49 4E |#..RTN.1 ;ROUTIN|
00001020: 45 00 29 18 68 09 50 48 41 00 35 18 6A 09 4A 4D |E.).h.PHA.5.j.JM|
00001030: 50 20 24 37 33 00 3B 18 6C 09 3B 00 5B 18 6E 09 |P $73.;.l.;.[.n.|
00001040: 46 55 4E 20 4A 53 52 20 24 37 33 20 3B 45 C5 55 |FUN JSR $73 ;E.U|
00001050: 41 54 45 20 46 55 4E 43 54 49 91 00 74 18 70 09 |ATE FUNCTI..t.p.|
00001060: 43 4D 50 20 23 24 35 46 20 3B 4C 45 46 54 20 41 |CMP #$5F ;LEFT A|
00001070: 52 52 4F 57 00 9B 18 72 09 42 45 51 20 46 55 32 |RROW...r.BEQ FU2|
00001080: 20 3B 45 C5 55 41 54 45 20 54 52 41 4E 53 42 41 | ;E.UATE TRANSBA|
00001090: 53 49 43 20 46 55 4E 43 54 49 91 00 B7 18 74 09 |SIC FUNCTI....t.|
000010A0: 4C 44 41 20 24 37 41 20 3B 44 45 43 8F 45 4E 54 |LDA $7A ;DEC.ENT|
000010B0: 20 43 48 52 47 45 54 00 CB 18 76 09 42 4E 45 20 | CHRGET...v.BNE |
000010C0: 46 55 31 20 3B 50 4F B5 45 52 2C 00 E5 18 78 09 |FU1 ;PO.ER,...x.|
000010D0: 44 45 43 20 24 37 42 20 3B 52 45 4A 4F 49 4E 20 |DEC $7B ;REJOIN |
000010E0: 42 41 53 49 43 00 F5 18 7A 09 46 55 31 20 44 45 |BASIC...z.FU1 DE|
000010F0: 43 20 24 37 41 00 04 19 7C 09 4A 4D 50 20 28 46 |C $7A...|.JMP (F|
00001100: 56 45 43 29 00 0A 19 7E 09 3B 00 30 19 80 09 46 |VEC)...~.;.0...F|
00001110: 55 32 20 4C 44 41 20 23 30 20 3B 43 4C 45 41 52 |U2 LDA #0 ;CLEAR|
00001120: 20 83 20 54 59 50 45 20 52 45 47 49 53 54 45 52 | . TYPE REGISTER|
00001130: 00 3C 19 82 09 53 54 41 20 24 30 44 00 60 19 84 |.<...STA $0D.`..|
00001140: 09 4A 53 52 20 24 37 33 20 3B 46 45 54 43 48 20 |.JSR $73 ;FETCH |
00001150: 4B 45 59 57 B0 44 20 49 2E 44 2E 20 42 59 54 45 |KEYW.D I.D. BYTE|
00001160: 00 7E 19 86 09 53 45 43 20 3B 43 91 56 45 52 54 |.~...SEC ;C.VERT|
00001170: 20 4B 45 59 57 B0 44 20 4E 55 4D 42 45 52 00 8B | KEYW.D NUMBER..|
00001180: 19 88 09 53 42 43 20 23 24 34 30 00 98 19 8A 09 |...SBC #$40.....|
00001190: 43 4D 50 20 23 24 31 45 00 A4 19 8C 09 42 43 43 |CMP #$1E.....BCC|
000011A0: 20 46 55 33 00 AF 19 8E 09 53 42 43 20 23 31 00 | FU3.....SBC #1.|
000011B0: CD 19 90 09 46 55 33 20 53 45 43 20 3B 43 48 45 |....FU3 SEC ;CHE|
000011C0: 43 4B 20 8B 20 49 4E 20 52 41 4E 47 45 00 DA 19 |CK . IN RANGE...|
000011D0: 92 09 53 42 43 20 58 54 52 41 00 F3 19 94 09 42 |..SBC XTRA.....B|
000011E0: 43 43 20 45 58 37 20 3B 53 59 4E 54 41 58 20 45 |CC EX7 ;SYNTAX E|
000011F0: 52 52 B0 00 02 1A 96 09 43 4D 50 20 58 54 52 41 |RR......CMP XTRA|
00001200: AA 31 00 1B 1A 98 09 42 43 53 20 45 58 37 20 3B |.1.....BCS EX7 ;|
00001210: 53 59 4E 54 41 58 20 45 52 52 B0 00 32 1A 9A 09 |SYNTAX ERR..2...|
00001220: 41 53 4C 20 3B 46 45 54 43 48 20 46 55 4E 43 54 |ASL ;FETCH FUNCT|
00001230: 49 91 00 4C 1A 9C 09 54 41 59 20 3B 56 45 43 A4 |I..L...TAY ;VEC.|
00001240: 52 20 46 52 4F 4D 20 54 41 42 4C 45 00 5C 1A 9E |R FROM TABLE.\..|
00001250: 09 4C 44 41 20 A5 43 53 AA 31 2C 59 00 64 1A A0 |.LDA .CS.1,Y.d..|
00001260: 09 50 48 41 00 72 1A A2 09 4C 44 41 20 A5 43 53 |.PHA.r...LDA .CS|
00001270: 2C 59 00 8A 1A A4 09 50 48 41 20 3B 4A 55 4D 50 |,Y.....PHA ;JUMP|
00001280: 20 A4 20 46 55 4E 43 54 49 91 00 AC 1A A6 09 4A | . FUNCTI......J|
00001290: 4D 50 20 24 37 33 20 3B 52 4F 55 54 49 4E 45 20 |MP $73 ;ROUTINE |
000012A0: 54 48 52 4F 55 47 48 20 43 48 52 A1 00 B2 1A A8 |THROUGH CHR.....|
000012B0: 09 3B 00 DA 1A AA 09 8B 52 54 4E 20 4A 53 52 20 |.;......RTN JSR |
000012C0: 24 41 44 39 45 20 3B 45 C5 55 41 54 45 20 54 45 |$AD9E ;E.UATE TE|
000012D0: 53 54 20 BD 52 45 53 53 49 91 00 E6 1A AC 09 4A |ST .RESSI......J|
000012E0: 53 52 20 24 37 39 00 08 1B AE 09 43 4D 50 20 23 |SR $79.....CMP #|
000012F0: 24 38 39 20 3B 4D 55 53 54 20 42 45 20 46 4F 4C |$89 ;MUST BE FOL|
00001300: 4C 4F 57 45 44 20 42 59 00 1C 1B B0 09 42 45 51 |LOWED BY.....BEQ|
00001310: 20 8B 31 20 3B 89 20 28 24 38 39 29 00 34 1B B2 | .1 ;. ($89).4..|
00001320: 09 4C 44 41 20 23 24 41 37 20 3B B0 20 A7 20 28 |.LDA #$A7 ;. . (|
00001330: 24 41 37 29 00 42 1B B4 09 4A 53 52 20 24 41 45 |$A7).B...JSR $AE|
00001340: 46 46 00 68 1B B6 09 8B 31 20 4A 53 52 20 24 37 |FF.h....1 JSR $7|
00001350: 39 20 3B 43 4C 45 41 52 20 43 41 52 52 59 20 91 |9 ;CLEAR CARRY .|
00001360: 20 4E 55 4D 45 52 49 43 00 89 1B B8 09 4C 44 58 | NUMERIC.....LDX|
00001370: 20 24 36 31 20 3B 43 48 45 43 4B 20 8B 20 54 45 | $61 ;CHECK . TE|
00001380: 53 54 20 46 41 49 4C 45 44 00 AB 1B BA 09 42 45 |ST FAILED.....BE|
00001390: 51 20 45 4C 53 52 54 4E 20 3B 59 45 53 20 AB 20 |Q ELSRTN ;YES . |
000013A0: 53 4B 49 50 20 A4 20 45 4C 53 45 00 B6 1B BC 09 |SKIP . ELSE.....|
000013B0: 42 43 53 20 8B 32 00 C7 1B BE 09 4A 4D 50 20 24 |BCS .2.....JMP $|
000013C0: 41 38 41 30 20 3B 89 00 E5 1B C0 09 8B 32 20 50 |A8A0 ;.......2 P|
000013D0: 4C 41 20 3B 45 58 45 43 55 54 45 20 53 54 41 54 |LA ;EXECUTE STAT|
000013E0: 45 4D 45 4E 54 00 F8 1B C2 09 50 4C 41 20 3B 41 |EMENT.....PLA ;A|
000013F0: 46 54 45 52 20 27 A7 27 00 04 1C C4 09 4A 53 52 |FTER '.'.....JSR|
00001400: 20 24 37 39 00 10 1C C6 09 4A 4D 50 20 45 58 31 | $79.....JMP EX1|
00001410: 00 16 1C D0 09 3B 00 3B 1C D2 09 45 4C 53 52 54 |.....;.;...ELSRT|
00001420: 4E 20 4A 53 52 20 24 41 38 46 38 20 3B 53 4B 49 |N JSR $A8F8 ;SKI|
00001430: 50 20 53 54 41 54 45 4D 45 4E 54 00 47 1C D4 09 |P STATEMENT.G...|
00001440: 4A 53 52 20 24 37 39 00 5B 1C D6 09 43 4D 50 20 |JSR $79.[...CMP |
00001450: 23 30 20 3B 52 54 53 20 8B 20 80 00 6E 1C D8 09 |#0 ;RTS . ..n...|
00001460: 42 4E 45 20 45 4C 53 31 20 3B 4F 46 20 9B 00 76 |BNE ELS1 ;OF ..v|
00001470: 1C DA 09 52 54 53 00 95 1C DC 09 45 4C 53 31 20 |...RTS.....ELS1 |
00001480: 4A 53 52 20 24 37 33 20 3B 43 48 45 43 4B 20 81 |JSR $73 ;CHECK .|
00001490: 20 45 4C 53 45 00 A8 1C DE 09 43 4D 50 20 23 24 | ELSE.....CMP #$|
000014A0: 35 46 20 3B A4 4B 45 4E 00 B7 1C E0 09 42 4E 45 |5F ;.KEN.....BNE|
000014B0: 20 45 4C 53 52 54 4E 00 C3 1C E2 09 4A 53 52 20 | ELSRTN.....JSR |
000014C0: 24 37 33 00 D0 1C E4 09 43 4D 50 20 23 24 34 30 |$73.....CMP #$40|
000014D0: 00 DF 1C E6 09 42 4E 45 20 45 4C 53 52 54 4E 00 |.....BNE ELSRTN.|
000014E0: F4 1C E8 09 4A 53 52 20 24 37 33 20 3B 45 58 45 |....JSR $73 ;EXE|
000014F0: 43 55 54 45 00 FF 1C EA 09 4A 4D 50 20 8B 32 00 |CUTE.....JMP .2.|
00001500: 05 1D EC 09 3B 00 22 1D EE 09 45 58 54 20 4C 44 |....;."...EXT LD|
00001510: 58 20 23 37 20 3B 45 58 49 54 20 52 4F 55 54 49 |X #7 ;EXIT ROUTI|
00001520: 4E 45 00 3D 1D F0 09 45 58 54 31 20 4C 44 41 20 |NE.=...EXT1 LDA |
00001530: 54 56 45 43 2C 58 20 3B 8C 20 4F 4C 44 00 54 1D |TVEC,X ;. OLD.T.|
00001540: F2 09 53 54 41 20 24 33 30 34 2C 58 20 3B 56 45 |..STA $304,X ;VE|
00001550: 43 A4 52 53 00 5C 1D F4 09 44 45 58 00 69 1D F6 |C.RS.\...DEX.i..|
00001560: 09 42 50 4C 20 45 58 54 31 00 84 1D F8 09 4C 44 |.BPL EXT1.....LD|
00001570: 41 20 23 24 41 32 20 3B 8C 20 4C 44 58 20 43 4F |A #$A2 ;. LDX CO|
00001580: 44 45 20 A4 00 A8 1D FA 09 53 54 41 20 53 54 41 |DE ......STA STA|
00001590: 52 54 20 3B 45 4E 41 42 4C 45 20 53 54 41 52 54 |RT ;ENABLE START|
000015A0: 20 52 4F 55 54 49 4E 45 00 D2 1D FC 09 4A 4D 50 | ROUTINE.....JMP|
000015B0: 20 50 44 4F 57 4E 20 3B 44 4F 20 50 4F 57 44 4F | PDOWN ;DO POWDO|
000015C0: 57 4E 20 43 4F 4D 4D AF 20 8B 20 50 52 45 53 45 |WN COMM. . PRESE|
000015D0: 4E 54 00 D8 1D FE 09 3B 00 F8 1D 00 0A 43 8B 43 |NT.....;.....C.C|
000015E0: 48 52 20 43 4D 50 20 23 24 35 42 20 3B 8E 20 43 |HR CMP #$5B ;. C|
000015F0: 41 52 52 59 20 53 45 54 00 13 1E 02 0A 42 43 43 |ARRY SET.....BCC|
00001600: 20 43 49 43 31 20 3B 8B 20 41 43 43 55 4D 55 4C | CIC1 ;. ACCUMUL|
00001610: 41 A4 52 00 22 1E 04 0A 43 4C 43 20 3B 9A 41 49 |A.R."...CLC ;.AI|
00001620: 4E 53 00 3B 1E 06 0A 42 43 43 20 43 49 43 32 20 |NS.;...BCC CIC2 |
00001630: 3B 41 4C 50 48 41 42 45 54 49 43 00 4D 1E 08 0A |;ALPHABETIC.M...|
00001640: 43 49 43 31 20 43 4D 50 20 23 24 34 31 00 5A 1E |CIC1 CMP #$41.Z.|
00001650: 0A 0A 43 49 43 32 20 52 54 53 00 60 1E 0C 0A 3B |..CIC2 RTS.`...;|
00001660: 00 82 1E 66 14 50 44 4F 57 4E 20 52 54 53 20 3B |...f.PDOWN RTS ;|
00001670: 81 20 55 53 45 52 53 20 4F 46 20 27 50 4F 57 45 |. USERS OF 'POWE|
00001680: 52 27 00 88 1E 68 14 3B 00 00 00 |R'...h.;... |
..'.... TRANSBASIC KERNAL (SETP 28/84):.
-...:.M.... 2 STATEMENTS, 0 FUNCTIONS.S.
..:.P.... KEYWORDS CHARACTERS: 8.V...:..
.... KEYWORD ROUTINE LINE SER#......
S/ELSE ELSRTN 2514 001...... S/EXIT
EXT 2542 002.....:...... UTILIT
Y: CIFCHR (2560/003).....:...... KERNAL
ALSO INCLUDES MODIFIED.T.... "IF" STATEM
ENT (IFRTN/2474/000).Z...:...... B(773).
192 . 29: . TEST IF TRANSBASIC ALREADY E
NABLED.....:....._A:. 'EXIT' STATEMENT T
OKEN.B...:.L.... 700.X....OPT OO.......
$C000... .;...!.T2 . 2 ;TRANSBASIC TAKES
OVER THE.4.".T3 . 3 ;UNUSED LOCATI. AT
2, ..U.#.T4 . 4 ;THE NUMERIC C.VERSI..W.
$.T5 . 5 ;VEC.RS AT 3 . 5 . ITS...%.T6 .
6 ;ZERO PAGE W.KSPACE...&.;...[.;...\.J
MP START.S.].JMP EXT ;EMERGENCY EXIT .49
155.Y.^.;..._.XTRA .BYTE 2,0 ;STMTS,FUNC
TS...`.;...A..BYTE 0...B.;.2.C.SKW . . ;
STATEMENT KEYW.D ..D.D..F "ELSEEXIT".J.V
.;.I.W.FKW . . ;FUNCTI. KEYW.DS ..O.H.;.
..I..BYTE 0 ;KEYW.D . TERMINA.R...J.;...
K..S . . ;STATEMENT VEC.R.F.L..W.D $A93A
,EXT.1.L.>.;...?..CS . . ;FUNCTI. VEC.RS
...3.;...4.START LDX #7 ;SWAP OUT OLD.0.
6.STT1 LDA $304,X ;BASIC VEC.RS,.N.8.STA
TVEC,X ;SWAP IN . .ES._.:.LDA NUVECS,X.
N.<.STA $304,X.V.>.DEX...@.BPL STT1. .B.
LDA XTRA ;CALCULATE .TAL...D.CLC...F.ADC
XTRA.1.F.H.STA XTRA.2...J.LDA #$60 ;DIS
ABLE THIS...L.STA START ;ROUTINE WITH RT
S...N.RTS...P.;.-.R.TVEC .W.D $A57C ;S.R
AGE ..M.T.LVEC .W.D $A71A ;OLD VEC.RS.A.
V.EVEC .W.D $A7E4.U.X.FVEC .W.D $AE86.{.
Z.;...\.NUVECS .W.D .K,LIS,EXC,FUN ;. VE
C.RS...^.;.A.`..K LDX #0 ;.KENIZE.L.B.LD
Y #0...D.TK1 LDA $200,X ;FETCH A BYTE...
F.CMP #$22 ;CHECK . . QUOTE...H.BEQ TK9.
9.J.JSR C.CHR ;CHECK . ALPHABETIC.O.L.BC
C TK4 ;SKIP . ..F.N.STY $71 ;. .X . .Y.Q
.P.STX T3.|.R.LDY #0...T.STY $0B ;SET UP
COUNTER...V.DEY ;SET UP INDICES...X.DEX
.D.Z.TK2 INY.L.|.INX...~.TK3 LDA $200,X
;FETCH UN.KENIZED BYTE.....SEC.#...SBC S
KW,Y ;COMPARE WITH KEYW.D ..D...BEQ TK2
;K BACK . A.HER BYTE.P...CMP #$80 ;CHECK
. MATCH EXCEPT HIGH BIT.....BNE TK5 ;TR
Y . KEYW.D.....LDA #$5F ;FIRST BYTE OF .
KEN,.H...LDY $71 ;THE LEFT ARROW.W...STA
$200,Y.....INY.....LDA $0B ;SEC.D BYTE
OF .KEN.....ADC #$3F.....TK4 INX.'...STA
$200,Y./...INY.Z...LDA $200,Y ;LOOP UNL
ESS LINE EXHAUSTED.F...BNE TK1... .JMP (
TVEC) ;REJOIN BASIC.....;.....TK5 LDX T3
;FIND . KEYW.D.....TK6 INC $0B.C...LDA
$0B.....CMP #$1E ;SKIP PAST ..ENTIATE .K
EN.....BEQ TK6.....TK7 INY.....LDA SKW.1
,Y.....BPL TK7.,...LDA SKW,Y.8...BNE TK3
.Y...LDY $71 ;NO MATCHING KEYW.D,.{...LD
A $200,X ;GIVE UP ATTEMPT ......BPL TK4
;.KENIZE.....;.....TK8 LDA $200,X ;SCAN
. . OF.O.B.BEQ TK4 ;LINE . . OF...D.CMP
#$22 ;QUOTES WITHOUT...F.BEQ TK4 ;.KENIZ
ING...H.TK9 STA $200,Y...J.INY.&.L.INX.2
.N.BNE TK8.8.P.;.W.R.LIS CMP #$5F ;. . .
. .KENS.W.T.BNE L2 ;SKIP . . LEFT.ARROW.
..V.INY ;. . BYTE,...X.LDA ($5F),Y ;C.VE
RT . .KEN...Z.SBC #$40 ;NUMBER.K...CMP #
$1E.V...BCC L1.....SBC #1.....L1 CMP XTR
A.2 ;CHECK . IN BOUNDS."...BCC L3 ;K SCA
N KEYW.D ..*...DEY.H...LDA ($5F),Y ;REJO
IN BASIC.S...L2 TAX.B...JMP (LVEC).H...;
.....L3 STY T3 ;COUNTDOWN IN .X.....LDY
#0 ;WHILE SCANNING.....TAX ;KEYW.D .....
.BEQ L5.P...L4 LDA SKW,Y.X...PHP.....INY
.....PLP.....BPL L4 ;LAST KEYW.D.....DEX
;CHARACTER HAS BIT.-...BNE L4 ;7 SET.3.
..;.N...L5 LDA SKW,Y ;. KEYW.D.C...PHP ;
U.G BASIC'S.{.... #$7F ;CHARACTER.......
JSR $AB47 ;ROUTINE AT $AB47.....INY.....
PLP.....BPL L5.A...LDY T3.....L6 JMP $A7
00 ;REJOIN BASIC.....;.....EXC JSR $73 ;
EXECUTE STATEMENT.,...EX1 CMP #$8B ;'.'.
H.LE AT .RTN.8. .BEQ EX8.U.".CMP #$5F ;T
HE LEFT ARROW.V.$.BNE EX5 ;SKIP . REJOIN
BASIC...&.JSR $73 ;. . BYTE...(.JSR EX2
;EXECUTE.C.*.JMP $A7AE ;SET UP . STATEM
ENT.I.,.;.....EX2 SEC ;C.VERT .KEN ....0
.SBC #$40 ;KEYW.D NUMBER...2.CMP #$1E...
4.BCC EX3.$.6.SBC #1.H.8.EX3 CMP XTRA ;C
HECK . IN BOUNDS.A.:.BCS EX7 ;SYNTAX ERR
..I.<.ASL.Q.>.TAY...@.LDA .S.1,Y ;FETCH
VEC.R...B.PHA ;ADDRESS FROM TABLE...D.LD
A .S,Y.Q.F.PHA ;JUMP THROUGH CHR....H.JM
P $73 ;. STATEMENT ROUTINE...J.;...L.EX5
LDA $7A ;DEC.ENT CHRGET.+.N.BNE EX6 ;PO
.ER.7.P.DEC $7B.G.R.EX6 DEC $7A.D.T.JMP
(EVEC) ;REJOIN BASIC.J.V.;...X.EX7 JMP $
AF08 ;SYNTAX ERR....Z.;...\.EX8 JSR EX9;
EXECUTE '.'.N.^.JMP $A7AE ;SET UP . STA
TEMENT.T.`.;...B.EX9 LDA #..RTN.1 ;JUMP
....D.PHA ;'.' EXECUTI..!.F.LDA #..RTN.1
;ROUTINE.).H.PHA.5.J.JMP $73.;.L.;.[.N.
FUN JSR $73 ;EEUATE FUNCTI..T.P.CMP #$5F
;LEFT ARROW...R.BEQ FU2 ;EEUATE TRANSBA
SIC FUNCTI....T.LDA $7A ;DEC.ENT CHRGET.
K.V.BNE FU1 ;PO.ER,...X.DEC $7B ;REJOIN
BASIC...Z.FU1 DEC $7A...|.JMP (FVEC)...~
.;.0...FU2 LDA #0 ;CLEAR . TYPE REGISTER
.<...STA $0D.`...JSR $73 ;FETCH KEYW.D I
.D. BYTE.~...SEC ;C.VERT KEYW.D NUMBER..
...SBC #$40.....CMP #$1E.....BCC FU3....
.SBC #1.M...FU3 SEC ;CHECK . IN RANGE.Z.
..SBC XTRA.....BCC EX7 ;SYNTAX ERR......
CMP XTRA.1.....BCS EX7 ;SYNTAX ERR..2...
ASL ;FETCH FUNCTI..L...TAY ;VEC.R FROM T
ABLE.\...LDA .CS.1,Y.D. .PHA.R...LDA .CS
,Y.....PHA ;JUMP . FUNCTI......JMP $73 ;
ROUTINE THROUGH CHR......;.Z....RTN JSR
$AD9E ;EEUATE TEST .RESSI......JSR $79..
...CMP #$89 ;MUST BE FOLLOWED BY.....BEQ
.1 ;. ($89).4...LDA #$A7 ;. . ($A7).B..
.JSR $AEFF.H....1 JSR $79 ;CLEAR CARRY .
NUMERIC.....LDX $61 ;CHECK . TEST FAILE
D.....BEQ ELSRTN ;YES . SKIP . ELSE.....
BCS .2.G...JMP $A8A0 ;.......2 PLA ;EXEC
UTE STATEMENT...B.PLA ;AFTER '.'...D.JSR
$79...F.JMP EX1...P.;.;.R.ELSRTN JSR $A
8F8 ;SKIP STATEMENT.G.T.JSR $79.[.V.CMP
#0 ;RTS . ..N.X.BNE ELS1 ;OF ..V.Z.RTS..
...ELS1 JSR $73 ;CHECK . ELSE.....CMP #$
5F ;.KEN.....BNE ELSRTN.C...JSR $73.P...
CMP #$40.....BNE ELSRTN.....JSR $73 ;EXE
CUTE.....JMP .2.....;."...EXT LDX #7 ;EX
IT ROUTINE.=...EXT1 LDA TVEC,X ;. OLD.T.
..STA $304,X ;VEC.RS.\...DEX.I...BPL EXT
1.....LDA #$A2 ;. LDX CODE ......STA STA
RT ;ENABLE START ROUTINE.R...JMP PDOWN ;
DO POWDOWN COMM. . PRESENT.X...;.....C.C
HR CMP #$5B ;. CARRY SET.....BCC CIC1 ;.
ACCUMULA.R."...CLC ;.AINS.;...BCC CIC2
;ALPHABETIC.M...CIC1 CMP #$41.Z...CIC2 R
TS.`...;...F.PDOWN RTS ;. USERS OF 'POWE
R'...H.;...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL