_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

COMMON CODE.PAL

FILE INFORMATION

FILENAME(S): COMMON CODE.PAL

FILE TYPE(S): PRG

FILE SIZE: 10.3K

FIRST SEEN: 2025-11-30 21:12:51

APPEARS ON: 1 disk(s)

FILE HASH

a6702a21571880c0a32f598ba9c27698c4a94bdd6e211a2bf95de39ceca204e4

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
TRANSACTOR DISK COMMON CODE.PAL PRG DuncanTwain 9 6 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

> DETECTED: COMMODORE BASIC PROGRAM (LOAD ADDRESS $0801)

00000000: 01 08 21 08 E8 03 8F 20  53 41 56 45 22 30 3A 43  |..!.... SAVE"0:C|
00000010: 4F 4D 4D 4F 4E 20 43 4F  44 45 2E 50 41 4C 22 2C  |OMMON CODE.PAL",|
00000020: 38 00 40 08 F2 03 9F 20  38 2C 38 2C 38 2C 22 30  |8.@.... 8,8,8,"0|
00000030: 3A 43 4F 4D 4D 4F 4E 20  43 4F 44 45 2C 50 2C 57  |:COMMON CODE,P,W|
00000040: 00 49 08 FC 03 9E 37 30  30 00 55 08 06 04 2E 4F  |.I....700.U....O|
00000050: 50 54 20 4F 38 00 7A 08  10 04 3B 20 AC 20 43 4F  |PT O8.z...; . CO|
00000060: 4D 4D 91 20 43 4F 44 45  20 42 59 20 4A 41 43 4B  |MM. CODE BY JACK|
00000070: 20 52 2E 20 46 41 52 52  41 48 00 A7 08 1A 04 3B  | R. FARRAH.....;|
00000080: 50 52 4F 47 52 41 4D 20  A4 20 46 49 4E 44 20 49  |PROGRAM . FIND I|
00000090: 44 45 4E 54 49 43 41 4C  20 43 4F 44 45 20 53 45  |DENTICAL CODE SE|
000000A0: 51 55 45 4E 43 45 53 00  CF 08 24 04 3B 49 4E 20  |QUENCES...$.;IN |
000000B0: 4D 41 43 48 49 4E 45 20  4C 41 4E 47 55 41 47 45  |MACHINE LANGUAGE|
000000C0: 20 50 52 4F 47 52 41 4D  53 20 81 20 55 53 45 00  | PROGRAMS . USE.|
000000D0: EB 08 2E 04 3B 41 53 20  B9 53 49 42 4C 45 20 53  |....;AS .SIBLE S|
000000E0: 55 42 52 4F 55 54 49 4E  45 53 2E 00 0E 09 38 04  |UBROUTINES....8.|
000000F0: 3B 54 45 53 54 45 44 20  50 52 4F 47 52 41 4D 20  |;TESTED PROGRAM |
00000100: A4 20 42 45 20 49 4E 20  4D 45 4D B0 59 2E 00 27  |. BE IN MEM.Y..'|
00000110: 09 42 04 3B 41 4C 4C 20  55 53 45 52 20 85 53 20  |.B.;ALL USER .S |
00000120: 49 4E 20 48 45 58 2E 00  41 09 4C 04 3B 53 43 52  |IN HEX..A.L.;SCR|
00000130: 45 45 4E 20 B0 20 99 45  52 20 4F 55 54 50 55 54  |EEN . .ER OUTPUT|
00000140: 2E 00 5D 09 56 04 3B 53  50 41 43 45 20 42 41 52  |..].V.;SPACE BAR|
00000150: 20 50 41 55 53 45 53 20  9B 49 4E 47 2E 00 6E 09  | PAUSES .ING..n.|
00000160: 60 04 3B 20 AC 20 43 91  53 C0 54 53 20 AC 00 90  |`.; . C.S.TS ...|
00000170: 09 6A 04 43 48 52 49 4E  20 B2 20 24 46 46 43 46  |.j.CHRIN . $FFCF|
00000180: 20 3B A1 20 4D 55 4C 54  2E 20 43 48 41 52 2E 85  | ;. MULT. CHAR..|
00000190: 00 AF 09 74 04 43 48 52  4F 55 54 20 B2 20 24 46  |...t.CHROUT . $F|
000001A0: 46 44 32 20 3B 99 20 A4  20 44 45 56 49 43 45 00  |FD2 ;. . DEVICE.|
000001B0: CD 09 7E 04 A1 49 4E 20  B2 20 24 46 46 45 34 20  |..~..IN . $FFE4 |
000001C0: 3B A1 20 BF 47 4C 45 20  43 48 41 52 2E 00 EC 09  |;. .GLE CHAR....|
000001D0: 88 04 53 54 41 44 44 20  B2 20 24 46 42 20 3B 53  |..STADD . $FB ;S|
000001E0: 54 41 52 54 20 41 44 44  52 45 53 53 00 0B 0A 92  |TART ADDRESS....|
000001F0: 04 43 4B 41 44 44 20 B2  20 24 46 44 20 3B 43 48  |.CKADD . $FD ;CH|
00000200: 45 43 4B 20 41 44 44 52  45 53 53 00 2B 0A 9C 04  |ECK ADDRESS.+...|
00000210: 53 45 54 4C 46 53 20 B2  20 24 46 46 42 41 20 3B  |SETLFS . $FFBA ;|
00000220: 53 45 54 20 BC 2E 20 46  49 4C 45 00 49 0A A6 04  |SET .. FILE.I...|
00000230: 53 45 54 4E 41 4D 20 B2  20 24 46 46 42 44 20 3B  |SETNAM . $FFBD ;|
00000240: 4E 41 4D 45 20 46 49 4C  45 00 5F 0A B0 04 9F 20  |NAME FILE._.... |
00000250: B2 20 24 46 46 43 30 20  3B 9F 20 46 49 4C 45 00  |. $FFC0 ;. FILE.|
00000260: 75 0A BA 04 A0 20 B2 20  24 46 46 43 33 20 3B A0  |u.... . $FFC3 ;.|
00000270: 20 46 49 4C 45 00 99 0A  C4 04 43 48 4B 4F 55 54  | FILE.....CHKOUT|
00000280: 20 B2 20 24 46 46 43 39  20 3B 53 45 54 20 4F 55  | . $FFC9 ;SET OU|
00000290: 54 50 55 54 20 46 49 4C  45 00 B4 0A CE 04 9C 43  |TPUT FILE......C|
000002A0: 48 4E 20 B2 20 24 46 46  43 43 20 3B 8C 20 96 41  |HN . $FFCC ;. .A|
000002B0: 55 4C 54 53 00 C6 0A D8  04 AC B2 24 30 38 30 31  |ULTS.......$0801|
000002C0: 20 3B 32 30 34 39 00 E3  0A E2 04 2E 57 B0 44 20  | ;2049......W.D |
000002D0: 54 57 4F 42 52 4B 20 3B  81 57 41 52 44 20 50 4F  |TWOBRK ;.WARD PO|
000002E0: B5 45 52 00 FF 0A EC 04  2E 42 59 54 45 20 31 30  |.ER......BYTE 10|
000002F0: 2C 30 20 3B 4C 49 4E 45  20 4E 55 4D 42 45 52 00  |,0 ;LINE NUMBER.|
00000300: 20 0B F6 04 2E 42 59 54  45 20 24 39 45 20 3B 22  | ....BYTE $9E ;"|
00000310: 53 59 53 22 20 4B 45 59  57 B0 44 20 A4 4B 45 4E  |SYS" KEYW.D .KEN|
00000320: 00 39 0B 00 05 2E C6 20  22 32 30 36 31 22 20 3B  |.9..... "2061" ;|
00000330: 9E 20 41 44 44 52 45 53  53 00 41 0B 0A 05 42 52  |. ADDRESS.A...BR|
00000340: 4B 00 53 0B 14 05 54 57  4F 42 52 4B 20 2E 57 B0  |K.S...TWOBRK .W.|
00000350: 44 20 30 00 6E 0B 1E 05  4C 44 41 20 23 31 34 37  |D 0.n...LDA #147|
00000360: 20 3B 43 4C 45 41 52 20  53 43 52 45 45 4E 00 7D  | ;CLEAR SCREEN.}|
00000370: 0B 28 05 4A 53 52 20 43  48 52 4F 55 54 00 8E 0B  |.(.JSR CHROUT...|
00000380: 32 05 42 45 47 49 4E 20  4C 44 58 20 23 30 00 A9  |2.BEGIN LDX #0..|
00000390: 0B 3C 05 53 54 58 20 49  4E 46 4C 47 20 3B 43 4C  |.<.STX INFLG ;CL|
000003A0: 45 41 52 20 46 4C 41 47  53 00 B9 0B 46 05 53 54  |EAR FLAGS...F.ST|
000003B0: 58 20 4D 54 43 48 46 4C  47 00 D5 0B 50 05 3B AC  |X MTCHFLG...P.;.|
000003C0: A1 20 55 53 45 52 20 53  54 41 52 54 20 41 44 44  |. USER START ADD|
000003D0: 52 45 53 53 AC 00 F8 0B  5A 05 54 49 54 4C 20 4C  |RESS....Z.TITL L|
000003E0: 44 41 20 54 49 54 4C 45  2C 58 20 3B 99 20 50 52  |DA TITLE,X ;. PR|
000003F0: 4F 47 2E 20 4E 41 4D 45  00 14 0C 64 05 42 45 51  |OG. NAME...d.BEQ|
00000400: 20 53 54 41 52 54 20 3B  AF 20 53 54 41 52 54 20  | START ;. START |
00000410: 41 44 44 2E 00 2E 0C 6E  05 4A 53 52 20 43 48 52  |ADD....n.JSR CHR|
00000420: 4F 55 54 20 3B 85 20 4D  45 53 53 41 47 45 00 36  |OUT ;. MESSAGE.6|
00000430: 0C 78 05 49 4E 58 00 43  0C 82 05 42 4E 45 20 54  |.x.INX.C...BNE T|
00000440: 49 54 4C 00 5F 0C 8C 05  53 54 41 52 54 20 4C 44  |ITL._...START LD|
00000450: 58 20 23 30 20 3B 53 45  54 20 49 4E 44 45 58 00  |X #0 ;SET INDEX.|
00000460: 78 0C 96 05 4A 53 52 20  43 52 91 20 3B 42 4C 49  |x...JSR CR. ;BLI|
00000470: 4E 4B 20 43 55 52 53 B0  00 8D 0C A0 05 4A 53 52  |NK CURS......JSR|
00000480: 20 A1 20 3B A1 20 41 44  44 52 45 53 53 00 AF 0C  | . ;. ADDRESS...|
00000490: AA 05 43 48 45 43 4B 20  43 50 58 20 23 35 20 3B  |..CHECK CPX #5 ;|
000004A0: 22 3E 34 20 43 48 41 52  41 43 54 45 52 53 3F 00  |">4 CHARACTERS?.|
000004B0: C8 0C B4 05 42 43 53 20  45 52 52 B0 20 3B 91 4C  |....BCS ERR. ;.L|
000004C0: 59 20 57 41 4E 54 20 34  00 E9 0C BE 05 43 4B 31  |Y WANT 4.....CK1|
000004D0: 20 44 45 58 20 20 3B 52  45 53 45 54 20 81 20 43  | DEX  ;RESET . C|
000004E0: 52 20 43 4F 55 4E 54 45  44 00 03 0D C8 05 43 50  |R COUNTED.....CP|
000004F0: 58 20 23 32 35 35 20 3B  91 4C 59 20 41 46 54 45  |X #255 ;.LY AFTE|
00000500: 52 20 34 00 1F 0D D2 05  42 45 51 20 43 91 56 45  |R 4.....BEQ C.VE|
00000510: 52 54 20 3B 4D 41 4B 45  20 42 49 4E 41 52 59 00  |RT ;MAKE BINARY.|
00000520: 3A 0D DC 05 4C 44 41 20  48 58 41 44 44 2C 58 20  |:...LDA HXADD,X |
00000530: 3B A1 20 48 45 58 20 C6  49 49 00 52 0D E6 05 4A  |;. HEX .II.R...J|
00000540: 53 52 20 45 C5 20 3B 43  48 45 43 4B 20 8B 20 C5  |SR E. ;CHECK . .|
00000550: 49 44 00 6C 0D F0 05 42  43 43 20 43 4B 31 20 3B  |ID.l...BCC CK1 ;|
00000560: 4F 4B 2E A1 20 82 20 43  48 41 52 2E 00 85 0D FA  |OK.. . CHAR.....|
00000570: 05 3B AC 45 52 52 B0 20  4D 45 53 53 41 47 45 20  |.;.ERR. MESSAGE |
00000580: 4C 4F 4F 50 AC 00 9B 0D  04 06 45 52 52 B0 20 4C  |LOOP......ERR. L|
00000590: 44 41 20 23 24 30 44 20  3B 43 52 00 AA 0D 0E 06  |DA #$0D ;CR.....|
000005A0: 4A 53 52 20 43 48 52 4F  55 54 00 C7 0D 18 06 4A  |JSR CHROUT.....J|
000005B0: 53 52 20 43 52 4F 46 20  3B 54 55 52 4E 20 4F 46  |SR CROF ;TURN OF|
000005C0: 46 20 43 55 52 53 B0 00  D2 0D 22 06 4C 44 58 20  |F CURS....".LDX |
000005D0: 23 30 00 F7 0D 2C 06 45  52 31 20 4C 44 41 20 45  |#0...,.ER1 LDA E|
000005E0: 52 4D 45 53 53 2C 58 20  3B 99 20 45 52 52 B0 20  |RMESS,X ;. ERR. |
000005F0: 4D 45 53 53 41 47 45 00  11 0E 36 06 42 45 51 20  |MESSAGE...6.BEQ |
00000600: 42 45 47 49 4E 20 3B 53  54 41 52 54 20 4F 56 45  |BEGIN ;START OVE|
00000610: 52 00 20 0E 40 06 4A 53  52 20 43 48 52 4F 55 54  |R. .@.JSR CHROUT|
00000620: 00 28 0E 4A 06 49 4E 58  00 34 0E 54 06 42 4E 45  |.(.J.INX.4.T.BNE|
00000630: 20 45 52 31 00 59 0E 5E  06 3B AC 43 48 41 4E 47  | ER1.Y.^.;.CHANG|
00000640: 45 20 C6 49 49 20 48 45  58 20 A4 20 42 49 4E 41  |E .II HEX . BINA|
00000650: 52 59 20 26 20 53 A4 52  45 00 76 0E 68 06 43 91  |RY & S.RE.v.h.C.|
00000660: 56 45 52 54 20 4C 44 58  20 23 30 20 3B 53 45 54  |VERT LDX #0 ;SET|
00000670: 20 49 4E 44 45 58 00 92  0E 72 06 4A 53 52 20 43  | INDEX...r.JSR C|
00000680: 52 4F 46 20 3B 55 4E 42  4C 49 4E 4B 20 43 55 52  |ROF ;UNBLINK CUR|
00000690: 53 B0 00 AE 0E 7C 06 4C  4F 4F 50 20 4C 44 41 20  |S....|.LOOP LDA |
000006A0: 48 58 41 44 44 2C 58 20  3B A1 20 C6 49 49 00 C9  |HXADD,X ;. .II..|
000006B0: 0E 86 06 4A 53 52 20 4D  41 4B 42 49 20 3B 4D 41  |...JSR MAKBI ;MA|
000006C0: 4B 45 20 42 49 4E 41 52  59 00 DF 0E 90 06 41 53  |KE BINARY.....AS|
000006D0: 4C 20 20 3B 53 48 8B 54  20 C5 55 45 20 B5 4F 00  |L  ;SH.T .UE .O.|
000006E0: FB 0E 9A 06 41 53 4C 20  20 3B 48 49 47 48 20 4E  |....ASL  ;HIGH N|
000006F0: 59 42 42 4C 45 20 B9 49  54 49 91 00 03 0F A4 06  |YBBLE .ITI......|
00000700: 41 53 4C 00 0B 0F AE 06  41 53 4C 00 21 0F B8 06  |ASL.....ASL.!...|
00000710: 53 54 41 20 48 58 41 44  44 2C 58 20 3B 94 20 49  |STA HXADD,X ;. I|
00000720: 54 00 37 0F C2 06 49 4E  58 20 20 3B 52 41 49 53  |T.7...INX  ;RAIS|
00000730: 45 20 49 4E 44 45 58 00  50 0F CC 06 4C 44 41 20  |E INDEX.P...LDA |
00000740: 48 58 41 44 44 2C 58 20  3B A1 20 82 20 C6 49 49  |HXADD,X ;. . .II|
00000750: 00 6B 0F D6 06 4A 53 52  20 4D 41 4B 42 49 20 3B  |.k...JSR MAKBI ;|
00000760: 4D 41 4B 45 20 42 49 4E  41 52 59 00 87 0F E0 06  |MAKE BINARY.....|
00000770: 43 50 58 20 23 33 20 3B  22 34 54 48 20 43 48 41  |CPX #3 ;"4TH CHA|
00000780: 52 41 43 54 45 52 3F 00  A6 0F EA 06 42 45 51 20  |RACTER?.....BEQ |
00000790: 4F 56 45 52 20 3B 59 45  53 2E 20 46 49 4E 49 53  |OVER ;YES. FINIS|
000007A0: 48 20 48 45 52 45 00 B3  0F F4 06 43 4C 43 20 20  |H HERE.....CLC  |
000007B0: 3B 4E 4F 00 D4 0F FE 06  41 44 43 20 48 58 41 44  |;NO.....ADC HXAD|
000007C0: 44 20 3B 41 44 44 20 A4  20 48 49 47 48 20 4E 59  |D ;ADD . HIGH NY|
000007D0: 42 42 4C 45 00 F2 0F 08  07 53 54 41 20 48 58 41  |BBLE.....STA HXA|
000007E0: 44 44 20 3B 94 20 43 4F  4D 42 49 4E 45 44 20 C5  |DD ;. COMBINED .|
000007F0: 55 45 00 08 10 12 07 49  4E 58 20 20 3B 52 41 49  |UE.....INX  ;RAI|
00000800: 53 45 20 49 4E 44 45 58  00 24 10 1C 07 42 4E 45  |SE INDEX.$...BNE|
00000810: 20 4C 4F 4F 50 20 3B 41  4C 57 41 59 53 20 42 52  | LOOP ;ALWAYS BR|
00000820: 41 4E 43 48 00 45 10 26  07 4F 56 45 52 20 43 4C  |ANCH.E.&.OVER CL|
00000830: 43 20 20 3B 41 44 44 20  4C 4F 57 20 4E 59 42 42  |C  ;ADD LOW NYBB|
00000840: 4C 45 20 4F 46 00 66 10  30 07 41 44 43 20 48 58  |LE OF.f.0.ADC HX|
00000850: 41 44 44 AA 32 20 3B 4C  4F 57 20 42 59 54 45 20  |ADD.2 ;LOW BYTE |
00000860: A4 20 48 49 47 48 00 7E  10 3A 07 53 54 41 20 48  |. HIGH.~.:.STA H|
00000870: 58 41 44 44 AA 32 20 3B  AF 20 94 20 49 54 00 A2  |XADD.2 ;. . IT..|
00000880: 10 44 07 80 20 4C 44 41  20 49 4E 46 4C 47 20 3B  |.D.. LDA INFLG ;|
00000890: 22 44 4F 4E 45 20 45 4E  44 20 41 44 44 52 45 53  |"DONE END ADDRES|
000008A0: 53 3F 00 BF 10 4E 07 42  4E 45 20 4F 55 54 50 55  |S?...N.BNE OUTPU|
000008B0: 54 20 3B 59 45 53 2E 46  4C 41 47 20 53 45 54 00  |T ;YES.FLAG SET.|
000008C0: DE 10 58 07 4C 44 41 20  48 58 41 44 44 20 3B 4E  |..X.LDA HXADD ;N|
000008D0: 4F 2E 94 20 53 54 41 52  54 20 41 44 44 2E 00 FB  |O.. START ADD...|
000008E0: 10 62 07 53 54 41 20 53  54 41 44 44 AA 31 20 3B  |.b.STA STADD.1 ;|
000008F0: 91 20 5A 45 52 4F 20 50  41 47 45 00 0B 11 6C 07  |. ZERO PAGE...l.|
00000900: 4C 44 41 20 48 58 41 44  44 AA 32 00 19 11 76 07  |LDA HXADD.2...v.|
00000910: 53 54 41 20 53 54 41 44  44 00 2A 11 80 07 4C 44  |STA STADD.*...LD|
00000920: 41 20 23 24 30 44 20 3B  43 52 00 39 11 8A 07 4A  |A #$0D ;CR.9...J|
00000930: 53 52 20 43 48 52 4F 55  54 00 51 11 94 07 53 54  |SR CHROUT.Q...ST|
00000940: 41 20 49 4E 46 4C 47 20  3B 53 45 54 20 46 4C 41  |A INFLG ;SET FLA|
00000950: 47 00 69 11 9E 07 3B AC  A1 20 55 53 45 52 20 80  |G.i...;.. USER .|
00000960: 20 41 44 44 52 45 53 53  AC 00 81 11 A8 07 4C 44  | ADDRESS......LD|
00000970: 58 20 23 30 20 3B 43 4C  45 41 52 20 49 4E 44 45  |X #0 ;CLEAR INDE|
00000980: 58 00 9F 11 B2 07 80 31  20 4C 44 41 20 80 4D 45  |X......1 LDA .ME|
00000990: 53 53 2C 58 20 3B 99 20  4D 45 53 53 41 47 45 00  |SS,X ;. MESSAGE.|
000009A0: A9 11 BC 07 42 45 51 20  82 00 B8 11 C6 07 4A 53  |....BEQ ......JS|
000009B0: 52 20 43 48 52 4F 55 54  00 C0 11 D0 07 49 4E 58  |R CHROUT.....INX|
000009C0: 00 CB 11 DA 07 42 4E 45  20 80 31 00 ED 11 E4 07  |.....BNE .1.....|
000009D0: 82 20 4C 44 58 20 23 30  20 3B 43 4C 45 41 52 20  |. LDX #0 ;CLEAR |
000009E0: 81 20 43 48 41 52 2E 20  43 4F 55 4E 54 00 06 12  |. CHAR. COUNT...|
000009F0: EE 07 4A 53 52 20 43 52  91 20 3B 42 4C 49 4E 4B  |..JSR CR. ;BLINK|
00000A00: 20 43 55 52 53 B0 00 1F  12 F8 07 4A 53 52 20 A1  | CURS......JSR .|
00000A10: 20 3B A1 20 54 48 45 20  41 44 44 52 45 53 53 00  | ;. THE ADDRESS.|
00000A20: 41 12 02 08 4A 4D 50 20  43 48 45 43 4B 20 3B 43  |A...JMP CHECK ;C|
00000A30: 48 45 43 4B 20 26 4D 41  4B 45 20 42 49 4E 41 52  |HECK &MAKE BINAR|
00000A40: 59 00 67 12 0C 08 4F 55  54 50 55 54 20 4C 44 41  |Y.g...OUTPUT LDA|
00000A50: 20 48 58 41 44 44 20 3B  A1 20 42 49 4E 41 52 59  | HXADD ;. BINARY|
00000A60: 20 80 20 41 44 44 2E 00  8B 12 16 08 53 54 41 20  | . ADD......STA |
00000A70: 45 4E 43 4B AA 31 20 3B  AF 20 53 A4 52 45 20 49  |ENCK.1 ;. S.RE I|
00000A80: 4E 20 5A 45 52 4F 20 50  41 47 45 00 9B 12 20 08  |N ZERO PAGE... .|
00000A90: 4C 44 41 20 48 58 41 44  44 AA 32 00 A8 12 2A 08  |LDA HXADD.2...*.|
00000AA0: 53 54 41 20 45 4E 43 4B  00 B9 12 34 08 4C 44 41  |STA ENCK...4.LDA|
00000AB0: 20 23 24 30 44 20 3B 43  52 00 C8 12 3E 08 4A 53  | #$0D ;CR...>.JS|
00000AC0: 52 20 43 48 52 4F 55 54  00 ED 12 48 08 3B AC A1  |R CHROUT...H.;..|
00000AD0: 20 4F 55 54 50 55 54 20  44 45 53 54 49 4E 41 54  | OUTPUT DESTINAT|
00000AE0: 49 91 20 46 52 4F 4D 20  55 53 45 52 AC 00 F8 12  |I. FROM USER....|
00000AF0: 52 08 4C 44 58 20 23 30  00 1A 13 5C 08 4F 55 54  |R.LDX #0...\.OUT|
00000B00: 31 20 4C 44 41 20 4F 55  54 4D 45 53 53 2C 58 20  |1 LDA OUTMESS,X |
00000B10: 3B 99 20 4D 45 53 53 41  47 45 00 26 13 66 08 42  |;. MESSAGE.&.f.B|
00000B20: 45 51 20 A1 49 54 00 35  13 70 08 4A 53 52 20 43  |EQ .IT.5.p.JSR C|
00000B30: 48 52 4F 55 54 00 3D 13  7A 08 49 4E 58 00 4A 13  |HROUT.=.z.INX.J.|
00000B40: 84 08 42 4E 45 20 4F 55  54 31 00 67 13 8E 08 A1  |..BNE OUT1.g....|
00000B50: 49 54 20 4A 53 52 20 A1  49 4E 20 3B A1 20 27 53  |IT JSR .IN ;. 'S|
00000B60: 27 20 B0 20 27 50 27 00  7C 13 98 08 42 45 51 20  |' . 'P'.|...BEQ |
00000B70: A1 49 54 20 3B 92 20 81  20 4B 45 59 00 8D 13 A2  |.IT ;. . KEY....|
00000B80: 08 43 4D 50 20 23 38 30  20 3B 22 50 3F 00 A3 13  |.CMP #80 ;"P?...|
00000B90: AC 08 42 45 51 20 99 20  3B 59 45 53 2E 20 9F 20  |..BEQ . ;YES. . |
00000BA0: 99 45 52 00 B8 13 B6 08  43 4D 50 20 23 38 33 20  |.ER.....CMP #83 |
00000BB0: 3B 22 4E 4F 2E 20 53 3F  00 D5 13 C0 08 42 4E 45  |;"NO. S?.....BNE|
00000BC0: 20 A1 49 54 20 3B 4E 4F  2E CB 20 42 41 43 4B 20  | .IT ;NO.. BACK |
00000BD0: 81 20 4B 45 59 00 F1 13  CA 08 42 45 51 20 42 59  |. KEY.....BEQ BY|
00000BE0: 54 45 20 3B 53 43 52 45  45 4E 20 4F 55 54 50 55  |TE ;SCREEN OUTPU|
00000BF0: 54 00 0D 14 D4 08 99 20  4A 53 52 20 50 52 4F 55  |T...... JSR PROU|
00000C00: 54 20 3B 9F 20 99 45 52  20 46 49 4C 45 00 2B 14  |T ;. .ER FILE.+.|
00000C10: DE 08 3B AC A1 20 42 59  54 45 20 4C 47 54 48 2E  |..;.. BYTE LGTH.|
00000C20: 20 46 52 4F 4D 20 55 53  45 52 AC 00 3B 14 E8 08  | FROM USER..;...|
00000C30: 42 59 54 45 20 4C 44 58  20 23 30 00 5F 14 F2 08  |BYTE LDX #0._...|
00000C40: 42 59 54 4C 55 50 20 4C  44 41 20 42 59 54 4D 45  |BYTLUP LDA BYTME|
00000C50: 53 53 2C 58 20 3B 99 20  4D 45 53 53 41 47 45 00  |SS,X ;. MESSAGE.|
00000C60: 6D 14 FC 08 42 45 51 20  47 54 42 59 54 00 7C 14  |m...BEQ GTBYT.|.|
00000C70: 06 09 4A 53 52 20 43 48  52 4F 55 54 00 84 14 10  |..JSR CHROUT....|
00000C80: 09 49 4E 58 00 93 14 1A  09 42 4E 45 20 42 59 54  |.INX.....BNE BYT|
00000C90: 4C 55 50 00 BC 14 24 09  45 52 4A 4D 50 20 4A 4D  |LUP...$.ERJMP JM|
00000CA0: 50 20 45 52 52 B0 20 3B  4F 55 54 20 4F 46 20 52  |P ERR. ;OUT OF R|
00000CB0: 41 4E 47 45 20 41 56 4F  49 44 45 52 00 DB 14 2E  |ANGE AVOIDER....|
00000CC0: 09 47 54 42 59 54 20 4A  53 52 20 43 52 91 20 3B  |.GTBYT JSR CR. ;|
00000CD0: 42 4C 49 4E 4B 20 43 55  52 53 B0 00 F2 14 38 09  |BLINK CURS....8.|
00000CE0: 47 54 32 20 4A 53 52 20  A1 49 4E 20 3B A1 20 4B  |GT2 JSR .IN ;. K|
00000CF0: 45 59 00 07 15 42 09 42  45 51 20 47 54 32 20 3B  |EY...B.BEQ GT2 ;|
00000D00: 92 20 81 20 4B 45 59 00  1A 15 4C 09 43 4D 50 20  |. . KEY...L.CMP |
00000D10: 23 24 30 44 20 3B 22 43  52 3F 00 37 15 56 09 42  |#$0D ;"CR?.7.V.B|
00000D20: 45 51 20 53 45 54 80 20  3B 96 41 55 4C 54 20 53  |EQ SET. ;.AULT S|
00000D30: 45 4C 45 43 54 45 44 00  53 15 60 09 4A 53 52 20  |ELECTED.S.`.JSR |
00000D40: 43 48 52 4F 55 54 20 3B  A2 20 C5 55 45 2E 20 99  |CHROUT ;. .UE. .|
00000D50: 20 49 54 00 6B 15 6A 09  4A 53 52 20 45 C5 20 3B  | IT.k.j.JSR E. ;|
00000D60: 43 48 45 43 4B 20 52 41  4E 47 45 00 86 15 74 09  |CHECK RANGE...t.|
00000D70: 4A 53 52 20 4D 41 4B 42  49 20 3B 4D 41 4B 45 20  |JSR MAKBI ;MAKE |
00000D80: 42 49 4E 41 52 59 00 A1  15 7E 09 41 53 4C 20 20  |BINARY...~.ASL  |
00000D90: 3B 53 48 8B 54 20 A4 20  48 49 20 4E 59 42 42 4C  |;SH.T . HI NYBBL|
00000DA0: 45 00 A9 15 88 09 41 53  4C 00 B1 15 92 09 41 53  |E.....ASL.....AS|
00000DB0: 4C 00 B9 15 9C 09 41 53  4C 00 CC 15 A6 09 53 54  |L.....ASL.....ST|
00000DC0: 41 20 48 4C 44 52 20 3B  94 20 49 54 00 EB 15 B0  |A HLDR ;. IT....|
00000DD0: 09 47 54 31 20 4A 53 52  20 A1 49 4E 20 3B A1 20  |.GT1 JSR .IN ;. |
00000DE0: 53 45 43 91 44 20 43 48  41 52 2E 00 FF 15 BA 09  |SEC.D CHAR......|
00000DF0: 42 45 51 20 47 54 31 20  3B 92 20 81 20 49 54 00  |BEQ GT1 ;. . IT.|
00000E00: 15 16 C4 09 4A 53 52 20  43 48 52 4F 55 54 20 3B  |....JSR CHROUT ;|
00000E10: 99 20 49 49 54 00 2D 16  CE 09 4A 53 52 20 45 C5  |. IIT.-...JSR E.|
00000E20: 20 3B 43 48 45 43 4B 20  52 41 4E 47 45 00 48 16  | ;CHECK RANGE.H.|
00000E30: D8 09 4A 53 52 20 4D 41  4B 42 49 20 3B 4D 41 4B  |..JSR MAKBI ;MAK|
00000E40: 45 20 42 49 4E 41 52 59  00 62 16 E2 09 43 4C 43  |E BINARY.b...CLC|
00000E50: 20 20 3B 41 44 44 20 A4  20 48 49 20 4E 59 42 42  |  ;ADD . HI NYBB|
00000E60: 4C 45 00 6F 16 EC 09 41  44 43 20 48 4C 44 52 00  |LE.o...ADC HLDR.|
00000E70: 80 16 F6 09 43 4D 50 20  23 32 20 3B 22 3E 31 3F  |....CMP #2 ;">1?|
00000E80: 00 9C 16 00 0A 42 43 43  20 45 52 4A 4D 50 20 3B  |.....BCC ERJMP ;|
00000E90: B3 32 20 A8 20 41 4C 4C  4F 57 45 44 00 B6 16 0A  |.2 . ALLOWED....|
00000EA0: 0A 53 54 41 20 43 4B 42  59 54 20 3B 53 A4 52 45  |.STA CKBYT ;S.RE|
00000EB0: 20 A2 20 C5 55 45 00 C7  16 14 0A 4C 44 41 20 23  | . .UE.....LDA #|
00000EC0: 24 30 44 20 3B 43 52 00  D6 16 1E 0A 4A 53 52 20  |$0D ;CR.....JSR |
00000ED0: 43 48 52 4F 55 54 00 F3  16 28 0A 3B AC 43 41 4C  |CHROUT...(.;.CAL|
00000EE0: 43 55 4C 41 54 45 20 80  20 41 44 44 52 45 53 53  |CULATE . ADDRESS|
00000EF0: 45 53 AC 00 14 17 32 0A  53 45 54 80 20 4A 53 52  |ES....2.SET. JSR|
00000F00: 20 43 52 4F 46 20 3B 55  4E 42 4C 49 4E 4B 20 43  | CROF ;UNBLINK C|
00000F10: 55 52 53 B0 00 25 17 3C  0A 4C 44 41 20 23 24 30  |URS..%.<.LDA #$0|
00000F20: 44 20 3B 43 52 00 34 17  46 0A 4A 53 52 20 43 48  |D ;CR.4.F.JSR CH|
00000F30: 52 4F 55 54 00 53 17 50  0A 4C 44 41 20 43 4B 42  |ROUT.S.P.LDA CKB|
00000F40: 59 54 20 3B A1 20 4C 47  54 48 2E 20 A4 20 43 48  |YT ;. LGTH. . CH|
00000F50: 45 43 4B 00 5B 17 5A 0A  53 45 43 00 72 17 64 0A  |ECK.[.Z.SEC.r.d.|
00000F60: 53 42 43 20 23 32 20 3B  53 55 42 54 52 41 43 54  |SBC #2 ;SUBTRACT|
00000F70: 20 32 00 8B 17 6E 0A 53  54 41 20 48 4C 44 52 20  | 2...n.STA HLDR |
00000F80: 3B 54 45 4D 50 B0 41 52  59 20 94 00 A9 17 78 0A  |;TEMP.ARY ....x.|
00000F90: 4C 44 41 20 45 4E 43 4B  20 3B 4C 4F 57 20 42 59  |LDA ENCK ;LOW BY|
00000FA0: 54 45 20 80 20 41 44 44  2E 00 B1 17 82 0A 53 45  |TE . ADD......SE|
00000FB0: 43 00 CC 17 8C 0A 53 42  43 20 48 4C 44 52 20 3B  |C.....SBC HLDR ;|
00000FC0: 53 55 42 54 52 41 43 54  20 C5 55 45 00 E2 17 96  |SUBTRACT .UE....|
00000FD0: 0A 53 54 41 20 45 4E 43  4B 20 3B 94 20 A2 20 C5  |.STA ENCK ;. . .|
00000FE0: 55 45 00 00 18 A0 0A 42  43 43 20 53 55 42 48 49  |UE.....BCC SUBHI|
00000FF0: 20 3B 52 45 44 55 43 45  20 48 49 20 42 59 54 45  | ;REDUCE HI BYTE|
00001000: 00 1E 18 AA 0A 53 45 54  31 20 4C 44 41 20 45 4E  |.....SET1 LDA EN|
00001010: 43 4B 20 3B A1 20 A2 20  80 20 41 44 44 2E 00 26  |CK ;. . . ADD..&|
00001020: 18 B4 0A 53 45 43 00 48  18 BE 0A 53 42 43 20 43  |...SEC.H...SBC C|
00001030: 4B 42 59 54 20 3B 53 55  42 54 52 41 43 54 20 42  |KBYT ;SUBTRACT B|
00001040: 59 54 45 20 4C 47 54 48  00 67 18 C8 0A 53 54 41  |YTE LGTH.g...STA|
00001050: 20 4D 54 43 48 43 4B 20  3B 94 20 41 53 20 43 48  | MTCHCK ;. AS CH|
00001060: 45 43 4B 20 C5 55 45 00  84 18 D2 0A 42 43 43 20  |ECK .UE.....BCC |
00001070: 53 55 42 32 20 3B 52 45  44 55 43 45 20 48 49 20  |SUB2 ;REDUCE HI |
00001080: 42 59 54 45 00 A2 18 DC  0A 4C 44 41 20 45 4E 43  |BYTE.....LDA ENC|
00001090: 4B AA 31 20 3B A1 20 48  49 20 42 59 54 45 20 A2  |K.1 ;. HI BYTE .|
000010A0: 20 80 00 C8 18 E6 0A 53  45 54 32 20 53 54 41 20  | ......SET2 STA |
000010B0: 4D 54 43 48 43 4B AA 31  20 3B 4D 41 4B 45 20 53  |MTCHCK.1 ;MAKE S|
000010C0: 41 4D 45 20 48 45 52 45  00 F0 18 F0 0A 53 45 54  |AME HERE.....SET|
000010D0: 33 20 4C 44 41 20 53 54  41 44 44 20 3B 53 54 41  |3 LDA STADD ;STA|
000010E0: 52 54 20 41 44 44 2E 20  4C 4F 57 20 42 59 54 45  |RT ADD. LOW BYTE|
000010F0: 00 F8 18 FA 0A 43 4C 43  00 15 19 04 0B 41 44 43  |.....CLC.....ADC|
00001100: 20 43 4B 42 59 54 20 3B  41 44 44 20 42 59 54 45  | CKBYT ;ADD BYTE|
00001110: 20 4C 47 54 48 00 30 19  0E 0B 53 54 41 20 43 4B  | LGTH.0...STA CK|
00001120: 41 44 44 20 3B 43 48 45  43 4B 20 50 4F B5 45 52  |ADD ;CHECK PO.ER|
00001130: 00 49 19 18 0B 4C 44 41  20 53 54 41 44 44 AA 31  |.I...LDA STADD.1|
00001140: 20 3B 48 49 20 42 59 54  45 00 5F 19 22 0B 41 44  | ;HI BYTE._.".AD|
00001150: 43 20 23 30 20 3B 41 44  44 20 43 41 52 52 59 00  |C #0 ;ADD CARRY.|
00001160: 7D 19 2C 0B 53 54 41 20  43 4B 41 44 44 AA 31 20  |}.,.STA CKADD.1 |
00001170: 3B 50 55 54 20 49 4E 20  50 4F B5 45 52 00 9B 19  |;PUT IN PO.ER...|
00001180: 36 0B 4A 4D 50 20 4D 41  49 4E 20 3B 53 54 41 52  |6.JMP MAIN ;STAR|
00001190: 54 20 4D 41 49 4E 20 4C  4F 4F 50 00 B0 19 40 0B  |T MAIN LOOP...@.|
000011A0: 53 55 42 48 49 20 44 45  43 20 45 4E 43 4B AA 31  |SUBHI DEC ENCK.1|
000011B0: 00 BD 19 4A 0B 4A 4D 50  20 53 45 54 31 00 D1 19  |...J.JMP SET1...|
000011C0: 54 0B 53 55 42 32 20 4C  44 41 20 45 4E 43 4B AA  |T.SUB2 LDA ENCK.|
000011D0: 31 00 DC 19 5E 0B 53 42  43 20 23 31 00 E9 19 68  |1...^.SBC #1...h|
000011E0: 0B 4A 4D 50 20 53 45 54  32 00 01 1A 72 0B 3B AC  |.JMP SET2...r.;.|
000011F0: 4D 41 49 4E 20 50 52 4F  47 41 4D 20 4C 4F 4F 50  |MAIN PROGAM LOOP|
00001200: AC 00 27 1A 7C 0B 4D 41  49 4E 20 4C 44 59 20 23  |..'.|.MAIN LDY #|
00001210: 30 20 3B 43 4C 45 41 52  20 81 20 49 4E 44 2E 41  |0 ;CLEAR . IND.A|
00001220: 44 44 2E 4D 4F 44 45 00  49 1A 86 0B 4C 44 41 20  |DD.MODE.I...LDA |
00001230: 28 53 54 41 44 44 29 2C  59 20 3B A1 20 C5 55 45  |(STADD),Y ;. .UE|
00001240: 20 41 54 20 53 54 41 52  54 00 66 1A 90 0B 43 4D  | AT START.f...CM|
00001250: 50 20 28 43 4B 41 44 44  29 2C 59 20 3B 82 20 A4  |P (CKADD),Y ;. .|
00001260: 20 43 48 45 43 4B 00 8C  1A 9A 0B 42 45 51 20 CB  | CHECK.....BEQ .|
00001270: 54 4D 54 43 48 20 3B 54  48 45 59 20 4D 41 54 43  |TMTCH ;THEY MATC|
00001280: 48 2E 43 48 45 43 4B 20  4D B0 45 2E 00 A3 1A A4  |H.CHECK M.E.....|
00001290: 0B 4D 41 31 20 43 4C 43  20 20 3B 4E 4F 20 4D 41  |.MA1 CLC  ;NO MA|
000012A0: 54 43 48 00 C5 1A AE 0B  4C 44 41 20 43 4B 41 44  |TCH.....LDA CKAD|
000012B0: 44 20 3B 41 44 44 20 31  20 A4 20 43 48 45 43 4B  |D ;ADD 1 . CHECK|
000012C0: 20 41 44 44 2E 00 D0 1A  B8 0B 41 44 43 20 23 31  | ADD......ADC #1|
000012D0: 00 E9 1A C2 0B 53 54 41  20 43 4B 41 44 44 20 3B  |.....STA CKADD ;|
000012E0: 53 A4 52 45 20 42 41 43  4B 00 08 1B CC 0B 4C 44  |S.RE BACK.....LD|
000012F0: 41 20 43 4B 41 44 44 AA  31 20 3B 46 49 58 20 48  |A CKADD.1 ;FIX H|
00001300: 49 47 48 20 42 59 54 45  00 13 1B D6 0B 41 44 43  |IGH BYTE.....ADC|
00001310: 20 23 30 00 29 1B E0 0B  53 54 41 20 43 4B 41 44  | #0.)...STA CKAD|
00001320: 44 AA 31 20 3B 53 A4 52  45 00 48 1B EA 0B 4C 44  |D.1 ;S.RE.H...LD|
00001330: 41 20 43 4B 41 44 44 20  3B 48 41 56 45 20 57 45  |A CKADD ;HAVE WE|
00001340: 20 52 45 41 43 48 45 44  00 6E 1B F4 0B 43 4D 50  | REACHED.n...CMP|
00001350: 20 45 4E 43 4B 20 3B 22  45 4E 44 20 4F 46 20 50  | ENCK ;"END OF P|
00001360: 4F 53 53 49 42 4C 45 20  42 59 54 45 53 3F 00 8E  |OSSIBLE BYTES?..|
00001370: 1B FE 0B 42 4E 45 20 4D  41 49 4E 20 3B 4E 4F 2E  |...BNE MAIN ;NO.|
00001380: 53 54 41 52 54 20 82 20  53 45 52 49 45 53 00 B0  |START . SERIES..|
00001390: 1B 08 0C 4C 44 41 20 43  4B 41 44 44 AA 31 20 3B  |...LDA CKADD.1 ;|
000013A0: 4C 4F 20 42 59 54 45 53  20 4D 41 54 43 48 45 44  |LO BYTES MATCHED|
000013B0: 00 D0 1B 12 0C 43 4D 50  20 45 4E 43 4B AA 31 20  |.....CMP ENCK.1 |
000013C0: 3B 22 48 49 20 42 59 54  45 53 20 53 41 4D 45 3F  |;"HI BYTES SAME?|
000013D0: 00 E7 1B 1C 0C 42 4E 45  20 4D 41 49 4E 20 3B 4E  |.....BNE MAIN ;N|
000013E0: 4F 2E 9A 49 4E 55 45 00  06 1C 26 0C 43 4C 43 20  |O..INUE...&.CLC |
000013F0: 20 3B 44 91 45 20 57 49  54 48 20 54 48 49 53 20  | ;D.E WITH THIS |
00001400: 53 45 52 49 45 53 00 26  1C 30 0C 4C 44 41 20 53  |SERIES.&.0.LDA S|
00001410: 54 41 44 44 20 3B 4D 4F  56 45 20 53 54 41 52 54  |TADD ;MOVE START|
00001420: 20 50 4F B5 45 52 00 43  1C 3A 0C 41 44 43 20 23  | PO.ER.C.:.ADC #|
00001430: 31 20 3B A4 20 82 20 48  49 47 48 45 53 54 20 42  |1 ;. . HIGHEST B|
00001440: 59 54 45 00 5A 1C 44 0C  53 54 41 20 53 54 41 44  |YTE.Z.D.STA STAD|
00001450: 44 20 3B 53 A4 52 45 20  49 54 00 77 1C 4E 0C 4C  |D ;S.RE IT.w.N.L|
00001460: 44 41 20 53 54 41 44 44  AA 31 20 3B 46 49 58 20  |DA STADD.1 ;FIX |
00001470: 48 49 20 42 59 54 45 00  82 1C 58 0C 41 44 43 20  |HI BYTE...X.ADC |
00001480: 23 30 00 92 1C 62 0C 53  54 41 20 53 54 41 44 44  |#0...b.STA STADD|
00001490: AA 31 00 B2 1C 6C 0C 4C  44 58 20 23 30 20 3B 43  |.1...l.LDX #0 ;C|
000014A0: 4C 45 41 52 20 46 4C 41  47 20 A4 20 53 48 4F 57  |LEAR FLAG . SHOW|
000014B0: 20 99 00 DA 1C 76 0C 53  54 58 20 4D 54 43 48 46  | ....v.STX MTCHF|
000014C0: 4C 47 20 3B 52 4F 55 54  49 4E 45 20 54 48 49 53  |LG ;ROUTINE THIS|
000014D0: 20 49 53 20 A2 20 41 44  44 2E 00 FC 1C 80 0C 4C  | IS . ADD......L|
000014E0: 44 41 20 53 54 41 44 44  20 3B 43 4F 4D 50 41 52  |DA STADD ;COMPAR|
000014F0: 45 20 53 54 41 52 54 20  41 44 44 2E 00 25 1D 8A  |E START ADD..%..|
00001500: 0C 43 4D 50 20 4D 54 43  48 43 4B 20 3B 57 49 54  |.CMP MTCHCK ;WIT|
00001510: 48 20 4C 41 53 54 20 43  48 45 43 4B 41 42 4C 45  |H LAST CHECKABLE|
00001520: 20 42 59 54 45 00 42 1D  94 0C 42 4E 45 20 8E 20  | BYTE.B...BNE . |
00001530: 3B 4E 4F 20 4D 41 54 43  48 20 4C 4F 57 20 42 59  |;NO MATCH LOW BY|
00001540: 54 45 00 61 1D 9E 0C 4C  44 41 20 53 54 41 44 44  |TE.a...LDA STADD|
00001550: AA 31 20 3B 43 48 45 43  4B 20 48 49 20 42 59 54  |.1 ;CHECK HI BYT|
00001560: 45 00 72 1D A8 0C 43 4D  50 20 4D 54 43 48 43 4B  |E.r...CMP MTCHCK|
00001570: AA 31 00 86 1D B2 0C 42  4E 45 20 8E 20 3B 4E 4F  |.1.....BNE . ;NO|
00001580: 20 4D 41 54 43 48 00 A2  1D BC 0C 4A 4D 50 20 45  | MATCH.....JMP E|
00001590: 58 49 54 20 3B 41 4C 4C  20 44 91 45 2C 20 A0 20  |XIT ;ALL D.E, . |
000015A0: 55 50 00 C7 1D C6 0C 8E  20 4A 4D 50 20 53 45 54  |UP...... JMP SET|
000015B0: 33 20 3B 4F 55 54 20 4F  46 20 52 41 4E 47 45 20  |3 ;OUT OF RANGE |
000015C0: 41 56 4F 49 44 45 52 00  EC 1D D0 0C 3B AC 43 48  |AVOIDER.....;.CH|
000015D0: 45 43 4B 20 8F 41 49 4E  49 4E 47 20 42 59 54 45  |ECK .AINING BYTE|
000015E0: 53 20 46 4F 52 20 4D 41  54 43 48 2A 00 0D 1E DA  |S FOR MATCH*....|
000015F0: 0C CB 54 4D 54 43 48 20  4C 44 58 20 23 30 20 3B  |..TMTCH LDX #0 ;|
00001600: 43 4C 45 41 52 20 49 4E  44 49 43 45 53 00 18 1E  |CLEAR INDICES...|
00001610: E4 0C 4C 44 59 20 23 30  00 3D 1E EE 0C 4C 55 50  |..LDY #0.=...LUP|
00001620: 20 49 4E 58 20 20 3B 58  20 43 4F 55 4E 54 53 20  | INX  ;X COUNTS |
00001630: 42 59 54 45 53 20 4D 41  54 43 48 45 44 00 5A 1E  |BYTES MATCHED.Z.|
00001640: F8 0C 43 50 58 20 43 4B  42 59 54 20 3B 22 43 48  |..CPX CKBYT ;"CH|
00001650: 45 43 4B 45 44 20 41 4C  4C 3F 00 72 1E 02 0D 42  |ECKED ALL?.r...B|
00001660: 45 51 20 50 52 4E 54 20  3B 59 45 53 2E 99 20 27  |EQ PRNT ;YES.. '|
00001670: 45 4D 00 8E 1E 0C 0D 49  4E 59 20 20 3B 4E 4F 2E  |EM.....INY  ;NO.|
00001680: 49 4E 44 45 58 20 A4 20  82 20 42 59 54 45 00 B0  |INDEX . . BYTE..|
00001690: 1E 16 0D 4C 44 41 20 28  53 54 41 44 44 29 2C 59  |...LDA (STADD),Y|
000016A0: 20 3B A1 20 82 20 46 52  4F 4D 20 53 54 41 52 54  | ;. . FROM START|
000016B0: 00 D4 1E 20 0D 43 4D 50  20 28 43 4B 41 44 44 29  |... .CMP (CKADD)|
000016C0: 2C 59 20 3B 43 48 45 43  4B 20 81 20 45 51 55 41  |,Y ;CHECK . EQUA|
000016D0: 4C 49 54 59 00 F1 1E 2A  0D 42 45 51 20 4C 55 50  |LITY...*.BEQ LUP|
000016E0: 20 3B 4D 41 54 43 48 45  53 2E A1 20 41 A8 48 45  | ;MATCHES.. A.HE|
000016F0: 52 00 16 1F 34 0D 4A 4D  50 20 4D 41 31 20 3B 4E  |R...4.JMP MA1 ;N|
00001700: 4F 20 4D 41 54 43 48 2E  4D 4F 56 45 20 55 50 20  |O MATCH.MOVE UP |
00001710: 41 20 42 59 54 45 00 34  1F 3E 0D 3B AC 48 45 52  |A BYTE.4.>.;.HER|
00001720: 45 20 8B 20 41 4C 4C 20  42 59 54 45 53 20 4D 41  |E . ALL BYTES MA|
00001730: 54 43 48 AC 00 5F 1F 48  0D 50 52 4E 54 20 4C 44  |TCH.._.H.PRNT LD|
00001740: 41 20 4D 54 43 48 46 4C  47 20 3B 22 50 52 49 4E  |A MTCHFLG ;"PRIN|
00001750: 54 45 44 20 54 48 49 53  20 53 54 41 44 44 3F 00  |TED THIS STADD?.|
00001760: 79 1F 52 0D 42 45 51 20  50 52 53 54 20 3B 4E 4F  |y.R.BEQ PRST ;NO|
00001770: 2C 20 53 4F 20 99 20 49  54 00 9C 1F 5C 0D 50 52  |, SO . IT...\.PR|
00001780: 4E 54 31 20 4A 53 52 20  92 20 3B 43 48 45 43 4B  |NT1 JSR . ;CHECK|
00001790: 20 81 20 53 50 41 43 45  20 42 41 52 00 B9 1F 66  | . SPACE BAR...f|
000017A0: 0D 4C 44 41 20 23 33 32  20 3B 49 4E 44 45 4E 54  |.LDA #32 ;INDENT|
000017B0: 20 32 20 53 50 41 43 45  53 00 C8 1F 70 0D 4A 53  | 2 SPACES...p.JS|
000017C0: 52 20 43 48 52 4F 55 54  00 D7 1F 7A 0D 4A 53 52  |R CHROUT...z.JSR|
000017D0: 20 43 48 52 4F 55 54 00  E6 1F 84 0D 4C 44 41 20  | CHROUT.....LDA |
000017E0: 23 33 36 20 3B 24 00 F5  1F 8E 0D 4A 53 52 20 43  |#36 ;$.....JSR C|
000017F0: 48 52 4F 55 54 00 13 20  98 0D 4C 44 59 20 23 30  |HROUT.. ..LDY #0|
00001800: 20 3B 53 45 54 20 55 50  A4 20 A1 20 32 20 42 59  | ;SET UP. . 2 BY|
00001810: 54 45 53 00 22 20 A2 0D  4D 52 32 20 43 50 59 20  |TES." ..MR2 CPY |
00001820: 23 32 00 2E 20 AC 0D 42  45 51 20 4D 52 31 00 58  |#2.. ..BEQ MR1.X|
00001830: 20 B6 0D 4C 44 41 20 43  4B 41 44 44 2C 59 20 3B  | ..LDA CKADD,Y ;|
00001840: A1 20 41 44 44 2E 20 4F  46 20 4D 41 54 43 48 49  |. ADD. OF MATCHI|
00001850: 4E 47 20 42 59 54 45 53  00 78 20 C0 0D 53 54 41  |NG BYTES.x ..STA|
00001860: 20 48 4C 44 52 2C 59 20  3B 53 A4 52 45 20 81 20  | HLDR,Y ;S.RE . |
00001870: 43 91 56 45 52 53 49 91  00 8D 20 CA 0D 49 4E 59  |C.VERSI... ..INY|
00001880: 20 20 3B A1 20 32 4E 44  20 42 59 54 45 00 A8 20  |  ;. 2ND BYTE.. |
00001890: D4 0D 42 4E 45 20 4D 52  32 20 3B 41 4C 57 41 59  |..BNE MR2 ;ALWAY|
000018A0: 53 20 42 52 41 4E 43 48  00 CC 20 DE 0D 4D 52 31  |S BRANCH.. ..MR1|
000018B0: 20 4A 53 52 20 50 52 4E  54 48 58 20 3B 43 91 56  | JSR PRNTHX ;C.V|
000018C0: 45 52 54 20 AF 20 99 20  41 44 44 2E 00 F2 20 E8  |ERT . . ADD... .|
000018D0: 0D 4A 4D 50 20 4D 41 31  20 3B 52 45 53 45 54 20  |.JMP MA1 ;RESET |
000018E0: 43 4B 41 44 44 20 AF 20  4C 4F 4F 50 20 41 47 41  |CKADD . LOOP AGA|
000018F0: 49 4E 00 11 21 F2 0D 3B  AC 99 20 53 54 41 52 54  |IN..!..;.. START|
00001900: 20 41 44 44 52 45 53 53  20 4D 41 54 43 48 45 44  | ADDRESS MATCHED|
00001910: AC 00 27 21 FC 0D 50 52  53 54 20 4C 44 41 20 23  |..'!..PRST LDA #|
00001920: 24 30 44 20 3B 43 52 00  36 21 06 0E 4A 53 52 20  |$0D ;CR.6!..JSR |
00001930: 43 48 52 4F 55 54 00 45  21 10 0E 4C 44 41 20 23  |CHROUT.E!..LDA #|
00001940: 33 36 20 3B 24 00 54 21  1A 0E 4A 53 52 20 43 48  |36 ;$.T!..JSR CH|
00001950: 52 4F 55 54 00 70 21 24  0E 4C 44 59 20 23 30 20  |ROUT.p!$.LDY #0 |
00001960: 3B 53 45 54 20 A4 20 A1  20 32 20 42 59 54 45 53  |;SET . . 2 BYTES|
00001970: 00 7F 21 2E 0E 50 52 32  20 43 50 59 20 23 32 00  |..!..PR2 CPY #2.|
00001980: 8B 21 38 0E 42 45 51 20  50 52 31 00 A7 21 42 0E  |.!8.BEQ PR1..!B.|
00001990: 4C 44 41 20 53 54 41 44  44 2C 59 20 3B A1 20 31  |LDA STADD,Y ;. 1|
000019A0: 53 54 20 42 59 54 45 00  C4 21 4C 0E 53 54 41 20  |ST BYTE..!L.STA |
000019B0: 48 4C 44 52 2C 59 20 3B  94 20 81 20 43 91 56 45  |HLDR,Y ;. . C.VE|
000019C0: 52 53 49 91 00 DB 21 56  0E 49 4E 59 20 20 3B 53  |RSI...!V.INY  ;S|
000019D0: 45 54 20 81 20 82 20 42  59 54 45 00 E7 21 60 0E  |ET . . BYTE..!`.|
000019E0: 42 4E 45 20 50 52 32 00  06 22 6A 0E 50 52 31 20  |BNE PR2.."j.PR1 |
000019F0: 4A 53 52 20 50 52 4E 54  48 58 20 3B 43 91 56 45  |JSR PRNTHX ;C.VE|
00001A00: 52 54 20 AF 20 99 00 22  22 74 0E 4C 44 41 20 23  |RT . ..""t.LDA #|
00001A10: 31 20 3B 53 45 54 20 46  4C 41 47 20 A4 20 53 48  |1 ;SET FLAG . SH|
00001A20: 4F 57 00 41 22 7E 0E 53  54 41 20 4D 54 43 48 46  |OW.A"~.STA MTCHF|
00001A30: 4C 47 20 3B 53 54 41 44  44 20 57 41 53 20 99 45  |LG ;STADD WAS .E|
00001A40: 44 00 5A 22 88 0E 4A 4D  50 20 50 52 4E 54 31 20  |D.Z"..JMP PRNT1 |
00001A50: 3B CB 20 99 20 43 4B 41  44 44 00 66 22 92 0E 3B  |;. . CKADD.f"..;|
00001A60: AC 54 45 58 54 AC 00 86  22 9C 0E 54 49 54 4C 45  |.TEXT..."..TITLE|
00001A70: 20 2E 42 59 54 45 20 24  32 30 2C 24 32 30 2C 24  | .BYTE $20,$20,$|
00001A80: 32 30 2C 24 31 32 00 AE  22 A6 0E 2E C6 20 22 43  |20,$12..".... "C|
00001A90: 4F 4D 4D 4F 4E 20 43 4F  44 45 22 20 3A 2E 42 59  |OMMON CODE" :.BY|
00001AA0: 54 45 20 24 39 32 2C 24  30 44 2C 24 30 44 00 DC  |TE $92,$0D,$0D..|
00001AB0: 22 B0 0E 2E C6 20 22 53  54 41 52 54 20 41 44 44  |".... "START ADD|
00001AC0: 52 45 53 53 20 49 4E 20  48 45 58 20 22 3A 20 2E  |RESS IN HEX ": .|
00001AD0: 42 59 54 45 20 24 30 44  2C 24 30 30 00 06 23 BA  |BYTE $0D,$00..#.|
00001AE0: 0E 45 52 4D 45 53 53 20  2E C6 20 22 49 4E 50 55  |.ERMESS .. "INPU|
00001AF0: 54 20 45 52 52 4F 52 22  3A 2E 42 59 54 45 20 24  |T ERROR":.BYTE $|
00001B00: 30 44 2C 24 30 30 00 37  23 C4 0E 80 4D 45 53 53  |0D,$00.7#...MESS|
00001B10: 20 2E C6 20 22 45 4E 44  20 41 44 44 52 45 53 53  | .. "END ADDRESS|
00001B20: 20 49 4E 20 48 45 58 20  22 3A 2E 42 59 54 45 20  | IN HEX ":.BYTE |
00001B30: 24 30 44 2C 24 30 30 00  5E 23 CE 0E 4F 55 54 4D  |$0D,$00.^#..OUTM|
00001B40: 45 53 53 20 2E C6 20 22  4F 55 54 50 55 54 20 54  |ESS .. "OUTPUT T|
00001B50: 4F 20 22 3A 20 2E 42 59  54 45 20 24 31 32 00 74  |O ": .BYTE $12.t|
00001B60: 23 D8 0E 2E C6 20 22 53  22 3A 20 2E 42 59 54 45  |#.... "S": .BYTE|
00001B70: 20 24 39 32 00 91 23 E2  0E 2E C6 20 22 43 52 45  | $92..#.... "CRE|
00001B80: 45 4E 20 4F 52 20 22 3A  2E 42 59 54 45 20 24 31  |EN OR ":.BYTE $1|
00001B90: 32 00 A7 23 EC 0E 2E C6  20 22 50 22 3A 20 2E 42  |2..#.... "P": .B|
00001BA0: 59 54 45 20 24 39 32 00  C6 23 F6 0E 2E C6 20 22  |YTE $92..#.... "|
00001BB0: 52 49 4E 54 45 52 22 20  3A 2E 42 59 54 45 20 24  |RINTER" :.BYTE $|
00001BC0: 30 44 2C 24 30 30 00 00  24 00 0F 42 59 54 4D 45  |0D,$00..$..BYTME|
00001BD0: 53 53 20 2E C6 20 22 42  59 54 45 20 4C 45 4E 47  |SS .. "BYTE LENG|
00001BE0: 54 48 20 49 4E 20 48 45  58 22 3A 2E 42 59 54 45  |TH IN HEX":.BYTE|
00001BF0: 20 24 30 44 2C 24 33 37  2C 24 39 44 2C 24 30 30  | $0D,$37,$9D,$00|
00001C00: 00 13 24 0A 0F 3B AC 53  55 42 52 4F 55 54 49 4E  |..$..;.SUBROUTIN|
00001C10: 45 53 AC 00 2D 24 14 0F  A1 20 4A 53 52 20 43 48  |ES..-$... JSR CH|
00001C20: 52 49 4E 20 3B A1 20 55  53 45 52 20 85 00 40 24  |RIN ;. USER ..@$|
00001C30: 1E 0F 43 4D 50 20 23 24  30 44 20 3B 22 43 52 3F  |..CMP #$0D ;"CR?|
00001C40: 00 5E 24 28 0F 42 45 51  20 44 91 45 20 3B 59 45  |.^$(.BEQ D.E ;YE|
00001C50: 53 2E 45 58 49 54 20 52  4F 55 54 49 4E 45 00 7E  |S.EXIT ROUTINE.~|
00001C60: 24 32 0F 53 54 41 20 48  58 41 44 44 2C 58 20 3B  |$2.STA HXADD,X ;|
00001C70: 53 A4 52 45 20 C6 49 49  20 43 48 41 52 2E 00 97  |S.RE .II CHAR...|
00001C80: 24 3C 0F 49 4E 58 20 20  3B 52 41 49 53 45 20 49  |$<.INX  ;RAISE I|
00001C90: 44 45 58 20 81 20 82 00  A9 24 46 0F 42 4E 45 20  |DEX . ...$F.BNE |
00001CA0: A1 20 3B CB 20 A1 20 49  54 00 B5 24 50 0F 44 91  |. ;. . IT..$P.D.|
00001CB0: 45 20 52 54 53 00 D8 24  5A 0F 3B AC 4D 41 4B 45  |E RTS..$Z.;.MAKE|
00001CC0: 20 31 20 42 59 54 45 20  C6 49 49 20 49 4E 20 41  | 1 BYTE .II IN A|
00001CD0: 20 42 49 4E 41 52 59 AC  00 F1 24 64 0F 4D 41 4B  | BINARY...$d.MAK|
00001CE0: 42 49 20 43 4D 50 20 23  35 38 20 3B 22 3D 3E 39  |BI CMP #58 ;"=>9|
00001CF0: 3F 00 0C 25 6E 0F 42 43  53 20 88 20 3B 59 45 53  |?..%n.BCS . ;YES|
00001D00: 2C 20 49 54 53 20 41 20  88 54 45 52 00 28 25 78  |, ITS A .TER.(%x|
00001D10: 0F 53 45 43 20 20 3B 4E  4F 20 53 4F 20 53 55 42  |.SEC  ;NO SO SUB|
00001D20: 54 52 41 43 54 20 34 38  00 45 25 82 0F 53 42 43  |TRACT 48.E%..SBC|
00001D30: 20 23 34 38 20 3B 81 20  45 51 55 49 56 2E 20 4E  | #48 ;. EQUIV. N|
00001D40: 55 4D 42 45 52 00 51 25  8C 0F 52 54 53 20 20 3B  |UMBER.Q%..RTS  ;|
00001D50: 8E 00 65 25 96 0F 88 20  53 45 43 20 20 3B 81 20  |..e%... SEC  ;. |
00001D60: 41 20 A4 20 46 00 7E 25  A0 0F 53 42 43 20 23 35  |A . F.~%..SBC #5|
00001D70: 35 20 3B 53 55 42 54 52  41 43 54 20 35 35 00 86  |5 ;SUBTRACT 55..|
00001D80: 25 AA 0F 52 54 53 00 A1  25 B4 0F 3B AC 43 48 45  |%..RTS..%..;.CHE|
00001D90: 43 4B 20 8B 20 C5 49 44  20 48 45 58 20 C6 49 49  |CK . .ID HEX .II|
00001DA0: AC 00 B7 25 BE 0F 45 C5  20 43 4D 50 20 23 37 31  |...%..E. CMP #71|
00001DB0: 20 3B 22 3D 3E 47 3F 00  D0 25 C8 0F 42 43 53 20  | ;"=>G?..%..BCS |
00001DC0: 42 41 44 20 3B 59 45 53  2C 20 4E 4F 20 CB 4F 44  |BAD ;YES, NO .OD|
00001DD0: 00 F1 25 D2 0F 43 4D 50  20 23 36 35 20 3B 22 49  |..%..CMP #65 ;"I|
00001DE0: 54 53 20 3C 20 47 2E 49  53 20 49 54 20 3D 3E 41  |TS < G.IS IT =>A|
00001DF0: 3F 00 0B 26 DC 0F 42 43  53 20 CB 4F 44 20 3B 59  |?..&..BCS .OD ;Y|
00001E00: 45 53 2C 20 49 54 53 20  C5 49 44 00 2B 26 E6 0F  |ES, ITS .ID.+&..|
00001E10: 43 4D 50 20 23 35 38 20  3B 22 49 54 53 20 3C 41  |CMP #58 ;"ITS <A|
00001E20: 2E 49 53 20 49 54 20 3D  3E 3A 3F 00 43 26 F0 0F  |.IS IT =>:?.C&..|
00001E30: 42 43 53 20 42 41 44 20  3B 59 45 53 2E 4E 4F 20  |BCS BAD ;YES.NO |
00001E40: CB 4F 44 00 5E 26 FA 0F  43 4D 50 20 23 34 38 20  |.OD.^&..CMP #48 |
00001E50: 3B 22 3C 3A 2E 49 53 20  49 54 20 3C 30 3F 00 77  |;"<:.IS IT <0?.w|
00001E60: 26 04 10 42 43 43 20 42  41 44 20 3B 59 45 53 2E  |&..BCC BAD ;YES.|
00001E70: 20 4E 4F 20 CB 4F 44 00  8F 26 0E 10 CB 4F 44 20  | NO .OD..&...OD |
00001E80: 43 4C 43 20 20 3B 52 41  4E 47 45 20 4F 4B 2E 00  |CLC  ;RANGE OK..|
00001E90: A7 26 18 10 52 54 53 20  20 3B 42 41 43 4B 20 A4  |.&..RTS  ;BACK .|
00001EA0: 20 43 41 4C 4C 45 52 00  C2 26 22 10 42 41 44 20  | CALLER..&".BAD |
00001EB0: 50 4C 41 20 20 3B 49 4E  C5 49 44 2E 50 55 4C 4C  |PLA  ;IN.ID.PULL|
00001EC0: 20 8E 00 DC 26 2C 10 50  4C 41 20 20 3B 41 44 44  | ...&,.PLA  ;ADD|
00001ED0: 2E 20 46 52 4F 4D 20 53  54 41 43 4B 00 F7 26 36  |. FROM STACK..&6|
00001EE0: 10 4A 4D 50 20 45 52 52  B0 20 3B 55 53 45 52 20  |.JMP ERR. ;USER |
00001EF0: 52 45 53 54 41 52 54 00  0E 27 40 10 3B AC 53 45  |RESTART..'@.;.SE|
00001F00: 54 20 55 50 20 99 45 52  20 46 49 4C 45 AC 00 27  |T UP .ER FILE..'|
00001F10: 27 4A 10 50 52 4F 55 54  20 4C 44 41 20 23 37 20  |'J.PROUT LDA #7 |
00001F20: 3B 46 49 4C 45 20 23 00  3A 27 54 10 4C 44 58 20  |;FILE #.:'T.LDX |
00001F30: 23 34 20 3B 44 45 56 49  43 45 00 5A 27 5E 10 4C  |#4 ;DEVICE.Z'^.L|
00001F40: 44 59 20 23 24 46 46 20  3B 42 4F 47 55 53 20 53  |DY #$FF ;BOGUS S|
00001F50: 45 43 91 44 2E 20 41 44  44 2E 00 78 27 68 10 4A  |EC.D. ADD..x'h.J|
00001F60: 53 52 20 53 45 54 4C 46  53 20 3B 96 49 4E 45 20  |SR SETLFS ;.INE |
00001F70: 54 48 45 20 46 49 4C 45  00 96 27 72 10 4C 44 41  |THE FILE..'r.LDA|
00001F80: 20 23 30 30 20 3B 4E 4F  20 4E 41 4D 45 2C 20 4E  | #00 ;NO NAME, N|
00001F90: 4F 20 C3 47 54 48 00 B4  27 7C 10 4A 53 52 20 53  |O .GTH..'|.JSR S|
00001FA0: 45 54 4E 41 4D 20 3B 52  45 51 55 49 52 45 44 20  |ETNAM ;REQUIRED |
00001FB0: 43 41 4C 4C 00 C8 27 86  10 4A 53 52 20 9F 20 3B  |CALL..'..JSR . ;|
00001FC0: 9F 20 46 49 4C 45 20 37  00 E8 27 90 10 4C 44 58  |. FILE 7..'..LDX|
00001FD0: 20 23 37 20 3B 53 45 54  20 46 49 4C 45 20 37 20  | #7 ;SET FILE 7 |
00001FE0: 81 20 4F 55 54 50 55 54  00 F7 27 9A 10 4A 53 52  |. OUTPUT..'..JSR|
00001FF0: 20 43 48 4B 4F 55 54 00  0F 28 A4 10 52 54 53 20  | CHKOUT..(..RTS |
00002000: 20 3B 42 41 43 4B 20 A4  20 43 41 4C 4C 45 52 00  | ;BACK . CALLER.|
00002010: 33 28 AE 10 3B AC 43 48  45 43 4B AD 41 43 43 45  |3(..;.CHECK.ACCE|
00002020: 50 54 20 53 50 41 43 45  20 42 41 52 20 50 41 55  |PT SPACE BAR PAU|
00002030: 53 45 AC 00 53 28 B8 10  92 20 4C 44 41 20 23 30  |SE..S(... LDA #0|
00002040: 20 3B 43 4C 45 41 52 20  46 4C 41 47 20 A4 20 53  | ;CLEAR FLAG . S|
00002050: 48 4F 57 00 6F 28 C2 10  53 54 41 20 49 4E 46 4C  |HOW.o(..STA INFL|
00002060: 47 20 3B 57 45 27 52 45  20 A8 20 92 49 4E 47 00  |G ;WE'RE . .ING.|
00002070: 94 28 CC 10 57 41 32 20  4C 44 41 20 24 43 42 20  |.(..WA2 LDA $CB |
00002080: 3B 43 55 52 52 45 4E 54  20 4B 45 59 20 50 52 45  |;CURRENT KEY PRE|
00002090: 53 53 45 44 00 AB 28 D6  10 43 4D 50 20 23 36 34  |SSED..(..CMP #64|
000020A0: 20 3B 36 34 B2 4E 4F 20  4B 45 59 00 CA 28 E0 10  | ;64.NO KEY..(..|
000020B0: 42 45 51 20 CB 91 20 3B  4E 4F 20 4B 45 59 2C 20  |BEQ .. ;NO KEY, |
000020C0: A8 48 49 4E 47 20 A4 20  44 4F 00 E3 28 EA 10 43  |.HING . DO..(..C|
000020D0: 4D 50 20 23 36 30 20 3B  22 53 50 41 43 45 20 42  |MP #60 ;"SPACE B|
000020E0: 41 52 3F 00 FC 28 F4 10  42 4E 45 20 CB 91 20 3B  |AR?..(..BNE .. ;|
000020F0: 4E 4F 2C 20 53 4F 20 49  47 4E B0 45 00 1A 29 FE  |NO, SO IGN.E..).|
00002100: 10 4C 44 41 20 49 4E 46  4C 47 20 3B 57 41 53 20  |.LDA INFLG ;WAS |
00002110: 53 50 41 43 45 20 42 41  52 2E 00 36 29 08 11 42  |SPACE BAR..6)..B|
00002120: 4E 45 20 47 31 20 3B 8B  20 53 45 54 2C 92 20 49  |NE G1 ;. SET,. I|
00002130: 53 20 4F 56 45 52 00 53  29 12 11 57 41 31 20 4C  |S OVER.S)..WA1 L|
00002140: 44 41 20 24 43 42 20 3B  53 54 41 52 54 20 54 48  |DA $CB ;START TH|
00002150: 45 20 92 00 74 29 1C 11  43 4D 50 20 23 36 34 20  |E ..t)..CMP #64 |
00002160: 3B 81 20 53 50 41 43 45  20 42 41 52 20 52 45 4C  |;. SPACE BAR REL|
00002170: 45 41 53 45 00 8B 29 26  11 42 4E 45 20 57 41 31  |EASE..)&.BNE WA1|
00002180: 20 3B 4B 45 45 50 20 92  49 4E 47 00 A7 29 30 11  | ;KEEP .ING..)0.|
00002190: 4C 44 41 20 23 31 20 3B  53 45 54 20 46 4C 41 47  |LDA #1 ;SET FLAG|
000021A0: 20 A4 20 53 48 4F 57 00  CA 29 3A 11 53 54 41 20  | . SHOW..):.STA |
000021B0: 49 4E 46 4C 47 20 3B 57  45 27 52 45 20 4C 4F 4F  |INFLG ;WE'RE LOO|
000021C0: 4B 49 4E 47 20 81 20 32  4E 44 00 E8 29 44 11 4A  |KING . 2ND..)D.J|
000021D0: 4D 50 20 57 41 32 20 3B  48 49 54 20 4F 46 20 53  |MP WA2 ;HIT OF S|
000021E0: 50 41 43 45 20 42 41 52  00 05 2A 4E 11 CB 91 20  |PACE BAR..*N... |
000021F0: 4C 44 41 20 49 4E 46 4C  47 20 3B 8B 20 46 4C 41  |LDA INFLG ;. FLA|
00002200: 47 20 53 45 54 00 1F 2A  58 11 42 4E 45 20 57 41  |G SET..*X.BNE WA|
00002210: 32 20 3B 4B 45 45 50 20  4C 4F 4F 4B 49 4E 47 00  |2 ;KEEP LOOKING.|
00002220: 38 2A 62 11 47 31 20 52  54 53 20 20 3B 54 48 45  |8*b.G1 RTS  ;THE|
00002230: 20 92 53 20 4F 56 45 52  00 51 2A 6C 11 3B AC 53  | .S OVER.Q*l.;.S|
00002240: 54 41 52 54 20 43 55 52  53 B0 20 42 4C 49 4E 4B  |TART CURS. BLINK|
00002250: AC 00 71 2A 76 11 43 52  91 20 4C 44 41 20 23 30  |..q*v.CR. LDA #0|
00002260: 20 3B 43 4C 45 41 52 20  54 48 49 53 20 42 59 54  | ;CLEAR THIS BYT|
00002270: 45 00 8C 2A 80 11 53 54  41 20 24 43 43 20 3B A4  |E..*..STA $CC ;.|
00002280: 20 53 54 41 52 54 20 42  4C 49 4E 4B 00 94 2A 8A  | START BLINK..*.|
00002290: 11 52 54 53 00 A9 2A 94  11 3B AC 90 20 43 55 52  |.RTS..*..;.. CUR|
000022A0: 53 B0 20 42 4C 49 4E 4B  AC 00 C5 2A 9E 11 43 52  |S. BLINK...*..CR|
000022B0: 4F 46 20 4C 44 41 20 23  31 20 3B 53 45 54 20 42  |OF LDA #1 ;SET B|
000022C0: 59 54 45 20 A4 00 DA 2A  A8 11 53 54 41 20 24 43  |YTE ...*..STA $C|
000022D0: 43 20 3B 90 20 42 4C 49  4E 4B 00 E2 2A B2 11 52  |C ;. BLINK..*..R|
000022E0: 54 53 00 08 2B BC 11 3B  AC 32 20 42 59 54 45 20  |TS..+..;.2 BYTE |
000022F0: 42 49 4E 41 52 59 20 A4  20 34 20 42 59 54 45 20  |BINARY . 4 BYTE |
00002300: C6 49 49 20 48 45 58 AC  00 29 2B C6 11 4D 41 4B  |.II HEX..)+..MAK|
00002310: 48 58 20 4C 44 58 20 23  31 20 3B 58 20 53 45 54  |HX LDX #1 ;X SET|
00002320: 20 A4 20 A1 20 42 59 54  45 00 43 2B D0 11 4C 44  | . . BYTE.C+..LD|
00002330: 59 20 23 30 20 3B 59 20  53 45 54 20 A4 20 94 20  |Y #0 ;Y SET . . |
00002340: C6 49 49 00 68 2B DA 11  48 58 33 20 4C 44 41 20  |.II.h+..HX3 LDA |
00002350: 48 4C 44 52 2C 58 20 3B  A1 20 42 59 54 45 28 48  |HLDR,X ;. BYTE(H|
00002360: 49 20 46 49 52 53 54 29  00 84 2B E4 11 AF 20 23  |I FIRST)..+... #|
00002370: 24 46 30 20 3B 4D 41 53  4B 20 4C 4F 57 20 4E 59  |$F0 ;MASK LOW NY|
00002380: 42 42 4C 45 00 A3 2B EE  11 4C 53 52 20 20 3B 53  |BBLE..+..LSR  ;S|
00002390: 48 8B 54 20 48 49 20 4E  59 42 42 4C 45 20 A4 20  |H.T HI NYBBLE . |
000023A0: 4C 4F 57 00 AB 2B F8 11  4C 53 52 00 B3 2B 02 12  |LOW..+..LSR..+..|
000023B0: 4C 53 52 00 BB 2B 0C 12  4C 53 52 00 D3 2B 16 12  |LSR..+..LSR..+..|
000023C0: 48 58 31 20 43 4D 50 20  23 31 30 20 3B 22 3D 3E  |HX1 CMP #10 ;"=>|
000023D0: 31 30 3F 00 F0 2B 20 12  42 43 53 20 41 44 4D B0  |10?..+ .BCS ADM.|
000023E0: 20 3B 59 45 53 2C 20 4D  41 4B 45 20 88 54 45 52  | ;YES, MAKE .TER|
000023F0: 00 04 2C 2A 12 43 4C 43  20 20 3B 4E 4F 2E 4E 55  |..,*.CLC  ;NO.NU|
00002400: 4D 42 45 52 00 1E 2C 34  12 41 44 43 20 23 34 38  |MBER..,4.ADC #48|
00002410: 20 3B 41 44 44 20 34 38  20 81 20 C6 49 49 00 3B  | ;ADD 48 . .II.;|
00002420: 2C 3E 12 48 58 32 20 53  54 41 20 48 58 41 44 44  |,>.HX2 STA HXADD|
00002430: 2C 59 20 3B 53 A4 52 45  20 49 54 00 53 2C 48 12  |,Y ;S.RE IT.S,H.|
00002440: 49 4E 59 20 20 3B 52 41  49 53 45 20 43 4F 55 4E  |INY  ;RAISE COUN|
00002450: 54 45 52 00 70 2C 52 12  43 50 59 20 23 33 20 3B  |TER.p,R.CPY #3 ;|
00002460: 22 44 4F 4E 45 20 33 20  4E 59 42 42 4C 45 53 3F  |"DONE 3 NYBBLES?|
00002470: 00 89 2C 5C 12 42 45 51  20 53 4B 49 50 20 3B 59  |..,\.BEQ SKIP ;Y|
00002480: 45 53 2C 44 4F 20 34 54  48 00 A4 2C 66 12 42 43  |ES,DO 4TH..,f.BC|
00002490: 53 20 44 55 4E 20 3B 59  B1 33 2E 57 45 27 52 45  |S DUN ;Y.3.WE'RE|
000024A0: 20 44 91 45 00 C2 2C 70  12 43 50 58 20 23 30 20  | D.E..,p.CPX #0 |
000024B0: 3B 22 59 3C 33 2E 48 49  42 59 54 45 20 44 4F 4E  |;"Y<3.HIBYTE DON|
000024C0: 45 3F 00 DD 2C 7A 12 42  45 51 20 4E 58 54 42 59  |E?..,z.BEQ NXTBY|
000024D0: 54 20 3B 59 45 53 2E 44  4F 20 4C 4F 57 00 01 2D  |T ;YES.DO LOW..-|
000024E0: 84 12 4C 44 41 20 48 4C  44 52 2C 58 20 3B 4E 4F  |..LDA HLDR,X ;NO|
000024F0: 2E A1 20 4C 4F 20 4E 59  42 2C 48 49 20 42 59 54  |.. LO NYB,HI BYT|
00002500: 45 00 20 2D 8E 12 48 58  34 20 AF 20 23 24 30 46  |E. -..HX4 . #$0F|
00002510: 20 3B 4D 41 53 4B 20 48  49 20 4E 59 42 42 4C 45  | ;MASK HI NYBBLE|
00002520: 00 38 2D 98 12 44 45 58  20 20 3B 4C 4F 57 45 52  |.8-..DEX  ;LOWER|
00002530: 20 43 4F 55 4E 54 45 52  00 4E 2D A2 12 4A 4D 50  | COUNTER.N-..JMP|
00002540: 20 48 58 31 20 3B 4D 41  4B 45 20 C6 49 49 00 70  | HX1 ;MAKE .II.p|
00002550: 2D AC 12 41 44 4D B0 20  43 4C 43 20 20 3B 43 91  |-..ADM. CLC  ;C.|
00002560: 56 45 52 54 20 42 49 4E  41 52 59 20 88 54 45 52  |VERT BINARY .TER|
00002570: 00 86 2D B6 12 41 44 43  20 23 35 35 20 3B A4 20  |..-..ADC #55 ;. |
00002580: C6 49 49 20 42 59 00 9D  2D C0 12 4A 4D 50 20 48  |.II BY..-..JMP H|
00002590: 58 32 20 3B 41 44 44 49  4E 47 20 35 35 00 C6 2D  |X2 ;ADDING 55..-|
000025A0: CA 12 53 4B 49 50 20 4C  44 41 20 48 4C 44 52 2C  |..SKIP LDA HLDR,|
000025B0: 58 20 3B A1 20 4C 4F 20  42 59 54 45 20 4C 41 53  |X ;. LO BYTE LAS|
000025C0: 54 20 54 49 4D 45 00 E0  2D D4 12 4A 4D 50 20 48  |T TIME..-..JMP H|
000025D0: 58 34 20 3B 44 4F 20 4C  4F 20 4E 59 42 42 4C 45  |X4 ;DO LO NYBBLE|
000025E0: 00 04 2E DE 12 4E 58 54  42 59 54 20 4C 44 59 20  |.....NXTBYT LDY |
000025F0: 23 32 20 3B 52 45 53 45  54 20 49 4E 44 49 43 45  |#2 ;RESET INDICE|
00002600: 53 20 46 4F 00 21 2E E8  12 4C 44 58 20 23 30 20  |S FO.!...LDX #0 |
00002610: 3B 32 4E 44 20 41 44 44  52 45 53 53 20 42 59 54  |;2ND ADDRESS BYT|
00002620: 45 00 39 2E F2 12 4A 4D  50 20 48 58 33 20 3B 4C  |E.9...JMP HX3 ;L|
00002630: 4F 4F 50 20 41 47 41 49  4E 00 49 2E FC 12 44 55  |OOP AGAIN.I...DU|
00002640: 4E 20 52 54 53 20 20 3B  8E 00 69 2E 06 13 3B AC  |N RTS  ;..i...;.|
00002650: 99 20 48 45 58 20 41 44  44 2E 53 A4 52 45 44 20  |. HEX ADD.S.RED |
00002660: 49 4E 20 48 58 41 44 44  AC 00 8C 2E 10 13 50 52  |IN HXADD......PR|
00002670: 4E 54 48 58 20 4A 53 52  20 4D 41 4B 48 58 20 3B  |NTHX JSR MAKHX ;|
00002680: 42 49 4E 41 52 59 20 A4  20 48 45 58 00 A4 2E 1A  |BINARY . HEX....|
00002690: 13 4C 44 58 20 23 30 20  3B 43 4C 45 41 52 20 49  |.LDX #0 ;CLEAR I|
000026A0: 4E 44 45 58 00 C2 2E 24  13 4C 55 50 45 20 43 50  |NDEX...$.LUPE CP|
000026B0: 58 20 23 34 20 3B 44 4F  20 34 20 4E 55 4D 42 45  |X #4 ;DO 4 NUMBE|
000026C0: 52 53 00 CE 2E 2E 13 42  45 51 20 46 49 4E 00 E9  |RS.....BEQ FIN..|
000026D0: 2E 38 13 4C 44 41 20 48  58 41 44 44 2C 58 20 3B  |.8.LDA HXADD,X ;|
000026E0: A1 20 C6 49 49 20 48 45  58 00 FE 2E 42 13 4A 53  |. .II HEX...B.JS|
000026F0: 52 20 43 48 52 4F 55 54  20 3B 99 20 49 54 00 16  |R CHROUT ;. IT..|
00002700: 2F 4C 13 49 4E 58 20 20  3B 50 4F B5 20 A4 20 82  |/L.INX  ;PO. . .|
00002710: 20 43 48 41 52 2E 00 32  2F 56 13 42 4E 45 20 4C  | CHAR..2/V.BNE L|
00002720: 55 50 45 20 3B 41 4C 57  41 59 53 20 42 52 41 4E  |UPE ;ALWAYS BRAN|
00002730: 43 48 00 47 2F 60 13 46  49 4E 20 4C 44 41 20 23  |CH.G/`.FIN LDA #|
00002740: 24 30 44 20 3B 43 52 00  56 2F 6A 13 4A 53 52 20  |$0D ;CR.V/j.JSR |
00002750: 43 48 52 4F 55 54 00 62  2F 74 13 52 54 53 20 20  |CHROUT.b/t.RTS  |
00002760: 3B 8E 00 84 2F 7E 13 3B  AC 50 52 4F 47 52 41 4D  |;.../~.;.PROGRAM|
00002770: 20 46 49 4E 49 53 48 45  44 2C 20 43 4C 45 41 4E  | FINISHED, CLEAN|
00002780: 20 55 50 AC 00 AB 2F 88  13 45 58 49 54 20 4A 53  | UP.../..EXIT JS|
00002790: 52 20 9C 43 48 4E 20 3B  52 45 53 45 54 20 96 41  |R .CHN ;RESET .A|
000027A0: 55 4C 54 20 44 45 56 49  43 45 53 00 C9 2F 92 13  |ULT DEVICES../..|
000027B0: 4C 44 41 20 23 37 20 3B  96 41 55 4C 54 20 C5 55  |LDA #7 ;.AULT .U|
000027C0: 45 20 26 20 46 49 4C 45  23 00 DD 2F 9C 13 53 54  |E & FILE#../..ST|
000027D0: 41 20 43 4B 42 59 54 20  3B 94 20 49 54 00 F1 2F  |A CKBYT ;. IT../|
000027E0: A6 13 4A 53 52 20 A0 20  3B A0 20 46 49 4C 45 20  |..JSR . ;. FILE |
000027F0: 37 00 08 30 B0 13 52 54  53 20 20 3B 42 41 43 4B  |7..0..RTS  ;BACK|
00002800: 20 A4 20 42 41 53 49 43  00 16 30 BA 13 3B AC 53  | . BASIC..0..;.S|
00002810: A4 52 41 47 45 AC 00 46  30 C4 13 48 58 41 44 44  |.RAGE..F0..HXADD|
00002820: 20 2E 42 59 54 45 20 30  2C 30 2C 30 2C 30 20 3B  | .BYTE 0,0,0,0 ;|
00002830: 34 20 42 59 54 45 53 20  A4 20 48 4F 4C 44 20 C6  |4 BYTES . HOLD .|
00002840: 49 49 20 48 45 58 00 6E  30 CE 13 4D 54 43 48 43  |II HEX.n0..MTCHC|
00002850: 4B 20 2E 42 59 54 45 20  30 2C 30 20 3B 4C 41 53  |K .BYTE 0,0 ;LAS|
00002860: 54 20 41 44 44 2E 20 A4  20 43 48 45 43 4B 00 94  |T ADD. . CHECK..|
00002870: 30 D8 13 45 4E 43 4B 20  2E 42 59 54 45 20 30 2C  |0..ENCK .BYTE 0,|
00002880: 30 20 3B 4C 41 53 54 20  41 44 44 2E 20 81 20 4D  |0 ;LAST ADD. . M|
00002890: 41 54 43 48 00 B8 30 E2  13 49 4E 46 4C 47 20 2E  |ATCH..0..INFLG .|
000028A0: 42 59 54 45 20 30 20 3B  55 53 45 52 20 41 44 44  |BYTE 0 ;USER ADD|
000028B0: 2E 20 85 20 46 4C 41 47  00 DD 30 EC 13 43 4B 42  |. . FLAG..0..CKB|
000028C0: 59 54 20 2E 42 59 54 45  20 24 30 37 20 3B 23 20  |YT .BYTE $07 ;# |
000028D0: 42 59 54 45 53 20 A4 20  4D 41 54 43 48 00 FF 30  |BYTES . MATCH..0|
000028E0: F6 13 4D 54 43 48 46 4C  47 20 2E 42 59 54 45 20  |..MTCHFLG .BYTE |
000028F0: 30 20 3B A2 20 47 52 4F  55 50 20 46 4C 41 47 00  |0 ;. GROUP FLAG.|
00002900: 23 31 00 14 48 4C 44 52  20 2E 42 59 54 45 20 30  |#1..HLDR .BYTE 0|
00002910: 2C 30 20 3B 54 45 4D 50  B0 41 52 59 20 53 A4 52  |,0 ;TEMP.ARY S.R|
00002920: 41 47 45 00 2A 31 0A 14  2E 80 00 00 00           |AGE.*1.......   |
..!.... SAVE"0:COMMON CODE.PAL",8.@.... 
8,8,8,"0:COMMON CODE,P,W.I....700.U....O
PT O8.Z...; . COMM. CODE BY JACK R. FARR
AH.....;PROGRAM . FIND IDENTICAL CODE SE
QUENCES.O.$.;IN MACHINE LANGUAGE PROGRAM
S . USE.....;AS .SIBLE SUBROUTINES....8.
;TESTED PROGRAM . BE IN MEM.Y..'.B.;ALL 
USER .S IN HEX..A.L.;SCREEN . .ER OUTPUT
..].V.;SPACE BAR PAUSES .ING..N.`.; . C.
S.TS ....J.CHRIN . $FFCF ;. MULT. CHAR..
...T.CHROUT . $FFD2 ;. . DEVICE.M.~..IN 
. $FFE4 ;. .GLE CHAR......STADD . $FB ;S
TART ADDRESS.....CKADD . $FD ;CHECK ADDR
ESS.+...SETLFS . $FFBA ;SET .. FILE.I...
SETNAM . $FFBD ;NAME FILE._.... . $FFC0 
;. FILE.U...  . $FFC3 ;  FILE...D.CHKOUT
 . $FFC9 ;SET OUTPUT FILE...N..CHN . $FF
CC ;. .AULTS.F.X...$0801 ;2049......W.D 
TWOBRK ;.WARD PO.ER......BYTE 10,0 ;LINE
 NUMBER. ....BYTE $9E ;"SYS" KEYW.D .KEN
.9....F "2061" ;. ADDRESS.A...BRK.S...TW
OBRK .W.D 0.N...LDA #147 ;CLEAR SCREEN.}
.(.JSR CHROUT...2.BEGIN LDX #0...<.STX I
NFLG ;CLEAR FLAGS...F.STX MTCHFLG.U.P.;.
. USER START ADDRESS....Z.TITL LDA TITLE
,X ;. PROG. NAME...D.BEQ START ;. START 
ADD....N.JSR CHROUT ;. MESSAGE.6.X.INX.C
...BNE TITL._...START LDX #0 ;SET INDEX.
X...JSR CR. ;BLINK CURS.... .JSR . ;. AD
DRESS.....CHECK CPX #5 ;">4 CHARACTERS?.
H...BCS ERR. ;.LY WANT 4.....CK1 DEX  ;R
ESET . CR COUNTED...H.CPX #255 ;.LY AFTE
R 4...R.BEQ C.VERT ;MAKE BINARY.:...LDA 
HXADD,X ;. HEX FII.R...JSR EE ;CHECK . E
ID.L...BCC CK1 ;OK.. . CHAR......;.ERR. 
MESSAGE LOOP......ERR. LDA #$0D ;CR.....
JSR CHROUT.G...JSR CROF ;TURN OFF CURS..
R.".LDX #0...,.ER1 LDA ERMESS,X ;. ERR. 
MESSAGE...6.BEQ BEGIN ;START OVER. .@.JS
R CHROUT.(.J.INX.4.T.BNE ER1.Y.^.;.CHANG
E FII HEX . BINARY & S.RE.V.H.C.VERT LDX
 #0 ;SET INDEX...R.JSR CROF ;UNBLINK CUR
S....|.LOOP LDA HXADD,X ;. FII.I...JSR M
AKBI ;MAKE BINARY.....ASL  ;SH.T EUE .O.
....ASL  ;HIGH NYBBLE .ITI......ASL.....
ASL.!...STA HXADD,X ;. IT.7.B.INX  ;RAIS
E INDEX.P.L.LDA HXADD,X ;. . FII.K.V.JSR
 MAKBI ;MAKE BINARY.....CPX #3 ;"4TH CHA
RACTER?.....BEQ OVER ;YES. FINISH HERE..
...CLC  ;NO.T...ADC HXADD ;ADD . HIGH NY
BBLE.....STA HXADD ;. COMBINED EUE.....I
NX  ;RAISE INDEX.$...BNE LOOP ;ALWAYS BR
ANCH.E.&.OVER CLC  ;ADD LOW NYBBLE OF.F.
0.ADC HXADD.2 ;LOW BYTE . HIGH.~.:.STA H
XADD.2 ;. . IT...D.. LDA INFLG ;"DONE EN
D ADDRESS?...N.BNE OUTPUT ;YES.FLAG SET.
..X.LDA HXADD ;NO.. START ADD....B.STA S
TADD.1 ;. ZERO PAGE...L.LDA HXADD.2...V.
STA STADD.*...LDA #$0D ;CR.9...JSR CHROU
T.Q...STA INFLG ;SET FLAG.I...;.. USER .
 ADDRESS......LDX #0 ;CLEAR INDEX......1
 LDA .MESS,X ;. MESSAGE.....BEQ ....F.JS
R CHROUT...P.INX.K.Z.BNE .1...... LDX #0
 ;CLEAR . CHAR. COUNT.....JSR CR. ;BLINK
 CURS......JSR . ;. THE ADDRESS.A...JMP 
CHECK ;CHECK &MAKE BINARY.G...OUTPUT LDA
 HXADD ;. BINARY . ADD......STA ENCK.1 ;
. S.RE IN ZERO PAGE... .LDA HXADD.2...*.
STA ENCK...4.LDA #$0D ;CR.H.>.JSR CHROUT
...H.;.. OUTPUT DESTINATI. FROM USER....
R.LDX #0...\.OUT1 LDA OUTMESS,X ;. MESSA
GE.&.F.BEQ .IT.5.P.JSR CHROUT.=.Z.INX.J.
..BNE OUT1.G....IT JSR .IN ;. 'S' . 'P'.
|...BEQ .IT ;. . KEY.....CMP #80 ;"P?...
..BEQ . ;YES. . .ER.....CMP #83 ;"NO. S?
.U...BNE .IT ;NO.K BACK . KEY...J.BEQ BY
TE ;SCREEN OUTPUT...T.. JSR PROUT ;. .ER
 FILE.+...;.. BYTE LGTH. FROM USER..;...
BYTE LDX #0._...BYTLUP LDA BYTMESS,X ;. 
MESSAGE.M...BEQ GTBYT.|...JSR CHROUT....
.INX.....BNE BYTLUP...$.ERJMP JMP ERR. ;
OUT OF RANGE AVOIDER.....GTBYT JSR CR. ;
BLINK CURS....8.GT2 JSR .IN ;. KEY...B.B
EQ GT2 ;. . KEY...L.CMP #$0D ;"CR?.7.V.B
EQ SET. ;.AULT SELECTED.S.`.JSR CHROUT ;
. EUE. . IT.K.J.JSR EE ;CHECK RANGE...T.
JSR MAKBI ;MAKE BINARY...~.ASL  ;SH.T . 
HI NYBBLE.....ASL.....ASL.....ASL.L...ST
A HLDR ;. IT.....GT1 JSR .IN ;. SEC.D CH
AR......BEQ GT1 ;. . IT...D.JSR CHROUT ;
. IIT.-.N.JSR EE ;CHECK RANGE.H.X.JSR MA
KBI ;MAKE BINARY.B...CLC  ;ADD . HI NYBB
LE.O...ADC HLDR.....CMP #2 ;">1?.....BCC
 ERJMP ;.2 . ALLOWED.....STA CKBYT ;S.RE
 . EUE.G...LDA #$0D ;CR.V...JSR CHROUT..
.(.;.CALCULATE . ADDRESSES....2.SET. JSR
 CROF ;UNBLINK CURS..%.<.LDA #$0D ;CR.4.
F.JSR CHROUT.S.P.LDA CKBYT ;. LGTH. . CH
ECK.[.Z.SEC.R.D.SBC #2 ;SUBTRACT 2...N.S
TA HLDR ;TEMP.ARY ....X.LDA ENCK ;LOW BY
TE . ADD......SEC.L...SBC HLDR ;SUBTRACT
 EUE.....STA ENCK ;. . EUE... .BCC SUBHI
 ;REDUCE HI BYTE.....SET1 LDA ENCK ;. . 
. ADD..&...SEC.H...SBC CKBYT ;SUBTRACT B
YTE LGTH.G.H.STA MTCHCK ;. AS CHECK EUE.
..R.BCC SUB2 ;REDUCE HI BYTE.....LDA ENC
K.1 ;. HI BYTE . ..H...SET2 STA MTCHCK.1
 ;MAKE SAME HERE.....SET3 LDA STADD ;STA
RT ADD. LOW BYTE.....CLC.....ADC CKBYT ;
ADD BYTE LGTH.0...STA CKADD ;CHECK PO.ER
.I...LDA STADD.1 ;HI BYTE._.".ADC #0 ;AD
D CARRY.}.,.STA CKADD.1 ;PUT IN PO.ER...
6.JMP MAIN ;START MAIN LOOP...@.SUBHI DE
C ENCK.1...J.JMP SET1.Q.T.SUB2 LDA ENCK.
1...^.SBC #1...H.JMP SET2...R.;.MAIN PRO
GAM LOOP..'.|.MAIN LDY #0 ;CLEAR . IND.A
DD.MODE.I...LDA (STADD),Y ;. EUE AT STAR
T.F...CMP (CKADD),Y ;. . CHECK.....BEQ K
TMTCH ;THEY MATCH.CHECK M.E......MA1 CLC
  ;NO MATCH.E...LDA CKADD ;ADD 1 . CHECK
 ADD..P...ADC #1...B.STA CKADD ;S.RE BAC
K...L.LDA CKADD.1 ;FIX HIGH BYTE...V.ADC
 #0.)...STA CKADD.1 ;S.RE.H...LDA CKADD 
;HAVE WE REACHED.N...CMP ENCK ;"END OF P
OSSIBLE BYTES?.....BNE MAIN ;NO.START . 
SERIES.....LDA CKADD.1 ;LO BYTES MATCHED
.P...CMP ENCK.1 ;"HI BYTES SAME?.....BNE
 MAIN ;NO..INUE...&.CLC  ;D.E WITH THIS 
SERIES.&.0.LDA STADD ;MOVE START PO.ER.C
.:.ADC #1 ;. . HIGHEST BYTE.Z.D.STA STAD
D ;S.RE IT.W.N.LDA STADD.1 ;FIX HI BYTE.
..X.ADC #0...B.STA STADD.1...L.LDX #0 ;C
LEAR FLAG . SHOW ..Z.V.STX MTCHFLG ;ROUT
INE THIS IS . ADD......LDA STADD ;COMPAR
E START ADD..%...CMP MTCHCK ;WITH LAST C
HECKABLE BYTE.B...BNE . ;NO MATCH LOW BY
TE.A...LDA STADD.1 ;CHECK HI BYTE.R...CM
P MTCHCK.1.....BNE . ;NO MATCH.....JMP E
XIT ;ALL D.E,   UP.G.F.. JMP SET3 ;OUT O
F RANGE AVOIDER...P.;.CHECK .AINING BYTE
S FOR MATCH*...Z.KTMTCH LDX #0 ;CLEAR IN
DICES.....LDY #0.=...LUP INX  ;X COUNTS 
BYTES MATCHED.Z...CPX CKBYT ;"CHECKED AL
L?.R...BEQ PRNT ;YES.. 'EM.....INY  ;NO.
INDEX . . BYTE.....LDA (STADD),Y ;. . FR
OM START.T. .CMP (CKADD),Y ;CHECK . EQUA
LITY...*.BEQ LUP ;MATCHES.. A.HER...4.JM
P MA1 ;NO MATCH.MOVE UP A BYTE.4.>.;.HER
E . ALL BYTES MATCH.._.H.PRNT LDA MTCHFL
G ;"PRINTED THIS STADD?.Y.R.BEQ PRST ;NO
, SO . IT...\.PRNT1 JSR . ;CHECK . SPACE
 BAR...F.LDA #32 ;INDENT 2 SPACES.H.P.JS
R CHROUT.W.Z.JSR CHROUT.....LDA #36 ;$..
...JSR CHROUT.. ..LDY #0 ;SET UP. . 2 BY
TES." ..MR2 CPY #2.. ..BEQ MR1.X ..LDA C
KADD,Y ;. ADD. OF MATCHING BYTES.X ..STA
 HLDR,Y ;S.RE . C.VERSI... J.INY  ;. 2ND
 BYTE.. T.BNE MR2 ;ALWAYS BRANCH.L ..MR1
 JSR PRNTHX ;C.VERT . . ADD... ..JMP MA1
 ;RESET CKADD . LOOP AGAIN..!..;.. START
 ADDRESS MATCHED..'!..PRST LDA #$0D ;CR.
6!..JSR CHROUT.E!..LDA #36 ;$.T!..JSR CH
ROUT.P!$.LDY #0 ;SET . . 2 BYTES.!..PR2
 CPY #2..!8.BEQ PR1..!B.LDA STADD,Y ;. 1
ST BYTE.D!L.STA HLDR,Y ;. . C.VERSI...!V
.INY  ;SET . . BYTE..!`.BNE PR2.."J.PR1 
JSR PRNTHX ;C.VERT . ..""T.LDA #1 ;SET F
LAG . SHOW.A"~.STA MTCHFLG ;STADD WAS .E
D.Z"..JMP PRNT1 ;K . CKADD.F"..;.TEXT...
"..TITLE .BYTE $20,$20,$20,$12.."...F "C
OMMON CODE" :.BYTE $92,$0D,$0D.."...F "S
TART ADDRESS IN HEX ": .BYTE $0D,$00..#.
.ERMESS .F "INPUT ERROR":.BYTE $0D,$00.7
#D..MESS .F "END ADDRESS IN HEX ":.BYTE 
$0D,$00.^#N.OUTMESS .F "OUTPUT TO ": .BY
TE $12.T#X..F "S": .BYTE $92..#...F "CRE
EN OR ":.BYTE $12..#...F "P": .BYTE $92.
F#...F "RINTER" :.BYTE $0D,$00..$..BYTME
SS .F "BYTE LENGTH IN HEX":.BYTE $0D,$37
,$9D,$00..$..;.SUBROUTINES..-$... JSR CH
RIN ;. USER ..@$..CMP #$0D ;"CR?.^$(.BEQ
 D.E ;YES.EXIT ROUTINE.~$2.STA HXADD,X ;
S.RE FII CHAR...$<.INX  ;RAISE IDEX . ..
.$F.BNE . ;K . IT..$P.D.E RTS.X$Z.;.MAKE
 1 BYTE FII IN A BINARY...$D.MAKBI CMP #
58 ;"=>9?..%N.BCS . ;YES, ITS A .TER.(%X
.SEC  ;NO SO SUBTRACT 48.E%..SBC #48 ;. 
EQUIV. NUMBER.Q%..RTS  ;..E%... SEC  ;. 
A . F.~% .SBC #55 ;SUBTRACT 55..%..RTS..
%..;.CHECK . EID HEX FII...%..EE CMP #71
 ;"=>G?.P%H.BCS BAD ;YES, NO KOD..%R.CMP
 #65 ;"ITS < G.IS IT =>A?..&..BCS KOD ;Y
ES, ITS EID.+&..CMP #58 ;"ITS <A.IS IT =
>:?.C&..BCS BAD ;YES.NO KOD.^&..CMP #48 
;"<:.IS IT <0?.W&..BCC BAD ;YES. NO KOD.
.&..KOD CLC  ;RANGE OK...&..RTS  ;BACK .
 CALLER.B&".BAD PLA  ;INEID.PULL ...&,.P
LA  ;ADD. FROM STACK..&6.JMP ERR. ;USER 
RESTART..'@.;.SET UP .ER FILE..''J.PROUT
 LDA #7 ;FILE #.:'T.LDX #4 ;DEVICE.Z'^.L
DY #$FF ;BOGUS SEC.D. ADD..X'H.JSR SETLF
S ;.INE THE FILE..'R.LDA #00 ;NO NAME, N
O CGTH..'|.JSR SETNAM ;REQUIRED CALL.H'.
.JSR . ;. FILE 7..'..LDX #7 ;SET FILE 7 
. OUTPUT..'..JSR CHKOUT..(..RTS  ;BACK .
 CALLER.3(..;.CHECK.ACCEPT SPACE BAR PAU
SE..S(... LDA #0 ;CLEAR FLAG . SHOW.O(B.
STA INFLG ;WE'RE . .ING..(L.WA2 LDA $CB 
;CURRENT KEY PRESSED..(V.CMP #64 ;64.NO 
KEY.J(..BEQ K. ;NO KEY, .HING . DO..(..C
MP #60 ;"SPACE BAR?..(..BNE K. ;NO, SO I
GN.E..)..LDA INFLG ;WAS SPACE BAR..6)..B
NE G1 ;. SET,. IS OVER.S)..WA1 LDA $CB ;
START THE ..T)..CMP #64 ;. SPACE BAR REL
EASE..)&.BNE WA1 ;KEEP .ING..)0.LDA #1 ;
SET FLAG . SHOW.J):.STA INFLG ;WE'RE LOO
KING . 2ND..)D.JMP WA2 ;HIT OF SPACE BAR
..*N.K. LDA INFLG ;. FLAG SET..*X.BNE WA
2 ;KEEP LOOKING.8*B.G1 RTS  ;THE .S OVER
.Q*L.;.START CURS. BLINK..Q*V.CR. LDA #0
 ;CLEAR THIS BYTE..*..STA $CC ;. START B
LINK..*..RTS..*..;.. CURS. BLINK..E*..CR
OF LDA #1 ;SET BYTE ..Z*..STA $CC ;. BLI
NK..*..RTS..+..;.2 BYTE BINARY . 4 BYTE 
FII HEX..)+F.MAKHX LDX #1 ;X SET . . BYT
E.C+P.LDY #0 ;Y SET . . FII.H+Z.HX3 LDA 
HLDR,X ;. BYTE(HI FIRST)..+... #$F0 ;MAS
K LOW NYBBLE..+..LSR  ;SH.T HI NYBBLE . 
LOW..+..LSR..+..LSR..+..LSR.S+..HX1 CMP 
#10 ;"=>10?..+ .BCS ADM. ;YES, MAKE .TER
..,*.CLC  ;NO.NUMBER..,4.ADC #48 ;ADD 48
 . FII.;,>.HX2 STA HXADD,Y ;S.RE IT.S,H.
INY  ;RAISE COUNTER.P,R.CPY #3 ;"DONE 3 
NYBBLES?..,\.BEQ SKIP ;YES,DO 4TH..,F.BC
S DUN ;Y.3.WE'RE D.E.B,P.CPX #0 ;"Y<3.HI
BYTE DONE?..,Z.BEQ NXTBYT ;YES.DO LOW..-
..LDA HLDR,X ;NO.. LO NYB,HI BYTE. -..HX
4 . #$0F ;MASK HI NYBBLE.8-..DEX  ;LOWER
 COUNTER.N-..JMP HX1 ;MAKE FII.P-..ADM. 
CLC  ;C.VERT BINARY .TER..-..ADC #55 ;. 
FII BY..-..JMP HX2 ;ADDING 55.F-J.SKIP L
DA HLDR,X ;. LO BYTE LAST TIME..-T.JMP H
X4 ;DO LO NYBBLE.....NXTBYT LDY #2 ;RESE
T INDICES FO.!...LDX #0 ;2ND ADDRESS BYT
E.9...JMP HX3 ;LOOP AGAIN.I...DUN RTS  ;
..I...;.. HEX ADD.S.RED IN HXADD......PR
NTHX JSR MAKHX ;BINARY . HEX.....LDX #0 
;CLEAR INDEX.B.$.LUPE CPX #4 ;DO 4 NUMBE
RS.N...BEQ FIN...8.LDA HXADD,X ;. FII HE
X...B.JSR CHROUT ;. IT../L.INX  ;PO. . .
 CHAR..2/V.BNE LUPE ;ALWAYS BRANCH.G/`.F
IN LDA #$0D ;CR.V/J.JSR CHROUT.B/T.RTS  
;.../~.;.PROGRAM FINISHED, CLEAN UP.../.
.EXIT JSR .CHN ;RESET .AULT DEVICES.I/..
LDA #7 ;.AULT EUE & FILE#../..STA CKBYT 
;. IT../..JSR   ;  FILE 7..0..RTS  ;BACK
 . BASIC..0..;.S.RAGE..F0D.HXADD .BYTE 0
,0,0,0 ;4 BYTES . HOLD FII HEX.N0N.MTCHC
K .BYTE 0,0 ;LAST ADD. . CHECK..0X.ENCK 
.BYTE 0,0 ;LAST ADD. . MATCH..0..INFLG .
BYTE 0 ;USER ADD. . FLAG..0..CKBYT .BYTE
 $07 ;# BYTES . MATCH..0..MTCHFLG .BYTE 
0 ;. GROUP FLAG.#1..HLDR .BYTE 0,0 ;TEMP
.ARY S.RAGE.*1.......
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL