XREF.PAL
FILE INFORMATION
FILENAME(S): XREF.PAL
FILE TYPE(S): PRG
FILE SIZE: 21.8K
FIRST SEEN: 2025-11-30 21:12:51
APPEARS ON: 1 disk(s)
FILE HASH
2c465bdc83d702eef27521c81eebff6746a2761b17b55d65c38df32a305470b2
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| TRANSACTOR DISK | XREF.PAL | PRG | DuncanTwain | 6 | 0 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 01 04 1C 04 64 00 8F 20 53 41 56 45 20 22 40 30 |....d.. SAVE "@0|
00000010: 3A 58 52 45 46 2E 50 41 4C 22 2C 38 00 22 04 6E |:XREF.PAL",8.".n|
00000020: 00 8F 00 2C 04 78 00 9E 20 37 30 30 00 3B 04 82 |...,.x.. 700.;..|
00000030: 00 3B 20 20 2E 4F 50 54 20 4F 4F 00 41 04 8C 00 |.; .OPT OO.A...|
00000040: 3B 00 6A 04 96 00 3B AB AB AB AB AB AB AB AB AB |;.j...;.........|
00000050: AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB |................|
00000060: AB AB AB AB AB AB AB AB AB AB 00 8E 04 A0 00 3B |...............;|
00000070: 56 41 52 2E 20 AF 20 4C 49 4E 45 20 23 20 43 52 |VAR. . LINE # CR|
00000080: 4F 53 53 52 45 46 20 50 52 4F 47 52 41 4D 00 94 |OSSREF PROGRAM..|
00000090: 04 AA 00 3B 00 B3 04 B4 00 3B 4D 41 45 20 41 53 |...;.....;MAE AS|
000000A0: 53 45 4D 42 4C 45 52 20 20 20 38 AD 31 35 AD 31 |SEMBLER 8.15.1|
000000B0: 39 38 33 00 D1 04 BE 00 3B 43 91 56 45 52 54 45 |983.....;C.VERTE|
000000C0: 44 20 A4 20 50 41 4C 20 33 30 AD 33 AD 31 39 38 |D . PAL 30.3.198|
000000D0: 37 00 D7 04 C8 00 3B 00 00 05 D2 00 3B AB AB AB |7.....;.....;...|
000000E0: AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB |................|
000000F0: AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB |................|
00000100: 00 06 05 DC 00 3B 00 2D 05 E6 00 43 48 52 A1 20 |.....;.-...CHR. |
00000110: B2 20 24 30 30 37 33 20 3B A1 20 42 59 54 45 20 |. $0073 ;. BYTE |
00000120: 4F 46 20 42 41 53 49 43 20 54 45 58 54 00 57 05 |OF BASIC TEXT.W.|
00000130: F0 00 9C 43 48 4E 20 B2 20 24 46 46 43 43 20 3B |...CHN . $FFCC ;|
00000140: 52 45 53 45 54 20 43 48 41 4E 4E 45 4C 53 20 A4 |RESET CHANNELS .|
00000150: 20 96 41 4C 54 53 3B 00 80 05 FA 00 53 45 54 4C | .ALTS;.....SETL|
00000160: 46 53 20 B2 20 24 46 46 42 41 20 3B 53 45 54 20 |FS . $FFBA ;SET |
00000170: BC 2E 31 53 54 20 26 20 32 4E 44 20 41 44 44 52 |..1ST & 2ND ADDR|
00000180: 00 A2 05 04 01 53 45 54 4E 41 4D 20 B2 20 24 46 |.....SETNAM . $F|
00000190: 46 42 44 20 3B 53 45 54 20 46 49 4C 45 20 4E 41 |FBD ;SET FILE NA|
000001A0: 4D 45 00 C9 05 0E 01 43 48 4B 4F 55 54 20 B2 20 |ME.....CHKOUT . |
000001B0: 24 46 46 43 39 20 3B 9F 20 43 48 41 4E 4E 45 4C |$FFC9 ;. CHANNEL|
000001C0: 20 81 20 4F 55 54 50 55 54 00 F3 05 18 01 43 48 | . OUTPUT.....CH|
000001D0: 52 4F 55 54 20 B2 20 24 46 46 44 32 20 3B 4F 55 |ROUT . $FFD2 ;OU|
000001E0: 54 50 55 54 20 43 48 41 52 20 A4 20 43 48 41 4E |TPUT CHAR . CHAN|
000001F0: 4E 45 4C 00 11 06 22 01 A1 49 4E 20 B2 20 24 46 |NEL..."..IN . $F|
00000200: 46 45 34 20 3B A1 20 4B 45 59 20 50 52 45 53 53 |FE4 ;. KEY PRESS|
00000210: 3B 00 2A 06 2C 01 A0 20 B2 20 24 46 46 43 33 20 |;.*.,.. . $FFC3 |
00000220: 3B A0 20 41 20 46 49 4C 45 3B 00 48 06 36 01 9F |;. A FILE;.H.6..|
00000230: 20 B2 20 24 46 46 43 30 20 3B 9F 20 41 20 BC 49 | . $FFC0 ;. A .I|
00000240: 43 41 4C 20 46 49 4C 45 00 68 06 40 01 52 36 35 |CAL FILE.h.@.R65|
00000250: 31 30 20 B2 20 24 30 31 20 3B 85 AD 4F 55 54 50 |10 . $01 ;..OUTP|
00000260: 55 54 20 52 45 47 53 3B 00 8F 06 4A 01 4C 49 4E |UT REGS;...J.LIN|
00000270: 4E 55 4D 20 B2 20 24 31 34 20 3B 4C 49 4E 45 20 |NUM . $14 ;LINE |
00000280: 4E 55 4D 20 53 A4 52 41 47 45 20 41 52 45 41 00 |NUM S.RAGE AREA.|
00000290: B2 06 54 01 4D 45 4D 53 49 5A 20 B2 20 24 33 37 |..T.MEMSIZ . $37|
000002A0: 20 3B A4 50 20 4F 46 20 42 41 53 49 43 20 4D 45 | ;.P OF BASIC ME|
000002B0: 4D 3B 00 DE 06 5E 01 41 4C 4C 52 45 46 20 B2 20 |M;...^.ALLREF . |
000002C0: 24 34 42 20 3B 46 4C 41 47 AB 20 50 52 54 20 41 |$4B ;FLAG. PRT A|
000002D0: 4C 4C 20 56 41 52 20 26 20 23 20 52 45 46 00 09 |LL VAR & # REF..|
000002E0: 07 68 01 41 4C 4C 56 4E 20 B2 20 24 34 43 20 3B |.h.ALLVN . $4C ;|
000002F0: 46 4C 41 47 AB 20 50 52 54 20 41 4C 4C 20 56 41 |FLAG. PRT ALL VA|
00000300: 52 20 B0 20 23 20 52 45 46 00 2B 07 72 01 53 32 |R . # REF.+.r.S2|
00000310: 41 44 52 20 B2 20 24 31 39 20 3B 41 44 44 52 20 |ADR . $19 ;ADDR |
00000320: 4F 46 20 42 55 46 31 20 B0 20 32 00 4F 07 7C 01 |OF BUF1 . 2.O.|.|
00000330: 53 31 41 44 52 20 B2 20 24 31 42 20 3B 41 44 44 |S1ADR . $1B ;ADD|
00000340: 52 20 4F 46 20 43 4D 50 20 53 54 52 49 4E 47 00 |R OF CMP STRING.|
00000350: 6E 07 86 01 53 31 C3 20 B2 20 24 31 44 20 3B C3 |n...S1. . $1D ;.|
00000360: 47 54 48 20 4F 46 20 43 4D 50 20 53 54 52 00 8D |GTH OF CMP STR..|
00000370: 07 90 01 4C 4E 80 20 B2 20 24 46 42 20 3B B9 20 |...LN. . $FB ;. |
00000380: 50 4F B5 45 52 20 81 20 4C 4E 42 55 46 00 B2 07 |PO.ER . LNBUF...|
00000390: 9A 01 42 53 80 20 B2 20 24 31 45 20 3B 46 4C 41 |..BS. . $1E ;FLA|
000003A0: 47 AB 20 80 20 4F 46 20 42 41 53 49 43 20 4C 49 |G. . OF BASIC LI|
000003B0: 4E 45 00 D3 07 A4 01 50 4F B5 20 B2 20 24 32 30 |NE.....PO. . $20|
000003C0: 20 3B B9 54 49 91 20 49 4E 20 42 41 53 49 43 20 | ;.TI. IN BASIC |
000003D0: 50 52 47 00 F5 07 AE 01 54 45 50 42 55 46 20 B2 |PRG.....TEPBUF .|
000003E0: 20 24 46 44 20 3B 54 45 50 20 4C 4E 42 55 46 20 | $FD ;TEP LNBUF |
000003F0: 50 4F B5 45 52 00 15 08 B8 01 50 52 47 80 20 B2 |PO.ER.....PRG. .|
00000400: 20 24 30 32 20 3B 46 4C 41 47 20 81 20 80 20 4F | $02 ;FLAG . . O|
00000410: 46 20 50 52 47 00 3B 08 C2 01 54 58 54 54 41 42 |F PRG.;...TXTTAB|
00000420: 20 B2 20 24 32 42 20 3B 53 54 41 52 54 20 4F 46 | . $2B ;START OF|
00000430: 20 42 41 53 49 43 20 54 45 58 54 00 5D 08 CC 01 | BASIC TEXT.]...|
00000440: 56 41 52 54 41 42 20 B2 20 24 32 44 20 3B 80 20 |VARTAB . $2D ;. |
00000450: 4F 46 20 42 41 53 49 43 20 54 45 58 54 00 88 08 |OF BASIC TEXT...|
00000460: D6 01 4D 53 47 46 4C 47 20 B2 20 24 39 44 20 3B |..MSGFLG . $9D ;|
00000470: 46 4C 41 47 AB 20 44 49 52 45 43 54 20 B0 20 50 |FLAG. DIRECT . P|
00000480: 52 4F 47 20 4D 4F 44 45 00 8E 08 E0 01 3B 00 9A |ROG MODE.....;..|
00000490: 08 EA 01 AC B2 24 43 30 30 30 00 A0 08 F4 01 3B |.....$C000.....;|
000004A0: 00 C3 08 FE 01 3B AC 20 20 42 52 41 4E 43 48 20 |.....;. BRANCH |
000004B0: A4 20 49 4E 49 54 49 41 54 49 91 20 43 4F 44 45 |. INITIATI. CODE|
000004C0: 20 20 AC 00 C9 08 08 02 3B 00 F4 08 12 02 50 52 | ......;.....PR|
000004D0: 47 53 54 52 20 4A 53 52 20 42 41 4B 4F 55 54 20 |GSTR JSR BAKOUT |
000004E0: 3B 49 4E 49 54 2E 20 43 4F 44 45 20 49 53 20 55 |;INIT. CODE IS U|
000004F0: 4E 44 45 52 00 12 09 1C 02 4A 4D 50 20 53 54 41 |NDER.....JMP STA|
00000500: 52 54 20 3B 42 41 53 49 43 20 52 4F 4D 20 AB 20 |RT ;BASIC ROM . |
00000510: CB 21 00 18 09 26 02 3B 00 3D 09 30 02 3B AC 20 |.!...&.;.=.0.;. |
00000520: 20 20 4F 55 54 50 55 54 20 26 20 4F 54 48 45 52 | OUTPUT & OTHER|
00000530: 20 53 54 52 49 4E 47 53 20 20 20 20 AC 00 43 09 | STRINGS ..C.|
00000540: 3A 02 3B 00 67 09 44 02 4D 45 53 47 20 2E C6 20 |:.;.g.D.MESG .. |
00000550: 22 46 45 52 22 20 3B 58 22 52 45 46 22 20 42 41 |"FER" ;X"REF" BA|
00000560: 43 4B 57 41 52 44 53 00 98 09 4E 02 4D 45 53 47 |CKWARDS...N.MESG|
00000570: 34 20 2E 42 59 54 45 20 24 30 30 20 3A 20 2E C6 |4 .BYTE $00 : ..|
00000580: 20 22 50 4C 45 22 20 3B 48 22 45 4C 50 22 20 42 | "PLE" ;H"ELP" B|
00000590: 41 43 4B 57 41 52 44 53 00 9E 09 58 02 3B 00 C4 |ACKWARDS...X.;..|
000005A0: 09 62 02 3B B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 |.b.;............|
000005B0: B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 |................|
000005C0: B2 B2 B2 B2 00 E6 09 6C 02 3B 20 20 20 53 54 41 |.......l.; STA|
000005D0: 52 54 20 4F 46 20 53 55 42 52 4F 55 54 49 4E 45 |RT OF SUBROUTINE|
000005E0: 53 20 54 48 41 54 00 0B 0A 76 02 3B 4F 50 45 52 |S THAT...v.;OPER|
000005F0: 41 54 45 20 42 45 4C 4F 57 20 24 41 30 30 30 20 |ATE BELOW $A000 |
00000600: 28 42 41 53 49 43 20 52 4F 4D 29 00 31 0A 80 02 |(BASIC ROM).1...|
00000610: 3B B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 |;...............|
00000620: B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 |................|
00000630: B2 00 37 0A 8A 02 3B 00 59 0A 94 02 3B AC 20 20 |..7...;.Y...;. |
00000640: 53 55 42 52 4F 55 54 49 4E 45 20 A4 20 45 58 49 |SUBROUTINE . EXI|
00000650: 54 20 42 41 43 4B 20 20 AC 00 77 0A 9E 02 3B AC |T BACK ..w...;.|
00000660: 20 A4 20 43 48 52 A1 20 41 46 54 45 52 20 50 45 | . CHR. AFTER PE|
00000670: 52 81 4D 49 4E 47 AC 00 98 0A A8 02 3B AC 20 54 |R.MING......;. T|
00000680: 48 45 20 43 4F 4D 4D AF 53 20 54 48 41 54 20 57 |HE COMM.S THAT W|
00000690: 45 52 45 20 20 20 20 AC 00 BA 0A B2 02 3B AC 20 |ERE ......;. |
000006A0: 52 45 50 4C 41 43 45 44 20 42 59 20 54 48 45 20 |REPLACED BY THE |
000006B0: 42 52 41 4E 43 48 20 A4 20 AC 00 DD 0A BC 02 3B |BRANCH . ......;|
000006C0: AC 20 54 48 49 53 20 50 52 4F 47 52 41 4D 2E 20 |. THIS PROGRAM. |
000006D0: 20 20 20 20 20 20 20 20 20 20 20 20 AC 00 E3 0A | ....|
000006E0: C6 02 3B 00 01 0B D0 02 A1 31 53 54 20 4C 44 59 |..;......1ST LDY|
000006F0: 20 23 30 30 20 3B 52 45 53 45 54 20 85 20 42 55 | #00 ;RESET . BU|
00000700: 46 00 1E 0B DA 02 53 54 59 20 24 37 41 20 3B A4 |F.....STY $7A ;.|
00000710: 20 53 54 41 52 54 20 4F 46 20 42 55 46 3B 00 3B | START OF BUF;.;|
00000720: 0B E4 02 4C 44 41 20 28 24 37 41 29 2C 59 20 3B |...LDA ($7A),Y ;|
00000730: A1 20 31 53 54 20 43 48 41 52 3B 00 56 0B EE 02 |. 1ST CHAR;.V...|
00000740: CB 42 41 43 4B 20 4C 44 59 20 50 4F B5 20 3B 8C |.BACK LDY PO. ;.|
00000750: 20 58 20 26 20 59 00 74 0B F8 02 4C 44 58 20 50 | X & Y.t...LDX P|
00000760: 4F B5 AA 31 20 3B 81 20 43 48 52 A1 20 43 41 4C |O..1 ;. CHR. CAL|
00000770: 4C 45 52 3B 00 81 0B 02 03 43 4D 50 20 23 24 33 |LER;.....CMP #$3|
00000780: 41 00 8D 0B 0C 03 42 43 53 20 52 54 4E 00 9B 0B |A.....BCS RTN...|
00000790: 16 03 4A 4D 50 20 24 30 30 38 30 00 A7 0B 20 03 |..JMP $0080... .|
000007A0: 52 54 4E 20 52 54 53 00 AD 0B 2A 03 3B 00 D2 0B |RTN RTS...*.;...|
000007B0: 34 03 3B AC 20 54 48 45 20 46 4F 4C 4C 4F 57 49 |4.;. THE FOLLOWI|
000007C0: 4E 47 20 43 4F 44 45 20 42 41 4E 4B 53 20 20 20 |NG CODE BANKS |
000007D0: 20 AC 00 F6 0B 3E 03 3B AC 20 54 48 45 20 42 41 | ....>.;. THE BA|
000007E0: 53 49 43 20 52 4F 4D 20 4F 55 54 20 91 20 45 4E |SIC ROM OUT . EN|
000007F0: 54 52 59 20 20 AC 00 18 0C 48 03 3B AC 20 AF 20 |TRY ....H.;. . |
00000800: 42 41 43 4B 20 49 54 20 49 4E 20 91 20 45 58 49 |BACK IT IN . EXI|
00000810: 54 20 20 20 20 20 20 AC 00 1E 0C 52 03 3B 00 3F |T ....R.;.?|
00000820: 0C 5C 03 42 41 4B 4F 55 54 20 53 45 49 20 3B 44 |.\.BAKOUT SEI ;D|
00000830: 49 53 41 42 4C 45 20 B5 45 52 52 55 50 54 3B 00 |ISABLE .ERRUPT;.|
00000840: 5F 0C 66 03 4C 44 41 20 52 36 35 31 30 20 3B A1 |_.f.LDA R6510 ;.|
00000850: 20 50 52 45 53 45 4E 54 20 53 54 41 54 55 53 00 | PRESENT STATUS.|
00000860: 7E 0C 70 03 AF 20 23 24 46 45 20 3B 42 41 4E 4B |~.p.. #$FE ;BANK|
00000870: 20 4F 55 54 20 41 30 30 30 AB 42 46 46 46 00 A4 | OUT A000.BFFF..|
00000880: 0C 7A 03 42 4E 45 20 53 54 52 45 47 20 3B 49 54 |.z.BNE STREG ;IT|
00000890: 20 57 91 22 54 3D 30 2D 55 4E 43 4F 4E 20 42 52 | W."T=0-UNCON BR|
000008A0: 41 4E 43 48 00 C4 0C 84 03 42 41 4B 49 4E 20 43 |ANCH.....BAKIN C|
000008B0: 4C 49 20 3B 45 4E 41 42 4C 45 20 B5 45 52 52 55 |LI ;ENABLE .ERRU|
000008C0: 50 54 53 3B 00 E4 0C 8E 03 4C 44 41 20 52 36 35 |PTS;.....LDA R65|
000008D0: 31 30 20 3B A1 20 50 52 45 53 45 4E 54 20 53 54 |10 ;. PRESENT ST|
000008E0: 41 54 55 53 00 03 0D 98 03 B0 41 20 23 24 30 31 |ATUS......A #$01|
000008F0: 20 3B 42 41 4E 4B 20 49 4E 20 41 30 30 30 AB 42 | ;BANK IN A000.B|
00000900: 46 46 46 00 23 0D A2 03 53 54 52 45 47 20 53 54 |FFF.#...STREG ST|
00000910: 41 20 52 36 35 31 30 20 3B 94 20 A2 20 53 54 41 |A R6510 ;. . STA|
00000920: 54 55 53 00 37 0D AC 03 52 54 53 20 3B 8E 20 A4 |TUS.7...RTS ;. .|
00000930: 20 43 41 4C 4C 45 52 00 3D 0D B6 03 3B 00 44 0D | CALLER.=...;.D.|
00000940: C0 03 3B AC 00 63 0D CA 03 3B AC 20 20 4F 55 54 |..;..c...;. OUT|
00000950: 50 55 54 20 A4 20 99 45 52 20 B0 20 43 52 54 20 |PUT . .ER . CRT |
00000960: 20 20 AC 00 69 0D D4 03 3B 00 84 0D DE 03 4F 55 | ..i...;.....OU|
00000970: 54 50 55 54 20 50 48 41 20 3B 94 20 54 48 45 20 |TPUT PHA ;. THE |
00000980: 43 48 41 52 00 9F 0D E8 03 4A 53 52 20 42 41 4B |CHAR.....JSR BAK|
00000990: 49 4E 20 3B 42 41 4E 4B 20 52 4F 4D 20 49 4E 00 |IN ;BANK ROM IN.|
000009A0: BB 0D F2 03 50 4C 41 20 3B 50 55 54 20 43 48 41 |....PLA ;PUT CHA|
000009B0: 52 20 42 41 43 4B 20 49 4E 20 41 00 D2 0D FC 03 |R BACK IN A.....|
000009C0: 4A 53 52 20 43 48 52 4F 55 54 20 3B 99 20 43 48 |JSR CHROUT ;. CH|
000009D0: 41 52 00 FE 0D 06 04 4A 4D 50 20 42 41 4B 4F 55 |AR.....JMP BAKOU|
000009E0: 54 20 3B 42 41 4E 4B 20 52 4F 4D 20 4F 55 54 20 |T ;BANK ROM OUT |
000009F0: 26 20 52 54 53 20 A4 20 43 41 4C 4C 45 52 00 04 |& RTS . CALLER..|
00000A00: 0E 10 04 3B 00 1D 0E 1A 04 3B 22 44 4F 4E 45 22 |...;.....;"DONE"|
00000A10: 20 45 58 49 54 20 A4 20 42 41 53 49 43 00 23 0E | EXIT . BASIC.#.|
00000A20: 24 04 3B 00 44 0E 2E 04 44 91 45 58 49 20 4A 53 |$.;.D...D.EXI JS|
00000A30: 52 20 42 41 4B 49 4E 20 3B 42 41 4E 4B 20 49 4E |R BAKIN ;BANK IN|
00000A40: 20 52 4F 4D 00 60 0E 38 04 4C 44 41 20 23 30 34 | ROM.`.8.LDA #04|
00000A50: 20 3B A0 20 4F 55 54 50 55 54 20 46 49 4C 45 3B | ;. OUTPUT FILE;|
00000A60: 00 6A 0E 42 04 4A 53 52 20 A0 00 77 0E 4C 04 4A |.j.B.JSR ..w.L.J|
00000A70: 53 52 20 9C 43 48 4E 00 99 0E 56 04 4A 4D 50 20 |SR .CHN...V.JMP |
00000A80: 28 24 30 33 30 32 29 20 3B 42 41 53 49 43 20 57 |($0302) ;BASIC W|
00000A90: 41 52 4D 20 53 54 41 52 54 00 9F 0E 60 04 3B 00 |ARM START...`.;.|
00000AA0: BA 0E 6A 04 3B 58 52 45 46 B3 43 52 B1 20 45 58 |..j.;XREF.CR. EX|
00000AB0: 49 54 20 A4 20 42 41 53 49 43 00 C0 0E 74 04 3B |IT . BASIC...t.;|
00000AC0: 00 E1 0E 7E 04 43 52 4F 55 54 20 4A 53 52 20 42 |...~.CROUT JSR B|
00000AD0: 41 4B 49 4E 20 3B 42 41 4E 4B 20 49 4E 20 52 4F |AKIN ;BANK IN RO|
00000AE0: 4D 00 FD 0E 88 04 4A 4D 50 20 24 41 36 41 37 20 |M.....JMP $A6A7 |
00000AF0: 3B 9B 20 42 41 53 49 43 20 4C 49 4E 45 00 03 0F |;. BASIC LINE...|
00000B00: 92 04 3B 00 24 0F 9C 04 3B 42 41 4E 4B 20 49 4E |..;.$...;BANK IN|
00000B10: 20 42 41 53 49 43 20 26 20 A1 20 4B 45 59 20 50 | BASIC & . KEY P|
00000B20: 52 45 53 53 00 2A 0F A6 04 3B 00 4D 0F B0 04 4B |RESS.*...;.M...K|
00000B30: 45 59 53 55 42 20 4A 53 52 20 42 41 4B 49 4E 20 |EYSUB JSR BAKIN |
00000B40: 3B 42 41 4E 4B 20 49 4E 20 52 4F 4D 3B 00 67 0F |;BANK IN ROM;.g.|
00000B50: BA 04 4A 53 52 20 A1 49 4E 20 3B A1 20 4B 45 59 |..JSR .IN ;. KEY|
00000B60: 20 50 52 45 53 53 3B 00 7D 0F C4 04 50 48 41 20 | PRESS;.}...PHA |
00000B70: 3B 94 20 4B 45 59 20 50 52 45 53 53 3B 00 8C 0F |;. KEY PRESS;...|
00000B80: CE 04 4A 53 52 20 42 41 4B 4F 55 54 00 A2 0F D8 |..JSR BAKOUT....|
00000B90: 04 50 4C 41 20 3B 8C 20 4B 45 59 20 50 52 45 53 |.PLA ;. KEY PRES|
00000BA0: 53 3B 00 AA 0F E2 04 52 54 53 00 B0 0F EC 04 3B |S;.....RTS.....;|
00000BB0: 00 D7 0F F6 04 3B B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 |.....;..........|
00000BC0: B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 |................|
00000BD0: B2 B2 B2 B2 B2 B2 B2 00 F9 0F 00 05 3B 80 20 4F |............;. O|
00000BE0: 46 20 53 55 42 52 4F 55 54 49 4E 45 53 20 42 45 |F SUBROUTINES BE|
00000BF0: 4C 4F 57 20 24 41 30 30 30 00 20 10 0A 05 3B B2 |LOW $A000. ...;.|
00000C00: B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 |................|
00000C10: B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 |................|
00000C20: 00 26 10 14 05 3B 00 49 10 1E 05 3B AC 20 20 20 |.&...;.I...;. |
00000C30: 53 54 41 52 54 20 4F 46 20 50 52 4F 47 52 41 4D |START OF PROGRAM|
00000C40: 20 20 20 20 20 20 20 20 AC 00 4F 10 28 05 3B 00 | ..O.(.;.|
00000C50: 6A 10 32 05 45 4E 54 52 59 20 53 54 59 20 50 4F |j.2.ENTRY STY PO|
00000C60: B5 20 3B 94 20 58 20 26 20 59 00 8B 10 3C 05 53 |. ;. X & Y...<.S|
00000C70: 54 58 20 50 4F B5 AA 31 20 3B 46 52 4F 4D 20 43 |TX PO..1 ;FROM C|
00000C80: 48 52 A1 20 43 41 4C 4C 45 52 3B 00 A8 10 46 05 |HR. CALLER;...F.|
00000C90: 4C 44 58 20 4D 53 47 46 4C 47 20 20 20 20 20 20 |LDX MSGFLG |
00000CA0: 20 20 20 20 20 3B 49 4E 00 CB 10 50 05 42 50 4C | ;IN...P.BPL|
00000CB0: 20 CB 42 41 43 4B 20 3B 8B 20 49 4E 20 50 52 4F | .BACK ;. IN PRO|
00000CC0: 47 20 4D 4F 44 45 AB 45 58 49 54 00 F8 10 5A 05 |G MODE.EXIT...Z.|
00000CD0: 4C 44 58 20 24 30 30 37 41 20 3B 22 49 53 20 49 |LDX $007A ;"IS I|
00000CE0: 54 20 54 48 45 20 31 53 54 20 4C 45 54 54 45 52 |T THE 1ST LETTER|
00000CF0: 20 49 4E 20 42 55 46 3F 00 12 11 64 05 42 4E 45 | IN BUF?...d.BNE|
00000D00: 20 CB 42 41 43 4B 20 3B 8B 20 A8 20 A7 20 45 58 | .BACK ;. . . EX|
00000D10: 49 54 00 34 11 6E 05 43 4D 50 20 23 22 58 22 20 |IT.4.n.CMP #"X" |
00000D20: 3B 22 49 53 20 31 53 54 20 4C 45 54 54 45 52 20 |;"IS 1ST LETTER |
00000D30: 41 20 58 3F 00 4B 11 78 05 42 45 51 20 48 45 52 |A X?.K.x.BEQ HER|
00000D40: 45 20 3B 45 58 49 54 20 8B 20 A8 00 6E 11 82 05 |E ;EXIT . ..n...|
00000D50: 4C 44 59 20 23 24 30 33 20 3B 8B 20 22 48 22 20 |LDY #$03 ;. "H" |
00000D60: 43 48 45 43 4B 20 82 20 33 20 43 48 41 52 00 93 |CHECK . 3 CHAR..|
00000D70: 11 8C 05 4C 44 58 20 23 B3 4D 45 53 47 34 20 3B |...LDX #.MESG4 ;|
00000D80: 50 4E 54 20 A4 20 4C 53 42 20 4F 46 20 22 48 45 |PNT . LSB OF "HE|
00000D90: 4C 50 27 00 B3 11 96 05 43 4D 50 20 23 22 48 22 |LP'.....CMP #"H"|
00000DA0: 20 3B 22 31 53 54 20 4C 45 54 54 45 52 20 3D 20 | ;"1ST LETTER = |
00000DB0: 48 20 3F 00 D9 11 A0 05 42 45 51 20 4D 45 53 41 |H ?.....BEQ MESA|
00000DC0: 44 44 20 3B 43 48 45 43 4B 20 8B 20 22 45 4C 50 |DD ;CHECK . "ELP|
00000DD0: 22 20 46 4F 4C 4C 4F 57 53 00 E7 11 AA 05 42 4E |" FOLLOWS.....BN|
00000DE0: 45 20 CB 42 41 43 4B 00 10 12 B4 05 48 45 52 45 |E .BACK.....HERE|
00000DF0: 20 4C 44 59 20 23 24 30 32 20 3B 59 B2 4E 55 4D | LDY #$02 ;Y.NUM|
00000E00: 20 4F 46 20 43 48 41 52 20 A4 20 43 48 45 43 4B | OF CHAR . CHECK|
00000E10: 00 34 12 BE 05 4C 44 58 20 23 B3 4D 45 53 47 20 |.4...LDX #.MESG |
00000E20: 3B 50 4E 54 20 A4 20 4C 53 42 20 4F 46 20 22 58 |;PNT . LSB OF "X|
00000E30: 52 45 46 27 00 5F 12 C8 05 4D 45 53 41 44 44 20 |REF'._...MESADD |
00000E40: 53 54 58 20 4D 45 53 43 4D 50 AA 31 20 3B 50 4E |STX MESCMP.1 ;PN|
00000E50: 54 20 A4 20 48 45 4C 50 20 B0 20 58 52 45 46 00 |T . HELP . XREF.|
00000E60: 7B 12 D2 05 4C 4F 4F 50 20 4A 53 52 20 43 48 52 |{...LOOP JSR CHR|
00000E70: A1 20 3B A1 20 82 20 43 48 41 52 00 9E 12 DC 05 |. ;. . CHAR.....|
00000E80: 4D 45 53 43 4D 50 20 43 4D 50 20 4D 45 53 47 2C |MESCMP CMP MESG,|
00000E90: 59 20 3B 43 4D 50 20 A4 20 22 52 45 46 27 00 BF |Y ;CMP . "REF'..|
00000EA0: 12 E6 05 42 4E 45 20 A1 31 53 54 20 3B 44 4F 45 |...BNE .1ST ;DOE|
00000EB0: 53 4E 22 54 3D 22 52 45 46 22 2D 45 58 49 54 00 |SN"T="REF"-EXIT.|
00000EC0: DE 12 F0 05 44 45 59 20 3B 50 4F B5 20 A4 20 82 |....DEY ;PO. . .|
00000ED0: 20 43 48 41 52 20 49 4E 20 22 52 45 46 27 00 F7 | CHAR IN "REF'..|
00000EE0: 12 FA 05 42 50 4C 20 4C 4F 4F 50 20 3B 43 4D 50 |...BPL LOOP ;CMP|
00000EF0: 20 82 20 43 48 41 52 00 FD 12 04 06 3B 00 0E 13 | . CHAR.....;...|
00000F00: 0E 06 4C 44 41 20 4D 45 53 43 4D 50 AA 31 00 14 |..LDA MESCMP.1..|
00000F10: 13 18 06 3B 00 39 13 22 06 43 4D 50 20 23 B3 4D |...;.9.".CMP #.M|
00000F20: 45 53 47 20 3B 22 57 48 49 43 48 20 43 4F 4D 2E |ESG ;"WHICH COM.|
00000F30: 20 45 4E 54 45 52 45 44 3F 00 5A 13 2C 06 42 45 | ENTERED?.Z.,.BE|
00000F40: 51 20 58 52 45 46 20 3B CB 20 8B 20 22 58 52 45 |Q XREF ;. . "XRE|
00000F50: 46 22 20 45 4E 54 45 52 45 44 00 60 13 36 06 3B |F" ENTERED.`.6.;|
00000F60: 00 7B 13 40 06 3B 45 58 49 54 20 A4 20 22 48 45 |.{.@.;EXIT . "HE|
00000F70: 4C 50 22 20 52 4F 55 54 49 4E 45 00 81 13 4A 06 |LP" ROUTINE...J.|
00000F80: 3B 00 90 13 54 06 4A 53 52 20 42 41 4B 4F 55 54 |;...T.JSR BAKOUT|
00000F90: 00 9D 13 5E 06 4A 4D 50 20 48 45 4C 50 00 A3 13 |...^.JMP HELP...|
00000FA0: 68 06 3B 00 CD 13 72 06 3B 22 50 52 49 4E 54 20 |h.;...r.;"PRINT |
00000FB0: 42 41 53 49 43 20 4C 49 4E 45 20 57 48 45 52 45 |BASIC LINE WHERE|
00000FC0: 20 52 45 46 20 41 50 50 45 41 52 53 3F 00 D3 13 | REF APPEARS?...|
00000FD0: 7C 06 3B 00 F1 13 86 06 58 52 45 46 20 4C 44 41 ||.;.....XREF LDA|
00000FE0: 20 23 B1 42 55 46 31 20 3B 50 4E 54 20 81 20 A1 | #.BUF1 ;PNT . .|
00000FF0: C3 00 01 14 90 06 53 54 41 20 53 32 41 44 52 AA |......STA S2ADR.|
00001000: 31 00 18 14 9A 06 4A 53 52 20 43 48 52 A1 20 3B |1.....JSR CHR. ;|
00001010: A1 20 82 20 43 48 41 52 00 33 14 A4 06 43 4D 50 |. . CHAR.3...CMP|
00001020: 20 23 24 30 30 20 3B 44 4F 45 53 20 49 54 B2 80 | #$00 ;DOES IT..|
00001030: 20 4F 46 00 4D 14 AE 06 42 4E 45 20 53 4B 49 50 | OF.M...BNE SKIP|
00001040: 31 20 3B 4C 49 4E 45 20 8B 20 A8 AB CB 00 5C 14 |1 ;LINE . ....\.|
00001050: B8 06 4A 53 52 20 42 41 4B 4F 55 54 00 67 14 C2 |..JSR BAKOUT.g..|
00001060: 06 4A 4D 50 20 43 52 00 6D 14 CC 06 3B 00 90 14 |.JMP CR.m...;...|
00001070: D6 06 3B 53 45 54 55 50 20 4F 55 54 50 55 54 20 |..;SETUP OUTPUT |
00001080: 46 49 4C 45 20 81 20 43 52 54 20 B0 20 50 52 54 |FILE . CRT . PRT|
00001090: 00 96 14 E0 06 3B 00 AD 14 EA 06 53 4B 49 50 31 |.....;.....SKIP1|
000010A0: 20 50 48 41 20 3B 94 20 43 48 41 52 3B 00 C6 14 | PHA ;. CHAR;...|
000010B0: F4 06 4C 44 41 20 23 30 34 20 3B A0 20 43 48 41 |..LDA #04 ;. CHA|
000010C0: 4E 4E 45 4C 20 A4 00 E5 14 FE 06 4A 53 52 20 A0 |NNEL ......JSR .|
000010D0: 20 3B 50 52 45 56 45 4E 54 20 22 4F 50 45 4E 22 | ;PREVENT "OPEN"|
000010E0: 20 45 52 52 3B 00 F6 14 08 07 50 4C 41 20 3B 8C | ERR;.....PLA ;.|
000010F0: 20 43 48 41 52 3B 00 14 15 12 07 4C 44 58 20 23 | CHAR;.....LDX #|
00001100: 24 33 20 3B 58 B2 44 45 56 49 43 45 20 23 20 81 |$3 ;X.DEVICE # .|
00001110: 20 43 52 54 00 30 15 1C 07 4C 44 59 20 23 24 32 | CRT.0...LDY #$2|
00001120: 34 20 3B 43 52 54 20 4C 49 4E 45 20 C3 47 54 48 |4 ;CRT LINE .GTH|
00001130: 00 57 15 26 07 43 4D 50 20 23 24 32 41 20 3B 22 |.W.&.CMP #$2A ;"|
00001140: 53 45 4E 44 20 4F 55 54 50 55 54 20 54 4F 20 50 |SEND OUTPUT TO P|
00001150: 52 49 4E 54 45 52 3F 00 7D 15 30 07 42 4E 45 20 |RINTER?.}.0.BNE |
00001160: 53 45 54 43 52 54 20 3B 22 4E 4F 3F 20 53 45 54 |SETCRT ;"NO? SET|
00001170: 55 50 20 4F 55 54 50 55 54 20 43 52 54 00 94 15 |UP OUTPUT CRT...|
00001180: 3A 07 4A 53 52 20 43 48 52 A1 20 3B A1 20 82 20 |:.JSR CHR. ;. . |
00001190: 43 48 41 52 00 B3 15 44 07 4C 44 58 20 23 24 30 |CHAR...D.LDX #$0|
000011A0: 34 20 3B 58 B2 44 45 56 49 43 45 20 23 20 81 20 |4 ;X.DEVICE # . |
000011B0: 99 45 52 00 CF 15 4E 07 4C 44 59 20 23 24 34 43 |.ER...N.LDY #$4C|
000011C0: 20 3B 99 45 52 20 4C 49 4E 45 20 C3 47 54 48 00 | ;.ER LINE .GTH.|
000011D0: F2 15 58 07 53 45 54 43 52 54 20 53 54 59 20 50 |..X.SETCRT STY P|
000011E0: 52 54 C3 AA 31 20 3B 94 20 4C 49 4E 45 20 C3 47 |RT..1 ;. LINE .G|
000011F0: 54 48 00 0A 16 62 07 50 48 41 20 3B 94 20 50 52 |TH...b.PHA ;. PR|
00001200: 45 53 45 4E 54 20 43 48 41 52 00 25 16 6C 07 4C |ESENT CHAR.%.l.L|
00001210: 44 41 20 23 24 30 34 20 3B BC 49 43 41 4C 20 46 |DA #$04 ;.ICAL F|
00001220: 49 4C 45 20 23 00 3F 16 76 07 4C 44 59 20 23 24 |ILE #.?.v.LDY #$|
00001230: 46 46 20 3B 53 80 20 4E 4F 20 43 4F 4D 4D AF 00 |FF ;S. NO COMM..|
00001240: 62 16 80 07 4A 53 52 20 53 45 54 4C 46 53 20 3B |b...JSR SETLFS ;|
00001250: 53 45 54 55 50 20 41 20 BC 49 43 41 4C 20 46 49 |SETUP A .ICAL FI|
00001260: 4C 45 00 7F 16 8A 07 4C 44 41 20 23 24 30 30 20 |LE.....LDA #$00 |
00001270: 3B 4E 41 4D 45 20 C3 47 54 48 B2 5A 45 52 4F 00 |;NAME .GTH.ZERO.|
00001280: 9F 16 94 07 4A 53 52 20 53 45 54 4E 41 4D 20 3B |....JSR SETNAM ;|
00001290: 53 45 54 55 50 20 46 49 4C 45 20 4E 41 4D 45 00 |SETUP FILE NAME.|
000012A0: B7 16 9E 07 4A 53 52 20 9F 20 3B 9F 20 BC 49 43 |....JSR . ;. .IC|
000012B0: 41 4C 20 46 49 4C 45 00 CD 16 A8 07 4C 44 58 20 |AL FILE.....LDX |
000012C0: 23 30 34 20 3B 9F 20 4F 55 54 50 55 54 00 E6 16 |#04 ;. OUTPUT...|
000012D0: B2 07 4A 53 52 20 43 48 4B 4F 55 54 20 3B 43 48 |..JSR CHKOUT ;CH|
000012E0: 41 4E 4E 45 4C 3B 00 04 17 BC 07 4A 53 52 20 42 |ANNEL;.....JSR B|
000012F0: 41 4B 4F 55 54 20 3B 42 41 4E 4B 20 4F 55 54 20 |AKOUT ;BANK OUT |
00001300: 52 4F 4D 3B 00 20 17 C6 07 4A 4D 50 20 42 4C 52 |ROM;. ...JMP BLR|
00001310: 4F 4D 20 3B 89 20 4D 41 49 4E 20 50 52 47 4D 3B |OM ;. MAIN PRGM;|
00001320: 00 26 17 D0 07 3B 00 4A 17 DA 07 3B AC 20 54 48 |.&...;.J...;. TH|
00001330: 45 20 46 4F 4C 4C 4F 57 49 4E 47 20 43 4F 44 45 |E FOLLOWING CODE|
00001340: 20 4F 50 45 52 41 54 45 53 AC 00 6E 17 E4 07 3B | OPERATES..n...;|
00001350: AC 20 55 4E 44 45 52 20 54 48 45 20 42 41 53 49 |. UNDER THE BASI|
00001360: 43 20 52 4F 4D 20 20 20 20 20 20 20 20 AC 00 74 |C ROM ..t|
00001370: 17 EE 07 3B 00 98 17 F8 07 AC B2 24 41 30 30 30 |...;.......$A000|
00001380: 20 3B 54 48 45 20 53 54 41 52 54 20 4F 46 20 42 | ;THE START OF B|
00001390: 41 53 49 43 20 52 4F 4D 00 9E 17 02 08 3B 00 C5 |ASIC ROM.....;..|
000013A0: 17 0C 08 42 4C 52 4F 4D 20 4C 44 58 20 54 58 54 |...BLROM LDX TXT|
000013B0: 54 41 42 20 3B 43 48 45 43 4B 20 8B 20 54 48 45 |TAB ;CHECK . THE|
000013C0: 52 45 20 49 53 00 DE 17 16 08 49 4E 58 20 3B 41 |RE IS.....INX ;A|
000013D0: 20 42 41 53 49 43 20 50 52 47 4D 20 49 4E 00 EE | BASIC PRGM IN..|
000013E0: 17 20 08 49 4E 58 20 3B 4D 45 4D B0 59 3B 00 10 |. .INX ;MEM.Y;..|
000013F0: 18 2A 08 43 50 58 20 56 41 52 54 41 42 20 3B 43 |.*.CPX VARTAB ;C|
00001400: 4D 50 20 4C 4F 57 20 42 59 54 45 20 31 53 54 3B |MP LOW BYTE 1ST;|
00001410: 00 2E 18 34 08 42 4E 45 20 54 45 58 54 49 4E 20 |...4.BNE TEXTIN |
00001420: 3B 8B 20 A8 20 B2 20 A7 20 54 48 45 52 45 00 51 |;. . . . THERE.Q|
00001430: 18 3E 08 4C 44 58 20 54 58 54 54 41 42 AA 31 20 |.>.LDX TXTTAB.1 |
00001440: 3B 49 53 20 54 58 45 58 54 20 49 4E 20 4D 45 4D |;IS TXEXT IN MEM|
00001450: 3B 00 72 18 48 08 43 50 58 20 56 41 52 54 41 42 |;.r.H.CPX VARTAB|
00001460: AA 31 20 3B 43 4D 50 20 48 49 47 48 20 42 59 54 |.1 ;CMP HIGH BYT|
00001470: 45 3B 00 9A 18 52 08 42 4E 45 20 54 45 58 54 49 |E;...R.BNE TEXTI|
00001480: 4E 20 3B 22 3C 3E 3F 20 54 48 45 4E 20 54 48 45 |N ;"<>? THEN THE|
00001490: 52 45 27 53 20 54 45 58 54 3B 00 BA 18 5C 08 4A |RE'S TEXT;...\.J|
000014A0: 4D 50 20 4A 50 44 91 45 58 49 20 3B 8B 20 B2 20 |MP JPD.EXI ;. . |
000014B0: A7 20 4E 4F 20 54 45 58 54 3B 00 C0 18 66 08 3B |. NO TEXT;...f.;|
000014C0: 00 EC 18 70 08 54 45 58 54 49 4E 20 4A 53 52 20 |...p.TEXTIN JSR |
000014D0: 53 45 50 4D 45 53 20 3B 50 52 54 20 53 45 50 41 |SEPMES ;PRT SEPA|
000014E0: 52 41 54 49 4E 47 20 4D 45 53 47 3B 00 01 19 7A |RATING MESG;...z|
000014F0: 08 50 4C 41 20 3B 8C 20 43 48 41 52 41 43 54 45 |.PLA ;. CHARACTE|
00001500: 52 00 07 19 84 08 3B 00 26 19 8E 08 3B 53 45 54 |R.....;.&...;SET|
00001510: 55 50 20 46 4C 41 47 53 20 41 43 43 B0 44 49 4E |UP FLAGS ACC.DIN|
00001520: 47 20 A4 20 85 3B 00 47 19 98 08 3B 58 52 45 46 |G . .;.G...;XREF|
00001530: 40 20 20 AB 20 41 4C 4C 52 45 46 B2 31 20 20 20 |@ . ALLREF.1 |
00001540: 41 4C 4C 56 4E B2 30 00 68 19 A2 08 3B 58 52 45 |ALLVN.0.h...;XRE|
00001550: 46 40 41 20 AB 20 41 4C 4C 52 45 46 B2 30 20 20 |F@A . ALLREF.0 |
00001560: 20 41 4C 4C 56 4E B2 30 00 89 19 AC 08 3B 58 52 | ALLVN.0.....;XR|
00001570: 45 46 41 20 20 AB 20 41 4C 4C 52 45 46 B2 30 20 |EFA . ALLREF.0 |
00001580: 20 20 41 4C 4C 56 4E B2 31 00 8F 19 B6 08 3B 00 | ALLVN.1.....;.|
00001590: AF 19 C0 08 4C 44 59 20 23 30 30 20 3B 5A 45 52 |....LDY #00 ;ZER|
000015A0: 4F 20 A4 20 52 45 53 45 54 20 46 4C 41 47 53 00 |O . RESET FLAGS.|
000015B0: CA 19 CA 08 53 54 59 20 41 4C 4C 52 45 46 20 3B |....STY ALLREF ;|
000015C0: AF 20 81 20 49 4E 44 45 58 3B 00 D8 19 D4 08 49 |. . INDEX;.....I|
000015D0: 4E 43 20 41 4C 4C 56 4E 00 F7 19 DE 08 43 4D 50 |NC ALLVN.....CMP|
000015E0: 20 23 22 40 22 20 3B 22 4C 49 53 54 20 41 4C 4C | #"@" ;"LIST ALL|
000015F0: 20 52 45 46 27 53 3F 00 0E 1A E8 08 42 4E 45 20 | REF'S?.....BNE |
00001600: 53 4B 49 50 32 20 3B CB 20 8B 20 4E 4F 3B 00 2F |SKIP2 ;. . NO;./|
00001610: 1A F2 08 49 4E 43 20 41 4C 4C 52 45 46 20 3B 22 |...INC ALLREF ;"|
00001620: 40 22 20 57 41 53 20 45 4E 54 45 52 45 44 3B 00 |@" WAS ENTERED;.|
00001630: 3D 1A FC 08 53 54 59 20 41 4C 4C 56 4E 00 43 1A |=...STY ALLVN.C.|
00001640: 06 09 3B 00 68 1A 10 09 3B A1 20 56 41 52 49 41 |..;.h...;. VARIA|
00001650: 42 4C 45 20 B0 20 23 20 46 4F 4C 4C 4F 57 49 4E |BLE . # FOLLOWIN|
00001660: 47 20 22 58 52 45 46 27 00 6E 1A 1A 09 3B 00 8C |G "XREF'.n...;..|
00001670: 1A 24 09 4C 4F 4F 50 32 20 4A 53 52 20 43 48 52 |.$.LOOP2 JSR CHR|
00001680: A1 20 3B A1 20 41 20 43 48 41 52 3B 00 A8 1A 2E |. ;. A CHAR;....|
00001690: 09 43 4D 50 20 23 30 30 20 3B 22 45 4E 44 20 4F |.CMP #00 ;"END O|
000016A0: 46 20 49 4E 50 55 54 3F 00 BF 1A 38 09 42 45 51 |F INPUT?...8.BEQ|
000016B0: 20 80 53 54 52 20 3B CB 20 8B 20 59 45 53 3B 00 | .STR ;. . YES;.|
000016C0: E2 1A 42 09 53 4B 49 50 32 20 53 54 41 20 42 55 |..B.SKIP2 STA BU|
000016D0: 46 31 AA 31 2C 59 20 3B 94 20 53 54 52 49 4E 47 |F1.1,Y ;. STRING|
000016E0: 20 A4 00 FD 1A 4C 09 53 54 41 20 42 55 46 32 AA | ....L.STA BUF2.|
000016F0: 31 2C 59 20 3B 42 55 46 46 45 52 53 3B 00 05 1B |1,Y ;BUFFERS;...|
00001700: 56 09 49 4E 59 00 20 1B 60 09 43 50 59 20 23 30 |V.INY. .`.CPY #0|
00001710: 35 20 3B A1 20 4D 41 58 2E 20 4E 55 4D 42 45 52 |5 ;. MAX. NUMBER|
00001720: 00 3F 1B 6A 09 42 4E 45 20 4C 4F 4F 50 32 20 3B |.?.j.BNE LOOP2 ;|
00001730: 22 4F 46 20 43 48 41 52 41 43 54 45 52 53 3F 00 |"OF CHARACTERS?.|
00001740: 5B 1B 74 09 80 53 54 52 20 53 54 59 20 42 55 46 |[.t..STR STY BUF|
00001750: 31 20 3B 94 20 53 54 52 49 4E 47 00 6F 1B 7E 09 |1 ;. STRING.o.~.|
00001760: 53 54 59 20 42 55 46 32 20 3B C3 47 54 48 3B 00 |STY BUF2 ;.GTH;.|
00001770: 85 1B 88 09 54 59 41 20 3B 8B 20 4E 4F 20 53 54 |....TYA ;. NO ST|
00001780: 52 20 57 41 53 00 A3 1B 92 09 42 45 51 20 4C 4F |R WAS.....BEQ LO|
00001790: 4F 50 33 AB 32 20 3B 45 4E 54 45 52 45 44 20 59 |OP3.2 ;ENTERED Y|
000017A0: B2 30 3B 00 C3 1B 9C 09 4C 44 41 20 23 30 30 20 |.0;.....LDA #00 |
000017B0: 3B 58 52 45 46 40 41 20 57 41 53 20 45 4E 54 45 |;XREF@A WAS ENTE|
000017C0: 52 45 44 00 E2 1B A6 09 53 54 41 20 41 4C 4C 52 |RED.....STA ALLR|
000017D0: 45 46 20 3B 50 52 47 2E 20 4C 4F 4F 50 53 20 32 |EF ;PRG. LOOPS 2|
000017E0: 20 8B 00 FF 1B B0 09 42 45 51 20 53 54 52 45 4E | ......BEQ STREN|
000017F0: 54 20 3B 41 4C 4C 52 45 46 20 B3 B1 20 30 3B 00 |T ;ALLREF .. 0;.|
00001800: 05 1C BA 09 3B 00 25 1C C4 09 3B 8B 20 4E 4F 20 |....;.%...;. NO |
00001810: 53 54 52 20 45 4E 54 45 52 45 44 20 A7 20 50 52 |STR ENTERED . PR|
00001820: 54 20 41 4C 4C 00 46 1C CE 09 3B 52 45 46 2E 20 |T ALL.F...;REF. |
00001830: 53 54 41 52 54 49 4E 47 20 57 49 54 48 20 5A 45 |STARTING WITH ZE|
00001840: 52 4F 20 55 50 3B 00 4C 1C D8 09 3B 00 69 1C E2 |RO UP;.L...;.i..|
00001850: 09 4C 44 58 20 23 24 30 42 20 3B 31 32 20 43 48 |.LDX #$0B ;12 CH|
00001860: 41 52 20 A4 20 4D 4F 56 45 00 88 1C EC 09 4C 4F |AR . MOVE.....LO|
00001870: 4F 50 33 20 4C 44 41 20 4D 45 53 42 55 46 2C 58 |OP3 LDA MESBUF,X|
00001880: 20 3B A1 20 43 48 41 52 00 AD 1C F6 09 53 54 41 | ;. CHAR.....STA|
00001890: 20 42 55 46 31 2C 58 20 3B 4D 4F 56 45 20 49 54 | BUF1,X ;MOVE IT|
000018A0: 20 A4 20 54 48 45 20 42 55 46 31 26 32 00 C7 1C | . THE BUF1&2...|
000018B0: 00 0A 44 45 58 20 3B 42 55 4D 50 20 49 4E 44 45 |..DEX ;BUMP INDE|
000018C0: 58 20 52 45 47 53 3B 00 E8 1C 0A 0A 42 50 4C 20 |X REGS;.....BPL |
000018D0: 4C 4F 4F 50 33 20 3B 9A 20 55 4E 54 49 4C 20 41 |LOOP3 ;. UNTIL A|
000018E0: 4C 4C 20 4D 4F 56 45 44 00 0E 1D 14 0A 53 54 52 |LL MOVED.....STR|
000018F0: 45 4E 54 20 4C 44 58 20 54 58 54 54 41 42 20 3B |ENT LDX TXTTAB ;|
00001900: 53 54 41 52 54 20 4F 46 20 42 41 53 49 43 00 16 |START OF BASIC..|
00001910: 1D 1E 0A 44 45 58 00 2F 1D 28 0A 53 54 58 20 50 |...DEX./.(.STX P|
00001920: 4F B5 20 3B 94 20 A4 20 22 47 45 54 42 59 27 00 |O. ;. . "GETBY'.|
00001930: 50 1D 32 0A 4C 44 41 20 54 58 54 54 41 42 AA 31 |P.2.LDA TXTTAB.1|
00001940: 20 3B A1 20 4D 53 42 20 4F 46 20 53 54 41 52 54 | ;. MSB OF START|
00001950: 00 67 1D 3C 0A 53 54 41 20 50 4F B5 AA 31 20 3B |.g.<.STA PO..1 ;|
00001960: 94 20 49 54 20 A4 4F 00 86 1D 46 0A 4C 44 41 20 |. IT .O...F.LDA |
00001970: 23 24 30 30 20 3B 5A 45 52 4F 20 54 48 45 20 46 |#$00 ;ZERO THE F|
00001980: 4C 41 47 20 49 4E 00 A1 1D 50 0A 53 54 41 20 4E |LAG IN...P.STA N|
00001990: 55 4D 50 4E 54 AA 31 20 3B A1 C3 20 28 A8 20 23 |UMPNT.1 ;.. (. #|
000019A0: 29 00 C1 1D 5A 0A 49 4E 43 20 42 53 80 20 3B 53 |)...Z.INC BS. ;S|
000019B0: 45 54 20 80 20 4F 46 20 4C 49 4E 45 20 46 4C 41 |ET . OF LINE FLA|
000019C0: 47 00 E8 1D 64 0A 53 54 41 20 50 52 47 80 20 3B |G...d.STA PRG. ;|
000019D0: 5A 45 52 4F 20 80 20 4F 46 20 42 41 53 49 43 20 |ZERO . OF BASIC |
000019E0: 50 52 47 20 46 4C 41 47 00 0D 1E 6E 0A 53 54 41 |PRG FLAG...n.STA|
000019F0: 20 45 58 49 54 31 30 AA 31 20 3B 4C 4F 4F 50 20 | EXIT10.1 ;LOOP |
00001A00: 54 48 52 55 20 50 52 47 20 46 4C 41 47 00 2F 1E |THRU PRG FLAG./.|
00001A10: 78 0A 4C 44 41 20 23 B3 4C 4E 42 55 46 20 3B 52 |x.LDA #.LNBUF ;R|
00001A20: 45 53 45 54 20 50 4F B5 45 52 20 4F 46 20 B9 00 |ESET PO.ER OF ..|
00001A30: 52 1E 82 0A 53 54 41 20 4C 4E 80 20 3B 49 4E 20 |R...STA LN. ;IN |
00001A40: 4C 49 4E 45 20 53 A4 52 41 47 45 20 42 55 46 46 |LINE S.RAGE BUFF|
00001A50: 45 52 00 75 1E 8C 0A 4C 44 41 20 23 B1 4C 4E 42 |ER.u...LDA #.LNB|
00001A60: 55 46 20 3B A4 20 53 54 41 52 54 20 4F 46 20 42 |UF ;. START OF B|
00001A70: 55 46 46 45 52 00 83 1E 96 0A 53 54 41 20 4C 4E |UFFER.....STA LN|
00001A80: 80 AA 31 00 89 1E A0 0A 3B 00 AC 1E AA 0A 3B 22 |..1.....;.....;"|
00001A90: 57 41 53 20 41 20 4E 4F 2E 20 4F 52 20 41 20 56 |WAS A NO. OR A V|
00001AA0: 41 52 2E 20 45 4E 54 45 52 45 44 3F 00 B2 1E B4 |AR. ENTERED?....|
00001AB0: 0A 3B 00 CF 1E BE 0A 4C 44 41 20 42 55 46 31 AA |.;.....LDA BUF1.|
00001AC0: 31 20 3B A1 20 31 53 54 20 43 48 41 52 20 AF 00 |1 ;. 1ST CHAR ..|
00001AD0: F1 1E C8 0A 43 4D 50 20 23 24 33 41 20 3B 43 48 |....CMP #$3A ;CH|
00001AE0: 45 43 4B 20 8B 20 49 53 20 41 20 4E 55 4D 42 45 |ECK . IS A NUMBE|
00001AF0: 52 00 08 1F D2 0A 42 43 53 20 A8 4E 55 4D 20 3B |R.....BCS .NUM ;|
00001B00: CB 20 8B 20 88 54 45 52 00 2F 1F DC 0A 49 4E 43 |. . .TER./...INC|
00001B10: 20 4E 55 4D 50 4E 54 AA 31 20 3B 4E 55 4D 20 45 | NUMPNT.1 ;NUM E|
00001B20: 4E 54 45 52 45 44 AB 53 45 54 20 46 4C 41 47 00 |NTERED.SET FLAG.|
00001B30: 35 1F E6 0A 3B 00 57 1F F0 0A 3B 53 54 41 52 54 |5...;.W...;START|
00001B40: 20 4F 46 20 46 49 4E 44 20 56 41 52 20 B0 20 23 | OF FIND VAR . #|
00001B50: 20 53 45 43 54 49 91 00 5D 1F FA 0A 3B 00 86 1F | SECTI..]...;...|
00001B60: 04 0B 91 43 41 4E 43 20 4C 44 41 20 23 30 30 20 |...CANC LDA #00 |
00001B70: 3B 43 4C 45 41 52 20 22 4F 4E 2D 47 4F 54 4F 22 |;CLEAR "ON-GOTO"|
00001B80: 20 46 4C 41 47 3B 00 96 1F 0E 0B 53 54 41 20 91 | FLAG;.....STA .|
00001B90: 46 4C 41 47 AA 31 00 B1 1F 18 0B A8 4E 55 4D 20 |FLAG.1......NUM |
00001BA0: 4A 53 52 20 A1 42 59 20 3B A1 20 41 20 42 59 54 |JSR .BY ;. A BYT|
00001BB0: 45 00 D7 1F 22 0B 80 43 48 4B 20 4C 44 58 20 50 |E..."..CHK LDX P|
00001BC0: 52 47 80 20 3B 22 45 4E 44 20 4F 46 20 42 41 53 |RG. ;"END OF BAS|
00001BD0: 49 43 20 50 52 47 3F 00 EC 1F 2C 0B 42 45 51 20 |IC PRG?...,.BEQ |
00001BE0: 53 4B 49 50 33 20 3B CB 20 8B 20 A8 00 0D 20 36 |SKIP3 ;. . ... 6|
00001BF0: 0B 4A 4D 50 20 50 52 54 80 20 3B 50 52 54 20 4C |.JMP PRT. ;PRT L|
00001C00: 49 4E 45 23 20 49 4E 20 4C 4E 42 55 46 00 38 20 |INE# IN LNBUF.8 |
00001C10: 40 0B 53 4B 49 50 33 20 4C 44 58 20 23 24 30 30 |@.SKIP3 LDX #$00|
00001C20: 20 3B 58 B2 53 45 41 52 43 48 20 4B 45 59 20 81 | ;X.SEARCH KEY .|
00001C30: 20 22 50 52 49 4E 54 27 00 56 20 4A 0B 43 4D 50 | "PRINT'.V J.CMP|
00001C40: 20 23 24 38 46 20 3B 22 49 53 20 49 54 20 41 20 | #$8F ;"IS IT A |
00001C50: 27 52 45 4D 27 3F 00 6B 20 54 0B 42 45 51 20 8F |'REM'?.k T.BEQ .|
00001C60: 20 3B 47 4F 20 49 46 20 59 45 53 00 8A 20 5E 0B | ;GO IF YES.. ^.|
00001C70: 43 4D 50 20 23 24 38 33 20 3B 22 49 53 20 49 54 |CMP #$83 ;"IS IT|
00001C80: 20 41 20 27 44 41 54 41 27 3F 00 9F 20 68 0B 42 | A 'DATA'?.. h.B|
00001C90: 45 51 20 8F 20 3B 47 4F 20 49 46 20 59 45 53 00 |EQ . ;GO IF YES.|
00001CA0: BD 20 72 0B 43 4D 50 20 23 24 32 32 20 3B 22 49 |. r.CMP #$22 ;"I|
00001CB0: 53 20 49 54 20 41 20 51 55 4F 54 45 3F 00 CB 20 |S IT A QUOTE?.. |
00001CC0: 7C 0B 42 4E 45 20 53 4B 49 50 34 00 D1 20 86 0B ||.BNE SKIP4.. ..|
00001CD0: 3B 00 F1 20 90 0B 3B 53 45 41 52 43 48 20 81 20 |;.. ..;SEARCH . |
00001CE0: 80 20 4F 46 20 4C 49 4E 45 20 B0 20 51 55 4F 54 |. OF LINE . QUOT|
00001CF0: 45 00 0D 21 9A 0B 3B 8B 20 83 2C 52 45 4D 20 4F |E..!..;. .,REM O|
00001D00: 52 20 50 52 49 4E 54 20 46 4F 55 4E 44 00 13 21 |R PRINT FOUND..!|
00001D10: A4 0B 3B 00 34 21 AE 0B 99 20 4C 44 58 20 23 24 |..;.4!... LDX #$|
00001D20: 32 32 20 3B 53 45 41 52 43 48 20 4B 45 59 20 81 |22 ;SEARCH KEY .|
00001D30: 20 99 22 53 00 59 21 B8 0B 8F 20 53 54 58 20 53 | ."S.Y!... STX S|
00001D40: 43 48 4B 45 59 2B 31 20 3B 53 41 56 45 20 53 45 |CHKEY+1 ;SAVE SE|
00001D50: 41 52 43 48 20 43 48 41 52 00 79 21 C2 0B 4C 4F |ARCH CHAR.y!..LO|
00001D60: 4F 50 34 20 4A 53 52 20 A1 42 59 20 3B 53 45 41 |OP4 JSR .BY ;SEA|
00001D70: 52 43 48 20 81 20 4B 45 59 00 9B 21 CC 0B 43 4D |RCH . KEY..!..CM|
00001D80: 50 20 23 24 30 30 20 3B 22 49 53 20 49 54 3D 45 |P #$00 ;"IS IT=E|
00001D90: 4E 44 20 4F 46 20 4C 49 4E 45 3F 00 B3 21 D6 0B |ND OF LINE?..!..|
00001DA0: 42 45 51 20 80 43 48 4B 20 3B 89 20 80 20 43 48 |BEQ .CHK ;. . CH|
00001DB0: 45 43 4B 00 D9 21 E0 0B 53 43 48 4B 45 59 20 43 |ECK..!..SCHKEY C|
00001DC0: 4D 50 20 23 24 30 30 20 3B B2 32 32 20 8B 20 50 |MP #$00 ;.22 . P|
00001DD0: 52 54 2C B2 30 20 8B 20 8F 00 FC 21 EA 0B 42 4E |RT,.0 . ...!..BN|
00001DE0: 45 20 4C 4F 4F 50 34 20 3B 4C 4F 4F 50 20 55 4E |E LOOP4 ;LOOP UN|
00001DF0: 54 49 4C 20 91 45 20 46 4F 55 4E 44 00 20 22 F4 |TIL .E FOUND. ".|
00001E00: 0B 42 45 51 20 80 43 48 4B 20 3B 49 54 20 4D 55 |.BEQ .CHK ;IT MU|
00001E10: 53 54 B2 30 20 A4 20 42 45 20 48 45 52 45 AB CB |ST.0 . BE HERE..|
00001E20: 00 26 22 FE 0B 3B 00 45 22 08 0C 3B 43 48 45 43 |.&"..;.E"..;CHEC|
00001E30: 4B 20 8B 20 4C 4F 4F 4B 49 4E 47 20 81 20 23 20 |K . LOOKING . # |
00001E40: B0 20 56 41 52 00 4B 22 12 0C 3B 00 72 22 1C 0C |. VAR.K"..;.r"..|
00001E50: 53 4B 49 50 34 20 4C 44 58 20 4E 55 4D 50 4E 54 |SKIP4 LDX NUMPNT|
00001E60: AA 31 20 3B B2 30 20 8B 20 56 41 52 20 31 20 8B |.1 ;.0 . VAR 1 .|
00001E70: 20 A8 00 8F 22 26 0C 42 45 51 20 53 4B 50 4E 55 | ..."&.BEQ SKPNU|
00001E80: 4D 20 3B CB 20 4C 4F 4F 4B 20 81 20 56 41 52 00 |M ;. LOOK . VAR.|
00001E90: 95 22 30 0C 3B 00 BF 22 3A 0C 3B 4C 4F 4F 4B 20 |."0.;..":.;LOOK |
00001EA0: 81 20 22 52 55 4E 22 2C 22 47 4F 54 4F 22 2C 22 |. "RUN","GOTO","|
00001EB0: 47 4F 53 55 42 22 20 26 20 22 54 48 45 4E 27 00 |GOSUB" & "THEN'.|
00001EC0: C5 22 44 0C 3B 00 E3 22 4E 0C 43 4D 50 20 23 24 |."D.;.."N.CMP #$|
00001ED0: 38 41 20 3B 22 44 4F 45 53 20 49 54 20 3D 20 52 |8A ;"DOES IT = R|
00001EE0: 55 4E 3F 00 08 23 58 0C 42 45 51 20 4E 55 4D 53 |UN?..#X.BEQ NUMS|
00001EF0: 54 52 20 3B 8B 20 59 45 53 20 4A 4D 50 20 A4 20 |TR ;. YES JMP . |
00001F00: 50 41 54 43 48 20 49 4E 00 1D 23 62 0C 43 4D 50 |PATCH IN..#b.CMP|
00001F10: 20 23 24 38 39 20 3B 22 47 4F 54 4F 27 00 2C 23 | #$89 ;"GOTO'.,#|
00001F20: 6C 0C 42 45 51 20 4E 55 4D 53 54 52 00 42 23 76 |l.BEQ NUMSTR.B#v|
00001F30: 0C 43 4D 50 20 23 24 38 44 20 3B 22 47 4F 53 55 |.CMP #$8D ;"GOSU|
00001F40: 42 27 00 51 23 80 0C 42 45 51 20 4E 55 4D 53 54 |B'.Q#..BEQ NUMST|
00001F50: 52 00 66 23 8A 0C 43 4D 50 20 23 24 41 37 20 3B |R.f#..CMP #$A7 ;|
00001F60: 22 54 48 45 4E 27 00 75 23 94 0C 42 45 51 20 4E |"THEN'.u#..BEQ N|
00001F70: 55 4D 53 54 52 00 98 23 9E 0C 91 46 4C 41 47 20 |UMSTR..#...FLAG |
00001F80: 4C 44 58 20 23 30 30 20 3B 43 48 45 43 4B 20 81 |LDX #00 ;CHECK .|
00001F90: 20 4E 55 4D 42 45 52 53 00 BC 23 A8 0C 42 45 51 | NUMBERS..#..BEQ|
00001FA0: 20 A8 4E 55 4D 20 3B 46 4F 4C 4C 4F 57 49 4E 47 | .NUM ;FOLLOWING|
00001FB0: 20 22 2C 22 20 42 45 43 41 55 53 45 00 D9 23 B2 | "," BECAUSE..#.|
00001FC0: 0C 43 4D 50 20 23 22 2C 22 20 3B 4F 46 20 22 4F |.CMP #"," ;OF "O|
00001FD0: 4E 22 20 43 4F 4D 4D AF 3B 00 FC 23 BC 0C 42 4E |N" COMM.;..#..BN|
00001FE0: 45 20 91 43 41 4E 43 20 3B B3 B1 22 2C 22 20 43 |E .CANC ;.."," C|
00001FF0: 41 4E 43 45 4C 20 43 48 45 43 4B 3B 00 2D 24 C6 |ANCEL CHECK;.-$.|
00002000: 0C 4E 55 4D 53 54 52 20 53 54 41 20 91 46 4C 41 |.NUMSTR STA .FLA|
00002010: 47 AA 31 20 3B 53 45 54 20 46 4C 41 47 20 49 4E |G.1 ;SET FLAG IN|
00002020: 43 41 53 45 20 4F 46 20 22 4F 4E 22 3B 00 4D 24 |CASE OF "ON";.M$|
00002030: D0 0C 4A 53 52 20 A1 42 59 20 3B 22 49 53 20 4E |..JSR .BY ;"IS N|
00002040: 45 58 54 20 43 48 41 52 20 41 20 23 3F 00 67 24 |EXT CHAR A #?.g$|
00002050: DA 0C 43 4D 50 20 23 24 33 41 20 3B 22 49 53 20 |..CMP #$3A ;"IS |
00002060: 49 54 20 3E 20 39 3F 00 81 24 E4 0C 42 43 53 20 |IT > 9?..$..BCS |
00002070: 91 43 41 4E 43 20 3B CB 20 8B 20 49 54 20 49 53 |.CANC ;. . IT IS|
00002080: 3B 00 9B 24 EE 0C 43 4D 50 20 23 24 33 30 20 3B |;..$..CMP #$30 ;|
00002090: 22 49 53 20 49 54 20 3C 20 30 3F 00 B5 24 F8 0C |"IS IT < 0?..$..|
000020A0: 42 43 43 20 91 43 41 4E 43 20 3B CB 20 8B 20 49 |BCC .CANC ;. . I|
000020B0: 54 20 49 53 3B 00 D2 24 02 0D 42 43 53 20 50 43 |T IS;..$..BCS PC|
000020C0: 48 49 4E 20 3B 55 4E 43 91 2E 20 42 52 41 4E 43 |HIN ;UNC.. BRANC|
000020D0: 48 3B 00 D8 24 0C 0D 3B 00 F3 24 16 0D 3B 43 48 |H;..$..;..$..;CH|
000020E0: 45 43 4B 20 81 20 56 41 52 49 41 42 4C 45 20 4E |ECK . VARIABLE N|
000020F0: 41 4D 45 00 F9 24 20 0D 3B 00 16 25 2A 0D 53 4B |AME..$ .;..%*.SK|
00002100: 50 4E 55 4D 20 43 4D 50 20 23 24 34 31 20 3B B3 |PNUM CMP #$41 ;.|
00002110: 20 A7 20 22 41 27 00 31 25 34 0D 42 43 43 20 A8 | . "A'.1%4.BCC .|
00002120: 4E 55 4D 20 3B CB 20 8B 20 A8 20 41 20 88 54 45 |NUM ;. . . A .TE|
00002130: 52 00 4C 25 3E 0D 43 4D 50 20 23 24 35 42 20 3B |R.L%>.CMP #$5B ;|
00002140: 22 3E 20 54 48 45 4E 20 27 58 27 3F 00 61 25 48 |"> THEN 'X'?.a%H|
00002150: 0D 42 43 53 20 A8 4E 55 4D 20 3B CB 20 8B 20 49 |.BCS .NUM ;. . I|
00002160: 53 00 82 25 52 0D 50 43 48 49 4E 20 4C 44 41 20 |S..%R.PCHIN LDA |
00002170: 23 B3 42 55 46 32 20 3B 53 45 54 55 50 20 A1 C3 |#.BUF2 ;SETUP ..|
00002180: 20 A4 00 A4 25 5C 0D 53 54 41 20 53 32 41 44 52 | ...%\.STA S2ADR|
00002190: 20 3B 43 4D 50 20 42 55 46 32 20 26 20 54 48 45 | ;CMP BUF2 & THE|
000021A0: 20 53 54 52 00 C1 25 66 0D 4A 53 52 20 A1 C3 20 | STR..%f.JSR .. |
000021B0: 3B A1 20 80 20 4F 46 20 56 41 52 20 26 20 43 4D |;. . OF VAR & CM|
000021C0: 50 00 E8 25 70 0D 42 45 51 20 4A 4D 50 4E 54 31 |P..%p.BEQ JMPNT1|
000021D0: 20 3B 22 3D 3F 20 50 55 54 20 4C 49 4E 45 23 20 | ;"=? PUT LINE# |
000021E0: 49 4E 20 4C 4E 42 55 46 00 09 26 7A 0D 4C 44 58 |IN LNBUF..&z.LDX|
000021F0: 20 41 4C 4C 56 4E 20 3B 22 57 41 53 20 27 40 27 | ALLVN ;"WAS '@'|
00002200: 20 45 4E 54 45 52 45 44 3F 00 24 26 84 0D 42 4E | ENTERED?.$&..BN|
00002210: 45 20 A8 4E 55 4D 20 3B CB 20 8B 20 40 20 57 41 |E .NUM ;. . @ WA|
00002220: 53 4E 22 54 00 46 26 8E 0D 42 43 43 20 53 4B 49 |SN"T.F&..BCC SKI|
00002230: 50 35 20 3B 8B 20 54 48 45 20 53 54 52 20 B3 20 |P5 ;. THE STR . |
00002240: 42 55 46 32 AB CB 00 70 26 98 0D 53 54 41 20 45 |BUF2...p&..STA E|
00002250: 58 49 54 31 30 AA 31 20 3B 53 45 54 20 54 48 45 |XIT10.1 ;SET THE|
00002260: 20 4C 4F 4F 50 20 41 47 41 49 4E 20 46 4C 41 47 | LOOP AGAIN FLAG|
00002270: 00 97 26 A2 0D 42 43 53 20 A8 4E 55 4D 20 3B 43 |..&..BCS .NUM ;C|
00002280: 41 52 52 59 20 49 53 20 53 45 54 20 55 4E 43 91 |ARRY IS SET UNC.|
00002290: 20 42 52 41 4E 43 48 00 BC 26 AC 0D 53 4B 49 50 | BRANCH..&..SKIP|
000022A0: 35 20 4C 44 41 20 23 B3 42 55 46 31 20 3B 53 45 |5 LDA #.BUF1 ;SE|
000022B0: 54 20 A4 20 43 4D 50 20 42 55 46 31 00 D4 26 B6 |T . CMP BUF1..&.|
000022C0: 0D 53 54 41 20 53 32 41 44 52 20 3B A4 20 53 54 |.STA S2ADR ;. ST|
000022D0: 52 49 4E 47 00 F5 26 C0 0D 4A 53 52 20 53 54 52 |RING..&..JSR STR|
000022E0: 43 4D 50 20 3B CB 20 53 54 52 41 49 47 48 54 20 |CMP ;. STRAIGHT |
000022F0: A4 20 43 4D 50 00 14 27 CA 0D 42 43 43 20 4A 4D |. CMP..'..BCC JM|
00002300: 50 4E 54 32 20 3B 8B 20 53 54 52 20 B3 20 42 55 |PNT2 ;. STR . BU|
00002310: 46 31 AB CB 00 33 27 D4 0D 42 45 51 20 4A 4D 50 |F1...3'..BEQ JMP|
00002320: 4E 54 32 20 3B 8B 20 53 54 52 20 B2 20 42 55 46 |NT2 ;. STR . BUF|
00002330: 31 AB CB 00 51 27 DE 0D 4C 44 41 20 23 B3 42 55 |1...Q'..LDA #.BU|
00002340: 46 32 20 3B 53 45 54 55 50 20 50 4F B5 45 52 20 |F2 ;SETUP PO.ER |
00002350: 81 00 65 27 E8 0D 53 54 41 20 53 32 41 44 52 20 |..e'..STA S2ADR |
00002360: 3B 4D 4F 56 45 00 85 27 F2 0D 4A 53 52 20 4D 4F |;MOVE..'..JSR MO|
00002370: 56 45 49 54 20 3B 4D 4F 56 45 20 53 54 52 20 A4 |VEIT ;MOVE STR .|
00002380: 20 42 55 46 32 00 A8 27 FC 0D 4C 44 41 20 23 B3 | BUF2..'..LDA #.|
00002390: 4C 4E 42 55 46 20 3B 52 45 53 45 54 20 80 20 4F |LNBUF ;RESET . O|
000023A0: 46 20 42 55 46 46 45 52 00 BB 27 06 0E 53 54 41 |F BUFFER..'..STA|
000023B0: 20 4C 4E 80 20 3B 50 4F B5 45 52 00 CB 27 10 0E | LN. ;PO.ER..'..|
000023C0: 4C 44 41 20 23 B1 4C 4E 42 55 46 00 D9 27 1A 0E |LDA #.LNBUF..'..|
000023D0: 53 54 41 20 4C 4E 80 AA 31 00 01 28 24 0E 4A 4D |STA LN..1..($.JM|
000023E0: 50 4E 54 31 20 4A 53 52 20 53 35 31 20 3B 50 55 |PNT1 JSR S51 ;PU|
000023F0: 54 20 4C 49 4E 45 20 23 20 49 4E 20 4C 4E 42 55 |T LINE # IN LNBU|
00002400: 46 00 1C 28 2E 0E 4A 4D 50 4E 54 32 20 4A 4D 50 |F..(..JMPNT2 JMP|
00002410: 20 A8 4E 55 4D 20 3B 9A 49 4E 55 45 00 22 28 38 | .NUM ;.INUE."(8|
00002420: 0E 3B 00 42 28 42 0E 3B AC 20 20 20 20 99 20 54 |.;.B(B.;. . T|
00002430: 48 45 20 48 45 4C 50 20 54 45 58 54 20 20 20 20 |HE HELP TEXT |
00002440: 20 AC 00 48 28 4C 0E 3B 00 6C 28 56 0E 48 45 4C | ..H(L.;.l(V.HEL|
00002450: 50 20 4C 44 41 20 23 B1 48 45 4C 50 4D 47 20 3B |P LDA #.HELPMG ;|
00002460: 8C 20 48 49 47 48 20 42 59 54 45 3B 00 7C 28 60 |. HIGH BYTE;.|(`|
00002470: 0E 53 54 41 20 4C 4F 4F 50 36 AA 32 00 95 28 6A |.STA LOOP6.2..(j|
00002480: 0E 4C 44 59 20 23 30 30 20 3B 5A 45 52 4F 20 49 |.LDY #00 ;ZERO I|
00002490: 4E 44 45 58 3B 00 B5 28 74 0E 4C 4F 4F 50 36 20 |NDEX;..(t.LOOP6 |
000024A0: 4C 44 41 20 48 45 4C 50 4D 47 2C 59 20 3B A1 20 |LDA HELPMG,Y ;. |
000024B0: 43 48 41 52 3B 00 DA 28 7E 0E 42 45 51 20 48 50 |CHAR;..(~.BEQ HP|
000024C0: 44 91 45 20 3B 22 44 4F 45 53 20 43 48 41 52 3D |D.E ;"DOES CHAR=|
000024D0: 30 3F 20 2D 20 44 4F 4E 45 3B 00 F2 28 88 0E 4A |0? - DONE;..(..J|
000024E0: 53 52 20 43 48 52 4F 55 54 20 3B 99 20 43 48 41 |SR CHROUT ;. CHA|
000024F0: 52 3B 00 FA 28 92 0E 49 4E 59 00 17 29 9C 0E 42 |R;..(..INY..)..B|
00002500: 4E 45 20 4C 4F 4F 50 36 20 3B 55 4E 43 91 2E 20 |NE LOOP6 ;UNC.. |
00002510: 42 52 41 4E 43 48 3B 00 36 29 A6 0E 49 4E 43 20 |BRANCH;.6)..INC |
00002520: 4C 4F 4F 50 36 AA 32 20 3B A1 20 82 20 32 35 35 |LOOP6.2 ;. . 255|
00002530: 20 43 48 41 52 3B 00 53 29 B0 0E 42 4E 45 20 4C | CHAR;.S)..BNE L|
00002540: 4F 4F 50 36 20 3B 55 4E 43 91 2E 20 42 52 41 4E |OOP6 ;UNC.. BRAN|
00002550: 43 48 3B 00 75 29 BA 0E 48 50 44 91 45 20 4A 4D |CH;.u)..HPD.E JM|
00002560: 50 20 4A 50 44 91 45 58 49 20 3B 8E 20 A4 20 42 |P JPD.EXI ;. . B|
00002570: 41 53 49 43 3B 00 7B 29 C4 0E 3B 00 9C 29 CE 0E |ASIC;.{)..;..)..|
00002580: 3B AC 20 9B 20 54 48 45 20 52 45 46 45 52 41 4E |;. . THE REFERAN|
00002590: 43 45 44 20 4C 49 4E 45 53 20 20 AC 00 A2 29 D8 |CED LINES ...).|
000025A0: 0E 3B 00 CA 29 E2 0E 43 52 20 4A 53 52 20 42 55 |.;..)..CR JSR BU|
000025B0: 46 45 4D 50 20 3B 43 48 45 43 4B 20 8B 20 4C 4E |FEMP ;CHECK . LN|
000025C0: 42 55 46 20 45 4D 50 54 59 3B 00 E4 29 EC 0E 42 |BUF EMPTY;..)..B|
000025D0: 45 51 20 48 45 52 45 32 20 3B 8B 20 45 4D 50 54 |EQ HERE2 ;. EMPT|
000025E0: 59 AB CB 3B 00 0B 2A F6 0E 4A 53 52 20 54 45 50 |Y..;..*..JSR TEP|
000025F0: 49 4E 43 20 3B 50 4F B5 20 A4 20 4C 49 4E 45 20 |INC ;PO. . LINE |
00002600: 23 20 49 4E 20 4C 4E 42 55 46 3B 00 32 2A 00 0F |# IN LNBUF;.2*..|
00002610: 42 45 51 20 53 4B 49 50 31 32 20 3B 22 44 4F 4E |BEQ SKIP12 ;"DON|
00002620: 45 20 41 4C 4C 20 52 45 46 27 53 3F 20 45 58 49 |E ALL REF'S? EXI|
00002630: 54 3B 00 46 2A 0A 0F 4C 44 59 20 23 30 30 20 3B |T;.F*..LDY #00 ;|
00002640: 49 4E 44 45 58 3B 00 6B 2A 14 0F 4C 44 41 20 28 |INDEX;.k*..LDA (|
00002650: 54 45 50 42 55 46 29 2C 59 20 3B A1 20 4C 53 42 |TEPBUF),Y ;. LSB|
00002660: 20 4F 46 20 4C 49 4E 45 20 23 3B 00 89 2A 1E 0F | OF LINE #;..*..|
00002670: 53 54 41 20 4C 49 4E 4E 55 4D 20 3B 94 20 49 54 |STA LINNUM ;. IT|
00002680: 20 81 20 42 41 53 49 43 53 00 A2 2A 28 0F 49 4E | . BASICS..*(.IN|
00002690: 59 20 3B 9B 20 4C 49 4E 45 20 52 4F 55 54 49 4E |Y ;. LINE ROUTIN|
000026A0: 45 3B 00 C7 2A 32 0F 4C 44 41 20 28 54 45 50 42 |E;..*2.LDA (TEPB|
000026B0: 55 46 29 2C 59 20 3B A1 20 4D 53 42 20 4F 46 20 |UF),Y ;. MSB OF |
000026C0: 4C 49 4E 45 20 23 3B 00 D8 2A 3C 0F 53 54 41 20 |LINE #;..*<.STA |
000026D0: 4C 49 4E 4E 55 4D AA 31 00 FF 2A 46 0F 4A 4D 50 |LINNUM.1..*F.JMP|
000026E0: 20 4A 50 43 52 4F 55 54 20 3B 42 41 4E 4B 20 49 | JPCROUT ;BANK I|
000026F0: 4E 20 52 4F 4D 20 26 20 9B 20 4C 49 4E 45 3B 00 |N ROM & . LINE;.|
00002700: 29 2B 50 0F 53 4B 49 50 31 32 20 4C 44 41 20 23 |)+P.SKIP12 LDA #|
00002710: B3 4C 4E 42 55 46 20 3B 52 45 53 45 54 20 80 20 |.LNBUF ;RESET . |
00002720: 4F 46 20 42 55 46 46 45 52 00 3D 2B 5A 0F 53 54 |OF BUFFER.=+Z.ST|
00002730: 41 20 4C 4E 80 20 3B 50 4F B5 45 52 3B 00 4D 2B |A LN. ;PO.ER;.M+|
00002740: 64 0F 4C 44 41 20 23 B1 4C 4E 42 55 46 00 5B 2B |d.LDA #.LNBUF.[+|
00002750: 6E 0F 53 54 41 20 4C 4E 80 AA 31 00 82 2B 78 0F |n.STA LN..1..+x.|
00002760: 48 45 52 45 32 20 4A 4D 50 20 44 91 45 31 20 3B |HERE2 JMP D.E1 ;|
00002770: 50 52 54 20 22 45 4E 44 20 4F 46 20 54 45 58 54 |PRT "END OF TEXT|
00002780: 22 3B 00 88 2B 82 0F 3B 00 A8 2B 8C 0F 3B AC 20 |";..+..;..+..;. |
00002790: 20 A1 20 C3 47 54 48 20 4F 46 20 41 20 56 41 52 | . .GTH OF A VAR|
000027A0: 20 B0 20 23 20 20 20 AC 00 AE 2B 96 0F 3B 00 CB | . # ...+..;..|
000027B0: 2B A0 0F A1 C3 20 4C 44 41 20 50 4F B5 20 3B A1 |+.... LDA PO. ;.|
000027C0: 20 54 48 45 20 41 44 44 20 4F 46 00 E9 2B AA 0F | THE ADD OF..+..|
000027D0: 53 54 41 20 53 31 41 44 52 20 3B 57 48 45 52 45 |STA S1ADR ;WHERE|
000027E0: 20 54 48 45 20 56 41 52 3B 00 08 2C B4 0F 4C 44 | THE VAR;..,..LD|
000027F0: 41 20 50 4F B5 AA 31 20 3B 53 54 41 52 54 53 20 |A PO..1 ;STARTS |
00002800: 49 4E 20 42 41 53 49 43 00 24 2C BE 0F 53 54 41 |IN BASIC.$,..STA|
00002810: 20 53 31 41 44 52 AA 31 20 3B 50 52 47 20 AF 20 | S1ADR.1 ;PRG . |
00002820: 94 20 49 54 00 43 2C C8 0F 4C 44 41 20 23 24 30 |. IT.C,..LDA #$0|
00002830: 31 20 3B 49 4E 5A 49 54 2E 20 56 41 52 20 C3 20 |1 ;INZIT. VAR . |
00002840: 43 4E 54 00 4F 2C D2 0F 53 54 41 20 53 31 C3 00 |CNT.O,..STA S1..|
00002850: 6C 2C DC 0F 4C 4F 4F 50 31 32 20 4A 53 52 20 A1 |l,..LOOP12 JSR .|
00002860: 42 59 20 3B A1 20 82 20 43 48 41 52 00 92 2C E6 |BY ;. . CHAR..,.|
00002870: 0F 4E 55 4D 50 4E 54 20 4C 44 58 20 23 24 30 30 |.NUMPNT LDX #$00|
00002880: 20 3B B2 31 20 8B 20 23 20 45 4E 54 20 30 20 8B | ;.1 . # ENT 0 .|
00002890: 20 A8 00 B0 2C F0 0F 42 4E 45 20 42 59 50 41 53 | ...,..BNE BYPAS|
000028A0: 53 20 3B 8B 20 23 20 45 4E 54 45 52 45 44 AB CB |S ;. # ENTERED..|
000028B0: 00 CB 2C FA 0F 43 4D 50 20 23 24 35 42 20 3B 22 |..,..CMP #$5B ;"|
000028C0: 3E 20 54 48 45 4E 20 27 5A 27 3F 00 ED 2C 04 10 |> THEN 'Z'?..,..|
000028D0: 42 43 53 20 4D 49 4E 55 53 31 20 3B CB 20 43 4F |BCS MINUS1 ;. CO|
000028E0: 4D 50 41 52 45 20 53 54 52 49 4E 47 53 00 0A 2D |MPARE STRINGS..-|
000028F0: 0E 10 43 4D 50 20 23 24 34 31 20 3B 44 4F 45 53 |..CMP #$41 ;DOES|
00002900: 20 49 54 20 B2 B1 20 22 41 27 00 23 2D 18 10 42 | IT .. "A'.#-..B|
00002910: 43 53 20 41 44 44 C3 20 3B CB 20 49 4E 43 20 C3 |CS ADD. ;. INC .|
00002920: 47 54 48 00 3D 2D 22 10 43 4D 50 20 23 24 32 34 |GTH.=-".CMP #$24|
00002930: 20 3B 44 4F 45 53 20 49 54 20 B2 20 24 00 55 2D | ;DOES IT . $.U-|
00002940: 2C 10 42 45 51 20 56 41 52 54 59 50 20 3B CB 20 |,.BEQ VARTYP ;. |
00002950: 8B 20 59 45 53 00 6F 2D 36 10 43 4D 50 20 23 24 |. YES.o-6.CMP #$|
00002960: 32 35 20 3B 44 4F 45 53 20 49 54 20 B2 20 25 00 |25 ;DOES IT . %.|
00002970: 7E 2D 40 10 42 45 51 20 56 41 52 54 59 50 00 98 |~-@.BEQ VARTYP..|
00002980: 2D 4A 10 43 4D 50 20 23 24 32 38 20 3B 44 4F 45 |-J.CMP #$28 ;DOE|
00002990: 53 20 49 54 20 B2 20 28 00 AF 2D 54 10 42 4E 45 |S IT . (..-T.BNE|
000029A0: 20 42 59 50 41 53 53 20 3B CB 20 8B 20 4E 4F 00 | BYPASS ;. . NO.|
000029B0: B5 2D 5E 10 3B 00 D6 2D 68 10 3B A8 48 49 4E 47 |.-^.;..-h.;.HING|
000029C0: 20 49 4E 20 54 48 45 20 28 29 20 B0 20 46 4F 4C | IN THE () . FOL|
000029D0: 4C 4F 57 49 4E 47 00 F8 2D 72 10 3B 22 24 22 20 |LOWING..-r.;"$" |
000029E0: B0 20 22 25 22 20 49 53 20 43 4F 55 4E 54 45 44 |. "%" IS COUNTED|
000029F0: 20 41 53 20 50 41 52 54 00 19 2E 7C 10 3B 4F 46 | AS PART...|.;OF|
00002A00: 20 54 48 45 20 56 41 52 49 41 42 4C 45 20 53 4F | THE VARIABLE SO|
00002A10: 20 57 45 20 4A 4D 50 20 A4 00 3B 2E 86 10 3B 53 | WE JMP ..;...;S|
00002A20: 54 52 43 4D 50 20 41 46 54 45 52 20 54 48 45 53 |TRCMP AFTER THES|
00002A30: 45 20 41 52 45 20 46 4F 55 4E 44 00 41 2E 90 10 |E ARE FOUND.A...|
00002A40: 3B 00 63 2E 9A 10 56 41 52 54 59 50 20 49 4E 43 |;.c...VARTYP INC|
00002A50: 20 53 31 C3 20 3B 49 4E 43 20 C3 47 54 48 20 42 | S1. ;INC .GTH B|
00002A60: 59 20 31 00 7F 2E A4 10 42 4E 45 20 4D 49 4E 55 |Y 1.....BNE MINU|
00002A70: 53 31 20 3B 55 4E 43 91 20 42 52 41 4E 43 48 00 |S1 ;UNC. BRANCH.|
00002A80: 85 2E AE 10 3B 00 A8 2E B8 10 42 59 50 41 53 53 |....;.....BYPASS|
00002A90: 20 43 4D 50 20 23 24 33 41 20 3B 4C 4F 4F 4B 49 | CMP #$3A ;LOOKI|
00002AA0: 4E 47 20 81 20 41 20 23 00 C6 2E C2 10 42 43 53 |NG . A #.....BCS|
00002AB0: 20 4D 49 4E 55 53 31 20 3B CB 20 8B 20 A8 20 41 | MINUS1 ;. . . A|
00002AC0: 20 C6 49 49 20 23 00 E4 2E CC 10 43 4D 50 20 23 | .II #.....CMP #|
00002AD0: 24 33 30 20 3B 43 48 45 43 4B 20 81 20 C6 49 49 |$30 ;CHECK . .II|
00002AE0: 20 30 AB 39 00 FA 2E D6 10 42 43 43 20 4D 49 4E | 0.9.....BCC MIN|
00002AF0: 55 53 31 20 3B CB 20 8B 20 A8 00 1D 2F E0 10 41 |US1 ;. . .../..A|
00002B00: 44 44 C3 20 49 4E 43 20 53 31 C3 20 3B 49 4E 43 |DD. INC S1. ;INC|
00002B10: 20 53 54 52 20 C3 47 54 48 20 43 4E 54 00 3F 2F | STR .GTH CNT.?/|
00002B20: EA 10 42 4E 45 20 4C 4F 4F 50 31 32 20 3B 55 4E |..BNE LOOP12 ;UN|
00002B30: 43 91 20 42 52 41 4E 43 48 AB 9A 49 4E 55 45 00 |C. BRANCH..INUE.|
00002B40: 45 2F F4 10 3B 00 67 2F FE 10 3B AC 20 20 43 4F |E/..;.g/..;. CO|
00002B50: 4D 50 41 52 45 20 42 55 46 31 20 B0 20 32 20 A4 |MPARE BUF1 . 2 .|
00002B60: 20 56 41 52 20 20 AC 00 8B 2F 08 11 3B AC 20 20 | VAR .../..;. |
00002B70: B0 20 23 20 57 48 4F 53 20 41 44 44 20 49 53 20 |. # WHOS ADD IS |
00002B80: 49 4E 20 53 31 41 44 52 20 20 AC 00 91 2F 12 11 |IN S1ADR .../..|
00002B90: 3B 00 B5 2F 1C 11 4D 49 4E 55 53 31 20 4C 44 41 |;../..MINUS1 LDA|
00002BA0: 20 42 53 80 20 3B 8B 20 80 AB 4F 46 AB 4C 49 4E | BS. ;. ..OF.LIN|
00002BB0: 45 20 48 49 54 00 D6 2F 26 11 42 4E 45 20 53 54 |E HIT../&.BNE ST|
00002BC0: 52 43 4D 50 20 3B 44 91 22 54 20 42 41 43 4B 20 |RCMP ;D."T BACK |
00002BD0: 53 50 41 43 45 3B 00 F3 2F 30 11 53 45 43 20 3B |SPACE;../0.SEC ;|
00002BE0: 49 4E 43 20 31 20 50 41 53 54 20 56 41 52 49 41 |INC 1 PAST VARIA|
00002BF0: 42 4C 45 00 0F 30 3A 11 4C 44 41 20 50 4F B5 20 |BLE..0:.LDA PO. |
00002C00: 3B 53 4F 20 54 41 4B 45 20 31 20 4F 46 46 3B 00 |;SO TAKE 1 OFF;.|
00002C10: 1B 30 44 11 53 42 43 20 23 30 31 00 2E 30 4E 11 |.0D.SBC #01..0N.|
00002C20: 53 54 41 20 50 4F B5 20 3B 94 20 49 54 3B 00 3D |STA PO. ;. IT;.=|
00002C30: 30 58 11 42 43 53 20 53 54 52 43 4D 50 00 59 30 |0X.BCS STRCMP.Y0|
00002C40: 62 11 44 45 43 20 50 4F B5 AA 31 20 3B A1 42 59 |b.DEC PO..1 ;.BY|
00002C50: 20 A1 53 20 43 48 41 52 3B 00 7D 30 6C 11 3B 46 | .S CHAR;.}0l.;F|
00002C60: 4F 4C 4C 4F 57 49 4E 47 20 56 41 52 2E 20 A8 20 |OLLOWING VAR. . |
00002C70: 32 4E 44 20 43 48 41 52 20 50 41 53 54 00 A4 30 |2ND CHAR PAST..0|
00002C80: 76 11 53 54 52 43 4D 50 20 4C 44 41 20 4E 55 4D |v.STRCMP LDA NUM|
00002C90: 50 4E 54 AA 31 20 3B 8B 20 43 4D 50 22 49 4E 47 |PNT.1 ;. CMP"ING|
00002CA0: 20 23 22 53 00 C0 30 80 11 42 45 51 20 53 54 52 | #"S..0..BEQ STR|
00002CB0: 43 50 32 20 3B 54 45 53 54 20 C3 20 31 53 54 3B |CP2 ;TEST . 1ST;|
00002CC0: 00 DA 30 8A 11 4A 53 52 20 54 53 54 C3 20 3B 8B |..0..JSR TST. ;.|
00002CD0: 20 C3 22 53 20 4E 4F 54 20 3D 00 EF 30 94 11 42 | ."S NOT =..0..B|
00002CE0: 4E 45 20 45 58 54 43 4D 50 20 3B A7 20 8E 3B 00 |NE EXTCMP ;. .;.|
00002CF0: 01 31 9E 11 53 54 52 43 50 32 20 4C 44 59 20 23 |.1..STRCP2 LDY #|
00002D00: 30 00 24 31 A8 11 4C 44 41 20 28 53 32 41 44 52 |0.$1..LDA (S2ADR|
00002D10: 29 2C 59 20 3B A1 20 C3 20 4F 46 20 42 55 46 20 |),Y ;. . OF BUF |
00002D20: 53 54 52 3B 00 40 31 B2 11 43 4D 50 20 53 31 C3 |STR;.@1..CMP S1.|
00002D30: 20 3B 43 4D 50 20 A4 20 A2 20 53 54 52 20 C3 3B | ;CMP . . STR .;|
00002D40: 00 5E 31 BC 11 42 43 43 20 42 45 47 43 4D 50 20 |.^1..BCC BEGCMP |
00002D50: 3B 8B 20 C3 20 4F 46 20 53 31 C3 20 49 53 00 7A |;. . OF S1. IS.z|
00002D60: 31 C6 11 4C 44 41 20 53 31 C3 20 3B 53 48 B0 54 |1..LDA S1. ;SH.T|
00002D70: 45 52 20 55 53 45 20 49 54 3B 00 80 31 D0 11 3B |ER USE IT;..1..;|
00002D80: 00 A4 31 DA 11 3B AC 20 43 4F 4D 50 41 52 45 20 |..1..;. COMPARE |
00002D90: 54 48 45 20 53 54 52 20 54 48 52 55 20 C3 47 54 |THE STR THRU .GT|
00002DA0: 48 20 4F 46 00 B9 31 E4 11 3B AC 20 53 48 B0 54 |H OF..1..;. SH.T|
00002DB0: 45 52 20 53 54 52 49 4E 47 00 BF 31 EE 11 3B 00 |ER STRING..1..;.|
00002DC0: E1 31 F8 11 42 45 47 43 4D 50 20 54 41 58 20 3B |.1..BEGCMP TAX ;|
00002DD0: 58 B2 C3 20 4F 46 20 53 48 B0 54 45 52 20 53 54 |X.. OF SH.TER ST|
00002DE0: 52 00 02 32 02 12 42 45 51 20 54 53 54 C3 20 3B |R..2..BEQ TST. ;|
00002DF0: 42 52 41 4E 43 48 20 8B 20 C3 47 54 48 20 5A 45 |BRANCH . .GTH ZE|
00002E00: 52 4F 00 31 32 0C 12 43 4D 50 4C 50 20 4C 44 41 |RO.12..CMPLP LDA|
00002E10: 20 28 53 31 41 44 52 29 2C 59 20 3B A1 20 43 48 | (S1ADR),Y ;. CH|
00002E20: 41 52 20 46 52 4F 4D 20 42 41 53 49 43 20 50 52 |AR FROM BASIC PR|
00002E30: 47 00 41 32 16 12 49 4E 59 20 3B 82 20 43 48 41 |G.A2..INY ;. CHA|
00002E40: 52 00 61 32 20 12 43 4D 50 20 28 53 32 41 44 52 |R.a2 .CMP (S2ADR|
00002E50: 29 2C 59 20 3B 43 4D 50 20 42 55 46 31 20 B0 20 |),Y ;CMP BUF1 . |
00002E60: 32 00 7E 32 2A 12 42 4E 45 20 45 58 54 43 4D 50 |2.~2*.BNE EXTCMP|
00002E70: 20 3B CB 20 8B 20 43 48 41 52 20 A8 20 B2 00 93 | ;. . CHAR . ...|
00002E80: 32 34 12 44 45 58 20 3B 44 45 43 20 43 4F 55 4E |24.DEX ;DEC COUN|
00002E90: 54 45 52 00 B9 32 3E 12 42 4E 45 20 43 4D 50 4C |TER..2>.BNE CMPL|
00002EA0: 50 20 3B 4C 4F 4F 50 20 22 54 49 4C 20 41 4C 4C |P ;LOOP "TIL ALL|
00002EB0: 20 43 4F 4D 50 41 52 45 44 00 BF 32 48 12 3B 00 | COMPARED..2H.;.|
00002EC0: E1 32 52 12 3B 54 48 45 20 32 20 53 54 52 20 41 |.2R.;THE 2 STR A|
00002ED0: 52 45 20 45 51 55 41 4C AB 54 48 45 20 C3 47 54 |RE EQUAL.THE .GT|
00002EE0: 48 00 02 33 5C 12 3B 4F 46 20 54 48 45 20 53 48 |H..3\.;OF THE SH|
00002EF0: B0 54 45 52 20 53 4F 20 55 53 45 20 C3 47 54 48 |.TER SO USE .GTH|
00002F00: 20 81 00 16 33 66 12 3B 53 45 54 54 49 4E 47 20 | ...3f.;SETTING |
00002F10: 46 4C 41 47 53 3B 00 1C 33 70 12 3B 00 3B 33 7A |FLAGS;..3p.;.;3z|
00002F20: 12 54 53 54 C3 20 4C 44 59 20 23 30 20 3B 43 4F |.TST. LDY #0 ;CO|
00002F30: 4D 50 41 52 45 20 C3 47 54 48 53 00 56 33 84 12 |MPARE .GTHS.V3..|
00002F40: 4C 44 41 20 53 31 C3 20 3B 53 45 54 20 B0 20 9C |LDA S1. ;SET . .|
00002F50: 20 46 4C 41 47 53 00 68 33 8E 12 43 4D 50 20 28 | FLAGS.h3..CMP (|
00002F60: 53 32 41 44 52 29 2C 59 00 6E 33 98 12 3B 00 8C |S2ADR),Y.n3..;..|
00002F70: 33 A2 12 3B 45 58 49 54 20 46 52 4F 4D 20 53 54 |3..;EXIT FROM ST|
00002F80: 52 49 4E 47 20 43 4F 4D 50 41 52 45 00 92 33 AC |RING COMPARE..3.|
00002F90: 12 3B 00 A1 33 B6 12 45 58 54 43 4D 50 20 52 54 |.;..3..EXTCMP RT|
00002FA0: 53 00 A7 33 C0 12 3B 00 C8 33 CA 12 3B AC 20 20 |S..3..;..3..;. |
00002FB0: 4D 4F 56 45 20 54 48 45 20 56 41 52 2E 20 50 4F |MOVE THE VAR. PO|
00002FC0: B5 45 44 20 A4 20 20 AC 00 EB 33 D4 12 3B AC 20 |.ED . ...3..;. |
00002FD0: 20 42 59 20 53 31 41 44 52 20 A4 20 57 48 45 52 | BY S1ADR . WHER|
00002FE0: 45 20 53 32 41 44 52 20 20 20 AC 00 0D 34 DE 12 |E S2ADR ...4..|
00002FF0: 3B AC 20 20 50 4F B5 53 20 20 20 20 20 20 20 20 |;. PO.S |
00003000: 20 20 20 20 20 20 20 20 20 20 20 20 AC 00 13 34 | ...4|
00003010: E8 12 3B 00 37 34 F2 12 4D 4F 56 45 49 54 20 4C |..;.74..MOVEIT L|
00003020: 44 59 20 23 24 30 30 20 3B 5A 45 52 4F 20 49 4E |DY #$00 ;ZERO IN|
00003030: 44 45 58 20 50 4E 54 00 53 34 FC 12 4C 44 41 20 |DEX PNT.S4..LDA |
00003040: 53 31 C3 20 3B A1 20 C3 47 54 48 20 4F 46 20 53 |S1. ;. .GTH OF S|
00003050: 54 52 31 00 76 34 06 13 53 54 41 20 28 53 32 41 |TR1.v4..STA (S2A|
00003060: 44 52 29 2C 59 20 3B 94 20 49 54 20 A4 20 42 55 |DR),Y ;. IT . BU|
00003070: 46 31 20 B0 20 32 00 8A 34 10 13 54 41 58 20 3B |F1 . 2..4..TAX ;|
00003080: 50 55 54 20 C3 20 49 4E 20 58 00 B2 34 1A 13 4D |PUT . IN X..4..M|
00003090: 56 4C 4F 4F 50 20 4C 44 41 20 28 53 31 41 44 52 |VLOOP LDA (S1ADR|
000030A0: 29 2C 59 20 3B A1 20 41 20 43 48 41 52 41 43 54 |),Y ;. A CHARACT|
000030B0: 45 52 00 C5 34 24 13 49 4E 59 20 3B 49 4E 43 20 |ER..4$.INY ;INC |
000030C0: 49 4E 44 45 58 00 E6 34 2E 13 53 54 41 20 28 53 |INDEX..4..STA (S|
000030D0: 32 41 44 52 29 2C 59 20 3B 94 20 43 48 41 52 20 |2ADR),Y ;. CHAR |
000030E0: A4 20 42 55 46 23 00 FB 34 38 13 44 45 58 20 3B |. BUF#..48.DEX ;|
000030F0: 44 45 43 20 43 4F 55 4E 54 45 52 00 1F 35 42 13 |DEC COUNTER..5B.|
00003100: 42 4E 45 20 4D 56 4C 4F 4F 50 20 3B 4C 4F 4F 50 |BNE MVLOOP ;LOOP|
00003110: 20 22 54 49 4C 20 41 4C 4C 20 4D 4F 56 45 44 00 | "TIL ALL MOVED.|
00003120: 33 35 4C 13 52 54 53 20 3B 8E 20 A4 20 43 41 4C |35L.RTS ;. . CAL|
00003130: 4C 45 52 00 39 35 56 13 3B 00 5B 35 60 13 3B AC |LER.95V.;.[5`.;.|
00003140: 20 20 43 48 45 43 4B 20 8B 20 4C 49 4E 45 20 23 | CHECK . LINE #|
00003150: 20 49 53 20 41 4C 87 59 20 20 AC 00 80 35 6A 13 | IS AL.Y ...5j.|
00003160: 3B AC 20 20 49 4E 20 4C 4E 42 55 46 2E 20 8B 20 |;. IN LNBUF. . |
00003170: 49 54 20 49 53 20 49 4E 43 20 43 4E 54 20 20 AC |IT IS INC CNT .|
00003180: 00 A3 35 74 13 3B AC 20 20 8B 20 A8 20 50 55 54 |..5t.;. . . PUT|
00003190: 20 49 54 20 54 48 45 52 45 20 20 20 20 20 20 20 | IT THERE |
000031A0: 20 20 AC 00 A9 35 7E 13 3B 00 D1 35 88 13 53 35 | ...5~.;..5..S5|
000031B0: 31 20 4A 53 52 20 42 55 46 45 4D 50 20 3B 43 48 |1 JSR BUFEMP ;CH|
000031C0: 45 43 4B 20 8B 20 4C 4E 42 55 46 20 45 4D 50 54 |ECK . LNBUF EMPT|
000031D0: 59 00 FA 35 92 13 42 45 51 20 4C 4E 50 55 54 20 |Y..5..BEQ LNPUT |
000031E0: 3B 42 55 46 20 45 4D 50 54 59 20 50 55 54 20 4C |;BUF EMPTY PUT L|
000031F0: 49 4E 45 23 20 49 4E 20 49 54 00 07 36 9C 13 4C |INE# IN IT..6..L|
00003200: 44 59 20 23 24 30 30 00 29 36 A6 13 4C 44 41 20 |DY #$00.)6..LDA |
00003210: 28 4C 4E 80 29 2C 59 20 3B A1 20 4C 49 4E 45 23 |(LN.),Y ;. LINE#|
00003220: 20 49 4E 20 4C 4E 42 55 46 00 50 36 B0 13 43 4D | IN LNBUF.P6..CM|
00003230: 50 20 4C 49 4E 4E 55 4D 20 3B 43 4D 50 20 49 54 |P LINNUM ;CMP IT|
00003240: 20 A4 20 50 52 45 53 45 4E 54 20 4C 49 4E 45 23 | . PRESENT LINE#|
00003250: 00 7E 36 BA 13 42 4E 45 20 4C 4E 50 55 54 20 3B |.~6..BNE LNPUT ;|
00003260: 4C 49 4E 45 23 20 49 53 20 A8 20 49 4E 20 42 55 |LINE# IS . IN BU|
00003270: 46 AB 50 55 54 20 49 54 20 54 48 45 52 45 00 9A |F.PUT IT THERE..|
00003280: 36 C4 13 49 4E 59 20 3B 50 4F B5 20 A4 20 4D 53 |6..INY ;PO. . MS|
00003290: 42 20 4F 46 20 4C 49 4E 45 23 00 BE 36 CE 13 4C |B OF LINE#..6..L|
000032A0: 44 41 20 28 4C 4E 80 29 2C 59 20 3B 43 4D 50 20 |DA (LN.),Y ;CMP |
000032B0: 4D 53 42 22 53 20 4F 46 20 4C 49 4E 45 23 00 CF |MSB"S OF LINE#..|
000032C0: 36 D8 13 43 4D 50 20 4C 49 4E 4E 55 4D AA 31 00 |6..CMP LINNUM.1.|
000032D0: DD 36 E2 13 42 4E 45 20 4C 4E 50 55 54 00 FB 36 |.6..BNE LNPUT..6|
000032E0: EC 13 49 4E 59 20 3B 50 4E 54 20 A4 20 43 4E 54 |..INY ;PNT . CNT|
000032F0: 20 4F 46 20 23 20 54 49 4D 45 53 00 20 37 F6 13 | OF # TIMES. 7..|
00003300: 4C 44 41 20 23 24 30 31 20 3B 49 54 20 41 50 50 |LDA #$01 ;IT APP|
00003310: 45 41 52 53 20 91 20 54 48 41 54 20 4C 49 4E 45 |EARS . THAT LINE|
00003320: 00 39 37 00 14 43 4C 43 20 3B 53 45 54 20 43 41 |.97..CLC ;SET CA|
00003330: 52 52 59 20 81 20 41 44 44 00 58 37 0A 14 41 44 |RRY . ADD.X7..AD|
00003340: 43 20 28 4C 4E 80 29 2C 59 20 3B 41 44 44 20 31 |C (LN.),Y ;ADD 1|
00003350: 20 A4 20 43 4F 55 4E 54 00 6E 37 14 14 53 54 41 | . COUNT.n7..STA|
00003360: 20 28 4C 4E 80 29 2C 59 20 3B 94 20 49 54 00 76 | (LN.),Y ;. IT.v|
00003370: 37 1E 14 52 54 53 00 7C 37 28 14 3B 00 98 37 32 |7..RTS.|7(.;..72|
00003380: 14 4C 4E 50 55 54 20 43 4C 43 20 3B 4C 4F 4F 50 |.LNPUT CLC ;LOOP|
00003390: 20 43 4F 55 4E 54 45 52 00 BA 37 3C 14 4C 44 41 | COUNTER..7<.LDA|
000033A0: 20 4C 4E 80 20 3B A1 20 4C 53 42 20 4F 46 20 80 | LN. ;. LSB OF .|
000033B0: 20 4F 46 20 42 55 46 46 45 52 00 D6 37 46 14 41 | OF BUFFER..7F.A|
000033C0: 44 43 20 23 24 30 33 20 3B 50 4F B5 20 4C 4E 80 |DC #$03 ;PO. LN.|
000033D0: 20 A4 20 82 20 9F 00 F2 37 50 14 53 54 41 20 4C | . . ...7P.STA L|
000033E0: 4E 80 20 3B 53 50 41 43 45 20 49 4E 20 4C 4E 42 |N. ;SPACE IN LNB|
000033F0: 55 46 00 07 38 5A 14 4C 44 41 20 4C 4E 80 AA 31 |UF..8Z.LDA LN..1|
00003400: 20 3B A1 20 4D 53 42 00 28 38 64 14 41 44 43 20 | ;. MSB.(8d.ADC |
00003410: 23 24 30 30 20 3B 41 44 44 20 54 48 45 20 43 41 |#$00 ;ADD THE CA|
00003420: 52 52 59 20 8B 20 91 45 00 41 38 6E 14 53 54 41 |RRY . .E.A8n.STA|
00003430: 20 4C 4E 80 AA 31 20 3B 47 45 4E 45 52 41 54 45 | LN..1 ;GENERATE|
00003440: 44 00 58 38 78 14 4C 44 59 20 23 30 20 3B 5A 45 |D.X8x.LDY #0 ;ZE|
00003450: 52 4F 20 49 4E 44 45 58 00 7B 38 82 14 4C 44 41 |RO INDEX.{8..LDA|
00003460: 20 4C 49 4E 4E 55 4D 20 3B A1 20 42 41 53 49 43 | LINNUM ;. BASIC|
00003470: 20 50 52 47 20 4C 49 4E 45 20 23 00 99 38 8C 14 | PRG LINE #..8..|
00003480: 53 54 41 20 28 4C 4E 80 29 2C 59 20 3B AF 20 53 |STA (LN.),Y ;. S|
00003490: A4 52 45 20 49 54 20 49 4E 00 B0 38 96 14 49 4E |.RE IT IN..8..IN|
000034A0: 59 20 3B 49 4E 20 54 48 45 20 4C 49 4E 45 20 23 |Y ;IN THE LINE #|
000034B0: 00 C9 38 A0 14 4C 44 41 20 4C 49 4E 4E 55 4D AA |..8..LDA LINNUM.|
000034C0: 31 20 3B 42 55 46 46 45 52 00 D9 38 AA 14 53 54 |1 ;BUFFER..8..ST|
000034D0: 41 20 28 4C 4E 80 29 2C 59 00 E1 38 B4 14 49 4E |A (LN.),Y..8..IN|
000034E0: 59 00 FE 38 BE 14 4C 44 41 20 23 24 30 31 20 3B |Y..8..LDA #$01 ;|
000034F0: 4C 44 41 20 57 49 54 48 20 43 4F 55 4E 54 00 16 |LDA WITH COUNT..|
00003500: 39 C8 14 53 54 41 20 28 4C 4E 80 29 2C 59 20 3B |9..STA (LN.),Y ;|
00003510: AF 20 94 20 49 54 00 2A 39 D2 14 52 54 53 20 3B |. . IT.*9..RTS ;|
00003520: 8E 20 A4 20 43 41 4C 4C 45 52 00 30 39 DC 14 3B |. . CALLER.09..;|
00003530: 00 37 39 E6 14 3B AC 00 5C 39 F0 14 3B AC 20 A1 |.79..;..\9..;. .|
00003540: 20 41 20 42 59 54 45 20 46 52 4F 4D 20 54 48 45 | A BYTE FROM THE|
00003550: 20 42 41 53 49 43 20 50 52 47 20 AC 00 62 39 FA | BASIC PRG ..b9.|
00003560: 14 3B 00 8B 39 04 15 A1 42 59 20 4C 44 41 20 23 |.;..9...BY LDA #|
00003570: 24 30 31 20 3B 52 45 53 45 54 20 54 48 45 20 41 |$01 ;RESET THE A|
00003580: 44 43 20 49 4E 20 53 4B 49 50 36 00 AF 39 0E 15 |DC IN SKIP6..9..|
00003590: 53 54 41 20 41 44 44 31 35 AA 31 20 3B A4 20 49 |STA ADD15.1 ;. I|
000035A0: 4E 43 20 22 50 4F 49 4E 54 22 20 42 59 20 31 00 |NC "POINT" BY 1.|
000035B0: CB 39 18 15 4C 44 41 20 42 53 80 20 3B 57 41 53 |.9..LDA BS. ;WAS|
000035C0: 20 80 20 4F 46 20 42 41 53 49 43 00 F3 39 22 15 | . OF BASIC..9".|
000035D0: 42 45 51 20 53 4B 49 50 36 20 3B 22 4C 49 4E 45 |BEQ SKIP6 ;"LINE|
000035E0: 20 45 4E 44 20 48 49 54 20 4C 41 53 54 20 54 49 | END HIT LAST TI|
000035F0: 4D 45 3F 00 11 3A 2C 15 44 45 43 20 42 53 80 20 |ME?..:,.DEC BS. |
00003600: 3B 5A 45 52 4F 20 4C 49 4E 45 20 80 20 46 4C 41 |;ZERO LINE . FLA|
00003610: 47 00 32 3A 36 15 4C 44 59 20 23 24 30 33 20 3B |G.2:6.LDY #$03 ;|
00003620: 50 4F B5 20 49 4E 44 45 58 20 A4 20 4C 49 4E 45 |PO. INDEX . LINE|
00003630: 20 23 00 53 3A 40 15 4C 44 41 20 28 50 4F B5 29 | #.S:@.LDA (PO.)|
00003640: 2C 59 20 3B A1 20 4C 53 42 20 4F 46 20 4C 49 4E |,Y ;. LSB OF LIN|
00003650: 45 20 23 00 68 3A 4A 15 53 54 41 20 4C 49 4E 4E |E #.h:J.STA LINN|
00003660: 55 4D 20 3B 94 20 49 54 00 70 3A 54 15 49 4E 59 |UM ;. IT.p:T.INY|
00003670: 00 91 3A 5E 15 4C 44 41 20 28 50 4F B5 29 2C 59 |..:^.LDA (PO.),Y|
00003680: 20 3B A1 20 4D 53 42 20 4F 46 20 4C 49 4E 45 20 | ;. MSB OF LINE |
00003690: 23 00 A8 3A 68 15 53 54 41 20 4C 49 4E 4E 55 4D |#..:h.STA LINNUM|
000036A0: AA 31 20 3B 94 20 49 54 00 D2 3A 72 15 4C 44 41 |.1 ;. IT..:r.LDA|
000036B0: 20 23 24 30 35 20 3B 53 45 54 20 41 44 43 20 49 | #$05 ;SET ADC I|
000036C0: 4E 20 53 4B 49 50 36 20 A4 20 49 4E 43 20 50 41 |N SKIP6 . INC PA|
000036D0: 53 53 00 FB 3A 7C 15 53 54 41 20 41 44 44 31 35 |SS..:|.STA ADD15|
000036E0: AA 31 20 3B 54 48 45 20 4C 49 4E 45 20 50 4F B5 |.1 ;THE LINE PO.|
000036F0: 45 52 20 26 20 4C 49 4E 45 20 23 00 09 3B 86 15 |ER & LINE #..;..|
00003700: 53 4B 49 50 36 20 43 4C 43 00 2B 3B 90 15 4C 44 |SKIP6 CLC.+;..LD|
00003710: 41 20 50 4F B5 20 3B 49 4E 43 20 22 50 4F 49 4E |A PO. ;INC "POIN|
00003720: 54 22 20 A4 20 82 20 42 59 54 45 00 4D 3B 9A 15 |T" . . BYTE.M;..|
00003730: 41 44 44 31 35 20 41 44 43 20 23 24 30 31 20 3B |ADD15 ADC #$01 ;|
00003740: 4F 46 20 42 41 53 49 43 20 4C 49 4E 45 00 59 3B |OF BASIC LINE.Y;|
00003750: A4 15 53 54 41 20 50 4F B5 00 7B 3B AE 15 4C 44 |..STA PO..{;..LD|
00003760: 41 20 50 4F B5 AA 31 20 3B 41 44 44 20 54 48 45 |A PO..1 ;ADD THE|
00003770: 20 43 41 52 52 59 20 8B 20 91 45 00 97 3B B8 15 | CARRY . .E..;..|
00003780: 41 44 43 20 23 24 30 30 20 3B 57 41 53 20 47 45 |ADC #$00 ;WAS GE|
00003790: 4E 45 52 41 54 45 44 00 A5 3B C2 15 53 54 41 20 |NERATED..;..STA |
000037A0: 50 4F B5 AA 31 00 BE 3B CC 15 4C 44 59 20 23 24 |PO..1..;..LDY #$|
000037B0: 30 30 20 3B 5A 45 52 4F 20 49 4E 44 45 58 00 E7 |00 ;ZERO INDEX..|
000037C0: 3B D6 15 4C 44 41 20 28 50 4F B5 29 2C 59 20 3B |;..LDA (PO.),Y ;|
000037D0: A1 20 41 20 42 59 54 45 20 46 52 4F 4D 20 42 41 |. A BYTE FROM BA|
000037E0: 53 49 43 20 50 52 47 00 04 3C E0 15 42 45 51 20 |SIC PRG..<..BEQ |
000037F0: 5A 45 52 4F 43 4B 20 3B 8B 20 49 54 20 B2 20 30 |ZEROCK ;. IT . 0|
00003800: 20 AB 20 CB 00 1C 3C EA 15 43 4D 50 20 23 24 32 | . ...<..CMP #$2|
00003810: 30 20 3B 22 3D 20 53 50 41 43 45 3F 00 38 3C F4 |0 ;"= SPACE?.8<.|
00003820: 15 42 45 51 20 A1 42 59 20 3B 42 59 50 41 53 53 |.BEQ .BY ;BYPASS|
00003830: 20 53 50 41 43 45 53 3B 00 40 3C FE 15 52 54 53 | SPACES;.@<..RTS|
00003840: 00 5D 3C 08 16 5A 45 52 4F 43 4B 20 49 4E 59 20 |.]<..ZEROCK INY |
00003850: 3B 49 4E 43 20 A4 20 82 20 42 59 54 45 00 7E 3C |;INC . . BYTE.~<|
00003860: 12 16 43 4D 50 20 28 50 4F B5 29 2C 59 20 3B 22 |..CMP (PO.),Y ;"|
00003870: 49 53 20 49 54 20 5A 45 52 4F 20 54 4F 3F 00 A9 |IS IT ZERO TO?..|
00003880: 3C 1C 16 42 45 51 20 53 4B 49 50 37 20 3B 22 59 |<..BEQ SKIP7 ;"Y|
00003890: 45 53 2D 54 48 45 4E 20 45 4E 44 20 4F 46 20 42 |ES-THEN END OF B|
000038A0: 41 53 49 43 20 50 52 47 3F 00 CE 3C 26 16 53 45 |ASIC PRG?..<&.SE|
000038B0: 54 80 20 49 4E 43 20 42 53 80 20 3B 53 45 54 20 |T. INC BS. ;SET |
000038C0: 80 20 4F 46 20 4C 49 4E 45 20 46 4C 41 47 00 D6 |. OF LINE FLAG..|
000038D0: 3C 30 16 52 54 53 00 DC 3C 3A 16 3B 00 F8 3C 44 |<0.RTS..<:.;..<D|
000038E0: 16 53 4B 49 50 37 20 49 4E 59 20 3B 49 4E 43 20 |.SKIP7 INY ;INC |
000038F0: A4 20 82 20 42 59 54 45 00 1E 3D 4E 16 43 4D 50 |. . BYTE..=N.CMP|
00003900: 20 28 50 4F B5 29 2C 59 20 3B 22 49 53 20 33 52 | (PO.),Y ;"IS 3R|
00003910: 44 20 42 59 54 45 20 41 20 5A 45 52 4F 3F 00 41 |D BYTE A ZERO?.A|
00003920: 3D 58 16 42 4E 45 20 53 45 54 80 20 3B 59 45 53 |=X.BNE SET. ;YES|
00003930: AB A7 20 80 20 4F 46 20 42 41 53 49 43 20 50 52 |.. . OF BASIC PR|
00003940: 47 00 61 3D 62 16 49 4E 43 20 50 52 47 80 20 3B |G.a=b.INC PRG. ;|
00003950: 53 45 54 20 80 20 4F 46 20 50 52 47 20 46 4C 41 |SET . OF PRG FLA|
00003960: 47 00 6F 3D 6C 16 5A 45 52 4F 33 20 52 54 53 00 |G.o=l.ZERO3 RTS.|
00003970: 75 3D 76 16 3B 00 92 3D 80 16 3B AC 20 20 99 20 |u=v.;..=..;. . |
00003980: 9A 45 4E 54 53 20 4F 46 20 4C 4E 42 55 46 20 20 |.ENTS OF LNBUF |
00003990: 20 AC 00 98 3D 8A 16 3B 00 C1 3D 94 16 50 52 54 | ...=..;..=..PRT|
000039A0: 80 20 4A 53 52 20 42 55 46 45 4D 50 20 3B 43 48 |. JSR BUFEMP ;CH|
000039B0: 45 43 4B 20 8B 20 4C 4E 42 55 46 20 45 4D 50 54 |ECK . LNBUF EMPT|
000039C0: 59 00 E2 3D 9E 16 42 45 51 20 45 58 49 54 31 30 |Y..=..BEQ EXIT10|
000039D0: 20 3B 42 55 46 20 45 4D 50 54 59 20 8B 20 5A 45 | ;BUF EMPTY . ZE|
000039E0: 52 4F 00 0B 3E A8 16 4A 53 52 20 4C 4E 50 55 54 |RO..>..JSR LNPUT|
000039F0: 20 3B 49 4E 43 20 50 41 53 54 20 4C 41 53 54 20 | ;INC PAST LAST |
00003A00: 23 20 49 4E 20 4C 4E 42 55 46 3B 00 21 3E B2 16 |# IN LNBUF;.!>..|
00003A10: 4C 44 41 20 23 24 30 44 20 3B 99 20 41 20 43 52 |LDA #$0D ;. A CR|
00003A20: 3B 00 32 3E BC 16 4A 53 52 20 4A 50 4F 55 54 50 |;.2>..JSR JPOUTP|
00003A30: 55 54 00 53 3E C6 16 4C 44 58 20 42 55 46 32 20 |UT.S>..LDX BUF2 |
00003A40: 3B 41 B2 C3 20 4F 46 20 53 54 52 20 49 4E 20 42 |;A.. OF STR IN B|
00003A50: 55 46 32 00 76 3E D0 16 4C 44 59 20 23 24 30 31 |UF2.v>..LDY #$01|
00003A60: 20 3B 50 4F B5 20 49 4E 44 45 58 20 A4 20 31 53 | ;PO. INDEX . 1S|
00003A70: 54 20 43 48 41 52 00 95 3E DA 16 4C 4F 4F 50 35 |T CHAR..>..LOOP5|
00003A80: 20 4C 44 41 20 42 55 46 32 2C 59 20 3B A1 20 41 | LDA BUF2,Y ;. A|
00003A90: 20 43 48 41 52 00 AC 3E E4 16 4A 53 52 20 4A 50 | CHAR..>..JSR JP|
00003AA0: 4F 55 54 50 55 54 20 3B 99 20 49 54 00 B4 3E EE |OUTPUT ;. IT..>.|
00003AB0: 16 49 4E 59 00 BC 3E F8 16 44 45 58 00 CA 3E 02 |.INY..>..DEX..>.|
00003AC0: 17 42 4E 45 20 4C 4F 4F 50 35 00 EE 3E 0C 17 4A |.BNE LOOP5..>..J|
00003AD0: 53 52 20 50 52 54 53 50 43 20 3B 53 50 43 20 43 |SR PRTSPC ;SPC C|
00003AE0: 55 52 53 B0 20 A4 20 43 4F 4C 2E 20 31 31 00 15 |URS. . COL. 11..|
00003AF0: 3F 16 17 4C 44 41 20 23 B3 4C 4E 42 55 46 AA 33 |?..LDA #.LNBUF.3|
00003B00: 20 3B 50 55 54 20 53 54 41 52 54 20 4F 46 20 4C | ;PUT START OF L|
00003B10: 49 4E 45 20 23 00 38 3F 20 17 53 54 41 20 54 45 |INE #.8? .STA TE|
00003B20: 50 42 55 46 20 3B 42 55 46 46 45 52 20 49 4E 20 |PBUF ;BUFFER IN |
00003B30: 54 45 4D 50 B0 41 52 59 00 58 3F 2A 17 4C 44 41 |TEMP.ARY.X?*.LDA|
00003B40: 20 23 B1 4C 4E 42 55 46 20 3B 42 55 46 46 45 52 | #.LNBUF ;BUFFER|
00003B50: 20 41 44 44 52 45 53 53 00 69 3F 34 17 53 54 41 | ADDRESS.i?4.STA|
00003B60: 20 54 45 50 42 55 46 AA 31 00 86 3F 3E 17 A1 4E | TEPBUF.1..?>..N|
00003B70: 55 4D 20 4C 44 59 20 23 24 30 30 20 3B 53 45 54 |UM LDY #$00 ;SET|
00003B80: 20 49 4E 44 45 58 00 AA 3F 48 17 4C 44 41 20 28 | INDEX..?H.LDA (|
00003B90: 54 45 50 42 55 46 29 2C 59 20 3B A1 20 4C 53 42 |TEPBUF),Y ;. LSB|
00003BA0: 20 4F 46 20 4E 55 4D 42 45 52 00 C7 3F 52 17 53 | OF NUMBER..?R.S|
00003BB0: 54 41 20 C5 55 45 20 3B 94 20 49 54 20 81 20 42 |TA .UE ;. IT . B|
00003BC0: 4E 20 32 20 C6 49 49 00 CF 3F 5C 17 49 4E 59 00 |N 2 .II..?\.INY.|
00003BD0: F3 3F 66 17 4C 44 41 20 28 54 45 50 42 55 46 29 |.?f.LDA (TEPBUF)|
00003BE0: 2C 59 20 3B A1 20 4D 53 42 20 4F 46 20 4E 55 4D |,Y ;. MSB OF NUM|
00003BF0: 42 45 52 00 07 40 70 17 53 54 41 20 C5 55 45 AA |BER..@p.STA .UE.|
00003C00: 31 20 3B 94 20 49 54 00 1C 40 7A 17 49 4E 59 20 |1 ;. IT..@z.INY |
00003C10: 3B 50 4F B5 20 A4 20 43 4F 55 4E 54 00 3C 40 84 |;PO. . COUNT.<@.|
00003C20: 17 4C 44 41 20 28 54 45 50 42 55 46 29 2C 59 20 |.LDA (TEPBUF),Y |
00003C30: 3B A1 20 43 4F 55 4E 54 20 AF 20 94 00 54 40 8E |;. COUNT . ..T@.|
00003C40: 17 50 48 41 20 3B 49 54 20 91 20 54 48 45 20 53 |.PHA ;IT . THE S|
00003C50: 54 41 43 4B 00 76 40 98 17 4A 53 52 20 42 4E 32 |TACK.v@..JSR BN2|
00003C60: C6 20 3B 43 91 56 45 52 54 20 4C 49 4E 45 20 23 |. ;C.VERT LINE #|
00003C70: 20 A4 20 C6 49 49 00 8F 40 A2 17 50 4C 41 20 3B | . .II..@..PLA ;|
00003C80: A1 20 43 4E 54 20 4F 46 20 53 54 41 43 4B 3B 00 |. CNT OF STACK;.|
00003C90: AA 40 AC 17 53 54 41 20 C5 55 45 20 3B 94 20 43 |.@..STA .UE ;. C|
00003CA0: 4E 54 20 81 20 42 4E 32 C6 3B 00 C1 40 B6 17 43 |NT . BN2.;..@..C|
00003CB0: 4D 50 20 23 30 31 20 3B 8B 20 43 4E 54 B2 31 20 |MP #01 ;. CNT.1 |
00003CC0: A7 00 E2 40 C0 17 42 45 51 20 53 50 41 43 45 20 |...@..BEQ SPACE |
00003CD0: 3B 44 91 22 54 20 50 52 54 20 2F 20 26 20 43 4E |;D."T PRT / & CN|
00003CE0: 54 3B 00 03 41 CA 17 49 4E 43 20 4C 49 4E 43 4E |T;..A..INC LINCN|
00003CF0: 54 AA 31 20 3B 49 4E 43 20 4C 49 4E 45 20 43 4E |T.1 ;INC LINE CN|
00003D00: 54 20 81 00 21 41 D4 17 4C 44 41 20 23 22 2F 22 |T ..!A..LDA #"/"|
00003D10: 20 3B 94 20 49 4E 20 42 55 46 33 20 41 46 54 45 | ;. IN BUF3 AFTE|
00003D20: 52 00 39 41 DE 17 53 54 41 20 42 55 46 33 2C 58 |R.9A..STA BUF3,X|
00003D30: 20 3B 4C 49 4E 45 20 23 3B 00 55 41 E8 17 49 4E | ;LINE #;.UA..IN|
00003D40: 58 20 3B 22 2F 22 2E 20 49 4E 58 20 42 55 46 33 |X ;"/". INX BUF3|
00003D50: 20 50 4E 54 3B 00 77 41 F2 17 4C 44 41 20 23 30 | PNT;.wA..LDA #0|
00003D60: 30 20 3B 5A 45 52 4F 20 4D 53 42 20 49 4E 20 22 |0 ;ZERO MSB IN "|
00003D70: 56 41 4C 55 45 22 3B 00 85 41 FC 17 53 54 41 20 |VALUE";..A..STA |
00003D80: C5 55 45 AA 31 00 9F 41 06 18 54 41 59 20 3B 4A |.UE.1..A..TAY ;J|
00003D90: 55 4D 50 20 A4 20 4D 49 44 44 4C 45 20 4F 46 00 |UMP . MIDDLE OF.|
00003DA0: C1 41 10 18 4A 53 52 20 A1 44 49 47 AB 33 20 3B |.A..JSR .DIG.3 ;|
00003DB0: 42 4E 32 C6 20 43 91 56 20 43 4E 54 20 A4 20 C6 |BN2. C.V CNT . .|
00003DC0: 3B 00 E4 41 1A 18 53 50 41 43 45 20 4C 44 41 20 |;..A..SPACE LDA |
00003DD0: 23 24 32 30 20 3B 50 55 54 20 41 20 53 50 41 43 |#$20 ;PUT A SPAC|
00003DE0: 45 20 49 4E 00 06 42 24 18 53 54 41 20 42 55 46 |E IN..B$.STA BUF|
00003DF0: 33 2C 58 20 3B 42 55 46 33 20 46 4F 4C 4C 4F 57 |3,X ;BUF3 FOLLOW|
00003E00: 49 4E 47 20 23 3B 00 1F 42 2E 18 49 4E 58 20 3B |ING #;..B..INX ;|
00003E10: 49 4E 43 20 23 20 C3 47 54 48 20 43 4E 54 3B 00 |INC # .GTH CNT;.|
00003E20: 30 42 38 18 49 4E 43 20 4C 49 4E 43 4E 54 AA 31 |0B8.INC LINCNT.1|
00003E30: 00 5A 42 42 18 50 52 54 C3 20 4C 44 41 20 23 30 |.ZBB.PRT. LDA #0|
00003E40: 30 20 3B 4F 55 54 50 55 54 20 A4 20 50 52 54 B2 |0 ;OUTPUT . PRT.|
00003E50: 37 38 20 43 52 54 B2 33 38 3B 00 83 42 4C 18 4C |78 CRT.38;..BL.L|
00003E60: 49 4E 43 4E 54 20 43 4D 50 20 23 30 30 20 3B 43 |INCNT CMP #00 ;C|
00003E70: 4D 50 20 A4 20 23 20 4F 46 20 43 48 41 52 20 50 |MP . # OF CHAR P|
00003E80: 52 54 3B 00 A4 42 56 18 42 43 53 20 50 41 53 53 |RT;..BV.BCS PASS|
00003E90: 43 52 20 3B CB 20 8B 20 A8 20 80 20 4F 46 20 4C |CR ;. . . . OF L|
00003EA0: 49 4E 45 3B 00 BA 42 60 18 4C 44 41 20 23 24 30 |INE;..B`.LDA #$0|
00003EB0: 44 20 3B 99 20 41 20 43 52 3B 00 CB 42 6A 18 4A |D ;. A CR;..Bj.J|
00003EC0: 53 52 20 4A 50 4F 55 54 50 55 54 00 E9 42 74 18 |SR JPOUTPUT..Bt.|
00003ED0: 4C 44 59 20 23 30 31 20 3B 53 50 41 43 45 20 A4 |LDY #01 ;SPACE .|
00003EE0: 20 43 4F 4C 2E 20 31 31 3B 00 F8 42 7E 18 4A 53 | COL. 11;..B~.JS|
00003EF0: 52 20 50 52 54 53 50 43 00 1E 43 88 18 50 41 53 |R PRTSPC..C..PAS|
00003F00: 53 43 52 20 4A 53 52 20 C6 4E 55 4D 20 3B 50 52 |SCR JSR .NUM ;PR|
00003F10: 54 20 4C 49 4E 45 23 20 26 20 43 4E 54 3B 00 3D |T LINE# & CNT;.=|
00003F20: 43 92 18 50 C6 4E 54 20 4A 53 52 20 A1 4B 45 59 |C..P.NT JSR .KEY|
00003F30: 20 3B A1 20 4B 45 59 20 50 52 45 53 53 00 65 43 | ;. KEY PRESS.eC|
00003F40: 9C 18 4E 4F 53 50 43 20 4A 53 52 20 54 45 50 49 |..NOSPC JSR TEPI|
00003F50: 4E 43 20 3B 49 4E 43 20 54 45 50 42 55 46 20 A4 |NC ;INC TEPBUF .|
00003F60: 20 82 20 23 3B 00 87 43 A6 18 42 4E 45 20 A1 4E | . #;..C..BNE .N|
00003F70: 55 4D 20 3B 22 4C 41 53 54 20 23 20 50 52 54 3F |UM ;"LAST # PRT?|
00003F80: 20 4E 4F 2D 47 4F 3B 00 8D 43 B0 18 3B 00 B5 43 | NO-GO;..C..;..C|
00003F90: BA 18 45 58 49 54 31 30 20 4C 44 41 20 23 24 30 |..EXIT10 LDA #$0|
00003FA0: 30 20 3B 8B 20 57 45 20 4C 4F 4F 50 20 54 48 52 |0 ;. WE LOOP THR|
00003FB0: 55 20 50 52 47 00 E1 43 C4 18 42 45 51 20 53 4B |U PRG..C..BEQ SK|
00003FC0: 49 50 31 31 20 20 20 20 20 20 20 20 20 20 20 3B |IP11 ;|
00003FD0: 41 47 41 49 4E 20 41 B3 B1 30 20 45 4C 53 45 20 |AGAIN A..0 ELSE |
00003FE0: CB 00 FA 43 CE 18 4C 44 58 20 42 55 46 32 20 3B |...C..LDX BUF2 ;|
00003FF0: A1 20 C3 20 4F 46 20 53 54 52 00 1B 44 D8 18 4C |. . OF STR..D..L|
00004000: 4F 4F 50 31 33 20 4C 44 41 20 42 55 46 32 2C 58 |OOP13 LDA BUF2,X|
00004010: 20 3B A1 20 41 20 43 48 41 52 3B 00 31 44 E2 18 | ;. A CHAR;.1D..|
00004020: 53 54 41 20 42 55 46 31 2C 58 20 3B 94 20 49 54 |STA BUF1,X ;. IT|
00004030: 3B 00 39 44 EC 18 44 45 58 00 48 44 F6 18 42 50 |;.9D..DEX.HD..BP|
00004040: 4C 20 4C 4F 4F 50 31 33 00 66 44 00 19 4C 44 58 |L LOOP13.fD..LDX|
00004050: 20 23 30 35 20 3B 23 20 4F 46 20 43 48 41 52 20 | #05 ;# OF CHAR |
00004060: A4 20 4D 4F 56 45 00 8D 44 0A 19 4C 4F 4F 50 31 |. MOVE..D..LOOP1|
00004070: 34 20 4C 44 41 20 4D 45 53 42 55 46 AA 36 2C 58 |4 LDA MESBUF.6,X|
00004080: 20 3B 50 55 54 20 35 2C 5A 5A 5A 5A 5A 00 A5 44 | ;PUT 5,ZZZZZ..D|
00004090: 14 19 53 54 41 20 42 55 46 32 2C 58 20 3B 49 4E |..STA BUF2,X ;IN|
000040A0: 20 42 55 46 32 00 AD 44 1E 19 44 45 58 00 BC 44 | BUF2..D..DEX..D|
000040B0: 28 19 42 50 4C 20 4C 4F 4F 50 31 34 00 CB 44 32 |(.BPL LOOP14..D2|
000040C0: 19 4A 4D 50 20 53 54 52 45 4E 54 00 F3 44 3C 19 |.JMP STRENT..D<.|
000040D0: 53 4B 49 50 31 31 20 4C 44 41 20 41 4C 4C 52 45 |SKIP11 LDA ALLRE|
000040E0: 46 20 3B 22 50 52 54 20 41 4C 4C 20 52 45 46 27 |F ;"PRT ALL REF'|
000040F0: 53 20 3F 00 0C 45 46 19 42 45 51 20 44 91 45 20 |S ?..EF.BEQ D.E |
00004100: 3B CB 20 8B 20 41 4C 4C 20 44 91 45 00 26 45 50 |;. . ALL D.E.&EP|
00004110: 19 44 45 43 20 41 4C 4C 52 45 46 20 3B 5A 45 52 |.DEC ALLREF ;ZER|
00004120: 4F 20 46 4C 41 47 00 4B 45 5A 19 4A 53 52 20 53 |O FLAG.KEZ.JSR S|
00004130: 45 50 4D 45 53 20 3B 50 52 54 20 53 45 50 41 52 |EPMES ;PRT SEPAR|
00004140: 41 54 49 4E 47 20 4D 45 53 47 3B 00 6D 45 64 19 |ATING MESG;.mEd.|
00004150: 4C 44 41 20 23 22 40 22 20 3B 94 20 41 20 53 4F |LDA #"@" ;. A SO|
00004160: 20 56 41 52 20 B0 20 23 20 54 45 53 54 00 8F 45 | VAR . # TEST..E|
00004170: 6E 19 53 54 41 20 42 55 46 31 AA 31 20 3B 53 45 |n.STA BUF1.1 ;SE|
00004180: 54 53 20 55 50 20 54 48 45 20 50 52 47 20 A4 00 |TS UP THE PRG ..|
00004190: AC 45 78 19 4C 44 41 20 23 24 30 31 20 3B 53 45 |.Ex.LDA #$01 ;SE|
000041A0: 41 52 43 48 20 81 20 41 20 56 41 52 00 B9 45 82 |ARCH . A VAR..E.|
000041B0: 19 53 54 41 20 42 55 46 31 00 D9 45 8C 19 4C 44 |.STA BUF1..E..LD|
000041C0: 58 20 23 24 30 32 20 3B 53 54 41 52 54 49 4E 47 |X #$02 ;STARTING|
000041D0: 20 B9 20 81 20 4C 4F 4F 50 00 00 46 96 19 4A 4D | . . LOOP..F..JM|
000041E0: 50 20 4C 4F 4F 50 31 34 AB 32 20 3B 4A 4D 50 20 |P LOOP14.2 ;JMP |
000041F0: A4 20 4D 49 44 44 4C 45 20 4F 46 20 4C 4F 4F 50 |. MIDDLE OF LOOP|
00004200: 00 06 46 A0 19 3B 00 18 46 AA 19 3B 41 4C 4C 20 |..F..;..F..;ALL |
00004210: 44 91 45 20 45 58 49 54 00 1E 46 B4 19 3B 00 38 |D.E EXIT..F..;.8|
00004220: 46 BE 19 50 4C 41 20 3B A1 20 52 49 44 20 4F 46 |F..PLA ;. RID OF|
00004230: 20 52 54 53 20 41 44 44 00 40 46 C8 19 50 4C 41 | RTS ADD.@F..PLA|
00004240: 00 69 46 D2 19 44 91 45 20 4C 44 41 20 23 B3 4C |.iF..D.E LDA #.L|
00004250: 4E 42 55 46 20 3B 50 55 54 20 53 54 41 52 54 20 |NBUF ;PUT START |
00004260: 4F 46 20 4C 49 4E 45 20 23 00 8C 46 DC 19 53 54 |OF LINE #..F..ST|
00004270: 41 20 54 45 50 42 55 46 20 3B 42 55 46 46 45 52 |A TEPBUF ;BUFFER|
00004280: 20 49 4E 20 54 45 4D 50 B0 41 52 59 00 AC 46 E6 | IN TEMP.ARY..F.|
00004290: 19 4C 44 41 20 23 B1 4C 4E 42 55 46 20 3B 42 55 |.LDA #.LNBUF ;BU|
000042A0: 46 46 45 52 20 41 44 44 52 45 53 53 00 BD 46 F0 |FFER ADDRESS..F.|
000042B0: 19 53 54 41 20 54 45 50 42 55 46 AA 31 00 E9 46 |.STA TEPBUF.1..F|
000042C0: FA 19 44 91 45 31 20 4C 44 59 20 23 4D 45 53 47 |..D.E1 LDY #MESG|
000042D0: 32 AB 56 41 52 4D 45 53 20 3B 59 B2 53 54 41 52 |2.VARMES ;Y.STAR|
000042E0: 54 20 4F 46 20 4D 45 53 47 00 0D 47 04 1A 4A 53 |T OF MESG..G..JS|
000042F0: 52 20 53 45 50 4D 45 53 AA 32 20 3B CB 20 50 52 |R SEPMES.2 ;. PR|
00004300: 54 20 54 45 58 54 20 80 20 4D 45 53 47 00 32 47 |T TEXT . MESG.2G|
00004310: 0E 1A 4A 4D 50 20 4A 50 44 91 45 58 49 20 3B 42 |..JMP JPD.EXI ;B|
00004320: 41 4E 4B 20 52 4F 4D 20 49 4E 20 89 20 42 41 53 |ANK ROM IN . BAS|
00004330: 49 43 00 38 47 18 1A 3B 00 59 47 22 1A 3B 50 4F |IC.8G..;.YG".;PO|
00004340: B5 20 54 45 50 42 55 46 20 A4 20 82 20 23 20 49 |. TEPBUF . . # I|
00004350: 4E 20 4C 4E 42 55 46 20 26 00 7A 47 2C 1A 3B 43 |N LNBUF &.zG,.;C|
00004360: 48 45 43 4B 20 8B 20 80 20 4F 46 20 42 55 46 46 |HECK . . OF BUFF|
00004370: 45 52 20 52 45 41 43 48 45 44 00 80 47 36 1A 3B |ER REACHED..G6.;|
00004380: 00 9F 47 40 1A 54 45 50 49 4E 43 20 43 4C 43 20 |..G@.TEPINC CLC |
00004390: 3B 50 4F B5 20 54 45 50 42 55 46 20 A4 20 82 00 |;PO. TEPBUF . ..|
000043A0: BB 47 4A 1A 4C 44 41 20 54 45 50 42 55 46 20 3B |.GJ.LDA TEPBUF ;|
000043B0: 4C 49 4E 45 20 4E 55 4D 42 45 52 00 C8 47 54 1A |LINE NUMBER..GT.|
000043C0: 41 44 43 20 23 24 30 33 00 D7 47 5E 1A 53 54 41 |ADC #$03..G^.STA|
000043D0: 20 54 45 50 42 55 46 00 F9 47 68 1A 4C 44 41 20 | TEPBUF..Gh.LDA |
000043E0: 54 45 50 42 55 46 AA 31 20 3B 41 44 44 20 54 48 |TEPBUF.1 ;ADD TH|
000043F0: 45 20 43 41 52 52 59 20 8B 00 14 48 72 1A 41 44 |E CARRY ...Hr.AD|
00004400: 43 20 23 24 30 30 20 3B 91 45 20 47 45 4E 45 52 |C #$00 ;.E GENER|
00004410: 41 54 45 44 00 25 48 7C 1A 53 54 41 20 54 45 50 |ATED.%H|.STA TEP|
00004420: 42 55 46 AA 31 00 47 48 86 1A 4C 44 41 20 4C 4E |BUF.1.GH..LDA LN|
00004430: 80 20 3B 43 48 45 43 4B 20 8B 20 41 54 20 80 20 |. ;CHECK . AT . |
00004440: 4F 46 20 42 55 46 3B 00 69 48 90 1A 43 4D 50 20 |OF BUF;.iH..CMP |
00004450: 54 45 50 42 55 46 20 3B 43 4D 50 20 4C 4F 57 20 |TEPBUF ;CMP LOW |
00004460: 42 59 54 45 20 31 53 54 3B 00 87 48 9A 1A 42 4E |BYTE 1ST;..H..BN|
00004470: 45 20 54 45 50 45 58 20 3B 22 4E 4F 54 20 44 4F |E TEPEX ;"NOT DO|
00004480: 4E 45 3F 20 47 4F 3B 00 A7 48 A4 1A 4C 44 41 20 |NE? GO;..H..LDA |
00004490: 4C 4E 80 AA 31 20 3B 43 4D 50 20 48 49 47 48 20 |LN..1 ;CMP HIGH |
000044A0: 42 59 54 45 2E 20 8B 00 C6 48 AE 1A 43 4D 50 20 |BYTE. ...H..CMP |
000044B0: 54 45 50 42 55 46 AA 31 20 3B 45 51 55 41 4C 20 |TEPBUF.1 ;EQUAL |
000044C0: A7 20 44 91 45 3B 00 E7 48 B8 1A 54 45 50 45 58 |. D.E;..H..TEPEX|
000044D0: 20 52 54 53 20 3B 45 51 55 41 4C 20 5A 45 52 4F | RTS ;EQUAL ZERO|
000044E0: 20 8B 20 44 91 45 3B 00 ED 48 C2 1A 3B 00 FE 48 | . D.E;..H..;..H|
000044F0: CC 1A 3B 99 20 31 30 20 53 50 41 43 45 53 00 04 |..;. 10 SPACES..|
00004500: 49 D6 1A 3B 00 1E 49 E0 1A 50 52 54 53 50 43 20 |I..;..I..PRTSPC |
00004510: 54 58 41 20 3B 94 20 C3 47 54 48 20 4F 46 00 33 |TXA ;. .GTH OF.3|
00004520: 49 EA 1A 50 48 41 20 3B 23 20 A4 20 42 45 20 99 |I..PHA ;# . BE .|
00004530: 45 44 3B 00 55 49 F4 1A 53 50 43 4C 50 20 4C 44 |ED;.UI..SPCLP LD|
00004540: 41 20 23 24 32 30 20 3B 99 20 53 50 41 43 45 20 |A #$20 ;. SPACE |
00004550: 22 54 49 4C 4C 00 7B 49 FE 1A 4A 53 52 20 4A 50 |"TILL.{I..JSR JP|
00004560: 4F 55 54 50 55 54 20 3B 43 55 52 53 B0 20 49 53 |OUTPUT ;CURS. IS|
00004570: 20 41 54 20 43 4F 4C 2E 20 31 31 00 96 49 08 1B | AT COL. 11..I..|
00004580: 49 4E 58 20 3B 58 B2 24 30 42 AA 23 22 53 20 4C |INX ;X.$0B.#"S L|
00004590: 45 4E 47 54 48 3B 00 9E 49 12 1B 49 4E 59 00 AB |ENGTH;..I..INY..|
000045A0: 49 1C 1B 43 50 59 20 23 24 30 42 00 B9 49 26 1B |I..CPY #$0B..I&.|
000045B0: 42 4E 45 20 53 50 43 4C 50 00 D8 49 30 1B 53 54 |BNE SPCLP..I0.ST|
000045C0: 58 20 4C 49 4E 43 4E 54 AA 31 20 3B 94 20 A2 20 |X LINCNT.1 ;. . |
000045D0: 4C 49 4E 45 20 43 4E 54 00 EF 49 3A 1B 50 4C 41 |LINE CNT..I:.PLA|
000045E0: 20 3B 8C 20 23 22 53 20 4C 45 4E 47 54 48 3B 00 | ;. #"S LENGTH;.|
000045F0: F7 49 44 1B 54 41 58 00 FF 49 4E 1B 52 54 53 00 |.ID.TAX..IN.RTS.|
00004600: 05 4A 58 1B 3B 00 1E 4A 62 1B 3B 99 20 54 48 45 |.JX.;..Jb.;. THE|
00004610: 20 9A 45 4E 54 53 20 4F 46 20 42 55 46 33 00 24 | .ENTS OF BUF3.$|
00004620: 4A 6C 1B 3B 00 3D 4A 76 1B C6 4E 55 4D 20 4C 44 |Jl.;.=Jv..NUM LD|
00004630: 59 20 23 24 30 30 20 3B 49 4E 44 45 58 00 5B 4A |Y #$00 ;INDEX.[J|
00004640: 80 1B 4C 4F 4F 50 39 20 4C 44 41 20 42 55 46 33 |..LOOP9 LDA BUF3|
00004650: 2C 59 20 3B A1 20 C6 49 49 20 23 00 72 4A 8A 1B |,Y ;. .II #.rJ..|
00004660: 4A 53 52 20 4A 50 4F 55 54 50 55 54 20 3B 99 20 |JSR JPOUTPUT ;. |
00004670: 49 54 00 7A 4A 94 1B 49 4E 59 00 8D 4A 9E 1B 44 |IT.zJ..INY..J..D|
00004680: 45 58 20 3B 44 45 43 20 43 4F 55 4E 54 00 B2 4A |EX ;DEC COUNT..J|
00004690: A8 1B 42 4E 45 20 4C 4F 4F 50 39 20 3B 4C 4F 4F |..BNE LOOP9 ;LOO|
000046A0: 50 20 22 54 49 4C 20 41 4C 4C 20 50 52 49 4E 54 |P "TIL ALL PRINT|
000046B0: 45 44 00 BA 4A B2 1B 52 54 53 00 C0 4A BC 1B 3B |ED..J..RTS..J..;|
000046C0: 00 DF 4A C6 1B 3B A1 20 4B 45 59 20 50 52 45 53 |..J..;. KEY PRES|
000046D0: 53 20 26 20 52 45 53 50 91 44 20 A4 20 49 54 00 |S & RESP.D . IT.|
000046E0: E5 4A D0 1B 3B 00 09 4B DA 1B A1 4B 45 59 20 4A |.J..;..K...KEY J|
000046F0: 53 52 20 4A 50 4B 45 59 53 55 42 20 3B A1 20 4B |SR JPKEYSUB ;. K|
00004700: 45 59 20 50 52 45 53 53 3B 00 29 4B E4 1B 43 4D |EY PRESS;.)K..CM|
00004710: 50 20 23 22 50 22 20 3B 22 57 41 53 20 27 50 27 |P #"P" ;"WAS 'P'|
00004720: 20 50 52 45 53 53 45 44 3F 00 34 4B EE 1B 42 4E | PRESSED?.4K..BN|
00004730: 45 20 52 53 00 5A 4B F8 1B 50 41 55 53 45 20 4A |E RS.ZK..PAUSE J|
00004740: 53 52 20 4A 50 4B 45 59 53 55 42 20 3B 92 20 81 |SR JPKEYSUB ;. .|
00004750: 20 4B 45 59 50 52 45 53 53 3B 00 75 4B 02 1C 54 | KEYPRESS;.uK..T|
00004760: 41 58 20 3B 22 41 4E 59 20 4B 45 59 20 50 52 45 |AX ;"ANY KEY PRE|
00004770: 53 53 45 44 3F 00 83 4B 0C 1C 42 45 51 20 50 41 |SSED?..K..BEQ PA|
00004780: 55 53 45 00 A5 4B 16 1C 52 53 20 43 4D 50 20 23 |USE..K..RS CMP #|
00004790: 30 33 20 3B 22 57 41 53 20 49 54 20 52 55 4E 2F |03 ;"WAS IT RUN/|
000047A0: 53 54 4F 50 3F 00 BA 4B 20 1C 42 4E 45 20 52 45 |STOP?..K .BNE RE|
000047B0: 54 31 20 3B 8E 20 8B 20 A8 3B 00 D4 4B 2A 1C 4A |T1 ;. . .;..K*.J|
000047C0: 4D 50 20 44 91 45 AB 32 20 3B 45 4C 53 45 20 51 |MP D.E.2 ;ELSE Q|
000047D0: 55 49 54 3B 00 DA 4B 34 1C 3B 00 FD 4B 3E 1C 3B |UIT;..K4.;..K>.;|
000047E0: AC 20 20 43 48 45 43 4B 20 8B 20 4C 4E 42 55 46 |. CHECK . LNBUF|
000047F0: 20 49 53 20 45 4D 50 54 59 20 20 20 AC 00 03 4C | IS EMPTY ...L|
00004800: 48 1C 3B 00 27 4C 52 1C 42 55 46 45 4D 50 20 4C |H.;.'LR.BUFEMP L|
00004810: 44 41 20 23 B3 4C 4E 42 55 46 20 3B 8B 20 4C 4E |DA #.LNBUF ;. LN|
00004820: 42 55 46 B2 4C 4E 80 00 46 4C 5C 1C 43 4D 50 20 |BUF.LN..FL\.CMP |
00004830: 4C 4E 80 20 3B A7 20 42 55 46 46 45 52 20 49 53 |LN. ;. BUFFER IS|
00004840: 20 45 4D 50 54 59 00 68 4C 66 1C 42 4E 45 20 52 | EMPTY.hLf.BNE R|
00004850: 45 54 31 20 3B 8B 20 B3 B1 20 A7 20 43 4D 50 20 |ET1 ;. .. . CMP |
00004860: 4C 49 4E 45 20 23 22 53 00 93 4C 70 1C 4C 44 41 |LINE #"S..Lp.LDA|
00004870: 20 23 B1 4C 4E 42 55 46 20 3B 43 4D 50 20 4D 53 | #.LNBUF ;CMP MS|
00004880: 42 20 4F 46 20 4C 4E 42 55 46 20 26 20 4E 55 4D |B OF LNBUF & NUM|
00004890: 50 52 54 00 A1 4C 7A 1C 43 4D 50 20 4C 4E 80 AA |PRT..Lz.CMP LN..|
000048A0: 31 00 AE 4C 84 1C 52 45 54 31 20 52 54 53 00 B4 |1..L..RET1 RTS..|
000048B0: 4C 8E 1C 3B 00 D8 4C 98 1C 3B AC 20 20 56 41 52 |L..;..L..;. VAR|
000048C0: 20 26 20 23 20 53 45 50 41 52 41 54 49 4E 47 20 | & # SEPARATING |
000048D0: 4C 49 4E 45 20 20 20 AC 00 DE 4C A2 1C 3B 00 F9 |LINE ...L..;..|
000048E0: 4C AC 1C 53 45 50 4D 45 53 20 4C 44 59 20 23 30 |L..SEPMES LDY #0|
000048F0: 30 20 3B 49 4E 44 45 58 3B 00 13 4D B6 1C 4C 44 |0 ;INDEX;..M..LD|
00004900: 41 20 56 41 52 4D 45 53 2C 59 20 3B A1 20 43 48 |A VARMES,Y ;. CH|
00004910: 41 52 3B 00 2D 4D C0 1C 42 45 51 20 52 45 54 31 |AR;.-M..BEQ RET1|
00004920: 20 3B 45 58 49 54 20 8B 20 44 91 45 3B 00 45 4D | ;EXIT . D.E;.EM|
00004930: CA 1C 4A 53 52 20 4A 50 4F 55 54 50 55 54 20 3B |..JSR JPOUTPUT ;|
00004940: 99 20 49 54 3B 00 4D 4D D4 1C 49 4E 59 00 6D 4D |. IT;.MM..INY.mM|
00004950: DE 1C 42 4E 45 20 53 45 50 4D 45 53 AA 32 20 3B |..BNE SEPMES.2 ;|
00004960: 55 4E 43 91 2E 20 42 52 41 4E 43 48 3B 00 73 4D |UNC.. BRANCH;.sM|
00004970: E8 1C 3B 00 92 4D F2 1C 3B AC 20 20 43 91 56 45 |..;..M..;. C.VE|
00004980: 52 54 20 42 49 4E 41 52 59 20 A4 20 C6 49 49 20 |RT BINARY . .II |
00004990: 20 AC 00 98 4D FC 1C 3B 00 C0 4D 06 1D 42 4E 32 | ...M..;..M..BN2|
000049A0: C6 20 4C 44 59 20 23 24 30 41 20 3B 50 55 54 20 |. LDY #$0A ;PUT |
000049B0: 31 30 20 C6 49 49 20 30 20 49 4E 20 42 55 46 33 |10 .II 0 IN BUF3|
000049C0: 00 DE 4D 10 1D 4C 44 58 20 23 24 30 30 20 3B 5A |..M..LDX #$00 ;Z|
000049D0: 45 52 4F 20 42 55 46 33 20 49 4E 44 45 58 00 FB |ERO BUF3 INDEX..|
000049E0: 4D 1A 1D 4C 4F 4F 50 38 20 4C 44 41 20 23 22 30 |M..LOOP8 LDA #"0|
000049F0: 22 20 3B C6 49 49 20 5A 45 52 4F 00 0C 4E 24 1D |" ;.II ZERO..N$.|
00004A00: 53 54 41 20 42 55 46 33 AB 31 2C 59 00 14 4E 2E |STA BUF3.1,Y..N.|
00004A10: 1D 44 45 59 00 22 4E 38 1D 42 4E 45 20 4C 4F 4F |.DEY."N8.BNE LOO|
00004A20: 50 38 00 28 4E 42 1D 3B 00 3F 4E 4C 1D 3B 53 55 |P8.(NB.;.?NL.;SU|
00004A30: 42 54 52 41 43 54 49 91 20 53 45 43 54 49 91 00 |BTRACTI. SECTI..|
00004A40: 45 4E 56 1D 3B 00 56 4E 60 1D 53 54 58 20 4C 45 |ENV.;.VN`.STX LE|
00004A50: 53 53 54 4E AA 32 00 75 4E 6A 1D A1 44 49 47 20 |SSTN.2.uNj..DIG |
00004A60: 53 45 43 20 3B 42 45 47 49 4E 20 53 55 42 54 52 |SEC ;BEGIN SUBTR|
00004A70: 41 43 54 49 91 00 8B 4E 74 1D 4C 44 41 20 C5 55 |ACTI...Nt.LDA .U|
00004A80: 45 20 3B 4C 53 42 20 4F 46 20 23 00 AE 4E 7E 1D |E ;LSB OF #..N~.|
00004A90: 53 42 43 20 54 41 42 4C 45 2C 59 20 3B 53 55 42 |SBC TABLE,Y ;SUB|
00004AA0: 20 4C 4F 57 20 B0 44 45 52 20 42 59 54 45 00 BB | LOW .DER BYTE..|
00004AB0: 4E 88 1D 50 48 41 20 3B AF 20 94 00 D3 4E 92 1D |N..PHA ;. ...N..|
00004AC0: 4C 44 41 20 C5 55 45 AA 31 20 3B 4D 53 42 20 4F |LDA .UE.1 ;MSB O|
00004AD0: 46 20 23 00 F4 4E 9C 1D 53 42 43 20 54 41 42 4C |F #..N..SBC TABL|
00004AE0: 45 AA 31 2C 59 20 3B 53 55 42 20 48 49 47 48 20 |E.1,Y ;SUB HIGH |
00004AF0: 42 59 54 45 00 1B 4F A6 1D 42 43 43 20 4C 45 53 |BYTE..O..BCC LES|
00004B00: 53 54 4E 20 3B 8B 20 B3 20 50 52 45 53 45 4E 54 |STN ;. . PRESENT|
00004B10: 20 54 41 42 4C 45 20 23 AB 20 CB 00 35 4F B0 1D | TABLE #. ..5O..|
00004B20: 53 54 41 20 C5 55 45 AA 31 20 3B 8B 20 A8 20 4C |STA .UE.1 ;. . L|
00004B30: 45 53 53 20 A7 00 47 4F BA 1D 50 4C 41 20 3B 94 |ESS ..GO..PLA ;.|
00004B40: 20 49 4E 20 C5 55 45 00 53 4F C4 1D 53 54 41 20 | IN .UE.SO..STA |
00004B50: C5 55 45 00 6D 4F CE 1D 49 4E 43 20 42 55 46 33 |.UE.mO..INC BUF3|
00004B60: 2C 58 20 3B 49 4E 43 20 44 49 47 49 54 00 87 4F |,X ;INC DIGIT..O|
00004B70: D8 1D 42 43 53 20 A1 44 49 47 20 3B 55 4E 43 91 |..BCS .DIG ;UNC.|
00004B80: 20 42 52 41 4E 43 48 00 8D 4F E2 1D 3B 00 A8 4F | BRANCH..O..;..O|
00004B90: EC 1D 3B 5A 45 52 4F 20 53 55 50 52 45 53 53 49 |..;ZERO SUPRESSI|
00004BA0: 91 20 53 45 43 54 49 91 00 AE 4F F6 1D 3B 00 CA |. SECTI...O..;..|
00004BB0: 4F 00 1E 4C 45 53 53 54 4E 20 50 4C 41 20 3B 43 |O..LESSTN PLA ;C|
00004BC0: 4C 45 41 52 20 53 54 41 43 4B 00 EB 4F 0A 1E 43 |LEAR STACK..O..C|
00004BD0: 50 58 20 23 30 30 20 3B 43 48 45 43 4B 20 8B 20 |PX #00 ;CHECK . |
00004BE0: 91 20 31 53 54 20 44 49 47 49 54 00 03 50 14 1E |. 1ST DIGIT..P..|
00004BF0: 42 4E 45 20 A8 31 53 54 20 3B CB 20 8B 20 A8 20 |BNE .1ST ;. . . |
00004C00: 31 53 54 00 29 50 1E 1E 4C 44 41 20 42 55 46 33 |1ST.)P..LDA BUF3|
00004C10: 2C 58 20 3B 8B 20 31 53 54 20 43 48 45 43 4B 20 |,X ;. 1ST CHECK |
00004C20: 8B 20 53 54 49 4C 4C 20 30 00 50 50 28 1E 43 4D |. STILL 0.PP(.CM|
00004C30: 50 20 23 22 30 22 20 3B 53 55 50 50 52 45 53 53 |P #"0" ;SUPPRESS|
00004C40: 20 5A 45 52 4F 20 42 59 20 A8 20 49 4E 43 20 58 | ZERO BY . INC X|
00004C50: 00 71 50 32 1E 42 45 51 20 49 53 31 53 54 20 3B |.qP2.BEQ IS1ST ;|
00004C60: A4 20 82 20 44 49 47 49 54 20 49 4E 20 42 55 46 |. . DIGIT IN BUF|
00004C70: 33 00 7E 50 3C 1E A8 31 53 54 20 49 4E 58 00 8F |3.~P<..1ST INX..|
00004C80: 50 46 1E 49 4E 43 20 4C 49 4E 43 4E 54 AA 31 00 |PF.INC LINCNT.1.|
00004C90: AC 50 50 1E 49 53 31 53 54 20 49 4E 59 20 3B 50 |.PP.IS1ST INY ;P|
00004CA0: 4F B5 20 A4 20 82 20 45 4E 54 52 59 00 C2 50 5A |O. . . ENTRY..PZ|
00004CB0: 1E 49 4E 59 20 3B 49 4E 20 54 48 45 20 54 41 42 |.INY ;IN THE TAB|
00004CC0: 4C 45 00 E4 50 64 1E 43 50 59 20 23 24 30 41 20 |LE..Pd.CPY #$0A |
00004CD0: 3B 22 44 4F 4E 45 20 35 20 44 49 47 49 54 53 20 |;"DONE 5 DIGITS |
00004CE0: 59 45 54 3F 00 02 51 6E 1E 42 4E 45 20 A1 44 49 |YET?..Qn.BNE .DI|
00004CF0: 47 20 3B 8B 20 A8 AB CB 20 22 54 49 4C 20 44 4F |G ;. ... "TIL DO|
00004D00: 4E 45 00 08 51 78 1E 3B 00 20 51 82 1E 52 54 53 |NE..Qx.;. Q..RTS|
00004D10: 20 3B 4F 46 20 53 54 52 20 49 4E 20 42 55 46 33 | ;OF STR IN BUF3|
00004D20: 00 34 51 8C 1E C5 55 45 20 2E 42 59 54 45 20 30 |.4Q...UE .BYTE 0|
00004D30: 30 2C 30 30 00 4D 51 96 1E 42 55 46 33 20 2E C6 |0,00.MQ..BUF3 ..|
00004D40: 20 22 30 30 30 30 30 30 30 30 30 30 22 00 65 51 | "0000000000".eQ|
00004D50: A0 1E 54 41 42 4C 45 20 2E 42 59 54 45 20 24 31 |..TABLE .BYTE $1|
00004D60: 30 2C 24 32 37 00 77 51 AA 1E 2E 42 59 54 45 20 |0,$27.wQ...BYTE |
00004D70: 24 45 38 2C 24 30 33 00 88 51 B4 1E 2E 42 59 54 |$E8,$03..Q...BYT|
00004D80: 45 20 31 30 30 2C 30 30 00 98 51 BE 1E 2E 42 59 |E 100,00..Q...BY|
00004D90: 54 45 20 31 30 2C 30 30 00 A7 51 C8 1E 2E 42 59 |TE 10,00..Q...BY|
00004DA0: 54 45 20 31 2C 30 30 00 BC 51 D2 1E 42 55 46 31 |TE 1,00..Q..BUF1|
00004DB0: 20 2E C6 20 22 4E 55 4D 42 45 52 22 00 D1 51 DC | .. "NUMBER"..Q.|
00004DC0: 1E 42 55 46 32 20 2E C6 20 22 4E 55 4D 42 45 52 |.BUF2 .. "NUMBER|
00004DD0: 22 00 06 52 E6 1E 56 41 52 4D 45 53 20 2E 42 59 |"..R..VARMES .BY|
00004DE0: 54 45 20 24 30 44 2C 24 30 44 2C 24 31 32 3A 2E |TE $0D,$0D,$12:.|
00004DF0: C6 20 22 56 41 52 2F 4E 55 4D 20 2D 20 41 50 50 |. "VAR/NUM - APP|
00004E00: 45 41 52 53 20 22 00 2F 52 F0 1E 2E C6 20 22 4F |EARS "./R.... "O|
00004E10: 4E 20 4C 49 4E 45 20 4E 55 4D 42 45 52 28 53 29 |N LINE NUMBER(S)|
00004E20: 22 20 3A 2E 42 59 54 45 20 24 30 44 2C 30 30 00 |" :.BYTE $0D,00.|
00004E30: 6D 52 FA 1E 4D 45 53 47 32 20 2E 42 59 54 45 20 |mR..MESG2 .BYTE |
00004E40: 24 30 44 2C 24 30 44 2C 24 31 32 20 3A 2E C6 22 |$0D,$0D,$12 :.."|
00004E50: 45 4E 44 20 4F 46 20 54 45 58 54 22 3A 2E 42 59 |END OF TEXT":.BY|
00004E60: 54 45 20 24 30 44 2C 24 30 44 2C 30 30 00 A0 52 |TE $0D,$0D,00..R|
00004E70: 04 1F 4D 45 53 42 55 46 20 2E 42 59 54 45 20 31 |..MESBUF .BYTE 1|
00004E80: 3A 20 2E C6 20 22 30 20 20 20 20 22 20 3A 2E 42 |: .. "0 " :.B|
00004E90: 59 54 45 20 35 3A 2E C6 20 22 5A 5A 5A 5A 5A 22 |YTE 5:.. "ZZZZZ"|
00004EA0: 00 CA 52 0E 1F 48 45 4C 50 4D 47 20 2E 42 59 54 |..R..HELPMG .BYT|
00004EB0: 45 20 24 39 33 3A 20 2E C6 20 22 20 20 20 20 20 |E $93: .. " |
00004EC0: 20 20 20 20 20 20 20 20 20 22 00 F7 52 18 1F 2E | "..R...|
00004ED0: 42 59 54 45 20 24 31 32 3A 2E C6 20 22 58 52 45 |BYTE $12:.. "XRE|
00004EE0: 46 36 34 20 48 45 4C 50 22 3A 2E 42 59 54 45 20 |F64 HELP":.BYTE |
00004EF0: 24 30 44 2C 24 30 44 00 2D 53 22 1F 2E C6 22 27 |$0D,$0D.-S"..."'|
00004F00: 58 27 20 43 41 4E 20 45 51 55 41 4C 20 41 20 56 |X' CAN EQUAL A V|
00004F10: 41 52 49 41 42 4C 45 20 55 50 20 54 4F 20 46 49 |ARIABLE UP TO FI|
00004F20: 56 45 22 3A 2E 42 59 54 45 20 24 30 44 00 51 53 |VE":.BYTE $0D.QS|
00004F30: 2C 1F 2E C6 20 22 4C 45 54 54 45 52 53 20 4C 4F |,... "LETTERS LO|
00004F40: 4E 47 2C 20 4F 52 20 41 20 4E 55 4D 42 45 52 20 |NG, OR A NUMBER |
00004F50: 22 00 89 53 36 1F 2E C6 20 22 42 45 54 57 45 45 |"..S6... "BETWEE|
00004F60: 4E 22 3A 2E 42 59 54 45 20 24 30 44 20 3A 2E C6 |N":.BYTE $0D :..|
00004F70: 20 22 30 2D 36 35 35 33 35 2E 22 3A 2E 42 59 54 | "0-65535.":.BYT|
00004F80: 45 20 24 30 44 2C 24 30 44 00 B3 53 40 1F 2E 42 |E $0D,$0D..S@..B|
00004F90: 59 54 45 20 24 31 32 3A 2E C6 20 22 27 58 52 45 |YTE $12:.. "'XRE|
00004FA0: 46 40 20 3C 43 52 3E 27 22 3A 2E 42 59 54 45 20 |F@ <CR>'":.BYTE |
00004FB0: 24 39 32 00 DF 53 4A 1F 2E C6 20 22 20 3A 50 52 |$92..SJ... " :PR|
00004FC0: 49 4E 54 53 20 41 4C 4C 20 52 45 46 45 52 45 4E |INTS ALL REFEREN|
00004FD0: 43 45 53 2E 22 3A 2E 42 59 54 45 20 24 30 44 00 |CES.":.BYTE $0D.|
00004FE0: 09 54 54 1F 2E 42 59 54 45 20 24 31 32 3A 2E C6 |.TT..BYTE $12:..|
00004FF0: 20 22 27 58 52 45 46 40 20 3C 43 52 3E 27 22 3A | "'XREF@ <CR>'":|
00005000: 2E 42 59 54 45 20 24 39 32 00 37 54 5E 1F 2E C6 |.BYTE $92.7T^...|
00005010: 20 22 20 3A 50 52 49 4E 54 53 20 41 4C 4C 20 52 | " :PRINTS ALL R|
00005020: 45 46 45 52 45 4E 43 45 53 20 54 4F 22 3A 2E 42 |EFERENCES TO":.B|
00005030: 59 54 45 20 24 30 44 00 58 54 68 1F 2E C6 20 22 |YTE $0D.XTh... "|
00005040: 59 4F 55 52 20 50 52 49 4E 54 45 52 2E 22 3A 2E |YOUR PRINTER.":.|
00005050: 42 59 54 45 20 24 30 44 00 85 54 72 1F 2E 42 59 |BYTE $0D..Tr..BY|
00005060: 54 45 20 24 31 32 20 3A 2E C6 20 22 27 58 52 45 |TE $12 :.. "'XRE|
00005070: 46 40 20 58 20 3C 43 52 3E 27 22 3A 2E 42 59 54 |F@ X <CR>'":.BYT|
00005080: 45 20 24 39 32 00 B1 54 7C 1F 2E C6 20 22 20 3A |E $92..T|... " :|
00005090: 50 52 49 4E 54 53 20 41 4C 4C 20 52 45 46 45 52 |PRINTS ALL REFER|
000050A0: 45 4E 43 45 53 2C 22 3A 2E 42 59 54 45 20 24 30 |ENCES,":.BYTE $0|
000050B0: 44 00 D1 54 86 1F 2E C6 20 22 46 52 4F 4D 20 22 |D..T.... "FROM "|
000050C0: 58 22 20 4F 4E 2E 22 3A 2E 42 59 54 45 20 24 30 |X" ON.":.BYTE $0|
000050D0: 44 00 FD 54 90 1F 2E 42 59 54 45 20 24 31 32 3A |D..T...BYTE $12:|
000050E0: 2E C6 20 22 27 58 52 45 46 40 20 58 20 3C 43 52 |.. "'XREF@ X <CR|
000050F0: 3E 27 22 3A 2E 42 59 54 45 20 24 39 32 00 29 55 |>'":.BYTE $92.)U|
00005100: 9A 1F 2E C6 20 22 20 3A 53 41 4D 45 20 41 53 20 |.... " :SAME AS |
00005110: 41 42 4F 56 45 2C 20 42 55 54 20 54 48 45 22 3A |ABOVE, BUT THE":|
00005120: 2E 42 59 54 45 20 24 30 44 00 5C 55 A4 1F 2E C6 |.BYTE $0D.\U....|
00005130: 20 22 4F 55 54 50 55 54 20 49 53 20 53 45 4E 54 | "OUTPUT IS SENT|
00005140: 20 54 4F 20 59 4F 55 52 20 50 52 49 4E 54 45 52 | TO YOUR PRINTER|
00005150: 2E 22 3A 2E 42 59 54 45 20 24 30 44 00 8E 55 AE |.":.BYTE $0D..U.|
00005160: 1F 2E 42 59 54 45 20 24 31 32 3A 2E C6 20 22 27 |..BYTE $12:.. "'|
00005170: 58 52 45 46 20 58 27 20 4F 52 20 27 58 52 45 46 |XREF X' OR 'XREF|
00005180: 20 58 27 22 3A 2E 42 59 54 45 20 24 39 32 00 B1 | X'":.BYTE $92..|
00005190: 55 B8 1F 2E C6 20 22 20 3A 50 52 49 4E 54 53 20 |U.... " :PRINTS |
000051A0: 54 4F 20 54 48 45 22 3A 2E 42 59 54 45 20 24 30 |TO THE":.BYTE $0|
000051B0: 44 00 EA 55 C2 1F 2E C6 20 22 53 43 52 45 45 4E |D..U.... "SCREEN|
000051C0: 20 4F 52 20 59 4F 55 52 20 50 52 49 4E 54 45 52 | OR YOUR PRINTER|
000051D0: 20 41 4C 4C 20 52 45 46 45 52 45 4E 43 45 53 22 | ALL REFERENCES"|
000051E0: 3A 2E 42 59 54 45 20 24 30 44 00 05 56 CC 1F 2E |:.BYTE $0D..V...|
000051F0: C6 20 22 54 4F 20 27 58 27 2E 22 3A 2E 42 59 54 |. "TO 'X'.":.BYT|
00005200: 45 20 24 30 44 00 2E 56 D6 1F 2E 42 59 54 45 20 |E $0D..V...BYTE |
00005210: 24 31 32 3A 2E C6 20 22 27 58 52 45 46 20 3C 43 |$12:.. "'XREF <C|
00005220: 52 3E 27 22 3A 2E 42 59 54 45 20 24 39 32 00 5B |R>'":.BYTE $92.[|
00005230: 56 E0 1F 2E C6 20 22 20 3A 43 4F 4E 53 45 43 55 |V.... " :CONSECU|
00005240: 54 49 56 45 4C 59 20 4C 49 53 54 53 20 4F 4E 45 |TIVELY LISTS ONE|
00005250: 22 3A 2E 42 59 54 45 20 24 30 44 00 91 56 EA 1F |":.BYTE $0D..V..|
00005260: 2E C6 20 22 42 41 53 49 43 20 4C 49 4E 45 2C 20 |.. "BASIC LINE, |
00005270: 57 48 45 52 45 20 27 58 27 20 41 50 50 45 41 52 |WHERE 'X' APPEAR|
00005280: 53 2E 22 3A 2E 42 59 54 45 20 24 30 44 2C 24 30 |S.":.BYTE $0D,$0|
00005290: 44 00 C3 56 F4 1F 2E C6 20 22 50 52 45 53 53 20 |D..V.... "PRESS |
000052A0: 54 48 45 20 27 50 27 20 4B 45 59 20 54 4F 20 50 |THE 'P' KEY TO P|
000052B0: 41 55 53 45 20 54 48 45 22 3A 2E 42 59 54 45 20 |AUSE THE":.BYTE |
000052C0: 24 30 44 00 F8 56 FE 1F 2E C6 20 22 4C 49 53 54 |$0D..V.... "LIST|
000052D0: 49 4E 47 2C 20 41 4E 44 20 41 4E 59 20 4B 45 59 |ING, AND ANY KEY|
000052E0: 20 54 4F 20 43 4F 4E 54 49 4E 55 45 2E 22 3A 2E | TO CONTINUE.":.|
000052F0: 42 59 54 45 20 24 30 44 00 39 57 08 20 2E C6 20 |BYTE $0D.9W. .. |
00005300: 22 50 52 45 53 53 20 52 55 4E 2F 53 54 4F 50 2C |"PRESS RUN/STOP,|
00005310: 20 54 4F 20 43 41 4E 43 45 4C 20 54 48 45 20 4C | TO CANCEL THE L|
00005320: 49 53 54 49 4E 47 2E 22 3A 2E 42 59 54 45 20 24 |ISTING.":.BYTE $|
00005330: 30 44 2C 24 30 44 2C 30 30 00 3F 57 12 20 3B 00 |0D,$0D,00.?W. ;.|
00005340: 78 57 1C 20 4D 45 53 47 33 20 2E 42 59 54 45 20 |xW. MESG3 .BYTE |
00005350: 24 39 33 2C 24 30 44 3A 2E C6 20 22 20 20 20 20 |$93,$0D:.. " |
00005360: 20 20 20 20 20 20 20 20 20 20 20 20 22 20 3B 31 | " ;1|
00005370: 37 20 53 50 41 43 45 53 00 A0 57 26 20 2E 42 59 |7 SPACES..W& .BY|
00005380: 54 45 20 24 31 32 3A 2E C6 20 22 58 52 45 46 36 |TE $12:.. "XREF6|
00005390: 34 22 3A 2E 42 59 54 45 20 24 30 44 2C 24 30 44 |4":.BYTE $0D,$0D|
000053A0: 00 C7 57 30 20 2E 42 59 54 45 20 24 30 44 3A 2E |..W0 .BYTE $0D:.|
000053B0: C6 20 22 20 20 20 20 20 20 20 20 22 20 3B 38 20 |. " " ;8 |
000053C0: 53 50 41 43 45 53 3B 00 E9 57 3A 20 2E C6 20 22 |SPACES;..W: .. "|
000053D0: 41 20 56 41 52 49 41 42 4C 45 20 26 20 4C 49 4E |A VARIABLE & LIN|
000053E0: 45 20 4E 55 4D 42 45 52 22 00 10 58 44 20 2E 42 |E NUMBER"..XD .B|
000053F0: 59 54 45 20 24 30 44 3A 2E C6 20 22 20 20 20 20 |YTE $0D:.. " |
00005400: 20 20 20 20 22 20 3B 38 20 53 50 41 43 45 53 3B | " ;8 SPACES;|
00005410: 00 3B 58 4E 20 2E C6 20 22 43 52 4F 53 53 20 52 |.;XN .. "CROSS R|
00005420: 45 46 45 52 45 4E 43 45 20 50 52 4F 47 52 41 4D |EFERENCE PROGRAM|
00005430: 22 3A 2E 42 59 54 45 20 24 30 44 00 76 58 58 20 |":.BYTE $0D.vXX |
00005440: 2E 42 59 54 45 20 24 30 44 3A 2E C6 20 22 20 20 |.BYTE $0D:.. " |
00005450: 20 20 20 20 22 3A 2E 42 59 54 45 20 24 31 32 3A | ":.BYTE $12:|
00005460: 2E C6 20 22 28 43 29 20 31 39 38 33 20 42 59 20 |.. "(C) 1983 BY |
00005470: 44 41 56 49 44 22 00 9B 58 62 20 2E C6 20 22 20 |DAVID"..Xb .. " |
00005480: 41 52 43 48 49 42 41 4C 44 22 3A 2E 42 59 54 45 |ARCHIBALD":.BYTE|
00005490: 20 24 30 44 2C 24 30 44 2C 30 30 00 A1 58 6C 20 | $0D,$0D,00..Xl |
000054A0: 3B 00 C4 58 76 20 3B AC 20 20 20 20 20 49 4E 49 |;..Xv ;. INI|
000054B0: 54 49 41 54 49 91 20 43 4F 44 45 20 20 20 20 20 |TIATI. CODE |
000054C0: 20 20 20 AC 00 CA 58 80 20 3B 00 ED 58 8A 20 53 | ...X. ;..X. S|
000054D0: 54 41 52 54 20 4C 44 58 20 23 B3 4D 45 53 47 20 |TART LDX #.MESG |
000054E0: 3B 4C 53 42 20 4F 46 20 53 54 41 52 54 00 0A 59 |;LSB OF START..Y|
000054F0: 94 20 4C 44 59 20 23 B1 4D 45 53 47 20 3B 4D 53 |. LDY #.MESG ;MS|
00005500: 42 20 4F 46 20 53 54 41 52 54 00 2A 59 9E 20 53 |B OF START.*Y. S|
00005510: 54 58 20 4D 45 4D 53 49 5A 20 3B 53 45 54 20 A4 |TX MEMSIZ ;SET .|
00005520: 50 20 4F 46 20 42 41 53 49 43 00 43 59 A8 20 53 |P OF BASIC.CY. S|
00005530: 54 59 20 4D 45 4D 53 49 5A AA 31 20 3B 4D 45 4D |TY MEMSIZ.1 ;MEM|
00005540: B0 59 3B 00 57 59 B2 20 4C 44 41 20 23 24 34 43 |.Y;.WY. LDA #$4C|
00005550: 20 3B 4A 4D 50 20 A4 00 75 59 BC 20 4C 44 58 20 | ;JMP ..uY. LDX |
00005560: 23 B3 45 4E 54 52 59 20 3B 4C 53 42 20 4F 46 20 |#.ENTRY ;LSB OF |
00005570: 45 4E 54 52 59 00 93 59 C6 20 4C 44 59 20 23 B1 |ENTRY..Y. LDY #.|
00005580: 45 4E 54 52 59 20 3B 4D 53 42 20 4F 46 20 45 4E |ENTRY ;MSB OF EN|
00005590: 54 52 59 00 B5 59 D0 20 53 54 41 20 24 37 43 20 |TRY..Y. STA $7C |
000055A0: 3B 50 55 54 20 41 20 42 52 41 4E 43 48 20 A4 20 |;PUT A BRANCH . |
000055B0: 45 4E 54 52 59 00 D2 59 DA 20 53 54 58 20 24 37 |ENTRY..Y. STX $7|
000055C0: 44 20 3B 49 4E 20 43 48 52 A1 20 52 4F 55 54 49 |D ;IN CHR. ROUTI|
000055D0: 4E 45 00 DE 59 E4 20 53 54 59 20 24 37 45 00 F3 |NE..Y. STY $7E..|
000055E0: 59 EE 20 4C 44 59 20 23 24 30 30 20 3B 49 4E 44 |Y. LDY #$00 ;IND|
000055F0: 45 58 3B 00 12 5A F8 20 4D 45 53 50 52 54 20 4C |EX;..Z. MESPRT L|
00005600: 44 41 20 4D 45 53 47 33 2C 59 20 3B A1 20 43 48 |DA MESG3,Y ;. CH|
00005610: 41 52 00 2F 5A 02 21 42 45 51 20 4A 50 42 41 4B |AR./Z.!BEQ JPBAK|
00005620: 49 4E 20 3B 8B 20 30 20 A7 20 44 91 45 AB CB 00 |IN ;. 0 . D.E...|
00005630: 46 5A 0C 21 4A 53 52 20 4A 50 4F 55 54 50 55 54 |FZ.!JSR JPOUTPUT|
00005640: 20 3B 99 20 49 54 00 4E 5A 16 21 49 4E 59 00 6A | ;. IT.NZ.!INY.j|
00005650: 5A 20 21 42 4E 45 20 4D 45 53 50 52 54 20 3B 55 |Z !BNE MESPRT ;U|
00005660: 4E 43 91 20 42 52 41 4E 43 48 00 70 5A 2A 21 3B |NC. BRANCH.pZ*!;|
00005670: 00 93 5A 34 21 3B AC 20 20 4A 55 4D 50 20 54 41 |..Z4!;. JUMP TA|
00005680: 42 4C 45 20 A4 20 52 45 4C 4F 43 41 54 41 42 4C |BLE . RELOCATABL|
00005690: 45 20 AC 00 B7 5A 3E 21 3B AC 20 20 53 55 42 52 |E ...Z>!;. SUBR|
000056A0: 4F 55 54 49 4E 45 53 20 42 45 4C 4F 57 20 24 41 |OUTINES BELOW $A|
000056B0: 30 30 30 2E 20 20 AC 00 BD 5A 48 21 3B 00 D5 5A |000. ...ZH!;..Z|
000056C0: 52 21 4A 50 42 41 4B 4F 55 54 20 4A 4D 50 20 42 |R!JPBAKOUT JMP B|
000056D0: 41 4B 4F 55 54 00 EB 5A 5C 21 4A 50 42 41 4B 49 |AKOUT..Z\!JPBAKI|
000056E0: 4E 20 4A 4D 50 20 42 41 4B 49 4E 00 03 5B 66 21 |N JMP BAKIN..[f!|
000056F0: 4A 50 4F 55 54 50 55 54 20 4A 4D 50 20 4F 55 54 |JPOUTPUT JMP OUT|
00005700: 50 55 54 00 19 5B 70 21 4A 50 44 91 45 58 49 20 |PUT..[p!JPD.EXI |
00005710: 4A 4D 50 20 44 91 45 58 49 00 2F 5B 7A 21 4A 50 |JMP D.EXI./[z!JP|
00005720: 43 52 4F 55 54 20 4A 4D 50 20 43 52 4F 55 54 00 |CROUT JMP CROUT.|
00005730: 47 5B 84 21 4A 50 4B 45 59 53 55 42 20 4A 4D 50 |G[.!JPKEYSUB JMP|
00005740: 20 4B 45 59 53 55 42 00 4D 5B 8E 21 3B 00 61 5B | KEYSUB.M[.!;.a[|
00005750: 98 21 4C 4E 42 55 46 20 2E 42 59 54 45 20 24 30 |.!LNBUF .BYTE $0|
00005760: 30 00 00 00 |0... |
....D.. SAVE "@0:XREF.PAL",8.".N...,.X..
700.;...; .OPT OO.A...;.J...;.........
............................. .;VAR. . L
INE # CROSSREF PROGRAM.....;.....;MAE AS
SEMBLER 8.15.1983.Q...;C.VERTED . PAL
30.3.1987.W.H.;...R.;...................
.....................;.-...CHR. . $0073
;. BYTE OF BASIC TEXT.W....CHN . $FFCC ;
RESET CHANNELS . .ALTS;.....SETLFS . $FF
BA ;SET ..1ST & 2ND ADDR.....SETNAM . $F
FBD ;SET FILE NAME.I...CHKOUT . $FFC9 ;.
CHANNEL . OUTPUT.....CHROUT . $FFD2 ;OU
TPUT CHAR . CHANNEL..."..IN . $FFE4 ;. K
EY PRESS;.*.,. . $FFC3 ; A FILE;.H.6..
. $FFC0 ;. A .ICAL FILE.H.@.R6510 . $01
;..OUTPUT REGS;...J.LINNUM . $14 ;LINE
NUM S.RAGE AREA...T.MEMSIZ . $37 ;.P OF
BASIC MEM;...^.ALLREF . $4B ;FLAG. PRT A
LL VAR & # REF...H.ALLVN . $4C ;FLAG. PR
T ALL VAR . # REF.+.R.S2ADR . $19 ;ADDR
OF BUF1 . 2.O.|.S1ADR . $1B ;ADDR OF CMP
STRING.N...S1C . $1D ;CGTH OF CMP STR..
...LN. . $FB ;. PO.ER . LNBUF.....BS. .
$1E ;FLAG. . OF BASIC LINE.S...PO. . $20
;.TI. IN BASIC PRG.....TEPBUF . $FD ;TE
P LNBUF PO.ER.....PRG. . $02 ;FLAG . . O
F PRG.;.B.TXTTAB . $2B ;START OF BASIC T
EXT.].L.VARTAB . $2D ;. OF BASIC TEXT...
V.MSGFLG . $9D ;FLAG. DIRECT . PROG MODE
.....;.......$C000. ...;.C...;. BRANCH
. INITIATI. CODE ..I...;.....PRGSTR JSR
BAKOUT ;INIT. CODE IS UNDER.....JMP STA
RT ;BASIC ROM . K!...&.;.=.0.;. OUTPUT
& OTHER STRINGS ..C.:.;.G.D.MESG .F
"FER" ;X"REF" BACKWARDS...N.MESG4 .BYTE
$00 : .F "PLE" ;H"ELP" BACKWARDS...X.;.D
.B.;...................................L
.; START OF SUBROUTINES THAT...V.;OPER
ATE BELOW $A000 (BASIC ROM).1...;.......
..........................7...;.Y...;.
SUBROUTINE . EXIT BACK ..W...;. . CHR.
AFTER PER.MING......;. THE COMM.S THAT W
ERE ......;. REPLACED BY THE BRANCH .
......;. THIS PROGRAM. ....
F.;...P..1ST LDY #00 ;RESET . BUF...Z.ST
Y $7A ;. START OF BUF;.;...LDA ($7A),Y ;
. 1ST CHAR;.V...KBACK LDY PO. ;. X & Y.T
...LDX PO..1 ;. CHR. CALLER;.....CMP #$3
A.....BCS RTN.....JMP $0080... .RTN RTS.
..*.;.R.4.;. THE FOLLOWING CODE BANKS
....>.;. THE BASIC ROM OUT . ENTRY ...
.H.;. . BACK IT IN . EXIT ....R.;.?
.\.BAKOUT SEI ;DISABLE .ERRUPT;._.F.LDA
R6510 ;. PRESENT STATUS.~.P.. #$FE ;BANK
OUT A000.BFFF...Z.BNE STREG ;IT W."T=0-
UNCON BRANCH.D...BAKIN CLI ;ENABLE .ERRU
PTS;.....LDA R6510 ;. PRESENT STATUS....
..A #$01 ;BANK IN A000.BFFF.#...STREG ST
A R6510 ;. . STATUS.7...RTS ;. . CALLER.
=...;.D...;..C.J.;. OUTPUT . .ER . CRT
..I.T.;.....OUTPUT PHA ;. THE CHAR....
.JSR BAKIN ;BANK ROM IN.....PLA ;PUT CHA
R BACK IN A.R...JSR CHROUT ;. CHAR.....J
MP BAKOUT ;BANK ROM OUT & RTS . CALLER..
...;.....;"DONE" EXIT . BASIC.#.$.;.D...
D.EXI JSR BAKIN ;BANK IN ROM.`.8.LDA #04
; OUTPUT FILE;.J.B.JSR .W.L.JSR .CHN.
..V.JMP ($0302) ;BASIC WARM START...`.;.
..J.;XREF.CR. EXIT . BASIC...T.;...~.CRO
UT JSR BAKIN ;BANK IN ROM.....JMP $A6A7
;. BASIC LINE.....;.$...;BANK IN BASIC &
. KEY PRESS.*...;.M...KEYSUB JSR BAKIN
;BANK IN ROM;.G...JSR .IN ;. KEY PRESS;.
}.D.PHA ;. KEY PRESS;...N.JSR BAKOUT...X
.PLA ;. KEY PRESS;.....RTS.....;.W...;..
....................................;. O
F SUBROUTINES BELOW $A000. ...;.........
.........................&...;.I...;.
START OF PROGRAM ..O.(.;.J.2.ENTR
Y STY PO. ;. X & Y...<.STX PO..1 ;FROM C
HR. CALLER;...F.LDX MSGFLG ;IN
.K.P.BPL KBACK ;. IN PROG MODE.EXIT...Z.
LDX $007A ;"IS IT THE 1ST LETTER IN BUF?
...D.BNE KBACK ;. . . EXIT.4.N.CMP #"X"
;"IS 1ST LETTER A X?.K.X.BEQ HERE ;EXIT
. ..N...LDY #$03 ;. "H" CHECK . 3 CHAR..
...LDX #.MESG4 ;PNT . LSB OF "HELP'.....
CMP #"H" ;"1ST LETTER = H ?.Y. .BEQ MESA
DD ;CHECK . "ELP" FOLLOWS.....BNE KBACK.
....HERE LDY #$02 ;Y.NUM OF CHAR . CHECK
.4...LDX #.MESG ;PNT . LSB OF "XREF'._.H
.MESADD STX MESCMP.1 ;PNT . HELP . XREF.
{.R.LOOP JSR CHR. ;. . CHAR.....MESCMP C
MP MESG,Y ;CMP . "REF'.....BNE .1ST ;DOE
SN"T="REF"-EXIT.....DEY ;PO. . . CHAR IN
"REF'.....BPL LOOP ;CMP . CHAR.....;...
..LDA MESCMP.1.....;.9.".CMP #.MESG ;"WH
ICH COM. ENTERED?.Z.,.BEQ XREF ;K . "XRE
F" ENTERED.`.6.;.{.@.;EXIT . "HELP" ROUT
INE...J.;...T.JSR BAKOUT...^.JMP HELP...
H.;.M.R.;"PRINT BASIC LINE WHERE REF APP
EARS?.S.|.;.....XREF LDA #.BUF1 ;PNT . .
C.....STA S2ADR.1.....JSR CHR. ;. . CHAR
.3...CMP #$00 ;DOES IT.. OF.M...BNE SKIP
1 ;LINE . ..K.\...JSR BAKOUT.G.B.JMP CR.
M.L.;...V.;SETUP OUTPUT FILE . CRT . PRT
.....;.....SKIP1 PHA ;. CHAR;.F...LDA #0
4 ; CHANNEL ......JSR ;PREVENT "OPEN"
ERR;.....PLA ;. CHAR;.....LDX #$3 ;X.DE
VICE # . CRT.0...LDY #$24 ;CRT LINE CGTH
.W.&.CMP #$2A ;"SEND OUTPUT TO PRINTER?.
}.0.BNE SETCRT ;"NO? SETUP OUTPUT CRT...
:.JSR CHR. ;. . CHAR...D.LDX #$04 ;X.DEV
ICE # . .ER.O.N.LDY #$4C ;.ER LINE CGTH.
..X.SETCRT STY PRTC.1 ;. LINE CGTH...B.P
HA ;. PRESENT CHAR.%.L.LDA #$04 ;.ICAL F
ILE #.?.V.LDY #$FF ;S. NO COMM..B...JSR
SETLFS ;SETUP A .ICAL FILE....LDA #$00
;NAME CGTH.ZERO.....JSR SETNAM ;SETUP FI
LE NAME.....JSR . ;. .ICAL FILE.M...LDX
#04 ;. OUTPUT.....JSR CHKOUT ;CHANNEL;..
...JSR BAKOUT ;BANK OUT ROM;. .F.JMP BLR
OM ;. MAIN PRGM;.&.P.;.J.Z.;. THE FOLLOW
ING CODE OPERATES..N...;. UNDER THE BASI
C ROM ..T...;.......$A000 ;THE ST
ART OF BASIC ROM.....;.E...BLROM LDX TXT
TAB ;CHECK . THERE IS.....INX ;A BASIC P
RGM IN... .INX ;MEM.Y;...*.CPX VARTAB ;C
MP LOW BYTE 1ST;...4.BNE TEXTIN ;. . . .
THERE.Q.>.LDX TXTTAB.1 ;IS TXEXT IN MEM
;.R.H.CPX VARTAB.1 ;CMP HIGH BYTE;...R.B
NE TEXTIN ;"<>? THEN THERE'S TEXT;...\.J
MP JPD.EXI ;. . . NO TEXT;...F.;...P.TEX
TIN JSR SEPMES ;PRT SEPARATING MESG;...Z
.PLA ;. CHARACTER.....;.&...;SETUP FLAGS
ACC.DING . .;.G...;XREF@ . ALLREF.1
ALLVN.0.H...;XREF@A . ALLREF.0 ALLVN.0
.....;XREFA . ALLREF.0 ALLVN.1.....;.
....LDY #00 ;ZERO . RESET FLAGS.J.J.STY
ALLREF ;. . INDEX;.X.T.INC ALLVN.....CMP
#"@" ;"LIST ALL REF'S?.....BNE SKIP2 ;K
. NO;./...INC ALLREF ;"@" WAS ENTERED;.
=...STY ALLVN.C...;.H...;. VARIABLE . #
FOLLOWING "XREF'.N...;...$.LOOP2 JSR CHR
. ;. A CHAR;.....CMP #00 ;"END OF INPUT?
...8.BEQ .STR ;K . YES;...B.SKIP2 STA BU
F1.1,Y ;. STRING ....L.STA BUF2.1,Y ;BUF
FERS;...V.INY. .`.CPY #05 ;. MAX. NUMBER
.?.J.BNE LOOP2 ;"OF CHARACTERS?.[.T..STR
STY BUF1 ;. STRING.O.~.STY BUF2 ;CGTH;.
....TYA ;. NO STR WAS.....BEQ LOOP3.2 ;E
NTERED Y.0;.C...LDA #00 ;XREF@A WAS ENTE
RED.....STA ALLREF ;PRG. LOOPS 2 ......B
EQ STRENT ;ALLREF .. 0;.....;.%.D.;. NO
STR ENTERED . PRT ALL.F.N.;REF. STARTING
WITH ZERO UP;.L.X.;.I...LDX #$0B ;12 CH
AR . MOVE.....LOOP3 LDA MESBUF,X ;. CHAR
.....STA BUF1,X ;MOVE IT . THE BUF1&2.G.
..DEX ;BUMP INDEX REGS;.....BPL LOOP3 ;.
UNTIL ALL MOVED.....STRENT LDX TXTTAB ;
START OF BASIC.....DEX./.(.STX PO. ;. .
"GETBY'.P.2.LDA TXTTAB.1 ;. MSB OF START
.G.<.STA PO..1 ;. IT .O...F.LDA #$00 ;ZE
RO THE FLAG IN...P.STA NUMPNT.1 ;.C (. #
).A.Z.INC BS. ;SET . OF LINE FLAG...D.ST
A PRG. ;ZERO . OF BASIC PRG FLAG...N.STA
EXIT10.1 ;LOOP THRU PRG FLAG./.X.LDA #.
LNBUF ;RESET PO.ER OF ..R...STA LN. ;IN
LINE S.RAGE BUFFER.U...LDA #.LNBUF ;. ST
ART OF BUFFER.....STA LN..1... .;.....;"
WAS A NO. OR A VAR. ENTERED?.....;.O...L
DA BUF1.1 ;. 1ST CHAR ....H.CMP #$3A ;CH
ECK . IS A NUMBER...R.BCS .NUM ;K . .TER
./...INC NUMPNT.1 ;NUM ENTERED.SET FLAG.
5...;.W...;START OF FIND VAR . # SECTI..
]...;......CANC LDA #00 ;CLEAR "ON-GOTO"
FLAG;.....STA .FLAG.1......NUM JSR .BY
;. A BYTE.W."..CHK LDX PRG. ;"END OF BAS
IC PRG?...,.BEQ SKIP3 ;K . ... 6.JMP PRT
. ;PRT LINE# IN LNBUF.8 @.SKIP3 LDX #$00
;X.SEARCH KEY . "PRINT'.V J.CMP #$8F ;"
IS IT A 'REM'?.K T.BEQ . ;GO IF YES.. ^.
CMP #$83 ;"IS IT A 'DATA'?.. H.BEQ . ;GO
IF YES.. R.CMP #$22 ;"IS IT A QUOTE?.K
|.BNE SKIP4.Q ..;.. ..;SEARCH . . OF LIN
E . QUOTE..!..;. .,REM OR PRINT FOUND..!
..;.4!... LDX #$22 ;SEARCH KEY . ."S.Y!.
.. STX SCHKEY+1 ;SAVE SEARCH CHAR.Y!B.LO
OP4 JSR .BY ;SEARCH . KEY..!L.CMP #$00 ;
"IS IT=END OF LINE?..!V.BEQ .CHK ;. . CH
ECK.Y!..SCHKEY CMP #$00 ;.22 . PRT,.0 .
...!..BNE LOOP4 ;LOOP UNTIL .E FOUND. ".
.BEQ .CHK ;IT MUST.0 . BE HERE.K.&"..;.E
"..;CHECK . LOOKING . # . VAR.K"..;.R"..
SKIP4 LDX NUMPNT.1 ;.0 . VAR 1 . ..."&.B
EQ SKPNUM ;K LOOK . VAR.."0.;..":.;LOOK
. "RUN","GOTO","GOSUB" & "THEN'.E"D.;.."
N.CMP #$8A ;"DOES IT = RUN?..#X.BEQ NUMS
TR ;. YES JMP . PATCH IN..#B.CMP #$89 ;"
GOTO'.,#L.BEQ NUMSTR.B#V.CMP #$8D ;"GOSU
B'.Q#..BEQ NUMSTR.F#..CMP #$A7 ;"THEN'.U
#..BEQ NUMSTR..#...FLAG LDX #00 ;CHECK .
NUMBERS..#..BEQ .NUM ;FOLLOWING "," BEC
AUSE.Y#..CMP #"," ;OF "ON" COMM.;..#..BN
E .CANC ;.."," CANCEL CHECK;.-$F.NUMSTR
STA .FLAG.1 ;SET FLAG INCASE OF "ON";.M$
P.JSR .BY ;"IS NEXT CHAR A #?.G$Z.CMP #$
3A ;"IS IT > 9?..$..BCS .CANC ;K . IT IS
;..$..CMP #$30 ;"IS IT < 0?..$..BCC .CAN
C ;K . IT IS;.R$..BCS PCHIN ;UNC.. BRANC
H;.X$..;..$..;CHECK . VARIABLE NAME..$ .
;..%*.SKPNUM CMP #$41 ;. . "A'.1%4.BCC .
NUM ;K . . A .TER.L%>.CMP #$5B ;"> THEN
'X'?.A%H.BCS .NUM ;K . IS..%R.PCHIN LDA
#.BUF2 ;SETUP .C ...%\.STA S2ADR ;CMP BU
F2 & THE STR.A%F.JSR .C ;. . OF VAR & CM
P..%P.BEQ JMPNT1 ;"=? PUT LINE# IN LNBUF
..&Z.LDX ALLVN ;"WAS '@' ENTERED?.$&..BN
E .NUM ;K . @ WASN"T.F&..BCC SKIP5 ;. TH
E STR . BUF2.K.P&..STA EXIT10.1 ;SET THE
LOOP AGAIN FLAG..&..BCS .NUM ;CARRY IS
SET UNC. BRANCH..&..SKIP5 LDA #.BUF1 ;SE
T . CMP BUF1.T&..STA S2ADR ;. STRING..&.
.JSR STRCMP ;K STRAIGHT . CMP..'J.BCC JM
PNT2 ;. STR . BUF1.K.3'T.BEQ JMPNT2 ;. S
TR . BUF1.K.Q'..LDA #.BUF2 ;SETUP PO.ER
..E'..STA S2ADR ;MOVE..'..JSR MOVEIT ;MO
VE STR . BUF2..'..LDA #.LNBUF ;RESET . O
F BUFFER..'..STA LN. ;PO.ER.K'..LDA #.LN
BUF.Y'..STA LN..1..($.JMPNT1 JSR S51 ;PU
T LINE # IN LNBUF..(..JMPNT2 JMP .NUM ;.
INUE."(8.;.B(B.;. . THE HELP TEXT
..H(L.;.L(V.HELP LDA #.HELPMG ;. HIGH B
YTE;.|(`.STA LOOP6.2..(J.LDY #00 ;ZERO I
NDEX;..(T.LOOP6 LDA HELPMG,Y ;. CHAR;.Z(
~.BEQ HPD.E ;"DOES CHAR=0? - DONE;..(..J
SR CHROUT ;. CHAR;..(..INY..)..BNE LOOP6
;UNC.. BRANCH;.6)..INC LOOP6.2 ;. . 255
CHAR;.S)..BNE LOOP6 ;UNC.. BRANCH;.U)..
HPD.E JMP JPD.EXI ;. . BASIC;.{)D.;..)N.
;. . THE REFERANCED LINES ...)X.;.J)..C
R JSR BUFEMP ;CHECK . LNBUF EMPTY;..)..B
EQ HERE2 ;. EMPTY.K;..*..JSR TEPINC ;PO.
. LINE # IN LNBUF;.2*..BEQ SKIP12 ;"DON
E ALL REF'S? EXIT;.F*..LDY #00 ;INDEX;.K
*..LDA (TEPBUF),Y ;. LSB OF LINE #;..*..
STA LINNUM ;. IT . BASICS..*(.INY ;. LIN
E ROUTINE;.G*2.LDA (TEPBUF),Y ;. MSB OF
LINE #;.X*<.STA LINNUM.1..*F.JMP JPCROUT
;BANK IN ROM & . LINE;.)+P.SKIP12 LDA #
.LNBUF ;RESET . OF BUFFER.=+Z.STA LN. ;P
O.ER;.M+D.LDA #.LNBUF.[+N.STA LN..1..+X.
HERE2 JMP D.E1 ;PRT "END OF TEXT";..+..;
..+..;. . CGTH OF A VAR . # ...+..;.K
+ ..C LDA PO. ;. THE ADD OF..+..STA S1AD
R ;WHERE THE VAR;..,..LDA PO..1 ;STARTS
IN BASIC.$,..STA S1ADR.1 ;PRG . . IT.C,H
.LDA #$01 ;INZIT. VAR C CNT.O,R.STA S1C.
L,..LOOP12 JSR .BY ;. . CHAR..,..NUMPNT
LDX #$00 ;.1 . # ENT 0 . ...,..BNE BYPAS
S ;. # ENTERED.K.K,..CMP #$5B ;"> THEN '
Z'?..,..BCS MINUS1 ;K COMPARE STRINGS..-
..CMP #$41 ;DOES IT .. "A'.#-..BCS ADDC
;K INC CGTH.=-".CMP #$24 ;DOES IT . $.U-
,.BEQ VARTYP ;K . YES.O-6.CMP #$25 ;DOES
IT . %.~-@.BEQ VARTYP..-J.CMP #$28 ;DOE
S IT . (..-T.BNE BYPASS ;K . NO..-^.;.V-
H.;.HING IN THE () . FOLLOWING..-R.;"$"
. "%" IS COUNTED AS PART...|.;OF THE VAR
IABLE SO WE JMP ..;...;STRCMP AFTER THES
E ARE FOUND.A...;.C...VARTYP INC S1C ;IN
C CGTH BY 1....BNE MINUS1 ;UNC. BRANCH.
....;.....BYPASS CMP #$3A ;LOOKING . A #
.F.B.BCS MINUS1 ;K . . A FII #...L.CMP #
$30 ;CHECK . FII 0.9...V.BCC MINUS1 ;K .
.../..ADDC INC S1C ;INC STR CGTH CNT.?/
..BNE LOOP12 ;UNC. BRANCH..INUE.E/..;.G/
..;. COMPARE BUF1 . 2 . VAR .../..;.
. # WHOS ADD IS IN S1ADR .../..;../..MI
NUS1 LDA BS. ;. ..OF.LINE HIT.V/&.BNE ST
RCMP ;D."T BACK SPACE;../0.SEC ;INC 1 PA
ST VARIABLE..0:.LDA PO. ;SO TAKE 1 OFF;.
.0D.SBC #01..0N.STA PO. ;. IT;.=0X.BCS S
TRCMP.Y0B.DEC PO..1 ;.BY .S CHAR;.}0L.;F
OLLOWING VAR. . 2ND CHAR PAST..0V.STRCMP
LDA NUMPNT.1 ;. CMP"ING #"S..0..BEQ STR
CP2 ;TEST C 1ST;.Z0..JSR TSTC ;. C"S NOT
=..0..BNE EXTCMP ;. .;..1..STRCP2 LDY #
0.$1..LDA (S2ADR),Y ;. C OF BUF STR;.@1.
.CMP S1C ;CMP . . STR C;.^1..BCC BEGCMP
;. C OF S1C IS.Z1F.LDA S1C ;SH.TER USE I
T;..1P.;..1Z.;. COMPARE THE STR THRU CGT
H OF..1..;. SH.TER STRING..1..;..1..BEGC
MP TAX ;X.C OF SH.TER STR..2..BEQ TSTC ;
BRANCH . CGTH ZERO.12..CMPLP LDA (S1ADR)
,Y ;. CHAR FROM BASIC PRG.A2..INY ;. CHA
R.A2 .CMP (S2ADR),Y ;CMP BUF1 . 2.~2*.BN
E EXTCMP ;K . CHAR . ...24.DEX ;DEC COUN
TER..2>.BNE CMPLP ;LOOP "TIL ALL COMPARE
D..2H.;..2R.;THE 2 STR ARE EQUAL.THE CGT
H..3\.;OF THE SH.TER SO USE CGTH ...3F.;
SETTING FLAGS;..3P.;.;3Z.TSTC LDY #0 ;CO
MPARE CGTHS.V3..LDA S1C ;SET . . FLAGS.H
3..CMP (S2ADR),Y.N3..;..3..;EXIT FROM ST
RING COMPARE..3..;..3..EXTCMP RTS..3..;.
H3J.;. MOVE THE VAR. PO.ED . ...3T.;.
BY S1ADR . WHERE S2ADR ...4..;. PO.S
...4..;.74..MOVEIT L
DY #$00 ;ZERO INDEX PNT.S4..LDA S1C ;. C
GTH OF STR1.V4..STA (S2ADR),Y ;. IT . BU
F1 . 2..4..TAX ;PUT C IN X..4..MVLOOP LD
A (S1ADR),Y ;. A CHARACTER.E4$.INY ;INC
INDEX..4..STA (S2ADR),Y ;. CHAR . BUF#..
48.DEX ;DEC COUNTER..5B.BNE MVLOOP ;LOOP
"TIL ALL MOVED.35L.RTS ;. . CALLER.95V.
;.[5`.;. CHECK . LINE # IS AL.Y ...5J.
;. IN LNBUF. . IT IS INC CNT ...5T.;.
. . PUT IT THERE ...5~.;.Q5..S5
1 JSR BUFEMP ;CHECK . LNBUF EMPTY..5..BE
Q LNPUT ;BUF EMPTY PUT LINE# IN IT..6..L
DY #$00.)6..LDA (LN.),Y ;. LINE# IN LNBU
F.P6..CMP LINNUM ;CMP IT . PRESENT LINE#
.~6..BNE LNPUT ;LINE# IS . IN BUF.PUT IT
THERE..6D.INY ;PO. . MSB OF LINE#..6N.L
DA (LN.),Y ;CMP MSB"S OF LINE#.O6X.CMP L
INNUM.1..6..BNE LNPUT..6..INY ;PNT . CNT
OF # TIMES. 7..LDA #$01 ;IT APPEARS . T
HAT LINE.97..CLC ;SET CARRY . ADD.X7..AD
C (LN.),Y ;ADD 1 . COUNT.N7..STA (LN.),Y
;. IT.V7..RTS.|7(.;..72.LNPUT CLC ;LOOP
COUNTER..7<.LDA LN. ;. LSB OF . OF BUFF
ER.V7F.ADC #$03 ;PO. LN. . . ...7P.STA L
N. ;SPACE IN LNBUF..8Z.LDA LN..1 ;. MSB.
(8D.ADC #$00 ;ADD THE CARRY . .E.A8N.STA
LN..1 ;GENERATED.X8X.LDY #0 ;ZERO INDEX
.{8..LDA LINNUM ;. BASIC PRG LINE #..8..
STA (LN.),Y ;. S.RE IT IN..8..INY ;IN TH
E LINE #.I8 .LDA LINNUM.1 ;BUFFER.Y8..ST
A (LN.),Y..8..INY..8..LDA #$01 ;LDA WITH
COUNT..9H.STA (LN.),Y ;. . IT.*9R.RTS ;
. . CALLER.09..;.79..;..\9..;. . A BYTE
FROM THE BASIC PRG ..B9..;..9...BY LDA #
$01 ;RESET THE ADC IN SKIP6..9..STA ADD1
5.1 ;. INC "POINT" BY 1.K9..LDA BS. ;WAS
. OF BASIC..9".BEQ SKIP6 ;"LINE END HIT
LAST TIME?..:,.DEC BS. ;ZERO LINE . FLA
G.2:6.LDY #$03 ;PO. INDEX . LINE #.S:@.L
DA (PO.),Y ;. LSB OF LINE #.H:J.STA LINN
UM ;. IT.P:T.INY..:^.LDA (PO.),Y ;. MSB
OF LINE #..:H.STA LINNUM.1 ;. IT.R:R.LDA
#$05 ;SET ADC IN SKIP6 . INC PASS..:|.S
TA ADD15.1 ;THE LINE PO.ER & LINE #..;..
SKIP6 CLC.+;..LDA PO. ;INC "POINT" . . B
YTE.M;..ADD15 ADC #$01 ;OF BASIC LINE.Y;
..STA PO..{;..LDA PO..1 ;ADD THE CARRY .
.E..;..ADC #$00 ;WAS GENERATED..;B.STA
PO..1..;L.LDY #$00 ;ZERO INDEX..;V.LDA (
PO.),Y ;. A BYTE FROM BASIC PRG..<..BEQ
ZEROCK ;. IT . 0 . K..<..CMP #$20 ;"= SP
ACE?.8<..BEQ .BY ;BYPASS SPACES;.@<..RTS
.]<..ZEROCK INY ;INC . . BYTE.~<..CMP (P
O.),Y ;"IS IT ZERO TO?..<..BEQ SKIP7 ;"Y
ES-THEN END OF BASIC PRG?.N<&.SET. INC B
S. ;SET . OF LINE FLAG.V<0.RTS..<:.;..<D
.SKIP7 INY ;INC . . BYTE..=N.CMP (PO.),Y
;"IS 3RD BYTE A ZERO?.A=X.BNE SET. ;YES
.. . OF BASIC PRG.A=B.INC PRG. ;SET . OF
PRG FLAG.O=L.ZERO3 RTS.U=V.;..=..;. .
.ENTS OF LNBUF ...=..;.A=..PRT. JSR BU
FEMP ;CHECK . LNBUF EMPTY..=..BEQ EXIT10
;BUF EMPTY . ZERO..>..JSR LNPUT ;INC PA
ST LAST # IN LNBUF;.!>..LDA #$0D ;. A CR
;.2>..JSR JPOUTPUT.S>F.LDX BUF2 ;A.C OF
STR IN BUF2.V>P.LDY #$01 ;PO. INDEX . 1S
T CHAR..>Z.LOOP5 LDA BUF2,Y ;. A CHAR..>
..JSR JPOUTPUT ;. IT..>..INY..>..DEX.J>.
.BNE LOOP5..>..JSR PRTSPC ;SPC CURS. . C
OL. 11..?..LDA #.LNBUF.3 ;PUT START OF L
INE #.8? .STA TEPBUF ;BUFFER IN TEMP.ARY
.X?*.LDA #.LNBUF ;BUFFER ADDRESS.I?4.STA
TEPBUF.1..?>..NUM LDY #$00 ;SET INDEX..
?H.LDA (TEPBUF),Y ;. LSB OF NUMBER.G?R.S
TA EUE ;. IT . BN 2 FII.O?\.INY..?F.LDA
(TEPBUF),Y ;. MSB OF NUMBER..@P.STA EUE.
1 ;. IT..@Z.INY ;PO. . COUNT.<@..LDA (TE
PBUF),Y ;. COUNT . ..T@..PHA ;IT . THE S
TACK.V@..JSR BN2F ;C.VERT LINE # . FII..
@..PLA ;. CNT OF STACK;..@..STA EUE ;. C
NT . BN2F;.A@..CMP #01 ;. CNT.1 ...@..BE
Q SPACE ;D."T PRT / & CNT;..AJ.INC LINCN
T.1 ;INC LINE CNT ..!AT.LDA #"/" ;. IN B
UF3 AFTER.9A..STA BUF3,X ;LINE #;.UA..IN
X ;"/". INX BUF3 PNT;.WA..LDA #00 ;ZERO
MSB IN "VALUE";..A..STA EUE.1..A..TAY ;J
UMP . MIDDLE OF.AA..JSR .DIG.3 ;BN2F C.V
CNT . F;..A..SPACE LDA #$20 ;PUT A SPAC
E IN..B$.STA BUF3,X ;BUF3 FOLLOWING #;..
B..INX ;INC # CGTH CNT;.0B8.INC LINCNT.1
.ZBB.PRTC LDA #00 ;OUTPUT . PRT.78 CRT.3
8;..BL.LINCNT CMP #00 ;CMP . # OF CHAR P
RT;..BV.BCS PASSCR ;K . . . OF LINE;..B`
.LDA #$0D ;. A CR;.KBJ.JSR JPOUTPUT..BT.
LDY #01 ;SPACE . COL. 11;..B~.JSR PRTSPC
..C..PASSCR JSR FNUM ;PRT LINE# & CNT;.=
C..PFNT JSR .KEY ;. KEY PRESS.EC..NOSPC
JSR TEPINC ;INC TEPBUF . . #;..C..BNE .N
UM ;"LAST # PRT? NO-GO;..C..;..C..EXIT10
LDA #$00 ;. WE LOOP THRU PRG..CD.BEQ SK
IP11 ;AGAIN A..0 ELSE K..CN.LD
X BUF2 ;. C OF STR..DX.LOOP13 LDA BUF2,X
;. A CHAR;.1D..STA BUF1,X ;. IT;.9D..DE
X.HD..BPL LOOP13.FD..LDX #05 ;# OF CHAR
. MOVE..D..LOOP14 LDA MESBUF.6,X ;PUT 5,
ZZZZZ..D..STA BUF2,X ;IN BUF2..D..DEX..D
(.BPL LOOP14.KD2.JMP STRENT..D<.SKIP11 L
DA ALLREF ;"PRT ALL REF'S ?..EF.BEQ D.E
;K . ALL D.E.&EP.DEC ALLREF ;ZERO FLAG.K
EZ.JSR SEPMES ;PRT SEPARATING MESG;.MED.
LDA #"@" ;. A SO VAR . # TEST..EN.STA BU
F1.1 ;SETS UP THE PRG ...EX.LDA #$01 ;SE
ARCH . A VAR..E..STA BUF1.YE..LDX #$02 ;
STARTING . . LOOP..F..JMP LOOP14.2 ;JMP
. MIDDLE OF LOOP..F .;..F..;ALL D.E EXIT
..F..;.8F..PLA ;. RID OF RTS ADD.@FH.PLA
.IFR.D.E LDA #.LNBUF ;PUT START OF LINE
#..F..STA TEPBUF ;BUFFER IN TEMP.ARY..F.
.LDA #.LNBUF ;BUFFER ADDRESS..F..STA TEP
BUF.1..F..D.E1 LDY #MESG2.VARMES ;Y.STAR
T OF MESG..G..JSR SEPMES.2 ;K PRT TEXT .
MESG.2G..JMP JPD.EXI ;BANK ROM IN . BAS
IC.8G..;.YG".;PO. TEPBUF . . # IN LNBUF
&.ZG,.;CHECK . . OF BUFFER REACHED..G6.;
..G@.TEPINC CLC ;PO. TEPBUF . ...GJ.LDA
TEPBUF ;LINE NUMBER.HGT.ADC #$03.WG^.STA
TEPBUF..GH.LDA TEPBUF.1 ;ADD THE CARRY
...HR.ADC #$00 ;.E GENERATED.%H|.STA TEP
BUF.1.GH..LDA LN. ;CHECK . AT . OF BUF;.
IH..CMP TEPBUF ;CMP LOW BYTE 1ST;..H..BN
E TEPEX ;"NOT DONE? GO;..H..LDA LN..1 ;C
MP HIGH BYTE. ..FH..CMP TEPBUF.1 ;EQUAL
. D.E;..H..TEPEX RTS ;EQUAL ZERO . D.E;.
.HB.;..HL.;. 10 SPACES..IV.;..I..PRTSPC
TXA ;. CGTH OF.3I..PHA ;# . BE .ED;.UI..
SPCLP LDA #$20 ;. SPACE "TILL.{I..JSR JP
OUTPUT ;CURS. IS AT COL. 11..I..INX ;X.$
0B.#"S LENGTH;..I..INY..I..CPY #$0B..I&.
BNE SPCLP.XI0.STX LINCNT.1 ;. . LINE CNT
..I:.PLA ;. #"S LENGTH;..ID.TAX..IN.RTS.
.JX.;..JB.;. THE .ENTS OF BUF3.$JL.;.=JV
.FNUM LDY #$00 ;INDEX.[J..LOOP9 LDA BUF3
,Y ;. FII #.RJ..JSR JPOUTPUT ;. IT.ZJ..I
NY..J..DEX ;DEC COUNT..J..BNE LOOP9 ;LOO
P "TIL ALL PRINTED..J..RTS..J..;..JF.;.
KEY PRESS & RESP.D . IT..JP.;..KZ..KEY J
SR JPKEYSUB ;. KEY PRESS;.)K..CMP #"P" ;
"WAS 'P' PRESSED?.4K..BNE RS.ZK..PAUSE J
SR JPKEYSUB ;. . KEYPRESS;.UK..TAX ;"ANY
KEY PRESSED?..K..BEQ PAUSE..K..RS CMP #
03 ;"WAS IT RUN/STOP?..K .BNE RET1 ;. .
.;.TK*.JMP D.E.2 ;ELSE QUIT;.ZK4.;..K>.;
. CHECK . LNBUF IS EMPTY ...LH.;.'LR.
BUFEMP LDA #.LNBUF ;. LNBUF.LN..FL\.CMP
LN. ;. BUFFER IS EMPTY.HLF.BNE RET1 ;. .
. . CMP LINE #"S..LP.LDA #.LNBUF ;CMP MS
B OF LNBUF & NUMPRT..LZ.CMP LN..1..L..RE
T1 RTS..L..;.XL..;. VAR & # SEPARATING
LINE ...L..;..L..SEPMES LDY #00 ;INDEX
;..M..LDA VARMES,Y ;. CHAR;.-M..BEQ RET1
;EXIT . D.E;.EMJ.JSR JPOUTPUT ;. IT;.MM
T.INY.MM..BNE SEPMES.2 ;UNC.. BRANCH;.SM
..;..M..;. C.VERT BINARY . FII ...M..;
..M..BN2F LDY #$0A ;PUT 10 FII 0 IN BUF3
..M..LDX #$00 ;ZERO BUF3 INDEX..M..LOOP8
LDA #"0" ;FII ZERO..N$.STA BUF3.1,Y..N.
.DEY."N8.BNE LOOP8.(NB.;.?NL.;SUBTRACTI.
SECTI..ENV.;.VN`.STX LESSTN.2.UNJ..DIG
SEC ;BEGIN SUBTRACTI...NT.LDA EUE ;LSB O
F #..N~.SBC TABLE,Y ;SUB LOW .DER BYTE..
N..PHA ;. ..SN..LDA EUE.1 ;MSB OF #..N..
SBC TABLE.1,Y ;SUB HIGH BYTE..O..BCC LES
STN ;. . PRESENT TABLE #. K.5O..STA EUE.
1 ;. . LESS ..GO..PLA ;. IN EUE.SOD.STA
EUE.MON.INC BUF3,X ;INC DIGIT..OX.BCS .D
IG ;UNC. BRANCH..O..;..O..;ZERO SUPRESSI
. SECTI...O..;.JO..LESSTN PLA ;CLEAR STA
CK..O..CPX #00 ;CHECK . . 1ST DIGIT..P..
BNE .1ST ;K . . 1ST.)P..LDA BUF3,X ;. 1S
T CHECK . STILL 0.PP(.CMP #"0" ;SUPPRESS
ZERO BY . INC X.QP2.BEQ IS1ST ;. . DIGI
T IN BUF3.~P<..1ST INX..PF.INC LINCNT.1.
.PP.IS1ST INY ;PO. . . ENTRY.BPZ.INY ;IN
THE TABLE..PD.CPY #$0A ;"DONE 5 DIGITS
YET?..QN.BNE .DIG ;. ..K "TIL DONE..QX.;
. Q..RTS ;OF STR IN BUF3.4Q..EUE .BYTE 0
0,00.MQ..BUF3 .F "0000000000".EQ .TABLE
.BYTE $10,$27.WQ...BYTE $E8,$03..Q...BYT
E 100,00..Q...BYTE 10,00..QH..BYTE 1,00.
.QR.BUF1 .F "NUMBER".QQ..BUF2 .F "NUMBER
"..R..VARMES .BYTE $0D,$0D,$12:.F "VAR/N
UM - APPEARS "./R...F "ON LINE NUMBER(S)
" :.BYTE $0D,00.MR..MESG2 .BYTE $0D,$0D,
$12 :.F"END OF TEXT":.BYTE $0D,$0D,00. R
..MESBUF .BYTE 1: .F "0 " :.BYTE 5:.F
"ZZZZZ".JR..HELPMG .BYTE $93: .F "
"..R...BYTE $12:.F "XREF64 HELP
":.BYTE $0D,$0D.-S"..F"'X' CAN EQUAL A V
ARIABLE UP TO FIVE":.BYTE $0D.QS,..F "LE
TTERS LONG, OR A NUMBER "..S6..F "BETWEE
N":.BYTE $0D :.F "0-65535.":.BYTE $0D,$0
D..S@..BYTE $12:.F "'XREF@ <CR>'":.BYTE
$92..SJ..F " :PRINTS ALL REFERENCES.":.B
YTE $0D..TT..BYTE $12:.F "'XREF@ <CR>'":
.BYTE $92.7T^..F " :PRINTS ALL REFERENCE
S TO":.BYTE $0D.XTH..F "YOUR PRINTER.":.
BYTE $0D..TR..BYTE $12 :.F "'XREF@ X <CR
>'":.BYTE $92..T|..F " :PRINTS ALL REFER
ENCES,":.BYTE $0D.QT...F "FROM "X" ON.":
.BYTE $0D..T...BYTE $12:.F "'XREF@ X <CR
>'":.BYTE $92.)U...F " :SAME AS ABOVE, B
UT THE":.BYTE $0D.\U...F "OUTPUT IS SENT
TO YOUR PRINTER.":.BYTE $0D..U...BYTE $
12:.F "'XREF X' OR 'XREF X'":.BYTE $92..
U...F " :PRINTS TO THE":.BYTE $0D..UB..F
"SCREEN OR YOUR PRINTER ALL REFERENCES"
:.BYTE $0D..VL..F "TO 'X'.":.BYTE $0D..V
V..BYTE $12:.F "'XREF <CR>'":.BYTE $92.[
V...F " :CONSECUTIVELY LISTS ONE":.BYTE
$0D..V...F "BASIC LINE, WHERE 'X' APPEAR
S.":.BYTE $0D,$0D.CV...F "PRESS THE 'P'
KEY TO PAUSE THE":.BYTE $0D..V...F "LIST
ING, AND ANY KEY TO CONTINUE.":.BYTE $0D
.9W. .F "PRESS RUN/STOP, TO CANCEL THE L
ISTING.":.BYTE $0D,$0D,00.?W. ;.XW. MESG
3 .BYTE $93,$0D:.F " " ;1
7 SPACES. W& .BYTE $12:.F "XREF64":.BYTE
$0D,$0D.GW0 .BYTE $0D:.F " " ;8
SPACES;..W: .F "A VARIABLE & LINE NUMBER
"..XD .BYTE $0D:.F " " ;8 SPACES;
.;XN .F "CROSS REFERENCE PROGRAM":.BYTE
$0D.VXX .BYTE $0D:.F " ":.BYTE $12:
.F "(C) 1983 BY DAVID"..XB .F " ARCHIBAL
D":.BYTE $0D,$0D,00..XL ;.DXV ;. INI
TIATI. CODE ..JX. ;..X. START LDX
#.MESG ;LSB OF START..Y. LDY #.MESG ;MS
B OF START.*Y. STX MEMSIZ ;SET .P OF BAS
IC.CY. STY MEMSIZ.1 ;MEM.Y;.WY. LDA #$4C
;JMP ..UY. LDX #.ENTRY ;LSB OF ENTRY..Y
F LDY #.ENTRY ;MSB OF ENTRY..YP STA $7C
;PUT A BRANCH . ENTRY.RYZ STX $7D ;IN CH
R. ROUTINE..Y. STY $7E..Y. LDY #$00 ;IND
EX;..Z. MESPRT LDA MESG3,Y ;. CHAR./Z.!B
EQ JPBAKIN ;. 0 . D.E.K.FZ.!JSR JPOUTPUT
;. IT.NZ.!INY.JZ !BNE MESPRT ;UNC. BRAN
CH.PZ*!;..Z4!;. JUMP TABLE . RELOCATABL
E ...Z>!;. SUBROUTINES BELOW $A000. ..
.ZH!;.UZR!JPBAKOUT JMP BAKOUT..Z\!JPBAKI
N JMP BAKIN..[F!JPOUTPUT JMP OUTPUT..[P!
JPD.EXI JMP D.EXI./[Z!JPCROUT JMP CROUT.
G[.!JPKEYSUB JMP KEYSUB.M[.!;.A[.!LNBUF
.BYTE $00...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL