TEXTSCAN CP/M
FILE INFORMATION
FILENAME(S): TEXTSCAN CP/M
FILE TYPE(S): SEQ
FILE SIZE: 20.9K
FIRST SEEN: 2025-11-30 21:12:53
APPEARS ON: 1 disk(s)
FILE HASH
c914efefee895d4cee8ae1d2dbf38614048db95f84cc9711a45f6c9423a18617
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| TRANSACTOR DISK | TEXTSCAN CP/M | SEQ | DuncanTwain | 5 | 1 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 3B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |;---------------| 00000010: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000020: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000030: 2D 2D 0D 3B 20 22 D4 C5 D8 D4 20 D3 C3 C1 CE 22 |--.; ".... ...."| 00000040: 20 C6 CF D2 20 C3 D0 2F CD 2B 20 CF CE 20 D4 C8 | ... ../.+ .. ..| 00000050: C5 20 C3 31 32 38 0D 3B 20 C1 55 42 52 45 59 20 |. .128.; .UBREY | 00000060: D3 54 41 4E 4C 45 59 2C 20 CE 4F 56 20 31 39 38 |.TANLEY, .OV 198| 00000070: 36 0D 3B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |6.;-------------| 00000080: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000090: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 000000A0: 2D 2D 2D 2D 0D 3B 0D 20 20 20 20 20 20 20 20 4D |----.;. M| 000000B0: 41 43 4C 49 42 20 20 5A 38 30 20 20 20 20 20 3B |ACLIB Z80 ;| 000000C0: DA 38 30 20 4D 41 43 52 4F 20 4C 49 42 52 41 52 |.80 MACRO LIBRAR| 000000D0: 59 0D 20 20 20 20 20 20 20 20 4F 52 47 20 20 20 |Y. ORG | 000000E0: 20 20 31 30 30 48 20 20 20 20 3B D3 54 41 52 54 | 100H ;.TART| 000000F0: 20 41 44 44 52 45 53 53 0D 3B 20 C3 D0 2F CD 20 | ADDRESS.; ../. | 00000100: C6 55 4E 43 54 49 4F 4E 53 0D 42 4F 4F 54 20 20 |.UNCTIONS.BOOT | 00000110: 20 20 45 51 55 20 20 20 20 20 30 20 20 20 20 20 | EQU 0 | 00000120: 20 20 3B D7 41 52 4D 20 53 54 41 52 54 0D 42 44 | ;.ARM START.BD| 00000130: 4F 53 20 20 20 20 45 51 55 20 20 20 20 20 35 20 |OS EQU 5 | 00000140: 20 20 20 20 20 20 3B C3 D0 2F CD 20 C6 55 4E 43 | ;../. .UNC| 00000150: 54 49 4F 4E 20 D6 45 43 54 4F 52 0D 44 43 49 4F |TION .ECTOR.DCIO| 00000160: 46 20 20 20 45 51 55 20 20 20 20 20 36 20 20 20 |F EQU 6 | 00000170: 20 20 20 20 3B C4 49 52 45 43 54 20 43 4F 4E 53 | ;.IRECT CONS| 00000180: 4F 4C 45 0D 50 52 49 4E 54 46 20 20 45 51 55 20 |OLE.PRINTF EQU | 00000190: 20 20 20 20 39 20 20 20 20 20 20 20 3B D0 52 49 | 9 ;.RI| 000001A0: 4E 54 20 53 54 52 49 4E 47 0D 43 4F 4E 49 4E 46 |NT STRING.CONINF| 000001B0: 20 20 45 51 55 20 20 20 20 20 31 30 20 20 20 20 | EQU 10 | 000001C0: 20 20 3B D2 45 41 44 20 43 4F 4E 53 4F 4C 45 20 | ;.EAD CONSOLE | 000001D0: 42 55 46 46 45 52 0D 4F 50 45 4E 46 20 20 20 45 |BUFFER.OPENF E| 000001E0: 51 55 20 20 20 20 20 31 35 20 20 20 20 20 20 3B |QU 15 ;| 000001F0: CF 50 45 4E 20 46 49 4C 45 0D 43 4C 4F 53 45 46 |.PEN FILE.CLOSEF| 00000200: 20 20 45 51 55 20 20 20 20 20 31 36 20 20 20 20 | EQU 16 | 00000210: 20 20 3B C3 4C 4F 53 45 20 46 49 4C 45 0D 52 45 | ;.LOSE FILE.RE| 00000220: 41 44 46 20 20 20 45 51 55 20 20 20 20 20 32 30 |ADF EQU 20| 00000230: 20 20 20 20 20 20 3B D2 45 41 44 20 53 45 51 55 | ;.EAD SEQU| 00000240: 45 4E 54 49 41 4C 0D 53 44 4D 41 46 20 20 20 45 |ENTIAL.SDMAF E| 00000250: 51 55 20 20 20 20 20 32 36 20 20 20 20 20 20 3B |QU 26 ;| 00000260: D3 45 54 20 C4 CD C1 20 41 44 44 52 45 53 53 0D |.ET ... ADDRESS.| 00000270: 4D 53 45 43 46 20 20 20 45 51 55 20 20 20 20 20 |MSECF EQU | 00000280: 34 34 20 20 20 20 20 20 3B CD 55 4C 54 49 2D 53 |44 ;.ULTI-S| 00000290: 45 43 54 4F 52 20 C9 2F CF 0D 53 43 4F 4E 4D 20 |ECTOR ./..SCONM | 000002A0: 20 20 45 51 55 20 20 20 20 20 31 30 39 20 20 20 | EQU 109 | 000002B0: 20 20 3B D3 45 54 20 43 4F 4E 53 4F 4C 45 20 4D | ;.ET CONSOLE M| 000002C0: 4F 44 45 0D 53 44 4C 4D 46 20 20 20 45 51 55 20 |ODE.SDLMF EQU | 000002D0: 20 20 20 20 31 31 30 20 20 20 20 20 3B D3 45 54 | 110 ;.ET| 000002E0: 20 4F 55 54 50 55 54 20 44 45 4C 49 4D 49 54 45 | OUTPUT DELIMITE| 000002F0: 52 0D 3B 0D 3B 20 C6 49 4C 45 20 C3 4F 4E 54 52 |R.;.; .ILE .ONTR| 00000300: 4F 4C 20 C2 4C 4F 43 4B 0D 46 43 42 20 20 20 20 |OL .LOCK.FCB | 00000310: 20 45 51 55 20 20 20 20 20 35 43 48 0D 46 43 42 | EQU 5CH.FCB| 00000320: 45 58 20 20 20 45 51 55 20 20 20 20 20 46 43 42 |EX EQU FCB| 00000330: 2B 31 32 0D 46 43 42 43 52 20 20 20 45 51 55 20 |+12.FCBCR EQU | 00000340: 20 20 20 20 46 43 42 2B 33 32 0D 3B 0D 3B 20 C3 | FCB+32.;.; .| 00000350: 4F 4E 53 4F 4C 45 20 C2 55 46 46 45 52 20 46 4F |ONSOLE .UFFER FO| 00000360: 52 20 C6 49 4E 44 20 53 54 52 49 4E 47 0D 44 4D |R .IND STRING.DM| 00000370: 41 42 55 46 20 20 45 51 55 20 20 20 20 20 38 30 |ABUF EQU 80| 00000380: 48 0D 4D 58 20 20 20 20 20 20 45 51 55 20 20 20 |H.MX EQU | 00000390: 20 20 44 4D 41 42 55 46 20 20 3B CD 41 58 20 43 | DMABUF ;.AX C| 000003A0: 48 41 52 53 0D 4E 43 20 20 20 20 20 20 45 51 55 |HARS.NC EQU| 000003B0: 20 20 20 20 20 4D 58 2B 31 20 20 20 20 3B CE 55 | MX+1 ;.U| 000003C0: 4D 20 43 48 41 52 53 0D 52 43 48 41 52 20 20 20 |M CHARS.RCHAR | 000003D0: 45 51 55 20 20 20 20 20 4E 43 2B 31 20 20 20 20 |EQU NC+1 | 000003E0: 3B C3 48 41 52 20 53 54 52 49 4E 47 0D 3B 0D 3B |;.HAR STRING.;.;| 000003F0: 20 C3 48 41 52 41 43 54 45 52 20 45 51 55 41 54 | .HARACTER EQUAT| 00000400: 45 53 0D 52 41 57 49 4E 50 20 20 45 51 55 20 20 |ES.RAWINP EQU | 00000410: 20 20 20 30 41 48 20 20 20 20 20 3B D2 41 57 20 | 0AH ;.AW | 00000420: 49 4E 50 55 54 20 4D 4F 44 45 0D 45 4F 4D 43 20 |INPUT MODE.EOMC | 00000430: 20 20 20 45 51 55 20 20 20 20 20 31 41 48 20 20 | EQU 1AH | 00000440: 20 20 20 3B C5 4E 44 20 4F 46 20 46 49 4C 45 0D | ;.ND OF FILE.| 00000450: 43 52 20 20 20 20 20 20 45 51 55 20 20 20 20 20 |CR EQU | 00000460: 30 44 48 20 20 20 20 20 3B C3 41 52 52 49 41 47 |0DH ;.ARRIAG| 00000470: 45 20 52 45 54 0D 4C 46 20 20 20 20 20 20 45 51 |E RET.LF EQ| 00000480: 55 20 20 20 20 20 30 41 48 20 20 20 20 20 3B CC |U 0AH ;.| 00000490: 49 4E 45 20 46 45 45 44 0D 54 41 42 43 20 20 20 |INE FEED.TABC | 000004A0: 20 45 51 55 20 20 20 20 20 30 39 48 20 20 20 20 | EQU 09H | 000004B0: 20 3B D4 41 42 0D 42 45 4C 4C 20 20 20 20 45 51 | ;.AB.BELL EQ| 000004C0: 55 20 20 20 20 20 30 37 48 0D 3B 0D 3B 20 C4 45 |U 07H.;.; .E| 000004D0: 43 4F 44 45 44 20 56 41 4C 55 45 53 20 46 4F 52 |CODED VALUES FOR| 000004E0: 20 C3 31 32 38 20 4B 45 59 53 0D 50 45 52 49 4F | .128 KEYS.PERIO| 000004F0: 44 20 20 45 51 55 20 20 20 20 20 32 34 20 20 20 |D EQU 24 | 00000500: 20 20 20 3B 20 2E 20 4B 45 59 0D 50 4C 55 53 20 | ; . KEY.PLUS | 00000510: 20 20 20 45 51 55 20 20 20 20 20 32 38 20 20 20 | EQU 28 | 00000520: 20 20 20 3B 20 2B 0D 4D 49 4E 55 53 20 20 20 45 | ; +.MINUS E| 00000530: 51 55 20 20 20 20 20 32 37 20 20 20 20 20 20 3B |QU 27 ;| 00000540: 20 2D 0D 45 4E 44 4F 46 20 20 20 45 51 55 20 20 | -.ENDOF EQU | 00000550: 20 20 20 32 39 20 20 20 20 20 20 3B 20 C3 55 52 | 29 ; .UR| 00000560: 20 44 4F 57 4E 0D 42 47 4E 4F 46 20 20 20 45 51 | DOWN.BGNOF EQ| 00000570: 55 20 20 20 20 20 33 30 20 20 20 20 20 20 3B 20 |U 30 ; | 00000580: C3 55 52 20 55 50 0D 4E 53 43 52 4F 4C 20 20 45 |.UR UP.NSCROL E| 00000590: 51 55 20 20 20 20 20 33 32 20 20 20 20 20 20 3B |QU 32 ;| 000005A0: 20 CE 4F 20 53 43 52 4F 4C 4C 0D 4E 55 4D 42 45 | .O SCROLL.NUMBE| 000005B0: 52 20 20 45 51 55 20 20 20 20 20 33 31 20 20 20 |R EQU 31 | 000005C0: 20 20 20 3B 20 30 2D 39 0D 41 4C 54 20 20 20 20 | ; 0-9.ALT | 000005D0: 20 45 51 55 20 20 20 20 20 33 33 20 20 20 20 20 | EQU 33 | 000005E0: 20 3B 20 C1 4C 54 0D 54 41 42 20 20 20 20 20 45 | ; .LT.TAB E| 000005F0: 51 55 20 20 20 20 20 32 36 20 20 20 20 20 20 3B |QU 26 ;| 00000600: 20 D4 41 42 0D 45 4E 54 45 52 20 20 20 45 51 55 | .AB.ENTER EQU| 00000610: 20 20 20 20 20 32 35 20 20 20 20 20 20 3B 20 C5 | 25 ; .| 00000620: 4E 54 45 52 0D 48 45 4C 50 20 20 20 20 45 51 55 |NTER.HELP EQU| 00000630: 20 20 20 20 20 33 34 20 20 20 20 20 20 3B 20 C8 | 34 ; .| 00000640: 45 4C 50 0D 3B 0D 3B 20 CF 46 46 53 45 54 53 20 |ELP.;.; .FFSETS | 00000650: 46 4F 52 20 56 41 52 49 41 42 4C 45 53 20 4F 4E |FOR VARIABLES ON| 00000660: 20 54 48 45 20 C9 D8 20 52 45 47 49 53 54 45 52 | THE .. REGISTER| 00000670: 0D 53 43 52 4F 4C 59 20 20 45 51 55 20 20 20 20 |.SCROLY EQU | 00000680: 20 30 20 20 20 20 20 20 20 3B 20 D3 43 52 4F 4C | 0 ; .CROL| 00000690: 4C 20 4D 4F 44 45 20 0D 53 54 4F 50 20 20 20 20 |L MODE .STOP | 000006A0: 45 51 55 20 20 20 20 20 31 20 20 20 20 20 20 20 |EQU 1 | 000006B0: 3B 20 D3 54 4F 50 20 53 43 52 4F 4C 4C 0D 44 49 |; .TOP SCROLL.DI| 000006C0: 52 20 20 20 20 20 45 51 55 20 20 20 20 20 32 20 |R EQU 2 | 000006D0: 20 20 20 20 20 20 3B 20 C3 55 52 52 45 4E 54 20 | ; .URRENT | 000006E0: 44 49 52 45 43 54 49 4F 4E 0D 4C 4D 49 54 20 20 |DIRECTION.LMIT | 000006F0: 20 20 45 51 55 20 20 20 20 20 33 20 20 20 20 20 | EQU 3 | 00000700: 20 20 3B 20 CC 49 4D 49 54 20 52 45 41 43 48 45 | ; .IMIT REACHE| 00000710: 44 0D 4C 4E 55 4D 20 20 20 20 45 51 55 20 20 20 |D.LNUM EQU | 00000720: 20 20 34 20 20 20 20 20 20 20 3B 20 CC 49 4E 45 | 4 ; .INE| 00000730: 20 4E 55 4D 42 45 52 49 4E 47 20 4F 4E 0D 44 4F | NUMBERING ON.DO| 00000740: 55 42 4C 45 20 20 45 51 55 20 20 20 20 20 35 20 |UBLE EQU 5 | 00000750: 20 20 20 20 20 20 3B 20 C4 4F 55 42 4C 45 20 30 | ; .OUBLE 0| 00000760: 2D 39 20 56 41 4C 55 45 53 0D 43 4E 54 31 20 20 |-9 VALUES.CNT1 | 00000770: 20 20 45 51 55 20 20 20 20 20 36 20 20 20 20 20 | EQU 6 | 00000780: 20 20 3B 20 C3 55 52 52 45 4E 54 20 4E 55 4D 42 | ; .URRENT NUMB| 00000790: 45 52 20 46 4F 52 20 53 43 52 4F 4C 4C 0D 43 4E |ER FOR SCROLL.CN| 000007A0: 54 32 20 20 20 20 45 51 55 20 20 20 20 20 37 20 |T2 EQU 7 | 000007B0: 20 20 20 20 20 20 3B 20 CE 55 4D 42 45 52 20 4F | ; .UMBER O| 000007C0: 46 20 4C 49 4E 45 53 20 53 43 52 4F 4C 4C 45 44 |F LINES SCROLLED| 000007D0: 0D 43 4F 55 4E 54 20 20 20 45 51 55 20 20 20 20 |.COUNT EQU | 000007E0: 20 38 20 20 20 20 20 20 20 3B 20 C7 45 4E 45 52 | 8 ; .ENER| 000007F0: 41 4C 20 50 55 52 50 4F 53 45 0D 3B 0D 3B 2D 2D |AL PURPOSE.;.;--| 00000800: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000810: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000820: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 43 48 4B 53 55 |----------.CHKSU| 00000830: 4D 3A 20 3B C3 C8 C5 C3 CB D3 D5 CD D3 20 59 4F |M: ;......... YO| 00000840: 55 52 20 43 4F 44 45 20 2D 20 0D 20 20 20 20 20 |UR CODE - . | 00000850: 20 20 20 3B C3 41 4E 20 42 45 20 C4 C5 CC C5 D4 | ;.AN BE .....| 00000860: C5 C4 20 57 48 45 4E 20 41 4C 4C 20 49 53 20 57 |.. WHEN ALL IS W| 00000870: 45 4C 4C 0D 20 20 20 20 20 20 20 20 4C 58 49 20 |ELL. LXI | 00000880: 20 20 20 20 42 2C 50 52 4F 47 45 4E 44 2D 53 54 | B,PROGEND-ST| 00000890: 41 52 54 20 3B C3 4F 55 4E 54 20 54 4F 20 43 48 |ART ;.OUNT TO CH| 000008A0: 45 43 4B 0D 20 20 20 20 20 20 20 20 4C 58 49 59 |ECK. LXIY| 000008B0: 20 20 20 20 53 54 41 52 54 20 20 20 20 20 20 20 | START | 000008C0: 20 20 20 20 3B C6 52 4F 4D 20 53 53 54 41 52 54 | ;.ROM SSTART| 000008D0: 0D 20 20 20 20 20 20 20 20 4C 58 49 20 20 20 20 |. LXI | 000008E0: 20 48 2C 39 31 37 30 48 20 20 20 20 20 20 20 20 | H,9170H | 000008F0: 20 3B C3 48 45 43 4B 53 55 4D 20 45 58 43 45 53 | ;.HECKSUM EXCES| 00000900: 53 0D 20 20 20 20 20 20 20 20 4D 56 49 20 20 20 |S. MVI | 00000910: 20 20 44 2C 30 0D 43 48 4B 53 3A 20 20 20 4C 44 | D,0.CHKS: LD| 00000920: 59 20 20 20 20 20 45 2C 30 20 20 20 20 20 20 20 |Y E,0 | 00000930: 20 20 20 20 20 20 3B C3 48 45 43 4B 20 4C 4F 4F | ;.HECK LOO| 00000940: 50 0D 20 20 20 20 20 20 20 20 44 41 44 20 20 20 |P. DAD | 00000950: 20 20 44 20 20 20 20 20 20 20 20 20 20 20 20 20 | D | 00000960: 20 20 3B 2E 2E 2E 41 44 44 53 20 42 59 54 45 53 | ;...ADDS BYTES| 00000970: 0D 20 20 20 20 20 20 20 20 49 4E 58 49 59 0D 20 |. INXIY. | 00000980: 20 20 20 20 20 20 20 44 43 58 20 20 20 20 20 42 | DCX B| 00000990: 0D 20 20 20 20 20 20 20 20 4D 4F 56 20 20 20 20 |. MOV | 000009A0: 20 41 2C 42 0D 20 20 20 20 20 20 20 20 4F 52 41 | A,B. ORA| 000009B0: 20 20 20 20 20 43 0D 20 20 20 20 20 20 20 20 4A | C. J| 000009C0: 52 4E 5A 20 20 20 20 43 48 4B 53 0D 20 20 20 20 |RNZ CHKS. | 000009D0: 20 20 20 20 4D 4F 56 20 20 20 20 20 41 2C 4C 20 | MOV A,L | 000009E0: 20 20 20 20 20 20 20 20 20 20 20 20 3B D3 48 4F | ;.HO| 000009F0: 55 4C 44 0D 20 20 20 20 20 20 20 20 4F 52 41 20 |ULD. ORA | 00000A00: 20 20 20 20 48 20 20 20 20 20 20 20 20 20 20 20 | H | 00000A10: 20 20 20 20 3B 2E 2E 2E 42 45 20 30 0D 20 20 20 | ;...BE 0. | 00000A20: 20 20 20 20 20 4A 52 5A 20 20 20 20 20 53 54 41 | JRZ STA| 00000A30: 52 54 20 20 20 20 20 20 20 20 20 20 20 3B C7 4F |RT ;.O| 00000A40: 4F 44 20 43 4F 44 45 0D 20 20 20 20 20 20 20 20 |OD CODE. | 00000A50: 4D 56 49 20 20 20 20 20 43 2C 44 43 49 4F 46 20 |MVI C,DCIOF | 00000A60: 20 20 20 20 20 20 20 20 3B C2 41 44 20 43 4F 44 | ;.AD COD| 00000A70: 45 0D 20 20 20 20 20 20 20 20 4C 58 49 20 20 20 |E. LXI | 00000A80: 20 20 44 2C 27 3F 27 20 20 20 20 20 20 20 20 20 | D,'?' | 00000A90: 20 20 3B 2E 2E 2E 50 52 49 4E 54 20 3F 0D 20 20 | ;...PRINT ?. | 00000AA0: 20 20 20 20 20 20 43 41 4C 4C 20 20 20 20 42 44 | CALL BD| 00000AB0: 4F 53 20 20 20 20 20 20 20 20 20 20 20 20 3B 2E |OS ;.| 00000AC0: 2E 2E 41 4E 44 0D 20 20 20 20 20 20 20 20 52 45 |..AND. RE| 00000AD0: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |T | 00000AE0: 20 20 20 20 20 20 3B 2E 2E 2E 45 58 49 54 0D 3B | ;...EXIT.;| 00000AF0: C5 CE C4 20 CF C6 20 C3 C8 C5 C3 CB D3 D5 CD 20 |... .. ........ | 00000B00: C3 CF C4 C5 20 2D 0D 3B 2D 2D 2D 2D 2D 2D 2D 2D |.... -.;--------| 00000B10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000B20: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000B30: 2D 2D 2D 2D 2D 2D 2D 0D 3B 0D 53 54 41 52 54 3A |-------.;.START:| 00000B40: 20 20 3B D3 45 54 20 53 54 41 43 4B 20 41 4E 44 | ;.ET STACK AND| 00000B50: 20 4F 50 45 4E 20 46 49 4C 45 0D 20 20 20 20 20 | OPEN FILE. | 00000B60: 20 20 20 53 53 50 44 20 20 20 20 4F 4C 44 53 50 | SSPD OLDSP| 00000B70: 0D 20 20 20 20 20 20 20 20 4C 58 49 20 20 20 20 |. LXI | 00000B80: 20 53 50 2C 53 54 4B 54 4F 50 0D 20 20 20 20 20 | SP,STKTOP. | 00000B90: 20 20 20 58 52 41 20 20 20 20 20 41 20 20 20 20 | XRA A | 00000BA0: 20 20 20 20 20 20 20 20 20 20 20 3B C9 4E 49 54 | ;.NIT| 00000BB0: 20 46 43 42 0D 20 20 20 20 20 20 20 20 53 54 41 | FCB. STA| 00000BC0: 20 20 20 20 20 46 43 42 45 58 0D 20 20 20 20 20 | FCBEX. | 00000BD0: 20 20 20 53 54 41 20 20 20 20 20 46 43 42 43 52 | STA FCBCR| 00000BE0: 0D 20 20 20 20 20 20 20 20 4C 58 49 20 20 20 20 |. LXI | 00000BF0: 20 44 2C 46 43 42 0D 20 20 20 20 20 20 20 20 4D | D,FCB. M| 00000C00: 56 49 20 20 20 20 20 43 2C 4F 50 45 4E 46 0D 20 |VI C,OPENF. | 00000C10: 20 20 20 20 20 20 20 43 41 4C 4C 20 20 20 20 42 | CALL B| 00000C20: 44 4F 53 20 20 20 20 20 20 20 20 20 20 20 20 3B |DOS ;| 00000C30: CF 50 45 4E 0D 20 20 20 20 20 20 20 20 4F 52 41 |.PEN. ORA| 00000C40: 20 20 20 20 20 41 0D 20 20 20 20 20 20 20 20 4A | A. J| 00000C50: 52 5A 20 20 20 20 20 52 45 41 44 0D 20 20 20 20 |RZ READ. | 00000C60: 20 20 20 20 4C 58 49 20 20 20 20 20 44 2C 4F 50 | LXI D,OP| 00000C70: 4E 45 52 52 20 20 20 20 20 20 20 20 3B C2 41 44 |NERR ;.AD| 00000C80: 20 4F 50 45 4E 0D 20 20 20 20 20 20 20 20 4D 56 | OPEN. MV| 00000C90: 49 20 20 20 20 20 43 2C 50 52 49 4E 54 46 0D 20 |I C,PRINTF. | 00000CA0: 20 20 20 20 20 20 20 43 41 4C 4C 20 20 20 20 42 | CALL B| 00000CB0: 44 4F 53 0D 46 49 4E 49 53 3A 20 20 3B 52 45 53 |DOS.FINIS: ;RES| 00000CC0: 54 4F 52 45 20 53 54 41 43 4B 20 41 4E 44 20 45 |TORE STACK AND E| 00000CD0: 58 49 54 0D 20 20 20 20 20 20 20 20 4C 53 50 44 |XIT. LSPD| 00000CE0: 20 20 20 20 4F 4C 44 53 50 0D 20 20 20 20 20 20 | OLDSP. | 00000CF0: 20 20 52 45 54 0D 3B 0D 52 45 41 44 3A 20 20 20 | RET.;.READ: | 00000D00: 3B 52 45 41 44 20 46 49 4C 45 0D 20 20 20 20 20 |;READ FILE. | 00000D10: 20 20 20 4C 58 49 58 20 20 20 20 50 46 4C 41 47 | LXIX PFLAG| 00000D20: 53 20 20 20 20 20 20 20 20 20 20 3B D0 52 49 4E |S ;.RIN| 00000D30: 54 20 46 4C 41 47 53 20 42 41 53 45 0D 20 20 20 |T FLAGS BASE. | 00000D40: 20 20 20 20 20 4C 58 49 20 20 20 20 20 48 2C 30 | LXI H,0| 00000D50: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B C9 4E | ;.N| 00000D60: 49 54 20 53 45 43 54 4F 52 20 43 4F 55 4E 54 0D |IT SECTOR COUNT.| 00000D70: 20 20 20 20 20 20 20 20 53 48 4C 44 20 20 20 20 | SHLD | 00000D80: 4C 49 4E 45 0D 20 20 20 20 20 20 20 20 4D 56 49 |LINE. MVI| 00000D90: 20 20 20 20 20 45 2C 31 32 38 20 20 20 20 20 20 | E,128 | 00000DA0: 20 20 20 20 20 3B 31 32 38 20 53 45 43 54 4F 52 | ;128 SECTOR| 00000DB0: 53 20 54 4F 20 52 45 41 44 0D 20 20 20 20 20 20 |S TO READ. | 00000DC0: 20 20 53 54 58 20 20 20 20 20 45 2C 4C 4D 49 54 | STX E,LMIT| 00000DD0: 20 20 20 20 20 20 20 20 20 20 3B D3 41 56 45 20 | ;.AVE | 00000DE0: 46 4F 52 20 52 4C 4F 4F 50 0D 20 20 20 20 20 20 |FOR RLOOP. | 00000DF0: 20 20 4D 56 49 20 20 20 20 20 43 2C 4D 53 45 43 | MVI C,MSEC| 00000E00: 46 0D 20 20 20 20 20 20 20 20 43 41 4C 4C 20 20 |F. CALL | 00000E10: 20 20 42 44 4F 53 20 20 20 20 20 20 20 20 20 20 | BDOS | 00000E20: 20 20 3B D3 45 54 20 4D 55 4C 54 49 53 45 43 54 | ;.ET MULTISECT| 00000E30: 4F 52 53 0D 20 20 20 20 20 20 20 20 4D 56 49 58 |ORS. MVIX| 00000E40: 20 20 20 20 33 2C 43 4F 55 4E 54 20 20 20 20 20 | 3,COUNT | 00000E50: 20 20 20 20 3B 33 20 52 45 41 44 53 0D 20 20 20 | ;3 READS. | 00000E60: 20 20 20 20 20 4C 58 49 20 20 20 20 20 44 2C 46 | LXI D,F| 00000E70: 42 45 47 49 4E 20 20 20 20 20 20 20 20 3B D3 54 |BEGIN ;.T| 00000E80: 41 52 54 20 4F 46 20 52 45 41 44 20 41 52 45 41 |ART OF READ AREA| 00000E90: 0D 20 20 20 20 20 20 20 20 43 41 4C 4C 20 20 20 |. CALL | 00000EA0: 20 52 4C 4F 4F 50 20 20 20 20 20 20 20 20 20 20 | RLOOP | 00000EB0: 20 3B D2 45 41 44 20 55 50 20 54 4F 20 34 38 CB | ;.EAD UP TO 48.| 00000EC0: 0D 20 20 20 20 20 20 20 20 4F 52 41 20 20 20 20 |. ORA | 00000ED0: 20 41 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | A | 00000EE0: 20 3B C3 48 45 43 4B 20 45 4E 44 20 4F 46 20 46 | ;.HECK END OF F| 00000EF0: 49 4C 45 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A |ILE. JRNZ| 00000F00: 20 20 20 20 43 4C 4F 53 45 20 20 20 20 20 20 20 | CLOSE | 00000F10: 20 20 20 20 3B 2E 2E 2E 59 45 53 21 0D 20 20 20 | ;...YES!. | 00000F20: 20 20 20 20 20 50 55 53 48 20 20 20 20 44 20 20 | PUSH D | 00000F30: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B D3 41 | ;.A| 00000F40: 56 45 20 44 4D 41 20 41 44 44 52 45 53 53 0D 20 |VE DMA ADDRESS. | 00000F50: 20 20 20 20 20 20 20 4D 56 49 20 20 20 20 20 45 | MVI E| 00000F60: 2C 34 38 20 20 20 20 20 20 20 20 20 20 20 20 3B |,48 ;| 00000F70: D2 45 41 44 20 34 38 20 4D 4F 52 45 20 53 45 43 |.EAD 48 MORE SEC| 00000F80: 54 4F 52 53 0D 20 20 20 20 20 20 20 20 53 54 58 |TORS. STX| 00000F90: 20 20 20 20 20 45 2C 4C 4D 49 54 20 20 20 20 20 | E,LMIT | 00000FA0: 20 20 20 20 20 3B D3 41 56 45 20 46 4F 52 20 52 | ;.AVE FOR R| 00000FB0: 4C 4F 4F 50 0D 20 20 20 20 20 20 20 20 4D 56 49 |LOOP. MVI| 00000FC0: 20 20 20 20 20 43 2C 4D 53 45 43 46 0D 20 20 20 | C,MSECF. | 00000FD0: 20 20 20 20 20 43 41 4C 4C 20 20 20 20 42 44 4F | CALL BDO| 00000FE0: 53 20 20 20 20 20 20 20 20 20 20 20 20 3B D3 45 |S ;.E| 00000FF0: 54 20 4D 55 4C 54 49 53 45 43 54 4F 52 53 0D 20 |T MULTISECTORS. | 00001000: 20 20 20 20 20 20 20 50 4F 50 20 20 20 20 20 44 | POP D| 00001010: 0D 20 20 20 20 20 20 20 20 4D 56 49 58 20 20 20 |. MVIX | 00001020: 20 31 2C 43 4F 55 4E 54 20 20 20 20 20 20 20 20 | 1,COUNT | 00001030: 20 3B 31 20 52 45 41 44 0D 20 20 20 20 20 20 20 | ;1 READ. | 00001040: 20 43 41 4C 4C 20 20 20 20 52 4C 4F 4F 50 20 20 | CALL RLOOP | 00001050: 20 20 20 20 20 20 20 20 20 3B D2 45 41 44 20 55 | ;.EAD U| 00001060: 50 20 54 4F 20 36 CB 20 4D 4F 52 45 0D 43 4C 4F |P TO 6. MORE.CLO| 00001070: 53 45 3A 20 20 4C 58 49 20 20 20 20 20 44 2C 46 |SE: LXI D,F| 00001080: 43 42 0D 20 20 20 20 20 20 20 20 4D 56 49 20 20 |CB. MVI | 00001090: 20 20 20 43 2C 43 4C 4F 53 45 46 20 20 20 20 20 | C,CLOSEF | 000010A0: 20 20 20 3B C3 4C 4F 53 45 0D 20 20 20 20 20 20 | ;.LOSE. | 000010B0: 20 20 43 41 4C 4C 20 20 20 20 42 44 4F 53 0D 3B | CALL BDOS.;| 000010C0: 0D 42 59 54 45 53 3A 20 20 3B C3 41 4C 43 55 4C |.BYTES: ;.ALCUL| 000010D0: 41 54 45 20 54 4F 54 41 4C 20 43 48 41 52 53 0D |ATE TOTAL CHARS.| 000010E0: 20 20 20 20 20 20 20 20 4C 48 4C 44 20 20 20 20 | LHLD | 000010F0: 4C 49 4E 45 20 20 20 20 20 20 20 20 20 20 20 20 |LINE | 00001100: 3B D4 4F 54 41 4C 20 53 45 43 54 4F 52 53 0D 20 |;.OTAL SECTORS. | 00001110: 20 20 20 20 20 20 20 4D 56 49 20 20 20 20 20 42 | MVI B| 00001120: 2C 37 20 20 20 20 20 20 20 20 20 20 20 20 20 3B |,7 ;| 00001130: C3 4F 55 4E 54 0D 42 59 54 45 31 30 3A 20 44 41 |.OUNT.BYTE10: DA| 00001140: 44 20 20 20 20 20 48 20 20 20 20 20 20 20 20 20 |D H | 00001150: 20 20 20 20 20 20 3B C4 4F 55 42 4C 45 20 56 41 | ;.OUBLE VA| 00001160: 4C 55 45 0D 20 20 20 20 20 20 20 20 44 43 52 20 |LUE. DCR | 00001170: 20 20 20 20 42 20 20 20 20 20 20 20 20 20 20 20 | B | 00001180: 20 20 20 20 3B 2E 2E 2E 37 20 54 49 4D 45 53 0D | ;...7 TIMES.| 00001190: 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 20 | JRNZ | 000011A0: 42 59 54 45 31 30 0D 20 20 20 20 20 20 20 20 4C |BYTE10. L| 000011B0: 58 49 20 20 20 20 20 44 2C 46 42 45 47 49 4E 20 |XI D,FBEGIN | 000011C0: 20 20 20 20 20 20 20 3B D3 54 41 52 54 0D 20 20 | ;.TART. | 000011D0: 20 20 20 20 20 20 44 41 44 20 20 20 20 20 44 20 | DAD D | 000011E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B C5 | ;.| 000011F0: 4E 44 0D 20 20 20 20 20 20 20 20 4D 56 49 20 20 |ND. MVI | 00001200: 20 20 20 41 2C 45 4F 4D 43 0D 45 4F 4D 3A 20 20 | A,EOMC.EOM: | 00001210: 20 20 44 43 58 20 20 20 20 20 48 20 20 20 20 20 | DCX H | 00001220: 20 20 20 20 20 20 20 20 20 20 3B C6 49 4E 44 20 | ;.IND | 00001230: 4C 41 53 54 20 43 48 41 52 0D 20 20 20 20 20 20 |LAST CHAR. | 00001240: 20 20 43 4D 50 20 20 20 20 20 4D 0D 20 20 20 20 | CMP M. | 00001250: 20 20 20 20 4A 52 5A 20 20 20 20 20 45 4F 4D 0D | JRZ EOM.| 00001260: 20 20 20 20 20 20 20 20 4D 4F 56 20 20 20 20 20 | MOV | 00001270: 41 2C 4D 0D 20 20 20 20 20 20 20 20 49 4E 58 20 |A,M. INX | 00001280: 20 20 20 20 48 0D 20 20 20 20 20 20 20 20 43 50 | H. CP| 00001290: 49 20 20 20 20 20 4C 46 0D 20 20 20 20 20 20 20 |I LF. | 000012A0: 20 4A 52 5A 20 20 20 20 20 45 4F 4D 31 30 0D 20 | JRZ EOM10. | 000012B0: 20 20 20 20 20 20 20 4D 56 49 20 20 20 20 20 4D | MVI M| 000012C0: 2C 43 52 20 20 20 20 20 20 20 20 20 20 20 20 3B |,CR ;| 000012D0: C3 D2 2F CC C6 20 41 54 20 45 4E 44 0D 20 20 20 |../.. AT END. | 000012E0: 20 20 20 20 20 49 4E 58 20 20 20 20 20 48 0D 20 | INX H. | 000012F0: 20 20 20 20 20 20 20 4D 56 49 20 20 20 20 20 4D | MVI M| 00001300: 2C 4C 46 0D 20 20 20 20 20 20 20 20 49 4E 58 20 |,LF. INX | 00001310: 20 20 20 20 48 0D 45 4F 4D 31 30 3A 20 20 4D 56 | H.EOM10: MV| 00001320: 49 20 20 20 20 20 4D 2C 45 4F 4D 43 20 20 20 20 |I M,EOMC | 00001330: 20 20 20 20 20 20 3B C5 4E 44 20 4F 46 20 46 49 | ;.ND OF FI| 00001340: 4C 45 20 43 48 41 52 0D 20 20 20 20 20 20 20 20 |LE CHAR. | 00001350: 53 48 4C 44 20 20 20 20 46 45 4E 44 20 20 20 20 |SHLD FEND | 00001360: 20 20 20 20 20 20 20 20 3B C5 4E 44 20 4F 46 20 | ;.ND OF | 00001370: 46 49 4C 45 20 41 44 44 52 45 53 53 0D 20 20 20 |FILE ADDRESS. | 00001380: 20 20 20 20 20 49 4E 58 20 20 20 20 20 48 0D 20 | INX H. | 00001390: 20 20 20 20 20 20 20 53 48 4C 44 20 20 20 20 4C | SHLD L| 000013A0: 49 4E 42 55 46 20 20 20 20 20 20 20 20 20 20 3B |INBUF ;| 000013B0: CC 49 4E 45 20 42 55 46 46 45 52 20 41 44 44 52 |.INE BUFFER ADDR| 000013C0: 45 53 53 0D 20 20 20 20 20 20 20 20 4A 4D 50 20 |ESS. JMP | 000013D0: 20 20 20 20 50 52 49 4E 54 20 20 20 20 20 20 20 | PRINT | 000013E0: 20 20 20 20 3B 4F 55 54 50 55 54 20 52 4F 55 54 | ;OUTPUT ROUT| 000013F0: 49 4E 45 0D 3B 0D 52 4C 4F 4F 50 3A 20 20 3B D2 |INE.;.RLOOP: ;.| 00001400: 45 41 44 53 20 4D 55 4C 54 49 53 45 43 54 4F 52 |EADS MULTISECTOR| 00001410: 53 20 41 4E 44 20 4B 45 45 50 53 20 43 4F 55 4E |S AND KEEPS COUN| 00001420: 54 0D 20 20 20 20 20 20 20 20 50 55 53 48 20 20 |T. PUSH | 00001430: 20 20 44 20 20 20 20 20 20 20 20 20 20 20 20 20 | D | 00001440: 20 20 3B D3 41 56 45 20 44 4D 41 20 41 44 44 52 | ;.AVE DMA ADDR| 00001450: 45 53 53 0D 20 20 20 20 20 20 20 20 4D 56 49 20 |ESS. MVI | 00001460: 20 20 20 20 43 2C 53 44 4D 41 46 0D 20 20 20 20 | C,SDMAF. | 00001470: 20 20 20 20 43 41 4C 4C 20 20 20 20 42 44 4F 53 | CALL BDOS| 00001480: 20 20 20 20 20 20 20 20 20 20 20 20 3B D3 45 54 | ;.ET| 00001490: 20 44 4D 41 20 41 44 44 52 45 53 53 0D 20 20 20 | DMA ADDRESS. | 000014A0: 20 20 20 20 20 4C 58 49 20 20 20 20 20 44 2C 46 | LXI D,F| 000014B0: 43 42 0D 20 20 20 20 20 20 20 20 4D 56 49 20 20 |CB. MVI | 000014C0: 20 20 20 43 2C 52 45 41 44 46 0D 20 20 20 20 20 | C,READF. | 000014D0: 20 20 20 43 41 4C 4C 20 20 20 20 42 44 4F 53 20 | CALL BDOS | 000014E0: 20 20 20 20 20 20 20 20 20 20 20 3B D2 45 41 44 | ;.EAD| 000014F0: 20 4D 55 4C 54 49 53 45 43 54 4F 52 53 0D 20 20 | MULTISECTORS. | 00001500: 20 20 20 20 20 20 43 50 49 20 20 20 20 20 32 20 | CPI 2 | 00001510: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B C2 | ;.| 00001520: 41 44 20 45 52 52 4F 52 3F 0D 20 20 20 20 20 20 |AD ERROR?. | 00001530: 20 20 4A 52 43 20 20 20 20 20 52 4C 50 35 20 20 | JRC RLP5 | 00001540: 20 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E 4E 4F | ;...NO| 00001550: 21 0D 3B 0D 42 41 44 52 3A 20 20 20 3B C5 52 52 |!.;.BADR: ;.RR| 00001560: 4F 52 20 4F 4E 20 52 45 41 44 0D 20 20 20 20 20 |OR ON READ. | 00001570: 20 20 20 4C 58 49 20 20 20 20 20 44 2C 52 44 45 | LXI D,RDE| 00001580: 52 52 0D 20 20 20 20 20 20 20 20 4D 56 49 20 20 |RR. MVI | 00001590: 20 20 20 43 2C 50 52 49 4E 54 46 0D 20 20 20 20 | C,PRINTF. | 000015A0: 20 20 20 20 43 41 4C 4C 20 20 20 20 42 44 4F 53 | CALL BDOS| 000015B0: 0D 20 20 20 20 20 20 20 20 4C 58 49 20 20 20 20 |. LXI | 000015C0: 20 44 2C 46 43 42 0D 20 20 20 20 20 20 20 20 4D | D,FCB. M| 000015D0: 56 49 20 20 20 20 20 43 2C 43 4C 4F 53 45 46 20 |VI C,CLOSEF | 000015E0: 20 20 20 20 20 20 20 3B C3 4C 4F 53 45 0D 20 20 | ;.LOSE. | 000015F0: 20 20 20 20 20 20 43 41 4C 4C 20 20 20 20 42 44 | CALL BD| 00001600: 4F 53 0D 20 20 20 20 20 20 20 20 4A 4D 50 20 20 |OS. JMP | 00001610: 20 20 20 46 49 4E 49 53 0D 3B 0D 52 4C 50 35 3A | FINIS.;.RLP5:| 00001620: 20 20 20 4F 52 41 20 20 20 20 20 41 20 20 20 20 | ORA A | 00001630: 20 20 20 20 20 20 20 20 20 20 20 3B CD 4F 52 45 | ;.ORE| 00001640: 20 54 4F 20 52 45 41 44 3F 0D 20 20 20 20 20 20 | TO READ?. | 00001650: 20 20 4A 52 4E 5A 20 20 20 20 52 4C 50 36 20 20 | JRNZ RLP6 | 00001660: 20 20 20 20 20 20 20 20 20 20 3B CE 4F 21 0D 20 | ;.O!. | 00001670: 20 20 20 20 20 20 20 4C 44 58 20 20 20 20 20 48 | LDX H| 00001680: 2C 4C 4D 49 54 20 20 20 20 20 20 20 20 20 20 3B |,LMIT ;| 00001690: D3 54 4F 52 45 20 46 55 4C 4C 20 43 4F 55 4E 54 |.TORE FULL COUNT| 000016A0: 0D 52 4C 50 36 3A 20 20 20 4D 4F 56 20 20 20 20 |.RLP6: MOV | 000016B0: 20 45 2C 48 20 20 20 20 20 20 20 20 20 20 20 20 | E,H | 000016C0: 20 3B 23 20 53 45 43 54 4F 52 53 20 52 45 41 44 | ;# SECTORS READ| 000016D0: 0D 20 20 20 20 20 20 20 20 4D 56 49 20 20 20 20 |. MVI | 000016E0: 20 44 2C 30 0D 3B 0D 52 4C 50 31 30 3A 20 20 3B | D,0.;.RLP10: ;| 000016F0: 53 55 4D 20 54 4F 54 41 4C 20 53 45 43 54 4F 52 |SUM TOTAL SECTOR| 00001700: 53 20 53 4F 20 46 41 52 0D 20 20 20 20 20 20 20 |S SO FAR. | 00001710: 20 4C 48 4C 44 20 20 20 20 4C 49 4E 45 20 20 20 | LHLD LINE | 00001720: 20 20 20 20 20 20 20 20 20 3B C3 55 52 52 45 4E | ;.URREN| 00001730: 54 20 43 4F 55 4E 54 0D 20 20 20 20 20 20 20 20 |T COUNT. | 00001740: 44 41 44 20 20 20 20 20 44 20 20 20 20 20 20 20 |DAD D | 00001750: 20 20 20 20 20 20 20 20 3B C1 44 44 20 49 4E 20 | ;.DD IN | 00001760: 53 45 43 54 4F 52 53 20 52 45 41 44 0D 20 20 20 |SECTORS READ. | 00001770: 20 20 20 20 20 53 48 4C 44 20 20 20 20 4C 49 4E | SHLD LIN| 00001780: 45 0D 20 20 20 20 20 20 20 20 50 4F 50 20 20 20 |E. POP | 00001790: 20 20 44 0D 20 20 20 20 20 20 20 20 43 50 49 20 | D. CPI | 000017A0: 20 20 20 20 31 20 20 20 20 20 20 20 20 20 20 20 | 1 | 000017B0: 20 20 20 20 3B C5 4E 44 20 4F 46 20 46 49 4C 45 | ;.ND OF FILE| 000017C0: 3F 0D 20 20 20 20 20 20 20 20 52 5A 20 20 20 20 |?. RZ | 000017D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000017E0: 20 20 3B D9 45 53 21 0D 20 20 20 20 20 20 20 20 | ;.ES!. | 000017F0: 4D 56 49 20 20 20 20 20 41 2C 36 34 20 20 20 20 |MVI A,64 | 00001800: 20 20 20 20 20 20 20 20 3B CE 45 58 54 20 44 4D | ;.EXT DM| 00001810: 41 20 41 44 44 52 45 53 53 0D 20 20 20 20 20 20 |A ADDRESS. | 00001820: 20 20 41 44 44 20 20 20 20 20 44 20 20 20 20 20 | ADD D | 00001830: 20 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E 55 50 | ;...UP| 00001840: 20 31 32 38 20 53 45 43 54 4F 52 53 0D 20 20 20 | 128 SECTORS. | 00001850: 20 20 20 20 20 4D 4F 56 20 20 20 20 20 44 2C 41 | MOV D,A| 00001860: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 2E 2E | ;..| 00001870: 2E 4F 52 20 31 36 CB 20 49 4E 20 C4 C5 0D 20 20 |.OR 16. IN ... | 00001880: 20 20 20 20 20 20 44 43 52 58 20 20 20 20 43 4F | DCRX CO| 00001890: 55 4E 54 20 20 20 20 20 20 20 20 20 20 20 3B C1 |UNT ;.| 000018A0: 4E 59 20 4D 4F 52 45 20 52 45 41 44 53 3F 0D 20 |NY MORE READS?. | 000018B0: 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 20 52 | JRNZ R| 000018C0: 4C 4F 4F 50 20 20 20 20 20 20 20 20 20 20 20 3B |LOOP ;| 000018D0: D9 45 53 2C 20 43 4F 4E 54 49 4E 55 45 20 52 45 |.ES, CONTINUE RE| 000018E0: 41 44 49 4E 47 0D 20 20 20 20 20 20 20 20 58 52 |ADING. XR| 000018F0: 41 20 20 20 20 20 41 20 20 20 20 20 20 20 20 20 |A A | 00001900: 20 20 20 20 20 20 3B 4D 4F 52 45 20 42 59 54 45 | ;MORE BYTE| 00001910: 53 20 53 54 41 54 55 53 0D 20 20 20 20 20 20 20 |S STATUS. | 00001920: 20 52 45 54 0D 3B 0D 50 52 49 4E 54 3A 20 20 3B | RET.;.PRINT: ;| 00001930: C9 4E 49 54 49 41 4C 49 5A 45 20 46 4F 52 20 50 |.NITIALIZE FOR P| 00001940: 52 49 4E 54 49 4E 47 20 46 49 4C 45 0D 20 20 20 |RINTING FILE. | 00001950: 20 20 20 20 20 4D 56 49 20 20 20 20 20 41 2C 34 | MVI A,4| 00001960: 30 20 20 20 20 20 20 20 20 20 20 20 20 3B 34 30 |0 ;40| 00001970: 20 43 48 41 52 20 42 55 46 46 45 52 0D 20 20 20 | CHAR BUFFER. | 00001980: 20 20 20 20 20 53 54 41 20 20 20 20 20 4D 58 20 | STA MX | 00001990: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 2E 2E | ;..| 000019A0: 2E 46 4F 52 20 C6 49 4E 44 0D 20 20 20 20 20 20 |.FOR .IND. | 000019B0: 20 20 4D 56 49 58 20 20 20 20 4E 53 43 52 4F 4C | MVIX NSCROL| 000019C0: 2C 53 54 4F 50 20 20 20 20 20 3B D4 4F 20 53 43 |,STOP ;.O SC| 000019D0: 52 4F 4C 4C 0D 20 20 20 20 20 20 20 20 4D 56 49 |ROLL. MVI| 000019E0: 58 20 20 20 20 30 2C 53 43 52 4F 4C 59 20 20 20 |X 0,SCROLY | 000019F0: 20 20 20 20 20 3B CE 4F 54 20 43 4F 4E 54 49 4E | ;.OT CONTIN| 00001A00: 55 4F 55 53 0D 20 20 20 20 20 20 20 20 4D 56 49 |UOUS. MVI| 00001A10: 58 20 20 20 20 30 2C 44 4F 55 42 4C 45 20 20 20 |X 0,DOUBLE | 00001A20: 20 20 20 20 20 3B 44 4F 4E 54 20 44 4F 55 42 4C | ;DONT DOUBL| 00001A30: 45 20 43 4F 55 4E 54 0D 20 20 20 20 20 20 20 20 |E COUNT. | 00001A40: 4D 56 49 58 20 20 20 20 50 4C 55 53 2C 44 49 52 |MVIX PLUS,DIR| 00001A50: 20 20 20 20 20 20 20 20 3B C4 49 52 45 43 54 49 | ;.IRECTI| 00001A60: 4F 4E 0D 20 20 20 20 20 20 20 20 4D 56 49 58 20 |ON. MVIX | 00001A70: 20 20 20 30 2C 4C 4E 55 4D 20 20 20 20 20 20 20 | 0,LNUM | 00001A80: 20 20 20 3B CE 4F 20 4C 49 4E 45 20 4E 55 4D 42 | ;.O LINE NUMB| 00001A90: 45 52 53 0D 20 20 20 20 20 20 20 20 4D 56 49 58 |ERS. MVIX| 00001AA0: 20 20 20 20 32 34 2C 43 4E 54 31 20 20 20 20 20 | 24,CNT1 | 00001AB0: 20 20 20 20 3B 32 34 20 4C 49 4E 45 53 20 41 20 | ;24 LINES A | 00001AC0: 54 49 4D 45 0D 20 20 20 20 20 20 20 20 4C 58 49 |TIME. LXI| 00001AD0: 20 20 20 20 20 48 2C 46 42 45 47 49 4E 2D 32 20 | H,FBEGIN-2 | 00001AE0: 20 20 20 20 20 3B D3 54 4F 52 45 20 42 45 47 49 | ;.TORE BEGI| 00001AF0: 4E 4E 49 4E 47 0D 20 20 20 20 20 20 20 20 4D 56 |NNING. MV| 00001B00: 49 20 20 20 20 20 4D 2C 45 4F 4D 43 20 20 20 20 |I M,EOMC | 00001B10: 20 20 20 20 20 20 3B 2E 2E 2E 4F 46 20 46 49 4C | ;...OF FIL| 00001B20: 45 0D 20 20 20 20 20 20 20 20 49 4E 58 20 20 20 |E. INX | 00001B30: 20 20 48 20 20 20 20 20 20 20 20 20 20 20 20 20 | H | 00001B40: 20 20 3B 2E 2E 2E 50 52 45 41 4D 42 4C 45 0D 20 | ;...PREAMBLE. | 00001B50: 20 20 20 20 20 20 20 4D 56 49 20 20 20 20 20 4D | MVI M| 00001B60: 2C 4C 46 0D 20 20 20 20 20 20 20 20 49 4E 58 20 |,LF. INX | 00001B70: 20 20 20 20 48 0D 20 20 20 20 20 20 20 20 53 48 | H. SH| 00001B80: 4C 44 20 20 20 20 4C 49 4E 45 20 20 20 20 20 20 |LD LINE | 00001B90: 20 20 20 20 20 20 3B C1 44 44 52 45 53 53 20 4F | ;.DDRESS O| 00001BA0: 46 0D 20 20 20 20 20 20 20 20 4C 58 49 20 20 20 |F. LXI | 00001BB0: 20 20 48 2C 31 20 20 20 20 20 20 20 20 20 20 20 | H,1 | 00001BC0: 20 20 3B 2E 2E 2E 46 49 52 53 54 20 4C 49 4E 45 | ;...FIRST LINE| 00001BD0: 0D 20 20 20 20 20 20 20 20 53 48 4C 44 20 20 20 |. SHLD | 00001BE0: 20 4C 49 4E 4F 20 20 20 20 20 20 20 20 20 20 20 | LINO | 00001BF0: 20 3B 2E 2E 2E 4C 49 4E 45 20 4E 55 4D 42 45 52 | ;...LINE NUMBER| 00001C00: 0D 50 52 31 30 3A 20 20 20 43 41 4C 4C 20 20 20 |.PR10: CALL | 00001C10: 20 47 45 54 4C 4E 20 20 20 20 20 20 20 20 20 20 | GETLN | 00001C20: 20 3B C7 45 54 20 4E 45 58 54 20 4C 49 4E 45 0D | ;.ET NEXT LINE.| 00001C30: 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 20 | JRNZ | 00001C40: 50 52 31 30 20 20 20 20 20 20 20 20 20 20 20 20 |PR10 | 00001C50: 3B 2E 2E 2E 55 4E 54 49 4C 20 4C 49 4D 49 54 0D |;...UNTIL LIMIT.| 00001C60: 20 20 20 20 20 20 20 20 4C 48 4C 44 20 20 20 20 | LHLD | 00001C70: 4C 49 4E 4F 20 20 20 20 20 20 20 20 20 20 20 20 |LINO | 00001C80: 3B D3 54 4F 52 45 20 4C 41 53 54 20 4C 49 4E 45 |;.TORE LAST LINE| 00001C90: 27 53 0D 20 20 20 20 20 20 20 20 53 48 4C 44 20 |'S. SHLD | 00001CA0: 20 20 20 45 4E 44 4C 4E 20 20 20 20 20 20 20 20 | ENDLN | 00001CB0: 20 20 20 3B 2E 2E 2E 4C 49 4E 45 20 4E 55 4D 42 | ;...LINE NUMB| 00001CC0: 45 52 0D 20 20 20 20 20 20 20 20 4C 58 49 20 20 |ER. LXI | 00001CD0: 20 20 20 48 2C 46 42 45 47 49 4E 20 20 20 20 20 | H,FBEGIN | 00001CE0: 20 20 20 3B D3 54 41 52 54 20 57 49 54 48 0D 20 | ;.TART WITH. | 00001CF0: 20 20 20 20 20 20 20 53 48 4C 44 20 20 20 20 4C | SHLD L| 00001D00: 49 4E 45 20 20 20 20 20 20 20 20 20 20 20 20 3B |INE ;| 00001D10: 2E 2E 2E 46 49 52 53 54 20 4C 49 4E 45 0D 20 20 |...FIRST LINE. | 00001D20: 20 20 20 20 20 20 4C 58 49 20 20 20 20 20 48 2C | LXI H,| 00001D30: 31 0D 20 20 20 20 20 20 20 20 53 48 4C 44 20 20 |1. SHLD | 00001D40: 20 20 4C 49 4E 4F 0D 20 20 20 20 20 20 20 20 4D | LINO. M| 00001D50: 56 49 58 20 20 20 20 30 2C 4C 4D 49 54 20 20 20 |VIX 0,LMIT | 00001D60: 20 20 20 20 20 20 20 3B C3 4C 45 41 52 20 4C 49 | ;.LEAR LI| 00001D70: 4D 49 54 0D 20 20 20 20 20 20 20 20 4D 56 49 20 |MIT. MVI | 00001D80: 20 20 20 20 45 2C 4C 46 20 20 20 20 20 20 20 20 | E,LF | 00001D90: 20 20 20 20 3B D3 45 54 20 CC C6 0D 20 20 20 20 | ;.ET ... | 00001DA0: 20 20 20 20 4D 56 49 20 20 20 20 20 43 2C 53 44 | MVI C,SD| 00001DB0: 4C 4D 46 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E |LMF ;...| 00001DC0: 44 45 4C 49 4D 49 54 45 52 0D 20 20 20 20 20 20 |DELIMITER. | 00001DD0: 20 20 43 41 4C 4C 20 20 20 20 42 44 4F 53 20 20 | CALL BDOS | 00001DE0: 20 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E 46 4F | ;...FO| 00001DF0: 52 20 4F 55 54 50 55 54 0D 20 20 20 20 20 20 20 |R OUTPUT. | 00001E00: 20 4C 58 49 20 20 20 20 20 44 2C 52 41 57 49 4E | LXI D,RAWIN| 00001E10: 50 20 20 20 20 20 20 20 20 3B C3 4F 4E 53 4F 4C |P ;.ONSOL| 00001E20: 45 20 4D 4F 44 45 0D 20 20 20 20 20 20 20 20 4D |E MODE. M| 00001E30: 56 49 20 20 20 20 20 43 2C 53 43 4F 4E 4D 20 20 |VI C,SCONM | 00001E40: 20 20 20 20 20 20 20 3B 2E 2E 2E 53 45 54 0D 20 | ;...SET. | 00001E50: 20 20 20 20 20 20 20 43 41 4C 4C 20 20 20 20 42 | CALL B| 00001E60: 44 4F 53 0D 20 20 20 20 20 20 20 20 43 41 4C 4C |DOS. CALL| 00001E70: 20 20 20 20 43 4C 45 41 52 20 20 20 20 20 20 20 | CLEAR | 00001E80: 20 20 20 20 3B C3 4C 45 41 52 20 53 43 52 45 45 | ;.LEAR SCREE| 00001E90: 4E 0D 3B 0D 50 4C 4F 4F 50 3A 20 20 3B D0 52 49 |N.;.PLOOP: ;.RI| 00001EA0: 4E 54 20 4C 4F 4F 50 20 43 4F 4E 54 52 4F 4C 53 |NT LOOP CONTROLS| 00001EB0: 20 4F 55 54 50 55 54 20 54 4F 20 53 43 52 45 45 | OUTPUT TO SCREE| 00001EC0: 4E 0D 20 20 20 20 20 20 20 20 4C 44 58 20 20 20 |N. LDX | 00001ED0: 20 20 41 2C 43 4E 54 31 20 20 20 20 20 20 20 20 | A,CNT1 | 00001EE0: 20 20 3B CC 49 4E 45 53 20 54 4F 20 4F 55 54 50 | ;.INES TO OUTP| 00001EF0: 55 54 0D 20 20 20 20 20 20 20 20 53 54 58 20 20 |UT. STX | 00001F00: 20 20 20 41 2C 43 4E 54 32 0D 50 4C 50 31 30 3A | A,CNT2.PLP10:| 00001F10: 20 20 43 41 4C 4C 20 20 20 20 47 45 54 4B 45 59 | CALL GETKEY| 00001F20: 20 20 20 20 20 20 20 20 20 20 3B C3 4F 4E 44 49 | ;.ONDI| 00001F30: 54 49 4F 4E 53 20 4F 55 54 50 55 54 0D 20 20 20 |TIONS OUTPUT. | 00001F40: 20 20 20 20 20 4C 58 49 20 20 20 20 20 44 2C 53 | LXI D,S| 00001F50: 46 57 44 20 20 20 20 20 20 20 20 20 20 3B C6 4F |FWD ;.O| 00001F60: 52 57 41 52 44 0D 20 20 20 20 20 20 20 20 4C 44 |RWARD. LD| 00001F70: 58 20 20 20 20 20 41 2C 44 49 52 20 20 20 20 20 |X A,DIR | 00001F80: 20 20 20 20 20 20 3B 2E 2E 2E 44 49 52 45 43 54 | ;...DIRECT| 00001F90: 49 4F 4E 0D 20 20 20 20 20 20 20 20 4F 52 41 20 |ION. ORA | 00001FA0: 20 20 20 20 41 0D 20 20 20 20 20 20 20 20 4A 52 | A. JR| 00001FB0: 4E 5A 20 20 20 20 50 4C 50 31 32 0D 20 20 20 20 |NZ PLP12. | 00001FC0: 20 20 20 20 4C 58 49 20 20 20 20 20 44 2C 53 42 | LXI D,SB| 00001FD0: 41 4B 20 20 20 20 20 20 20 20 20 20 3B C2 41 43 |AK ;.AC| 00001FE0: 4B 57 41 52 44 0D 50 4C 50 31 32 3A 20 20 4D 56 |KWARD.PLP12: MV| 00001FF0: 49 20 20 20 20 20 43 2C 50 52 49 4E 54 46 20 20 |I C,PRINTF | 00002000: 20 20 20 20 20 20 3B CF 55 54 50 20 49 4E 53 45 | ;.UTP INSE| 00002010: 52 54 20 4F 52 20 44 45 4C 45 54 45 0D 20 20 20 |RT OR DELETE. | 00002020: 20 20 20 20 20 43 41 4C 4C 20 20 20 20 42 44 4F | CALL BDO| 00002030: 53 20 20 20 20 20 20 20 20 20 20 20 20 3B 2E 2E |S ;..| 00002040: 2E 4C 49 4E 45 20 53 54 52 49 4E 47 0D 20 20 20 |.LINE STRING. | 00002050: 20 20 20 20 20 4C 44 58 20 20 20 20 20 41 2C 4C | LDX A,L| 00002060: 4E 55 4D 20 20 20 20 20 20 20 20 20 20 3B C3 48 |NUM ;.H| 00002070: 45 43 4B 20 4C 49 4E 45 0D 20 20 20 20 20 20 20 |ECK LINE. | 00002080: 20 4F 52 41 20 20 20 20 20 41 20 20 20 20 20 20 | ORA A | 00002090: 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E 4E 55 4D | ;...NUM| 000020A0: 42 45 52 49 4E 47 0D 20 20 20 20 20 20 20 20 43 |BERING. C| 000020B0: 4E 5A 20 20 20 20 20 4E 55 4D 4F 55 54 20 20 20 |NZ NUMOUT | 000020C0: 20 20 20 20 20 20 20 3B 2E 2E 2E 4F 4E 20 41 4E | ;...ON AN| 000020D0: 44 20 4F 55 54 50 55 54 20 4E 55 4D 0D 20 20 20 |D OUTPUT NUM. | 000020E0: 20 20 20 20 20 43 41 4C 4C 20 20 20 20 42 55 46 | CALL BUF| 000020F0: 4C 49 4E 20 20 20 20 20 20 20 20 20 20 3B C5 58 |LIN ;.X| 00002100: 50 41 4E 44 20 4C 49 4E 45 20 49 4E 20 42 55 46 |PAND LINE IN BUF| 00002110: 46 45 52 0D 20 20 20 20 20 20 20 20 4C 44 45 44 |FER. LDED| 00002120: 20 20 20 20 4C 49 4E 42 55 46 20 20 20 20 20 20 | LINBUF | 00002130: 20 20 20 20 3B CC 49 4E 45 20 42 55 46 46 45 52 | ;.INE BUFFER| 00002140: 20 41 44 44 52 45 53 53 0D 20 20 20 20 20 20 20 | ADDRESS. | 00002150: 20 4D 56 49 20 20 20 20 20 43 2C 50 52 49 4E 54 | MVI C,PRINT| 00002160: 46 20 20 20 20 20 20 20 20 3B CF 55 54 50 55 54 |F ;.UTPUT| 00002170: 0D 20 20 20 20 20 20 20 20 43 41 4C 4C 20 20 20 |. CALL | 00002180: 20 42 44 4F 53 20 20 20 20 20 20 20 20 20 20 20 | BDOS | 00002190: 20 3B 2E 2E 2E 4C 49 4E 45 0D 50 4C 50 31 38 3A | ;...LINE.PLP18:| 000021A0: 20 20 43 41 4C 4C 20 20 20 20 47 45 54 4C 4E 20 | CALL GETLN | 000021B0: 20 20 20 20 20 20 20 20 20 20 3B C7 45 54 20 4E | ;.ET N| 000021C0: 45 58 54 20 4C 49 4E 45 20 50 4F 49 4E 54 45 52 |EXT LINE POINTER| 000021D0: 0D 20 20 20 20 20 20 20 20 4C 44 58 20 20 20 20 |. LDX | 000021E0: 20 41 2C 4C 4D 49 54 20 20 20 20 20 20 20 20 20 | A,LMIT | 000021F0: 20 3B C3 48 45 43 4B 20 46 49 4C 45 20 4C 49 4D | ;.HECK FILE LIM| 00002200: 49 54 0D 20 20 20 20 20 20 20 20 4F 52 41 20 20 |IT. ORA | 00002210: 20 20 20 41 20 20 20 20 20 20 20 20 20 20 20 20 | A | 00002220: 20 20 20 3B 2E 2E 2E 52 45 41 43 48 45 44 0D 20 | ;...REACHED. | 00002230: 20 20 20 20 20 20 20 4A 52 5A 20 20 20 20 20 50 | JRZ P| 00002240: 4C 50 32 30 20 20 20 20 20 20 20 20 20 20 20 3B |LP20 ;| 00002250: CE 4F 21 0D 20 20 20 20 20 20 20 20 4D 56 49 58 |.O!. MVIX| 00002260: 20 20 20 20 30 2C 53 54 4F 50 20 20 20 20 20 20 | 0,STOP | 00002270: 20 20 20 20 3B D3 54 4F 50 20 4F 55 54 50 55 54 | ;.TOP OUTPUT| 00002280: 0D 20 20 20 20 20 20 20 20 4A 52 20 20 20 20 20 |. JR | 00002290: 20 50 4C 50 31 30 0D 50 4C 50 32 30 3A 20 20 44 | PLP10.PLP20: D| 000022A0: 43 52 58 20 20 20 20 43 4E 54 32 20 20 20 20 20 |CRX CNT2 | 000022B0: 20 20 20 20 20 20 20 3B C3 4F 55 4E 54 20 44 4F | ;.OUNT DO| 000022C0: 57 4E 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 |WN. JRNZ | 000022D0: 20 20 20 50 4C 50 31 30 0D 20 20 20 20 20 20 20 | PLP10. | 000022E0: 20 4D 56 49 58 20 20 20 20 30 2C 53 54 4F 50 20 | MVIX 0,STOP | 000022F0: 20 20 20 20 20 20 20 20 20 3B C3 4F 55 4E 54 20 | ;.OUNT | 00002300: 45 58 50 49 52 45 44 2E 2E 53 54 4F 50 0D 20 20 |EXPIRED..STOP. | 00002310: 20 20 20 20 20 20 4A 52 20 20 20 20 20 20 50 4C | JR PL| 00002320: 4F 4F 50 0D 3B 20 C1 43 54 49 4F 4E 53 20 4B 45 |OOP.; .CTIONS KE| 00002330: 59 20 49 4E 50 55 54 2E 2E 2E 4C 4F 4F 50 53 20 |Y INPUT...LOOPS | 00002340: 55 4E 54 49 4C 20 D3 54 4F 50 20 43 4C 45 41 52 |UNTIL .TOP CLEAR| 00002350: 45 44 0D 47 45 54 4B 45 59 3A 20 3B 49 4E 50 55 |ED.GETKEY: ;INPU| 00002360: 54 20 52 4F 55 54 49 4E 45 0D 20 20 20 20 20 20 |T ROUTINE. | 00002370: 20 20 43 41 4C 4C 20 20 20 20 4B 53 43 41 4E 20 | CALL KSCAN | 00002380: 20 20 20 20 20 20 20 20 20 20 3B D3 43 41 4E 20 | ;.CAN | 00002390: 31 32 38 20 4B 45 59 53 0D 20 20 20 20 20 20 20 |128 KEYS. | 000023A0: 20 4F 52 41 20 20 20 20 20 41 0D 20 20 20 20 20 | ORA A. | 000023B0: 20 20 20 4A 52 5A 20 20 20 20 20 47 4B 47 36 30 | JRZ GKG60| 000023C0: 20 20 20 20 20 20 20 20 20 20 20 3B CE 4F 20 50 | ;.O P| 000023D0: 52 45 53 53 0D 20 20 20 20 20 20 20 20 43 50 49 |RESS. CPI| 000023E0: 20 20 20 20 20 4E 55 4D 42 45 52 20 20 20 20 20 | NUMBER | 000023F0: 20 20 20 20 20 3B CC 49 4E 45 20 C6 45 45 44 3F | ;.INE .EED?| 00002400: 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 |. JRNZ | 00002410: 20 47 4B 32 30 0D 20 20 20 20 20 20 20 20 58 4F | GK20. XO| 00002420: 52 58 20 20 20 20 4C 4E 55 4D 20 20 20 20 20 20 |RX LNUM | 00002430: 20 20 20 20 20 20 3B D4 4F 47 47 4C 45 20 4C 49 | ;.OGGLE LI| 00002440: 4E 45 0D 20 20 20 20 20 20 20 20 53 54 58 20 20 |NE. STX | 00002450: 20 20 20 41 2C 4C 4E 55 4D 20 20 20 20 20 20 20 | A,LNUM | 00002460: 20 20 20 3B 2E 2E 2E 4E 55 4D 42 45 52 20 46 4C | ;...NUMBER FL| 00002470: 41 47 0D 20 20 20 20 20 20 20 20 4A 52 20 20 20 |AG. JR | 00002480: 20 20 20 47 4B 34 38 0D 3B 0D 47 4B 32 30 3A 20 | GK48.;.GK20: | 00002490: 20 20 43 50 49 20 20 20 20 20 54 41 42 20 20 20 | CPI TAB | 000024A0: 20 20 20 20 20 20 20 20 20 20 3B D4 41 42 3F 0D | ;.AB?.| 000024B0: 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 20 | JRNZ | 000024C0: 47 4B 32 32 0D 20 20 20 20 20 20 20 20 43 41 4C |GK22. CAL| 000024D0: 4C 20 20 20 20 55 50 4C 4E 20 20 20 20 20 20 20 |L UPLN | 000024E0: 20 20 20 20 20 3B C1 44 56 41 4E 43 45 20 4C 49 | ;.DVANCE LI| 000024F0: 4E 45 0D 20 20 20 20 20 20 20 20 4A 52 20 20 20 |NE. JR | 00002500: 20 20 20 47 4B 34 38 20 20 20 20 20 20 20 20 20 | GK48 | 00002510: 20 20 20 3B 2E 2E 2E 50 4F 53 49 54 49 4F 4E 0D | ;...POSITION.| 00002520: 47 4B 32 32 3A 20 20 20 43 50 49 20 20 20 20 20 |GK22: CPI | 00002530: 41 4C 54 20 20 20 20 20 20 20 20 20 20 20 20 20 |ALT | 00002540: 3B C1 4C 54 3F 0D 20 20 20 20 20 20 20 20 4A 52 |;.LT?. JR| 00002550: 4E 5A 20 20 20 20 47 4B 33 30 0D 20 20 20 20 20 |NZ GK30. | 00002560: 20 20 20 58 4F 52 58 20 20 20 20 44 4F 55 42 4C | XORX DOUBL| 00002570: 45 20 20 20 20 20 20 20 20 20 20 3B D4 4F 47 47 |E ;.OGG| 00002580: 4C 45 0D 20 20 20 20 20 20 20 20 53 54 58 20 20 |LE. STX | 00002590: 20 20 20 41 2C 44 4F 55 42 4C 45 20 20 20 20 20 | A,DOUBLE | 000025A0: 20 20 20 3B 2E 2E 2E 44 4F 55 42 4C 45 20 46 4C | ;...DOUBLE FL| 000025B0: 41 47 0D 20 20 20 20 20 20 20 20 43 41 4C 4C 20 |AG. CALL | 000025C0: 20 20 20 53 4F 55 4E 44 20 20 20 20 20 20 20 20 | SOUND | 000025D0: 20 20 20 3B D3 4F 55 4E 44 20 42 45 4C 4C 0D 20 | ;.OUND BELL. | 000025E0: 20 20 20 20 20 20 20 4A 52 20 20 20 20 20 20 47 | JR G| 000025F0: 4B 47 36 30 0D 3B 0D 47 4B 33 30 3A 20 20 20 43 |KG60.;.GK30: C| 00002600: 50 49 20 20 20 20 20 45 4E 54 45 52 20 20 20 20 |PI ENTER | 00002610: 20 20 20 20 20 20 20 3B C5 4E 54 45 52 3F 0D 20 | ;.NTER?. | 00002620: 20 20 20 20 20 20 20 4A 52 5A 20 20 20 20 20 47 | JRZ G| 00002630: 4B 34 38 20 20 20 20 20 20 20 20 20 20 20 20 3B |K48 ;| 00002640: D9 45 53 21 0D 20 20 20 20 20 20 20 20 4A 52 4E |.ES!. JRN| 00002650: 43 20 20 20 20 47 4B 33 36 20 20 20 20 20 20 20 |C GK36 | 00002660: 20 20 20 20 20 3B CE 4F 54 20 41 20 4E 55 4D 42 | ;.OT A NUMB| 00002670: 45 52 20 4B 45 59 21 0D 20 20 20 20 20 20 20 20 |ER KEY!. | 00002680: 43 50 49 20 20 20 20 20 31 31 20 20 20 20 20 20 |CPI 11 | 00002690: 20 20 20 20 20 20 20 20 3B D0 45 52 49 4F 44 20 | ;.ERIOD | 000026A0: 4B 45 59 2E 2E 32 34 20 4C 49 4E 45 53 3F 0D 20 |KEY..24 LINES?. | 000026B0: 20 20 20 20 20 20 20 4A 52 4E 43 20 20 20 20 47 | JRNC G| 000026C0: 4B 33 34 20 20 20 20 20 20 20 20 20 20 20 20 3B |K34 ;| 000026D0: D9 45 53 21 0D 20 20 20 20 20 20 20 20 4D 4F 56 |.ES!. MOV| 000026E0: 20 20 20 20 20 42 2C 41 0D 20 20 20 20 20 20 20 | B,A. | 000026F0: 20 4C 44 58 20 20 20 20 20 41 2C 44 4F 55 42 4C | LDX A,DOUBL| 00002700: 45 20 20 20 20 20 20 20 20 3B C4 4F 55 42 4C 45 |E ;.OUBLE| 00002710: 20 46 4C 41 47 3F 0D 20 20 20 20 20 20 20 20 4F | FLAG?. O| 00002720: 52 41 20 20 20 20 20 41 0D 20 20 20 20 20 20 20 |RA A. | 00002730: 20 4D 4F 56 20 20 20 20 20 41 2C 42 0D 20 20 20 | MOV A,B. | 00002740: 20 20 20 20 20 4A 52 5A 20 20 20 20 20 47 4B 33 | JRZ GK3| 00002750: 34 0D 20 20 20 20 20 20 20 20 41 44 44 20 20 20 |4. ADD | 00002760: 20 20 41 20 20 20 20 20 20 20 20 20 20 20 20 20 | A | 00002770: 20 20 3B C4 4F 55 42 4C 45 20 31 2D 28 31 29 30 | ;.OUBLE 1-(1)0| 00002780: 0D 47 4B 33 34 3A 20 20 20 53 54 58 20 20 20 20 |.GK34: STX | 00002790: 20 41 2C 43 4E 54 31 20 20 20 20 20 20 20 20 20 | A,CNT1 | 000027A0: 20 3B CE 45 57 20 4F 55 54 50 55 54 20 43 4F 55 | ;.EW OUTPUT COU| 000027B0: 4E 54 0D 20 20 20 20 20 20 20 20 4A 52 20 20 20 |NT. JR | 000027C0: 20 20 20 47 4B 34 38 0D 47 4B 33 36 3A 20 20 20 | GK48.GK36: | 000027D0: 43 50 49 20 20 20 20 20 4E 53 43 52 4F 4C 20 20 |CPI NSCROL | 000027E0: 20 20 20 20 20 20 20 20 3B CE 4F 20 D3 43 52 4F | ;.O .CRO| 000027F0: 4C 4C 3F 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A |LL?. JRNZ| 00002800: 20 20 20 20 47 4B 34 30 0D 20 20 20 20 20 20 20 | GK40. | 00002810: 20 58 4F 52 58 20 20 20 20 53 43 52 4F 4C 59 20 | XORX SCROLY | 00002820: 20 20 20 20 20 20 20 20 20 3B D4 4F 47 47 4C 45 | ;.OGGLE| 00002830: 0D 20 20 20 20 20 20 20 20 53 54 58 20 20 20 20 |. STX | 00002840: 20 41 2C 53 43 52 4F 4C 59 20 20 20 20 20 20 20 | A,SCROLY | 00002850: 20 3B 2E 2E 2E 53 43 52 4F 4C 4C 20 46 4C 41 47 | ;...SCROLL FLAG| 00002860: 0D 47 4B 47 36 30 3A 20 20 4A 52 20 20 20 20 20 |.GKG60: JR | 00002870: 20 47 4B 36 30 0D 3B 0D 47 4B 34 30 3A 20 20 20 | GK60.;.GK40: | 00002880: 43 50 49 20 20 20 20 20 42 47 4E 4F 46 20 20 20 |CPI BGNOF | 00002890: 20 20 20 20 20 20 20 20 3B C3 55 52 53 20 D5 50 | ;.URS .P| 000028A0: 3F 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 |?. JRNZ | 000028B0: 20 20 47 4B 34 34 0D 20 20 20 20 20 20 20 20 4D | GK44. M| 000028C0: 56 49 58 20 20 20 20 50 4C 55 53 2C 44 49 52 20 |VIX PLUS,DIR | 000028D0: 20 20 20 20 20 20 20 3B D3 43 52 4F 4C 4C 20 55 | ;.CROLL U| 000028E0: 50 20 44 49 52 45 43 54 49 4F 4E 0D 20 20 20 20 |P DIRECTION. | 000028F0: 20 20 20 20 4C 58 49 20 20 20 20 20 48 2C 46 42 | LXI H,FB| 00002900: 45 47 49 4E 20 20 20 20 20 20 20 20 3B C6 49 52 |EGIN ;.IR| 00002910: 53 54 20 4C 49 4E 45 0D 20 20 20 20 20 20 20 20 |ST LINE. | 00002920: 53 48 4C 44 20 20 20 20 4C 49 4E 45 20 20 20 20 |SHLD LINE | 00002930: 20 20 20 20 20 20 20 20 3B 2E 2E 2E 41 44 44 52 | ;...ADDR| 00002940: 45 53 53 0D 20 20 20 20 20 20 20 20 4C 58 49 20 |ESS. LXI | 00002950: 20 20 20 20 48 2C 31 20 20 20 20 20 20 20 20 20 | H,1 | 00002960: 20 20 20 20 3B CC 49 4E 45 20 31 0D 20 20 20 20 | ;.INE 1. | 00002970: 20 20 20 20 4A 52 20 20 20 20 20 20 47 4B 34 36 | JR GK46| 00002980: 0D 47 4B 34 34 3A 20 20 20 43 50 49 20 20 20 20 |.GK44: CPI | 00002990: 20 45 4E 44 4F 46 20 20 20 20 20 20 20 20 20 20 | ENDOF | 000029A0: 20 3B C3 55 52 53 20 C4 4F 57 4E 3F 0D 20 20 20 | ;.URS .OWN?. | 000029B0: 20 20 20 20 20 4A 52 4E 5A 20 20 20 20 47 4B 35 | JRNZ GK5| 000029C0: 30 0D 20 20 20 20 20 20 20 20 4D 56 49 58 20 20 |0. MVIX | 000029D0: 20 20 30 2C 44 49 52 20 20 20 20 20 20 20 20 20 | 0,DIR | 000029E0: 20 20 3B D3 43 52 4F 4C 4C 20 44 4F 57 4E 20 44 | ;.CROLL DOWN D| 000029F0: 49 52 0D 20 20 20 20 20 20 20 20 4C 48 4C 44 20 |IR. LHLD | 00002A00: 20 20 20 46 45 4E 44 20 20 20 20 20 20 20 20 20 | FEND | 00002A10: 20 20 20 3B C5 4E 44 20 4F 46 20 46 49 4C 45 20 | ;.ND OF FILE | 00002A20: 41 44 44 52 45 53 53 0D 20 20 20 20 20 20 20 20 |ADDRESS. | 00002A30: 4C 58 49 20 20 20 20 20 42 2C 32 30 30 30 20 20 |LXI B,2000 | 00002A40: 20 20 20 20 20 20 20 20 3B CD 41 58 20 4C 45 4E | ;.AX LEN| 00002A50: 47 54 48 20 4F 46 20 4C 49 4E 45 0D 20 20 20 20 |GTH OF LINE. | 00002A60: 20 20 20 20 43 41 4C 4C 20 20 20 20 55 50 4D 30 | CALL UPM0| 00002A70: 32 20 20 20 20 20 20 20 20 20 20 20 3B C7 4F 20 |2 ;.O | 00002A80: 42 41 43 4B 20 31 20 54 4F 20 4C 41 53 54 20 4C |BACK 1 TO LAST L| 00002A90: 49 4E 45 0D 20 20 20 20 20 20 20 20 4C 48 4C 44 |INE. LHLD| 00002AA0: 20 20 20 20 45 4E 44 4C 4E 20 20 20 20 20 20 20 | ENDLN | 00002AB0: 20 20 20 20 3B CC 41 53 54 20 4C 49 4E 45 20 4E | ;.AST LINE N| 00002AC0: 55 4D 42 45 52 0D 47 4B 34 36 3A 20 20 20 53 48 |UMBER.GK46: SH| 00002AD0: 4C 44 20 20 20 20 4C 49 4E 4F 20 20 20 20 20 20 |LD LINO | 00002AE0: 20 20 20 20 20 20 3B CC 49 4E 45 20 4E 55 4D 42 | ;.INE NUMB| 00002AF0: 45 52 0D 47 4B 34 37 3A 20 20 20 43 41 4C 4C 20 |ER.GK47: CALL | 00002B00: 20 20 20 43 4C 45 41 52 20 20 20 20 20 20 20 20 | CLEAR | 00002B10: 20 20 20 3B C3 4C 45 41 52 20 53 43 52 45 45 4E | ;.LEAR SCREEN| 00002B20: 0D 20 20 20 20 20 20 20 20 4D 56 49 58 20 20 20 |. MVIX | 00002B30: 20 30 2C 4C 4D 49 54 20 20 20 20 20 20 20 20 20 | 0,LMIT | 00002B40: 20 3B C3 4C 45 41 52 20 4C 49 4D 49 54 20 43 4F | ;.LEAR LIMIT CO| 00002B50: 4E 44 49 54 49 4F 4E 0D 47 4B 34 38 3A 20 20 20 |NDITION.GK48: | 00002B60: 4C 44 58 20 20 20 20 20 41 2C 43 4E 54 31 20 20 |LDX A,CNT1 | 00002B70: 20 20 20 20 20 20 20 20 3B CE 45 57 20 43 4F 55 | ;.EW COU| 00002B80: 4E 54 0D 20 20 20 20 20 20 20 20 53 54 58 20 20 |NT. STX | 00002B90: 20 20 20 41 2C 43 4E 54 32 0D 20 20 20 20 20 20 | A,CNT2. | 00002BA0: 20 20 4A 52 20 20 20 20 20 20 47 4B 36 34 0D 3B | JR GK64.;| 00002BB0: 0D 47 4B 35 30 3A 20 20 20 43 50 49 20 20 20 20 |.GK50: CPI | 00002BC0: 20 48 45 4C 50 20 20 20 20 20 20 20 20 20 20 20 | HELP | 00002BD0: 20 3B C8 45 4C 50 3F 0D 20 20 20 20 20 20 20 20 | ;.ELP?. | 00002BE0: 4A 52 4E 5A 20 20 20 20 47 4B 35 32 0D 20 20 20 |JRNZ GK52. | 00002BF0: 20 20 20 20 20 43 41 4C 4C 20 20 20 20 46 49 4E | CALL FIN| 00002C00: 44 20 20 20 20 20 20 20 20 20 20 20 20 3B C6 49 |D ;.I| 00002C10: 4E 44 20 49 4E 50 55 54 20 53 54 52 49 4E 47 0D |ND INPUT STRING.| 00002C20: 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 20 | JRNZ | 00002C30: 47 4B 34 37 0D 20 20 20 20 20 20 20 20 4D 56 49 |GK47. MVI| 00002C40: 58 20 20 20 20 31 2C 43 4E 54 32 20 20 20 20 20 |X 1,CNT2 | 00002C50: 20 20 20 20 20 3B 31 20 4C 49 4E 45 20 4F 55 54 | ;1 LINE OUT| 00002C60: 55 54 0D 20 20 20 20 20 20 20 20 4D 56 49 58 20 |UT. MVIX | 00002C70: 20 20 20 30 2C 53 43 52 4F 4C 59 20 20 20 20 20 | 0,SCROLY | 00002C80: 20 20 20 3B C3 4C 45 41 52 20 53 43 52 4F 4C 4C | ;.LEAR SCROLL| 00002C90: 20 46 4C 41 47 0D 20 20 20 20 20 20 20 20 4A 52 | FLAG. JR| 00002CA0: 20 20 20 20 20 20 47 4B 36 34 0D 47 4B 35 32 3A | GK64.GK52:| 00002CB0: 20 20 20 43 50 49 20 20 20 20 20 4D 49 4E 55 53 | CPI MINUS| 00002CC0: 20 20 20 20 20 20 20 20 20 20 20 3B CD 49 4E 55 | ;.INU| 00002CD0: 53 3F 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 |S?. JRNZ | 00002CE0: 20 20 20 47 4B 35 34 20 20 20 20 20 20 20 20 20 | GK54 | 00002CF0: 20 20 20 3B CE 4F 2C 20 4D 55 53 54 20 42 45 20 | ;.O, MUST BE | 00002D00: D0 4C 55 53 21 0D 20 20 20 20 20 20 20 20 58 52 |.LUS!. XR| 00002D10: 41 20 20 20 20 20 41 0D 47 4B 35 34 3A 20 20 20 |A A.GK54: | 00002D20: 4C 44 58 20 20 20 20 20 42 2C 44 49 52 20 20 20 |LDX B,DIR | 00002D30: 20 20 20 20 20 20 20 20 3B D5 50 44 41 54 45 20 | ;.PDATE | 00002D40: 44 49 52 45 43 54 49 4F 4E 0D 20 20 20 20 20 20 |DIRECTION. | 00002D50: 20 20 53 54 58 20 20 20 20 20 41 2C 44 49 52 0D | STX A,DIR.| 00002D60: 20 20 20 20 20 20 20 20 43 4D 50 20 20 20 20 20 | CMP | 00002D70: 42 0D 20 20 20 20 20 20 20 20 4A 52 5A 20 20 20 |B. JRZ | 00002D80: 20 20 47 4B 36 32 0D 20 20 20 20 20 20 20 20 4A | GK62. J| 00002D90: 52 20 20 20 20 20 20 47 4B 34 37 20 20 20 20 20 |R GK47 | 00002DA0: 20 20 20 20 20 20 20 3B C4 49 52 45 43 54 49 4F | ;.IRECTIO| 00002DB0: 4E 20 43 48 41 4E 47 45 44 0D 3B 0D 47 4B 36 30 |N CHANGED.;.GK60| 00002DC0: 3A 20 20 20 4C 44 58 20 20 20 20 20 41 2C 53 43 |: LDX A,SC| 00002DD0: 52 4F 4C 59 20 20 20 20 20 20 20 20 3B C3 48 45 |ROLY ;.HE| 00002DE0: 43 4B 20 53 43 52 4F 4C 4C 20 4F 4E 0D 20 20 20 |CK SCROLL ON. | 00002DF0: 20 20 20 20 20 4F 52 41 20 20 20 20 20 41 0D 20 | ORA A. | 00002E00: 20 20 20 20 20 20 20 4A 52 5A 20 20 20 20 20 47 | JRZ G| 00002E10: 4B 37 30 20 20 20 20 20 20 20 20 20 20 20 20 3B |K70 ;| 00002E20: CE 4F 21 0D 3B 0D 47 4B 36 32 3A 20 20 20 4D 56 |.O!.;.GK62: MV| 00002E30: 49 58 20 20 20 20 31 2C 43 4E 54 32 20 20 20 20 |IX 1,CNT2 | 00002E40: 20 20 20 20 20 20 3B C6 45 45 44 20 4F 4E 47 4F | ;.EED ONGO| 00002E50: 49 4E 47 20 43 4F 55 4E 54 0D 47 4B 36 34 3A 20 |ING COUNT.GK64: | 00002E60: 20 20 4C 44 58 20 20 20 20 20 41 2C 4C 4D 49 54 | LDX A,LMIT| 00002E70: 20 20 20 20 20 20 20 20 20 20 3B C3 48 45 43 4B | ;.HECK| 00002E80: 20 4C 49 4D 49 54 20 52 45 41 43 48 45 44 0D 20 | LIMIT REACHED. | 00002E90: 20 20 20 20 20 20 20 4F 52 41 20 20 20 20 20 41 | ORA A| 00002EA0: 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 |. JRNZ | 00002EB0: 20 47 4B 37 30 20 20 20 20 20 20 20 20 20 20 20 | GK70 | 00002EC0: 20 3B D9 45 53 21 0D 20 20 20 20 20 20 20 20 4D | ;.ES!. M| 00002ED0: 56 49 58 20 20 20 20 4E 53 43 52 4F 4C 2C 53 54 |VIX NSCROL,ST| 00002EE0: 4F 50 20 20 20 20 20 3B C3 4C 45 41 52 20 53 54 |OP ;.LEAR ST| 00002EF0: 4F 50 20 43 4F 4E 44 49 54 49 4F 4E 0D 3B 0D 47 |OP CONDITION.;.G| 00002F00: 4B 37 30 3A 20 20 20 4C 44 58 20 20 20 20 20 41 |K70: LDX A| 00002F10: 2C 53 54 4F 50 20 20 20 20 20 20 20 20 20 20 3B |,STOP ;| 00002F20: C9 46 20 53 54 4F 50 20 43 4F 4E 44 49 54 49 4F |.F STOP CONDITIO| 00002F30: 4E 0D 20 20 20 20 20 20 20 20 4F 52 41 20 20 20 |N. ORA | 00002F40: 20 20 41 20 20 20 20 20 20 20 20 20 20 20 20 20 | A | 00002F50: 20 20 3B 2E 2E 2E 54 48 45 4E 0D 20 20 20 20 20 | ;...THEN. | 00002F60: 20 20 20 4A 5A 20 20 20 20 20 20 47 45 54 4B 45 | JZ GETKE| 00002F70: 59 20 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E 4C |Y ;...L| 00002F80: 4F 4F 50 20 55 4E 54 49 4C 20 43 4C 45 41 52 0D |OOP UNTIL CLEAR.| 00002F90: 20 20 20 20 20 20 20 20 52 45 54 0D 3B 0D 55 50 | RET.;.UP| 00002FA0: 4C 4E 3A 20 20 20 3B C1 44 56 41 4E 43 45 20 32 |LN: ;.DVANCE 2| 00002FB0: 34 20 4C 49 4E 45 53 0D 20 20 20 20 20 20 20 20 |4 LINES. | 00002FC0: 4C 44 58 20 20 20 20 20 41 2C 4C 4D 49 54 20 20 |LDX A,LMIT | 00002FD0: 20 20 20 20 20 20 20 20 3B C4 4F 4E 54 20 41 44 | ;.ONT AD| 00002FE0: 56 41 4E 43 45 0D 20 20 20 20 20 20 20 20 4F 52 |VANCE. OR| 00002FF0: 41 20 20 20 20 20 41 20 20 20 20 20 20 20 20 20 |A A | 00003000: 20 20 20 20 20 20 3B 2E 2E 2E 49 46 0D 20 20 20 | ;...IF. | 00003010: 20 20 20 20 20 52 4E 5A 20 20 20 20 20 20 20 20 | RNZ | 00003020: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 2E 2E | ;..| 00003030: 2E 4F 4E 20 4C 49 4D 49 54 0D 20 20 20 20 20 20 |.ON LIMIT. | 00003040: 20 20 4D 56 49 58 20 20 20 20 32 35 2C 43 4F 55 | MVIX 25,COU| 00003050: 4E 54 0D 55 50 4C 4E 31 3A 20 20 44 43 52 58 20 |NT.UPLN1: DCRX | 00003060: 20 20 20 43 4F 55 4E 54 0D 20 20 20 20 20 20 20 | COUNT. | 00003070: 20 43 4E 5A 20 20 20 20 20 47 45 54 4C 4E 20 20 | CNZ GETLN | 00003080: 20 20 20 20 20 20 20 20 20 3B C7 45 54 20 4E 45 | ;.ET NE| 00003090: 58 54 20 4C 49 4E 45 0D 20 20 20 20 20 20 20 20 |XT LINE. | 000030A0: 4A 52 4E 5A 20 20 20 20 55 50 4C 4E 31 20 20 20 |JRNZ UPLN1 | 000030B0: 20 20 20 20 20 20 20 20 3B CE 4F 54 20 4F 4E 20 | ;.OT ON | 000030C0: 4C 49 4D 49 54 0D 20 20 20 20 20 20 20 20 4D 56 |LIMIT. MV| 000030D0: 49 58 20 20 20 20 30 2C 4C 4D 49 54 20 20 20 20 |IX 0,LMIT | 000030E0: 20 20 20 20 20 20 3B C3 4C 45 41 52 20 4C 49 4D | ;.LEAR LIM| 000030F0: 49 54 20 49 46 20 53 45 54 20 54 4F 0D 20 20 20 |IT IF SET TO. | 00003100: 20 20 20 20 20 52 45 54 20 20 20 20 20 20 20 20 | RET | 00003110: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 2E 2E | ;..| 00003120: 2E 44 53 50 20 31 53 54 2F 4C 41 53 54 20 4C 49 |.DSP 1ST/LAST LI| 00003130: 4E 45 0D 3B 0D 47 45 54 4C 4E 3A 20 20 3B C7 45 |NE.;.GETLN: ;.E| 00003140: 54 20 4E 45 58 54 20 4C 49 4E 45 0D 20 20 20 20 |T NEXT LINE. | 00003150: 20 20 20 20 4C 48 4C 44 20 20 20 20 4C 49 4E 45 | LHLD LINE| 00003160: 20 20 20 20 20 20 20 20 20 20 20 20 3B CC 49 4E | ;.IN| 00003170: 45 20 41 44 44 52 45 53 53 0D 20 20 20 20 20 20 |E ADDRESS. | 00003180: 20 20 4C 58 49 20 20 20 20 20 42 2C 32 30 30 30 | LXI B,2000| 00003190: 20 20 20 20 20 20 20 20 20 20 3B CD 41 58 20 4C | ;.AX L| 000031A0: 45 4E 47 54 48 0D 20 20 20 20 20 20 20 20 4C 44 |ENGTH. LD| 000031B0: 58 20 20 20 20 20 41 2C 44 49 52 20 20 20 20 20 |X A,DIR | 000031C0: 20 20 20 20 20 20 3B C3 48 45 43 4B 20 44 49 52 | ;.HECK DIR| 000031D0: 45 43 54 49 4F 4E 0D 20 20 20 20 20 20 20 20 4F |ECTION. O| 000031E0: 52 41 20 20 20 20 20 41 0D 20 20 20 20 20 20 20 |RA A. | 000031F0: 20 4A 52 5A 20 20 20 20 20 55 50 4D 49 4E 0D 3B | JRZ UPMIN.;| 00003200: 0D 55 50 4C 55 53 3A 20 20 4D 56 49 20 20 20 20 |.UPLUS: MVI | 00003210: 20 41 2C 4C 46 20 20 20 20 20 20 20 20 20 20 20 | A,LF | 00003220: 20 3B D3 45 41 52 43 48 20 43 48 41 52 0D 20 20 | ;.EARCH CHAR. | 00003230: 20 20 20 20 20 20 4C 58 49 20 20 20 20 20 44 2C | LXI D,| 00003240: 31 0D 20 20 20 20 20 20 20 20 43 43 49 52 20 20 |1. CCIR | 00003250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003260: 20 20 3B C6 49 4E 44 20 4E 45 58 54 20 4C 49 4E | ;.IND NEXT LIN| 00003270: 45 0D 20 20 20 20 20 20 20 20 4D 56 49 20 20 20 |E. MVI | 00003280: 20 20 41 2C 45 4F 4D 43 20 20 20 20 20 20 20 20 | A,EOMC | 00003290: 20 20 3B D2 45 41 43 48 45 44 20 4C 49 4D 49 54 | ;.EACHED LIMIT| 000032A0: 0D 20 20 20 20 20 20 20 20 43 4D 50 20 20 20 20 |. CMP | 000032B0: 20 4D 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 | M. JRNZ | 000032C0: 20 20 20 55 50 4D 31 30 20 20 20 20 20 20 20 20 | UPM10 | 000032D0: 20 20 20 3B CE 4F 21 0D 55 50 50 31 30 3A 20 20 | ;.O!.UPP10: | 000032E0: 4D 56 49 58 20 20 20 20 31 2C 4C 4D 49 54 20 20 |MVIX 1,LMIT | 000032F0: 20 20 20 20 20 20 20 20 3B D2 45 54 55 52 4E 20 | ;.ETURN | 00003300: 4C 49 4D 49 54 0D 20 20 20 20 20 20 20 20 52 45 |LIMIT. RE| 00003310: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |T | 00003320: 20 20 20 20 20 20 3B 2E 2E 2E 53 45 54 0D 3B 0D | ;...SET.;.| 00003330: 55 50 4D 49 4E 3A 20 20 4C 44 41 20 20 20 20 20 |UPMIN: LDA | 00003340: 4C 49 4E 4F 2B 31 20 20 20 20 20 20 20 20 20 20 |LINO+1 | 00003350: 3B C3 48 45 43 4B 0D 20 20 20 20 20 20 20 20 4F |;.HECK. O| 00003360: 52 41 20 20 20 20 20 41 20 20 20 20 20 20 20 20 |RA A | 00003370: 20 20 20 20 20 20 20 3B 2E 2E 2E 49 46 0D 20 20 | ;...IF. | 00003380: 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 20 55 50 | JRNZ UP| 00003390: 4D 30 32 20 20 20 20 20 20 20 20 20 20 20 3B 2E |M02 ;.| 000033A0: 2E 2E 4F 4E 0D 20 20 20 20 20 20 20 20 4C 44 41 |..ON. LDA| 000033B0: 20 20 20 20 20 4C 49 4E 4F 20 20 20 20 20 20 20 | LINO | 000033C0: 20 20 20 20 20 3B 2E 2E 2E 46 49 52 53 54 0D 20 | ;...FIRST. | 000033D0: 20 20 20 20 20 20 20 43 50 49 20 20 20 20 20 31 | CPI 1| 000033E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B | ;| 000033F0: 2E 2E 2E 4C 49 4E 45 0D 20 20 20 20 20 20 20 20 |...LINE. | 00003400: 4A 52 5A 20 20 20 20 20 55 50 50 31 30 20 20 20 |JRZ UPP10 | 00003410: 20 20 20 20 20 20 20 20 3B D9 45 53 21 0D 55 50 | ;.ES!.UP| 00003420: 4D 30 32 3A 20 20 44 43 58 20 20 20 20 20 48 0D |M02: DCX H.| 00003430: 20 20 20 20 20 20 20 20 44 43 58 20 20 20 20 20 | DCX | 00003440: 48 0D 20 20 20 20 20 20 20 20 4D 56 49 20 20 20 |H. MVI | 00003450: 20 20 41 2C 4C 46 0D 20 20 20 20 20 20 20 20 4C | A,LF. L| 00003460: 58 49 20 20 20 20 20 44 2C 2D 31 0D 20 20 20 20 |XI D,-1. | 00003470: 20 20 20 20 43 43 44 52 20 20 20 20 20 20 20 20 | CCDR | 00003480: 20 20 20 20 20 20 20 20 20 20 20 20 3B C6 49 4E | ;.IN| 00003490: 44 20 50 52 45 56 49 4F 55 53 20 4C 49 4E 45 0D |D PREVIOUS LINE.| 000034A0: 20 20 20 20 20 20 20 20 49 4E 58 20 20 20 20 20 | INX | 000034B0: 48 0D 20 20 20 20 20 20 20 20 49 4E 58 20 20 20 |H. INX | 000034C0: 20 20 48 0D 55 50 4D 31 30 3A 20 20 53 48 4C 44 | H.UPM10: SHLD| 000034D0: 20 20 20 20 4C 49 4E 45 20 20 20 20 20 20 20 20 | LINE | 000034E0: 20 20 20 20 3B CE 45 57 20 4C 49 4E 45 20 41 44 | ;.EW LINE AD| 000034F0: 44 52 45 53 53 0D 20 20 20 20 20 20 20 20 4D 56 |DRESS. MV| 00003500: 49 58 20 20 20 20 30 2C 4C 4D 49 54 20 20 20 20 |IX 0,LMIT | 00003510: 20 20 20 20 20 20 3B C3 4C 45 41 52 20 4C 49 4D | ;.LEAR LIM| 00003520: 49 54 0D 20 20 20 20 20 20 20 20 4C 48 4C 44 20 |IT. LHLD | 00003530: 20 20 20 4C 49 4E 4F 20 20 20 20 20 20 20 20 20 | LINO | 00003540: 20 20 20 3B D5 50 44 41 54 45 0D 20 20 20 20 20 | ;.PDATE. | 00003550: 20 20 20 44 41 44 20 20 20 20 20 44 20 20 20 20 | DAD D | 00003560: 20 20 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E 4C | ;...L| 00003570: 49 4E 45 0D 20 20 20 20 20 20 20 20 53 48 4C 44 |INE. SHLD| 00003580: 20 20 20 20 4C 49 4E 4F 20 20 20 20 20 20 20 20 | LINO | 00003590: 20 20 20 20 3B 2E 2E 2E 4E 55 4D 42 45 52 0D 20 | ;...NUMBER. | 000035A0: 20 20 20 20 20 20 20 4D 56 49 20 20 20 20 20 41 | MVI A| 000035B0: 2C 31 20 20 20 20 20 20 20 20 20 20 20 20 20 3B |,1 ;| 000035C0: D2 45 54 55 52 4E 0D 20 20 20 20 20 20 20 20 4F |.ETURN. O| 000035D0: 52 41 20 20 20 20 20 41 20 20 20 20 20 20 20 20 |RA A | 000035E0: 20 20 20 20 20 20 20 3B 2E 2E 2E 47 4F 4F 44 0D | ;...GOOD.| 000035F0: 20 20 20 20 20 20 20 20 52 45 54 20 20 20 20 20 | RET | 00003600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003610: 3B 43 4F 4E 44 49 54 49 4F 4E 0D 3B 0D 3B 0D 4E |;CONDITION.;.;.N| 00003620: 55 4D 4F 55 54 3A 20 3B CF 55 54 50 55 54 20 4C |UMOUT: ;.UTPUT L| 00003630: 49 4E 45 20 4E 55 4D 42 45 52 0D 20 20 20 20 20 |INE NUMBER. | 00003640: 20 20 20 4C 58 49 59 20 20 20 20 4C 49 4E 41 53 | LXIY LINAS| 00003650: 43 20 20 20 20 20 20 20 20 20 20 3B C2 41 53 45 |C ;.ASE| 00003660: 20 46 4F 52 20 53 54 52 49 4E 47 0D 20 20 20 20 | FOR STRING. | 00003670: 20 20 20 20 4C 48 4C 44 20 20 20 20 4C 49 4E 4F | LHLD LINO| 00003680: 20 20 20 20 20 20 20 20 20 20 20 20 3B CC 49 4E | ;.IN| 00003690: 45 20 4E 55 4D 42 45 52 0D 20 20 20 20 20 20 20 |E NUMBER. | 000036A0: 20 4C 58 49 20 20 20 20 20 44 2C 2D 31 30 30 30 | LXI D,-1000| 000036B0: 30 20 20 20 20 20 20 20 20 3B D4 45 4E 20 54 48 |0 ;.EN TH| 000036C0: 4F 55 53 41 4E 44 53 0D 20 20 20 20 20 20 20 20 |OUSANDS. | 000036D0: 43 41 4C 4C 20 20 20 20 54 4F 41 53 43 20 20 20 |CALL TOASC | 000036E0: 20 20 20 20 20 20 20 20 3B C3 4F 4E 56 45 52 54 | ;.ONVERT| 000036F0: 20 54 4F 20 C1 D3 C3 C9 C9 0D 20 20 20 20 20 20 | TO ...... | 00003700: 20 20 4C 58 49 20 20 20 20 20 44 2C 2D 31 30 30 | LXI D,-100| 00003710: 30 20 20 20 20 20 20 20 20 20 3B D4 48 4F 55 53 |0 ;.HOUS| 00003720: 41 4E 44 53 0D 20 20 20 20 20 20 20 20 43 41 4C |ANDS. CAL| 00003730: 4C 20 20 20 20 54 4F 41 53 43 0D 20 20 20 20 20 |L TOASC. | 00003740: 20 20 20 4C 58 49 20 20 20 20 20 44 2C 2D 31 30 | LXI D,-10| 00003750: 30 20 20 20 20 20 20 20 20 20 20 3B C8 55 4E 44 |0 ;.UND| 00003760: 52 45 44 53 0D 20 20 20 20 20 20 20 20 43 41 4C |REDS. CAL| 00003770: 4C 20 20 20 20 54 4F 41 53 43 0D 20 20 20 20 20 |L TOASC. | 00003780: 20 20 20 4C 58 49 20 20 20 20 20 44 2C 2D 31 30 | LXI D,-10| 00003790: 20 20 20 20 20 20 20 20 20 20 20 3B D4 45 4E 53 | ;.ENS| 000037A0: 0D 20 20 20 20 20 20 20 20 43 41 4C 4C 20 20 20 |. CALL | 000037B0: 20 54 4F 41 53 43 0D 20 20 20 20 20 20 20 20 4D | TOASC. M| 000037C0: 4F 56 20 20 20 20 20 41 2C 4C 20 20 20 20 20 20 |OV A,L | 000037D0: 20 20 20 20 20 20 20 3B 30 20 2D 20 39 0D 20 20 | ;0 - 9. | 000037E0: 20 20 20 20 20 20 41 44 49 20 20 20 20 20 27 30 | ADI '0| 000037F0: 27 0D 20 20 20 20 20 20 20 20 53 54 59 20 20 20 |'. STY | 00003800: 20 20 41 2C 30 0D 20 20 20 20 20 20 20 20 4C 58 | A,0. LX| 00003810: 49 20 20 20 20 20 44 2C 4C 49 4E 41 53 43 0D 20 |I D,LINASC. | 00003820: 20 20 20 20 20 20 20 4D 56 49 20 20 20 20 20 43 | MVI C| 00003830: 2C 50 52 49 4E 54 46 20 20 20 20 20 20 20 20 3B |,PRINTF ;| 00003840: D0 52 49 4E 54 20 53 54 52 49 4E 47 0D 20 20 20 |.RINT STRING. | 00003850: 20 20 20 20 20 43 41 4C 4C 20 20 20 20 42 44 4F | CALL BDO| 00003860: 53 0D 20 20 20 20 20 20 20 20 52 45 54 0D 3B 0D |S. RET.;.| 00003870: 54 4F 41 53 43 3A 20 20 4D 56 49 20 20 20 20 20 |TOASC: MVI | 00003880: 43 2C 27 30 27 2D 31 0D 54 4F 41 53 31 3A 20 20 |C,'0'-1.TOAS1: | 00003890: 49 4E 52 20 20 20 20 20 43 0D 20 20 20 20 20 20 |INR C. | 000038A0: 20 20 44 41 44 20 20 20 20 20 44 0D 20 20 20 20 | DAD D. | 000038B0: 20 20 20 20 4A 43 20 20 20 20 20 20 54 4F 41 53 | JC TOAS| 000038C0: 31 0D 20 20 20 20 20 20 20 20 4D 4F 56 20 20 20 |1. MOV | 000038D0: 20 20 41 2C 44 0D 20 20 20 20 20 20 20 20 43 4D | A,D. CM| 000038E0: 41 0D 20 20 20 20 20 20 20 20 4D 4F 56 20 20 20 |A. MOV | 000038F0: 20 20 44 2C 41 0D 20 20 20 20 20 20 20 20 4D 4F | D,A. MO| 00003900: 56 20 20 20 20 20 41 2C 45 0D 20 20 20 20 20 20 |V A,E. | 00003910: 20 20 43 4D 41 0D 20 20 20 20 20 20 20 20 4D 4F | CMA. MO| 00003920: 56 20 20 20 20 20 45 2C 41 0D 20 20 20 20 20 20 |V E,A. | 00003930: 20 20 49 4E 58 20 20 20 20 20 44 0D 20 20 20 20 | INX D. | 00003940: 20 20 20 20 44 41 44 20 20 20 20 20 44 0D 20 20 | DAD D. | 00003950: 20 20 20 20 20 20 53 54 59 20 20 20 20 20 43 2C | STY C,| 00003960: 30 0D 20 20 20 20 20 20 20 20 49 4E 58 49 59 0D |0. INXIY.| 00003970: 20 20 20 20 20 20 20 20 52 45 54 0D 3B 0D 42 55 | RET.;.BU| 00003980: 46 4C 49 4E 3A 20 3B D0 52 45 50 41 52 45 20 4C |FLIN: ;.REPARE L| 00003990: 49 4E 45 20 46 4F 52 20 4F 55 54 50 55 54 0D 20 |INE FOR OUTPUT. | 000039A0: 20 20 20 20 20 20 20 4C 42 43 44 20 20 20 20 4C | LBCD L| 000039B0: 49 4E 45 20 20 20 20 20 20 20 20 20 20 20 20 3B |INE ;| 000039C0: C3 55 52 52 45 4E 54 20 4C 49 4E 45 20 41 44 44 |.URRENT LINE ADD| 000039D0: 52 45 53 53 0D 20 20 20 20 20 20 20 20 4C 48 4C |RESS. LHL| 000039E0: 44 20 20 20 20 4C 49 4E 42 55 46 20 20 20 20 20 |D LINBUF | 000039F0: 20 20 20 20 20 3B CC 49 4E 45 20 42 55 46 46 45 | ;.INE BUFFE| 00003A00: 52 20 41 44 44 52 45 53 53 0D 42 55 46 4C 31 30 |R ADDRESS.BUFL10| 00003A10: 3A 20 4D 56 49 58 20 20 20 20 38 2C 43 4F 55 4E |: MVIX 8,COUN| 00003A20: 54 20 20 20 20 20 20 20 20 20 3B D4 41 42 20 43 |T ;.AB C| 00003A30: 4F 55 4E 54 0D 42 55 46 4C 31 32 3A 20 4C 44 41 |OUNT.BUFL12: LDA| 00003A40: 58 20 20 20 20 42 0D 20 20 20 20 20 20 20 20 49 |X B. I| 00003A50: 4E 58 20 20 20 20 20 42 0D 20 20 20 20 20 20 20 |NX B. | 00003A60: 20 43 50 49 20 20 20 20 20 32 30 48 20 20 20 20 | CPI 20H | 00003A70: 20 20 20 20 20 20 20 20 20 3B D4 52 41 50 20 43 | ;.RAP C| 00003A80: 4F 4E 54 52 4F 4C 20 43 48 41 52 0D 20 20 20 20 |ONTROL CHAR. | 00003A90: 20 20 20 20 4A 52 4E 43 20 20 20 20 42 55 46 4C | JRNC BUFL| 00003AA0: 31 36 20 20 20 20 20 20 20 20 20 20 3B CE 4F 54 |16 ;.OT| 00003AB0: 20 4F 4E 45 0D 20 20 20 20 20 20 20 20 43 50 49 | ONE. CPI| 00003AC0: 20 20 20 20 20 43 52 20 20 20 20 20 20 20 20 20 | CR | 00003AD0: 20 20 20 20 20 3B C3 41 52 52 49 41 47 45 20 52 | ;.ARRIAGE R| 00003AE0: 45 54 55 52 4E 3F 0D 20 20 20 20 20 20 20 20 4A |ETURN?. J| 00003AF0: 52 5A 20 20 20 20 20 42 55 46 4C 31 36 0D 20 20 |RZ BUFL16. | 00003B00: 20 20 20 20 20 20 43 50 49 20 20 20 20 20 4C 46 | CPI LF| 00003B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B CC | ;.| 00003B20: 49 4E 45 20 46 45 45 44 3F 0D 20 20 20 20 20 20 |INE FEED?. | 00003B30: 20 20 4A 52 5A 20 20 20 20 20 42 55 46 4C 31 36 | JRZ BUFL16| 00003B40: 0D 20 20 20 20 20 20 20 20 43 50 49 20 20 20 20 |. CPI | 00003B50: 20 54 41 42 43 20 20 20 20 20 20 20 20 20 20 20 | TABC | 00003B60: 20 3B C3 48 45 43 4B 20 49 46 20 54 41 42 0D 20 | ;.HECK IF TAB. | 00003B70: 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 20 42 | JRNZ B| 00003B80: 55 46 4C 31 35 20 20 20 20 20 20 20 20 20 20 3B |UFL15 ;| 00003B90: CE 4F 21 0D 42 55 46 4C 31 34 3A 20 4D 56 49 20 |.O!.BUFL14: MVI | 00003BA0: 20 20 20 20 4D 2C 27 20 27 20 20 20 20 20 20 20 | M,' ' | 00003BB0: 20 20 20 20 3B C5 58 50 41 4E 44 20 54 41 42 0D | ;.XPAND TAB.| 00003BC0: 20 20 20 20 20 20 20 20 49 4E 58 20 20 20 20 20 | INX | 00003BD0: 48 0D 20 20 20 20 20 20 20 20 44 43 52 58 20 20 |H. DCRX | 00003BE0: 20 20 43 4F 55 4E 54 0D 20 20 20 20 20 20 20 20 | COUNT. | 00003BF0: 4A 52 4E 5A 20 20 20 20 42 55 46 4C 31 34 0D 20 |JRNZ BUFL14. | 00003C00: 20 20 20 20 20 20 20 4A 52 20 20 20 20 20 20 42 | JR B| 00003C10: 55 46 4C 31 30 0D 42 55 46 4C 31 35 3A 20 4D 56 |UFL10.BUFL15: MV| 00003C20: 49 20 20 20 20 20 4D 2C 27 5E 27 20 20 20 20 20 |I M,'^' | 00003C30: 20 20 20 20 20 20 3B C3 4F 4E 56 45 52 54 20 43 | ;.ONVERT C| 00003C40: 4F 4E 54 52 4F 4C 20 43 48 41 52 0D 20 20 20 20 |ONTROL CHAR. | 00003C50: 20 20 20 20 49 4E 58 20 20 20 20 20 48 20 20 20 | INX H | 00003C60: 20 20 20 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E | ;...| 00003C70: 54 4F 20 54 57 4F 20 43 48 41 52 53 0D 20 20 20 |TO TWO CHARS. | 00003C80: 20 20 20 20 20 4F 52 49 20 20 20 20 20 34 30 48 | ORI 40H| 00003C90: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 2E 2E | ;..| 00003CA0: 2E 46 4F 52 20 44 49 53 50 4C 41 59 0D 42 55 46 |.FOR DISPLAY.BUF| 00003CB0: 4C 31 36 3A 20 4D 4F 56 20 20 20 20 20 4D 2C 41 |L16: MOV M,A| 00003CC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B CE 4F | ;.O| 00003CD0: 52 4D 41 4C 20 43 48 41 52 0D 20 20 20 20 20 20 |RMAL CHAR. | 00003CE0: 20 20 49 4E 58 20 20 20 20 20 48 0D 20 20 20 20 | INX H. | 00003CF0: 20 20 20 20 43 50 49 20 20 20 20 20 4C 46 20 20 | CPI LF | 00003D00: 20 20 20 20 20 20 20 20 20 20 20 20 3B CC 49 4E | ;.IN| 00003D10: 45 20 46 45 45 44 0D 20 20 20 20 20 20 20 20 52 |E FEED. R| 00003D20: 5A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |Z | 00003D30: 20 20 20 20 20 20 20 3B 2E 2E 2E 45 4E 44 53 20 | ;...ENDS | 00003D40: 4C 49 4E 45 0D 20 20 20 20 20 20 20 20 44 43 52 |LINE. DCR| 00003D50: 58 20 20 20 20 43 4F 55 4E 54 0D 20 20 20 20 20 |X COUNT. | 00003D60: 20 20 20 4A 52 5A 20 20 20 20 20 42 55 46 4C 31 | JRZ BUFL1| 00003D70: 30 0D 20 20 20 20 20 20 20 20 4A 52 20 20 20 20 |0. JR | 00003D80: 20 20 42 55 46 4C 31 32 0D 3B 0D 46 49 4E 44 3A | BUFL12.;.FIND:| 00003D90: 20 20 20 3B D3 45 41 52 43 48 20 C9 4E 50 55 54 | ;.EARCH .NPUT| 00003DA0: 20 D3 54 52 49 4E 47 20 46 55 4E 43 54 49 4F 4E | .TRING FUNCTION| 00003DB0: 0D 20 20 20 20 20 20 20 20 43 41 4C 4C 20 20 20 |. CALL | 00003DC0: 20 4B 53 43 41 4E 20 20 20 20 20 20 20 20 20 20 | KSCAN | 00003DD0: 20 3B 4C 4F 4F 50 20 55 4E 54 49 4C 0D 20 20 20 | ;LOOP UNTIL. | 00003DE0: 20 20 20 20 20 4C 44 41 20 20 20 20 20 4B 54 41 | LDA KTA| 00003DF0: 42 4C 45 20 20 20 20 20 20 20 20 20 20 3B 2E 2E |BLE ;..| 00003E00: 2E 48 45 4C 50 0D 20 20 20 20 20 20 20 20 4F 52 |.HELP. OR| 00003E10: 41 20 20 20 20 20 41 20 20 20 20 20 20 20 20 20 |A A | 00003E20: 20 20 20 20 20 20 3B 2E 2E 2E 4B 45 59 20 49 53 | ;...KEY IS| 00003E30: 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 |. JRNZ | 00003E40: 20 46 49 4E 44 20 20 20 20 20 20 20 20 20 20 20 | FIND | 00003E50: 20 3B 2E 2E 2E 52 45 4C 45 41 53 45 44 0D 20 20 | ;...RELEASED. | 00003E60: 20 20 20 20 20 20 43 41 4C 4C 20 20 20 20 52 45 | CALL RE| 00003E70: 56 52 53 45 20 20 20 20 20 20 20 20 20 20 3B 44 |VRSE ;D| 00003E80: 49 52 45 43 54 49 4F 4E 0D 20 20 20 20 20 20 20 |IRECTION. | 00003E90: 20 43 41 4C 4C 20 20 20 20 47 45 54 4C 4E 20 20 | CALL GETLN | 00003EA0: 20 20 20 20 20 20 20 20 20 3B 41 44 4A 55 53 54 | ;ADJUST| 00003EB0: 20 4C 49 4E 45 20 50 41 52 41 4D 53 0D 20 20 20 | LINE PARAMS. | 00003EC0: 20 20 20 20 20 43 41 4C 4C 20 20 20 20 52 45 56 | CALL REV| 00003ED0: 52 53 45 0D 20 20 20 20 20 20 20 20 4C 58 49 20 |RSE. LXI | 00003EE0: 20 20 20 20 44 2C 43 42 4F 54 20 20 20 20 20 20 | D,CBOT | 00003EF0: 20 20 20 20 3B C2 4F 54 54 4F 4D 20 4C 49 4E 45 | ;.OTTOM LINE| 00003F00: 0D 20 20 20 20 20 20 20 20 4C 44 58 20 20 20 20 |. LDX | 00003F10: 20 41 2C 44 49 52 20 20 20 20 20 20 20 20 20 20 | A,DIR | 00003F20: 20 3B C3 48 45 43 4B 20 44 49 52 45 43 54 49 4F | ;.HECK DIRECTIO| 00003F30: 4E 0D 20 20 20 20 20 20 20 20 4F 52 41 20 20 20 |N. ORA | 00003F40: 20 20 41 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A | A. JRNZ| 00003F50: 20 20 20 20 46 49 4E 44 30 32 0D 20 20 20 20 20 | FIND02. | 00003F60: 20 20 20 4C 58 49 20 20 20 20 20 44 2C 43 54 4F | LXI D,CTO| 00003F70: 50 20 20 20 20 20 20 20 20 20 20 3B D4 4F 50 20 |P ;.OP | 00003F80: 4C 49 4E 45 0D 46 49 4E 44 30 32 3A 20 4D 56 49 |LINE.FIND02: MVI| 00003F90: 20 20 20 20 20 43 2C 50 52 49 4E 54 46 20 20 20 | C,PRINTF | 00003FA0: 20 20 20 20 20 3B C3 4C 45 41 52 20 4C 49 4E 45 | ;.LEAR LINE| 00003FB0: 0D 20 20 20 20 20 20 20 20 43 41 4C 4C 20 20 20 |. CALL | 00003FC0: 20 42 44 4F 53 0D 20 20 20 20 20 20 20 20 4C 58 | BDOS. LX| 00003FD0: 49 20 20 20 20 20 44 2C 44 4D 41 42 55 46 20 20 |I D,DMABUF | 00003FE0: 20 20 20 20 20 20 3B C2 55 46 46 45 52 20 46 4F | ;.UFFER FO| 00003FF0: 52 20 49 4E 50 55 54 0D 20 20 20 20 20 20 20 20 |R INPUT. | 00004000: 4D 56 49 20 20 20 20 20 43 2C 43 4F 4E 49 4E 46 |MVI C,CONINF| 00004010: 20 20 20 20 20 20 20 20 3B C7 45 54 20 49 4E 50 | ;.ET INP| 00004020: 55 54 20 53 54 52 49 4E 47 0D 20 20 20 20 20 20 |UT STRING. | 00004030: 20 20 43 41 4C 4C 20 20 20 20 42 44 4F 53 0D 20 | CALL BDOS. | 00004040: 20 20 20 20 20 20 20 4C 44 41 20 20 20 20 20 4E | LDA N| 00004050: 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B |C ;| 00004060: C3 48 45 43 4B 20 43 48 41 52 20 43 4F 55 4E 54 |.HECK CHAR COUNT| 00004070: 0D 20 20 20 20 20 20 20 20 4F 52 41 20 20 20 20 |. ORA | 00004080: 20 41 0D 20 20 20 20 20 20 20 20 52 5A 20 20 20 | A. RZ | 00004090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000040A0: 20 20 20 3B C5 4D 50 54 59 20 53 54 52 49 4E 47 | ;.MPTY STRING| 000040B0: 0D 20 20 20 20 20 20 20 20 53 54 58 20 20 20 20 |. STX | 000040C0: 20 41 2C 43 4F 55 4E 54 0D 20 20 20 20 20 20 20 | A,COUNT. | 000040D0: 20 4C 48 4C 44 20 20 20 20 4C 49 4E 4F 20 20 20 | LHLD LINO | 000040E0: 20 20 20 20 20 20 20 20 20 3B D3 41 56 45 0D 20 | ;.AVE. | 000040F0: 20 20 20 20 20 20 20 53 48 4C 44 20 20 20 20 54 | SHLD T| 00004100: 45 4D 50 4E 20 20 20 20 20 20 20 20 20 20 20 3B |EMPN ;| 00004110: 2E 2E 2E 43 55 52 52 45 4E 54 20 4C 49 4E 45 0D |...CURRENT LINE.| 00004120: 20 20 20 20 20 20 20 20 4C 48 4C 44 20 20 20 20 | LHLD | 00004130: 4C 49 4E 45 20 20 20 20 20 20 20 20 20 20 20 20 |LINE | 00004140: 3B 2E 2E 2E 50 41 52 41 4D 53 20 49 4E 20 43 41 |;...PARAMS IN CA| 00004150: 53 45 0D 20 20 20 20 20 20 20 20 53 48 4C 44 20 |SE. SHLD | 00004160: 20 20 20 54 45 4D 50 4C 20 20 20 20 20 20 20 20 | TEMPL | 00004170: 20 20 20 3B 2E 2E 2E 4E 4F 20 4D 41 54 43 48 0D | ;...NO MATCH.| 00004180: 46 49 4E 44 31 30 3A 20 4C 42 43 44 20 20 20 20 |FIND10: LBCD | 00004190: 4C 49 4E 45 20 20 20 20 20 20 20 20 20 20 20 20 |LINE | 000041A0: 3B C2 45 47 49 4E 20 53 45 41 52 43 48 20 4C 4F |;.EGIN SEARCH LO| 000041B0: 4F 50 0D 46 49 4E 44 31 32 3A 20 4D 56 49 20 20 |OP.FIND12: MVI | 000041C0: 20 20 20 45 2C 30 0D 20 20 20 20 20 20 20 20 4C | E,0. L| 000041D0: 58 49 20 20 20 20 20 48 2C 52 43 48 41 52 0D 46 |XI H,RCHAR.F| 000041E0: 49 4E 44 31 34 3A 20 4C 44 41 58 20 20 20 20 42 |IND14: LDAX B| 000041F0: 0D 20 20 20 20 20 20 20 20 43 4D 50 20 20 20 20 |. CMP | 00004200: 20 4D 0D 20 20 20 20 20 20 20 20 49 4E 58 20 20 | M. INX | 00004210: 20 20 20 48 0D 20 20 20 20 20 20 20 20 49 4E 58 | H. INX| 00004220: 20 20 20 20 20 42 0D 20 20 20 20 20 20 20 20 4A | B. J| 00004230: 52 4E 5A 20 20 20 20 46 49 4E 44 31 36 0D 20 20 |RNZ FIND16. | 00004240: 20 20 20 20 20 20 49 4E 52 20 20 20 20 20 45 0D | INR E.| 00004250: 20 20 20 20 20 20 20 20 4D 4F 56 20 20 20 20 20 | MOV | 00004260: 41 2C 45 0D 20 20 20 20 20 20 20 20 43 4D 50 58 |A,E. CMPX| 00004270: 20 20 20 20 43 4F 55 4E 54 0D 20 20 20 20 20 20 | COUNT. | 00004280: 20 20 4A 52 4E 5A 20 20 20 20 46 49 4E 44 31 34 | JRNZ FIND14| 00004290: 0D 20 20 20 20 20 20 20 20 4A 52 20 20 20 20 20 |. JR | 000042A0: 20 53 4F 55 4E 44 20 20 20 20 20 20 20 20 20 20 | SOUND | 000042B0: 20 3B D3 54 52 49 4E 47 20 46 4F 55 4E 44 0D 46 | ;.TRING FOUND.F| 000042C0: 49 4E 44 31 36 3A 20 43 50 49 20 20 20 20 20 4C |IND16: CPI L| 000042D0: 46 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 |F. JRNZ | 000042E0: 20 20 46 49 4E 44 31 32 0D 20 20 20 20 20 20 20 | FIND12. | 000042F0: 20 43 41 4C 4C 20 20 20 20 47 45 54 4C 4E 0D 20 | CALL GETLN. | 00004300: 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 20 46 | JRNZ F| 00004310: 49 4E 44 31 30 0D 46 49 4E 44 32 30 3A 20 4C 48 |IND10.FIND20: LH| 00004320: 4C 44 20 20 20 20 54 45 4D 50 4C 20 20 20 20 20 |LD TEMPL | 00004330: 20 20 20 20 20 20 3B CC 49 4D 49 54 20 52 45 41 | ;.IMIT REA| 00004340: 43 48 45 44 0D 20 20 20 20 20 20 20 20 53 48 4C |CHED. SHL| 00004350: 44 20 20 20 20 4C 49 4E 45 20 20 20 20 20 20 20 |D LINE | 00004360: 20 20 20 20 20 3B 2E 2E 2E 53 4F 0D 20 20 20 20 | ;...SO. | 00004370: 20 20 20 20 4C 48 4C 44 20 20 20 20 54 45 4D 50 | LHLD TEMP| 00004380: 4E 20 20 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E |N ;...| 00004390: 52 45 53 54 4F 52 45 0D 20 20 20 20 20 20 20 20 |RESTORE. | 000043A0: 53 48 4C 44 20 20 20 20 4C 49 4E 4F 20 20 20 20 |SHLD LINO | 000043B0: 20 20 20 20 20 20 20 20 3B 2E 2E 2E 4F 52 49 47 | ;...ORIG| 000043C0: 49 4E 41 4C 20 4C 49 4E 45 0D 20 20 20 20 20 20 |INAL LINE. | 000043D0: 20 20 4D 56 49 58 20 20 20 20 30 2C 4C 4D 49 54 | MVIX 0,LMIT| 000043E0: 20 20 20 20 20 20 20 20 20 20 3B C3 4C 45 41 52 | ;.LEAR| 000043F0: 20 4C 49 4D 49 54 0D 20 20 20 20 20 20 20 20 52 | LIMIT. R| 00004400: 45 54 0D 3B 0D 53 4F 55 4E 44 3A 20 20 3B C2 45 |ET.;.SOUND: ;.E| 00004410: 4C 4C 0D 20 20 20 20 20 20 20 20 4D 56 49 20 20 |LL. MVI | 00004420: 20 20 20 43 2C 44 43 49 4F 46 0D 20 20 20 20 20 | C,DCIOF. | 00004430: 20 20 20 4C 58 49 20 20 20 20 20 44 2C 42 45 4C | LXI D,BEL| 00004440: 4C 0D 20 20 20 20 20 20 20 20 43 41 4C 4C 20 20 |L. CALL | 00004450: 20 20 42 44 4F 53 0D 20 20 20 20 20 20 20 20 4D | BDOS. M| 00004460: 56 49 20 20 20 20 20 41 2C 31 0D 20 20 20 20 20 |VI A,1. | 00004470: 20 20 20 4F 52 41 20 20 20 20 20 41 0D 20 20 20 | ORA A. | 00004480: 20 20 20 20 20 52 45 54 0D 3B 0D 52 45 56 52 53 | RET.;.REVRS| 00004490: 45 3A 20 3B D2 45 56 45 52 53 45 20 43 55 52 52 |E: ;.EVERSE CURR| 000044A0: 45 4E 54 20 44 49 52 45 43 54 49 4F 4E 0D 20 20 |ENT DIRECTION. | 000044B0: 20 20 20 20 20 20 4D 56 49 20 20 20 20 20 41 2C | MVI A,| 000044C0: 50 4C 55 53 0D 20 20 20 20 20 20 20 20 58 4F 52 |PLUS. XOR| 000044D0: 58 20 20 20 20 44 49 52 0D 20 20 20 20 20 20 20 |X DIR. | 000044E0: 20 53 54 58 20 20 20 20 20 41 2C 44 49 52 0D 20 | STX A,DIR. | 000044F0: 20 20 20 20 20 20 20 52 45 54 0D 3B 0D 43 4C 45 | RET.;.CLE| 00004500: 41 52 3A 20 20 3B C3 4C 45 41 52 20 D3 43 52 45 |AR: ;.LEAR .CRE| 00004510: 45 4E 0D 20 20 20 20 20 20 20 20 4C 58 49 20 20 |EN. LXI | 00004520: 20 20 20 44 2C 43 4C 52 0D 20 20 20 20 20 20 20 | D,CLR. | 00004530: 20 4D 56 49 20 20 20 20 20 43 2C 50 52 49 4E 54 | MVI C,PRINT| 00004540: 46 0D 20 20 20 20 20 20 20 20 43 41 4C 4C 20 20 |F. CALL | 00004550: 20 20 42 44 4F 53 0D 20 20 20 20 20 20 20 20 52 | BDOS. R| 00004560: 45 54 0D 3B 0D 4B 53 43 41 4E 3A 20 20 3B D3 43 |ET.;.KSCAN: ;.C| 00004570: 41 4E 20 C3 31 32 38 20 CB 45 59 53 0D 20 20 20 |AN .128 .EYS. | 00004580: 20 20 20 20 20 44 49 0D 20 20 20 20 20 20 20 20 | DI. | 00004590: 4C 58 49 20 20 20 20 20 48 2C 4B 54 41 42 4C 45 |LXI H,KTABLE| 000045A0: 20 20 20 20 20 20 20 20 3B CB 45 59 20 50 52 45 | ;.EY PRE| 000045B0: 53 53 2F 43 48 41 4E 47 45 20 54 41 42 4C 45 0D |SS/CHANGE TABLE.| 000045C0: 20 20 20 20 20 20 20 20 4C 58 49 20 20 20 20 20 | LXI | 000045D0: 42 2C 30 44 43 30 30 48 20 20 20 20 20 20 20 20 |B,0DC00H | 000045E0: 3B CB 45 59 20 4D 41 54 52 49 58 20 44 52 49 56 |;.EY MATRIX DRIV| 000045F0: 45 53 20 46 4F 52 0D 20 20 20 20 20 20 20 20 4D |ES FOR. M| 00004600: 56 49 20 20 20 20 20 44 2C 30 46 46 48 20 20 20 |VI D,0FFH | 00004610: 20 20 20 20 20 20 20 3B 2E 2E 2E C3 36 34 20 4B | ;....64 K| 00004620: 45 59 53 20 41 52 45 0D 20 20 20 20 20 20 20 20 |EYS ARE. | 00004630: 4F 55 54 50 20 20 20 20 44 20 20 20 20 20 20 20 |OUTP D | 00004640: 20 20 20 20 20 20 20 20 3B 2E 2E 2E 41 52 45 20 | ;...ARE | 00004650: 44 49 53 41 42 4C 45 44 0D 20 20 20 20 20 20 20 |DISABLED. | 00004660: 20 4D 56 49 20 20 20 20 20 44 2C 30 46 45 48 20 | MVI D,0FEH | 00004670: 20 20 20 20 20 20 20 20 20 3B C4 52 49 56 45 20 | ;.RIVE | 00004680: 4F 4E 45 20 52 4F 57 0D 20 20 20 20 20 20 20 20 |ONE ROW. | 00004690: 4D 56 49 20 20 20 20 20 45 2C 33 20 20 20 20 20 |MVI E,3 | 000046A0: 20 20 20 20 20 20 20 20 3B 2E 2E 2E 4F 46 20 54 | ;...OF T| 000046B0: 48 52 45 45 0D 4B 53 43 4E 32 3A 20 20 4C 58 49 |HREE.KSCN2: LXI| 000046C0: 20 20 20 20 20 42 2C 30 44 30 32 46 48 20 20 20 | B,0D02FH | 000046D0: 20 20 20 20 20 3B C4 52 49 56 45 53 20 46 4F 52 | ;.RIVES FOR| 000046E0: 0D 20 20 20 20 20 20 20 20 4F 55 54 50 20 20 20 |. OUTP | 000046F0: 20 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | D | 00004700: 20 3B 2E 2E 2E C3 31 32 38 20 4B 45 59 53 0D 20 | ;....128 KEYS. | 00004710: 20 20 20 20 20 20 20 4C 58 49 20 20 20 20 20 42 | LXI B| 00004720: 2C 30 44 43 30 31 48 20 20 20 20 20 20 20 20 3B |,0DC01H ;| 00004730: D4 4F 20 52 45 41 44 20 52 4F 57 0D 4B 53 43 4E |.O READ ROW.KSCN| 00004740: 33 3A 20 20 49 4E 50 20 20 20 20 20 41 20 20 20 |3: INP A | 00004750: 20 20 20 20 20 20 20 20 20 20 20 20 3B D2 45 41 | ;.EA| 00004760: 44 20 4B 45 59 53 0D 20 20 20 20 20 20 20 20 50 |D KEYS. P| 00004770: 55 53 48 20 20 20 20 48 20 20 20 20 20 20 20 20 |USH H | 00004780: 20 20 20 20 20 20 20 3B C1 20 4C 49 54 54 4C 45 | ;. LITTLE| 00004790: 20 44 45 4C 41 59 0D 20 20 20 20 20 20 20 20 49 | DELAY. I| 000047A0: 4E 50 20 20 20 20 20 48 20 20 20 20 20 20 20 20 |NP H | 000047B0: 20 20 20 20 20 20 20 3B 2E 2E 2E 48 45 4C 50 53 | ;...HELPS| 000047C0: 20 41 4C 4F 4E 47 20 54 48 45 20 57 41 59 21 0D | ALONG THE WAY!.| 000047D0: 20 20 20 20 20 20 20 20 43 4D 50 20 20 20 20 20 | CMP | 000047E0: 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |H | 000047F0: 3B C4 45 42 4F 55 4E 43 45 0D 20 20 20 20 20 20 |;.EBOUNCE. | 00004800: 20 20 50 4F 50 20 20 20 20 20 48 0D 20 20 20 20 | POP H. | 00004810: 20 20 20 20 4A 52 4E 5A 20 20 20 20 4B 53 43 4E | JRNZ KSCN| 00004820: 33 20 20 20 20 20 20 20 20 20 20 20 3B C3 48 45 |3 ;.HE| 00004830: 43 4B 20 41 47 41 49 4E 0D 20 20 20 20 20 20 20 |CK AGAIN. | 00004840: 20 43 4D 41 20 20 20 20 20 20 20 20 20 20 20 20 | CMA | 00004850: 20 20 20 20 20 20 20 20 20 3B CD 41 4B 45 20 31 | ;.AKE 1| 00004860: 27 53 20 4F 46 20 50 52 45 53 53 45 53 0D 20 20 |'S OF PRESSES. | 00004870: 20 20 20 20 20 20 4D 4F 56 20 20 20 20 20 42 2C | MOV B,| 00004880: 4D 20 20 20 20 20 20 20 20 20 20 20 20 20 3B D0 |M ;.| 00004890: 52 45 56 49 4F 55 53 20 4B 45 59 53 0D 20 20 20 |REVIOUS KEYS. | 000048A0: 20 20 20 20 20 4D 4F 56 20 20 20 20 20 4D 2C 41 | MOV M,A| 000048B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B CE 45 | ;.E| 000048C0: 57 20 4B 45 59 53 0D 20 20 20 20 20 20 20 20 58 |W KEYS. X| 000048D0: 52 41 20 20 20 20 20 42 20 20 20 20 20 20 20 20 |RA B | 000048E0: 20 20 20 20 20 20 20 3B 2E 2E 2E 47 49 56 45 53 | ;...GIVES| 000048F0: 20 43 48 41 4E 47 45 53 0D 20 20 20 20 20 20 20 | CHANGES. | 00004900: 20 41 4E 41 20 20 20 20 20 4D 20 20 20 20 20 20 | ANA M | 00004910: 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E 41 4E 44 | ;...AND| 00004920: 20 50 52 45 53 53 45 44 20 43 48 41 4E 47 45 53 | PRESSED CHANGES| 00004930: 0D 20 20 20 20 20 20 20 20 49 4E 58 20 20 20 20 |. INX | 00004940: 20 48 0D 20 20 20 20 20 20 20 20 4D 4F 56 20 20 | H. MOV | 00004950: 20 20 20 4D 2C 41 20 20 20 20 20 20 20 20 20 20 | M,A | 00004960: 20 20 20 3B D3 41 56 45 20 50 52 45 53 53 45 44 | ;.AVE PRESSED| 00004970: 20 43 48 41 4E 47 45 53 0D 20 20 20 20 20 20 20 | CHANGES. | 00004980: 20 49 4E 58 20 20 20 20 20 48 20 20 20 20 20 20 | INX H | 00004990: 20 20 20 20 20 20 20 20 20 3B CE 4F 57 20 46 4F | ;.OW FO| 000049A0: 52 0D 20 20 20 20 20 20 20 20 52 4C 43 52 20 20 |R. RLCR | 000049B0: 20 20 44 20 20 20 20 20 20 20 20 20 20 20 20 20 | D | 000049C0: 20 20 3B 2E 2E 2E 4E 45 58 54 20 52 4F 57 0D 20 | ;...NEXT ROW. | 000049D0: 20 20 20 20 20 20 20 44 43 52 20 20 20 20 20 45 | DCR E| 000049E0: 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 20 |. JRNZ | 000049F0: 20 4B 53 43 4E 32 0D 3B 0D 4B 43 48 4E 47 3A 20 | KSCN2.;.KCHNG: | 00004A00: 20 3B D0 52 4F 43 45 53 53 20 C3 48 41 4E 47 45 | ;.ROCESS .HANGE| 00004A10: 53 0D 20 20 20 20 20 20 20 20 45 49 0D 20 20 20 |S. EI. | 00004A20: 20 20 20 20 20 4C 58 49 20 20 20 20 20 48 2C 4B | LXI H,K| 00004A30: 54 41 42 4C 45 2B 32 20 20 20 20 20 20 3B C6 49 |TABLE+2 ;.I| 00004A40: 52 53 54 0D 20 20 20 20 20 20 20 20 4D 4F 56 20 |RST. MOV | 00004A50: 20 20 20 20 41 2C 4D 20 20 20 20 20 20 20 20 20 | A,M | 00004A60: 20 20 20 20 3B 2E 2E 2E 43 48 45 43 4B 0D 20 20 | ;...CHECK. | 00004A70: 20 20 20 20 20 20 41 4E 49 20 20 20 20 20 31 20 | ANI 1 | 00004A80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 2E | ;.| 00004A90: 2E 2E C5 D3 C3 3F 0D 20 20 20 20 20 20 20 20 4A |.....?. J| 00004AA0: 52 5A 20 20 20 20 20 4B 43 48 47 31 0D 20 20 20 |RZ KCHG1. | 00004AB0: 20 20 20 20 20 43 41 4C 4C 20 20 20 20 43 4C 45 | CALL CLE| 00004AC0: 41 52 20 20 20 20 20 20 20 20 20 20 20 3B C3 4C |AR ;.L| 00004AD0: 45 41 52 20 53 43 52 45 45 4E 0D 20 20 20 20 20 |EAR SCREEN. | 00004AE0: 20 20 20 4A 4D 50 20 20 20 20 20 46 49 4E 49 53 | JMP FINIS| 00004AF0: 20 20 20 20 20 20 20 20 20 20 20 3B 2E 2E 2E 41 | ;...A| 00004B00: 4E 44 20 45 58 49 54 0D 4B 43 48 47 31 3A 20 20 |ND EXIT.KCHG1: | 00004B10: 4D 4F 56 20 20 20 20 20 41 2C 4D 0D 20 20 20 20 |MOV A,M. | 00004B20: 20 20 20 20 41 4E 49 20 20 20 20 20 30 36 48 20 | ANI 06H | 00004B30: 20 20 20 20 20 20 20 20 20 20 20 20 3B 2B 2F 2D | ;+/-| 00004B40: 20 50 52 45 53 53 45 53 3F 0D 20 20 20 20 20 20 | PRESSES?. | 00004B50: 20 20 49 4E 58 20 20 20 20 20 48 0D 20 20 20 20 | INX H. | 00004B60: 20 20 20 20 4A 52 5A 20 20 20 20 20 4B 43 48 47 | JRZ KCHG| 00004B70: 32 0D 20 20 20 20 20 20 20 20 4F 52 41 20 20 20 |2. ORA | 00004B80: 20 20 4D 20 20 20 20 20 20 20 20 20 20 20 20 20 | M | 00004B90: 20 20 3B C6 4F 52 43 45 20 41 20 43 48 41 4E 47 | ;.ORCE A CHANG| 00004BA0: 45 0D 20 20 20 20 20 20 20 20 4D 4F 56 20 20 20 |E. MOV | 00004BB0: 20 20 4D 2C 41 0D 4B 43 48 47 32 3A 20 20 49 4E | M,A.KCHG2: IN| 00004BC0: 58 20 20 20 20 20 48 0D 20 20 20 20 20 20 20 20 |X H. | 00004BD0: 49 4E 58 20 20 20 20 20 48 0D 20 20 20 20 20 20 |INX H. | 00004BE0: 20 20 4D 56 49 20 20 20 20 20 43 2C 33 20 20 20 | MVI C,3 | 00004BF0: 20 20 20 20 20 20 20 20 20 20 3B C3 4F 55 4E 54 | ;.OUNT| 00004C00: 0D 4B 43 48 47 33 3A 20 20 4D 4F 56 20 20 20 20 |.KCHG3: MOV | 00004C10: 20 41 2C 4D 20 20 20 20 20 20 20 20 20 20 20 20 | A,M | 00004C20: 20 3B D0 52 45 53 53 45 44 20 43 48 41 4E 47 45 | ;.RESSED CHANGE| 00004C30: 53 0D 20 20 20 20 20 20 20 20 43 4D 41 0D 20 20 |S. CMA. | 00004C40: 20 20 20 20 20 20 49 4E 52 20 20 20 20 20 41 0D | INR A.| 00004C50: 20 20 20 20 20 20 20 20 41 4E 41 20 20 20 20 20 | ANA | 00004C60: 4D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |M | 00004C70: 3B C5 58 54 52 41 43 54 20 4F 4E 45 20 43 48 41 |;.XTRACT ONE CHA| 00004C80: 4E 47 45 0D 20 20 20 20 20 20 20 20 4A 4E 5A 20 |NGE. JNZ | 00004C90: 20 20 20 20 4B 43 48 47 31 30 20 20 20 20 20 20 | KCHG10 | 00004CA0: 20 20 20 20 3B C6 4F 55 4E 44 20 4F 4E 45 0D 20 | ;.OUND ONE. | 00004CB0: 20 20 20 20 20 20 20 44 43 58 20 20 20 20 20 48 | DCX H| 00004CC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B | ;| 00004CD0: C7 4F 54 4F 20 4E 45 58 54 20 52 4F 57 0D 20 20 |.OTO NEXT ROW. | 00004CE0: 20 20 20 20 20 20 44 43 58 20 20 20 20 20 48 0D | DCX H.| 00004CF0: 20 20 20 20 20 20 20 20 44 43 52 20 20 20 20 20 | DCR | 00004D00: 43 0D 20 20 20 20 20 20 20 20 4A 52 4E 5A 20 20 |C. JRNZ | 00004D10: 20 20 4B 43 48 47 33 0D 20 20 20 20 20 20 20 20 | KCHG3. | 00004D20: 52 45 54 20 20 20 20 20 20 20 20 20 20 20 20 20 |RET | 00004D30: 20 20 20 20 20 20 20 20 3B CE 4F 20 43 48 41 4E | ;.O CHAN| 00004D40: 47 45 53 20 46 4F 55 4E 44 0D 3B 0D 4B 43 48 47 |GES FOUND.;.KCHG| 00004D50: 31 30 3A 20 3B C4 45 43 4F 44 45 20 C3 48 41 4E |10: ;.ECODE .HAN| 00004D60: 47 45 0D 20 20 20 20 20 20 20 20 4C 58 49 20 20 |GE. LXI | 00004D70: 20 20 20 48 2C 44 54 41 42 4C 45 20 20 20 20 20 | H,DTABLE | 00004D80: 20 20 20 3B CB 45 59 20 C4 45 43 4F 44 45 20 54 | ;.EY .ECODE T| 00004D90: 41 42 4C 45 0D 20 20 20 20 20 20 20 20 4C 58 49 |ABLE. LXI| 00004DA0: 20 20 20 20 20 44 2C 38 0D 4B 43 48 47 31 32 3A | D,8.KCHG12:| 00004DB0: 20 44 43 52 20 20 20 20 20 45 0D 20 20 20 20 20 | DCR E. | 00004DC0: 20 20 20 41 44 44 20 20 20 20 20 41 0D 20 20 20 | ADD A. | 00004DD0: 20 20 20 20 20 4A 52 4E 43 20 20 20 20 4B 43 48 | JRNC KCH| 00004DE0: 47 31 32 0D 20 20 20 20 20 20 20 20 44 41 44 20 |G12. DAD | 00004DF0: 20 20 20 20 44 0D 20 20 20 20 20 20 20 20 4D 56 | D. MV| 00004E00: 49 20 20 20 20 20 45 2C 38 0D 4B 43 48 47 31 34 |I E,8.KCHG14| 00004E10: 3A 20 44 43 52 20 20 20 20 20 43 0D 20 20 20 20 |: DCR C. | 00004E20: 20 20 20 20 4A 52 5A 20 20 20 20 20 4B 43 48 47 | JRZ KCHG| 00004E30: 32 30 0D 20 20 20 20 20 20 20 20 44 41 44 20 20 |20. DAD | 00004E40: 20 20 20 44 0D 20 20 20 20 20 20 20 20 4A 52 20 | D. JR | 00004E50: 20 20 20 20 20 4B 43 48 47 31 34 0D 4B 43 48 47 | KCHG14.KCHG| 00004E60: 32 30 3A 20 4D 4F 56 20 20 20 20 20 41 2C 4D 20 |20: MOV A,M | 00004E70: 20 20 20 20 20 20 20 20 20 20 20 20 3B C4 45 43 | ;.EC| 00004E80: 4F 44 45 44 20 56 41 4C 55 45 0D 20 20 20 20 20 |ODED VALUE. | 00004E90: 20 20 20 52 45 54 0D 3B 0D 44 54 41 42 4C 45 3A | RET.;.DTABLE:| 00004EA0: 20 3B CB 45 59 20 C4 45 43 4F 44 45 20 D4 41 42 | ;.EY .ECODE .AB| 00004EB0: 4C 45 0D 20 20 20 20 20 20 20 20 44 42 20 20 20 |LE. DB | 00004EC0: 20 20 20 48 45 4C 50 2C 30 38 2C 30 35 2C 54 41 | HELP,08,05,TA| 00004ED0: 42 2C 30 32 2C 30 34 2C 30 37 2C 30 31 0D 20 20 |B,02,04,07,01. | 00004EE0: 20 20 20 20 20 20 44 42 20 20 20 20 20 20 30 30 | DB 00| 00004EF0: 2C 50 4C 55 53 2C 4D 49 4E 55 53 2C 4E 55 4D 42 |,PLUS,MINUS,NUMB| 00004F00: 45 52 2C 45 4E 54 45 52 2C 30 36 2C 30 39 2C 30 |ER,ENTER,06,09,0| 00004F10: 33 0D 20 20 20 20 20 20 20 20 44 42 20 20 20 20 |3. DB | 00004F20: 20 20 41 4C 54 2C 31 30 2C 32 34 2C 42 47 4E 4F | ALT,10,24,BGNO| 00004F30: 46 2C 45 4E 44 4F 46 2C 30 30 2C 30 30 2C 4E 53 |F,ENDOF,00,00,NS| 00004F40: 43 52 4F 4C 0D 3B 0D 4B 54 41 42 4C 45 3A 20 3B |CROL.;.KTABLE: ;| 00004F50: CB 45 59 20 D0 52 45 53 53 2F C3 48 41 4E 47 45 |.EY .RESS/.HANGE| 00004F60: 20 D4 41 42 4C 45 3A 20 52 4F 57 53 20 31 2D 33 | .ABLE: ROWS 1-3| 00004F70: 0D 20 20 20 20 20 20 20 20 44 42 20 20 20 20 20 |. DB | 00004F80: 20 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 | 0,0,0,0,0,0,0,0| 00004F90: 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 |,0,0,0,0,0,0,0,0| 00004FA0: 0D 20 20 20 20 20 20 20 20 44 42 20 20 20 20 20 |. DB | 00004FB0: 20 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 | 0,0,0,0,0,0,0,0| 00004FC0: 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 |,0,0,0,0,0,0,0,0| 00004FD0: 0D 20 20 20 20 20 20 20 20 44 42 20 20 20 20 20 |. DB | 00004FE0: 20 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 | 0,0,0,0,0,0,0,0| 00004FF0: 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 |,0,0,0,0,0,0,0,0| 00005000: 0D 3B 0D 4F 50 4E 45 52 52 3A 20 44 42 20 20 20 |.;.OPNERR: DB | 00005010: 20 20 20 43 52 2C 4C 46 2C 27 4E 4F 20 46 49 4C | CR,LF,'NO FIL| 00005020: 45 24 27 0D 52 44 45 52 52 3A 20 20 44 42 20 20 |E$'.RDERR: DB | 00005030: 20 20 20 20 43 52 2C 4C 46 2C 27 42 41 44 20 52 | CR,LF,'BAD R| 00005040: 45 41 44 20 45 52 52 4F 52 24 27 0D 3B 0D 53 46 |EAD ERROR$'.;.SF| 00005050: 57 44 3A 20 20 20 44 42 20 20 20 20 20 20 31 42 |WD: DB 1B| 00005060: 48 2C 33 44 48 2C 32 30 48 2C 32 30 48 2C 31 42 |H,3DH,20H,20H,1B| 00005070: 48 2C 35 32 48 2C 31 42 48 2C 33 44 48 2C 33 37 |H,52H,1BH,3DH,37| 00005080: 48 2C 32 30 48 2C 30 41 48 0D 53 42 41 4B 3A 20 |H,20H,0AH.SBAK: | 00005090: 20 20 44 42 20 20 20 20 20 20 31 42 48 2C 33 44 | DB 1BH,3D| 000050A0: 48 2C 32 30 48 2C 32 30 48 2C 31 42 48 2C 34 35 |H,20H,20H,1BH,45| 000050B0: 48 2C 30 41 48 0D 43 54 4F 50 3A 20 20 20 44 42 |H,0AH.CTOP: DB| 000050C0: 20 20 20 20 20 20 31 42 48 2C 33 44 48 2C 32 30 | 1BH,3DH,20| 000050D0: 48 2C 32 30 48 2C 31 42 48 2C 35 34 48 2C 30 41 |H,20H,1BH,54H,0A| 000050E0: 48 0D 43 42 4F 54 3A 20 20 20 44 42 20 20 20 20 |H.CBOT: DB | 000050F0: 20 20 31 42 48 2C 33 44 48 2C 33 37 48 2C 32 30 | 1BH,3DH,37H,20| 00005100: 48 2C 31 42 48 2C 35 34 48 2C 30 41 48 0D 43 4C |H,1BH,54H,0AH.CL| 00005110: 52 3A 20 20 20 20 44 42 20 20 20 20 20 20 31 41 |R: DB 1A| 00005120: 48 2C 30 41 48 0D 4C 49 4E 41 53 43 3A 20 44 42 |H,0AH.LINASC: DB| 00005130: 20 20 20 20 20 20 27 30 30 30 30 30 3A 20 27 2C | '00000: ',| 00005140: 30 41 48 0D 3B 0D 50 52 4F 47 45 4E 44 20 45 51 |0AH.;.PROGEND EQ| 00005150: 55 20 20 20 20 20 24 20 20 20 20 20 20 20 3B D5 |U $ ;.| 00005160: 53 45 44 20 46 4F 52 20 43 48 45 43 4B 53 55 4D |SED FOR CHECKSUM| 00005170: 20 4F 4E 20 43 4F 44 45 0D 3B 0D 46 45 4E 44 3A | ON CODE.;.FEND:| 00005180: 20 20 20 44 53 20 20 20 20 20 20 32 20 20 20 20 | DS 2 | 00005190: 20 20 20 3B C6 49 4C 45 20 45 4E 44 20 41 44 44 | ;.ILE END ADD| 000051A0: 52 45 53 53 0D 4C 49 4E 42 55 46 3A 20 44 53 20 |RESS.LINBUF: DS | 000051B0: 20 20 20 20 20 32 20 20 20 20 20 20 20 3B CC 49 | 2 ;.I| 000051C0: 4E 45 20 42 55 46 46 45 52 20 41 44 44 52 45 53 |NE BUFFER ADDRES| 000051D0: 53 0D 4C 49 4E 45 3A 20 20 20 44 53 20 20 20 20 |S.LINE: DS | 000051E0: 20 20 32 20 20 20 20 20 20 20 3B C3 55 52 52 45 | 2 ;.URRE| 000051F0: 4E 54 20 4C 49 4E 45 20 41 44 44 52 45 53 53 0D |NT LINE ADDRESS.| 00005200: 4C 49 4E 4F 3A 20 20 20 44 53 20 20 20 20 20 20 |LINO: DS | 00005210: 32 20 20 20 20 20 20 20 3B C3 55 52 52 45 4E 54 |2 ;.URRENT| 00005220: 20 4C 49 4E 45 20 4E 55 4D 42 45 52 0D 45 4E 44 | LINE NUMBER.END| 00005230: 4C 4E 3A 20 20 44 53 20 20 20 20 20 20 32 20 20 |LN: DS 2 | 00005240: 20 20 20 20 20 3B CC 41 53 54 20 4C 49 4E 45 20 | ;.AST LINE | 00005250: 4E 55 4D 42 45 52 0D 54 45 4D 50 4C 3A 20 20 44 |NUMBER.TEMPL: D| 00005260: 53 20 20 20 20 20 20 32 20 20 20 20 20 20 20 3B |S 2 ;| 00005270: D7 4F 52 4B 20 41 52 45 41 0D 54 45 4D 50 4E 3A |.ORK AREA.TEMPN:| 00005280: 20 20 44 53 20 20 20 20 20 20 32 20 20 20 20 20 | DS 2 | 00005290: 20 20 3B D7 4F 52 4B 20 41 52 45 41 0D 50 46 4C | ;.ORK AREA.PFL| 000052A0: 41 47 53 3A 20 44 53 20 20 20 20 20 20 31 30 20 |AGS: DS 10 | 000052B0: 20 20 20 20 20 3B C9 D8 20 52 45 47 49 53 54 45 | ;.. REGISTE| 000052C0: 52 20 56 41 52 49 41 42 4C 45 53 0D 4F 4C 44 53 |R VARIABLES.OLDS| 000052D0: 50 3A 20 20 44 53 20 20 20 20 20 20 32 20 20 20 |P: DS 2 | 000052E0: 20 20 20 20 3B D3 41 56 45 44 20 53 54 41 43 4B | ;.AVED STACK| 000052F0: 0D 20 20 20 20 20 20 20 20 44 53 20 20 20 20 20 |. DS | 00005300: 20 31 32 38 20 20 20 20 20 3B D0 52 4F 47 52 41 | 128 ;.ROGRA| 00005310: 4D 20 53 54 41 43 4B 0D 53 54 4B 54 4F 50 20 20 |M STACK.STKTOP | 00005320: 45 51 55 20 20 20 20 20 24 0D 3B 0D 46 42 45 47 |EQU $.;.FBEG| 00005330: 49 4E 20 20 45 51 55 20 20 20 20 20 38 30 30 48 |IN EQU 800H| 00005340: 20 20 20 20 3B D4 45 58 54 20 46 49 4C 45 20 4C | ;.EXT FILE L| 00005350: 4F 41 44 53 20 48 45 52 45 0D 3B 0D 20 20 20 20 |OADS HERE.;. | 00005360: 20 20 20 20 45 4E 44 0D | END. |
;---------------------------------------
----------.; "TEXT SCAN" FOR CP/M+ ON TH
E C128.; AUBREY STANLEY, NOV 1986.;-----
----------------------------------------
----.;. MACLIB Z80 ;Z80 MACR
O LIBRARY. ORG 100H ;START
ADDRESS.; CP/M FUNCTIONS.BOOT EQU
0 ;WARM START.BDOS EQU 5
;CP/M FUNCTION VECTOR.DCIOF EQU
6 ;DIRECT CONSOLE.PRINTF EQU
9 ;PRINT STRING.CONINF EQU
10 ;READ CONSOLE BUFFER.OPENF E
QU 15 ;OPEN FILE.CLOSEF EQU
16 ;CLOSE FILE.READF EQU 20
;READ SEQUENTIAL.SDMAF EQU 2
6 ;SET DMA ADDRESS.MSECF EQU
44 ;MULTI-SECTOR I/O.SCONM EQU
109 ;SET CONSOLE MODE.SDLMF EQU
110 ;SET OUTPUT DELIMITER.;.; FI
LE CONTROL BLOCK.FCB EQU 5CH.FCB
EX EQU FCB+12.FCBCR EQU FCB+
32.;.; CONSOLE BUFFER FOR FIND STRING.DM
ABUF EQU 80H.MX EQU DMABUF
;MAX CHARS.NC EQU MX+1 ;NU
M CHARS.RCHAR EQU NC+1 ;CHAR ST
RING.;.; CHARACTER EQUATES.RAWINP EQU
0AH ;RAW INPUT MODE.EOMC EQU
1AH ;END OF FILE.CR EQU
0DH ;CARRIAGE RET.LF EQU 0A
H ;LINE FEED.TABC EQU 09H
;TAB.BELL EQU 07H.;.; DECODED VA
LUES FOR C128 KEYS.PERIOD EQU 24
; . KEY.PLUS EQU 28 ; +.M
INUS EQU 27 ; -.ENDOF EQU
29 ; CUR DOWN.BGNOF EQU 30
; CUR UP.NSCROL EQU 32 ;
NO SCROLL.NUMBER EQU 31 ; 0-9
.ALT EQU 33 ; ALT.TAB E
QU 26 ; TAB.ENTER EQU 25
; ENTER.HELP EQU 34 ; H
ELP.;.; OFFSETS FOR VARIABLES ON THE IX
REGISTER.SCROLY EQU 0 ; SCROL
L MODE .STOP EQU 1 ; STOP S
CROLL.DIR EQU 2 ; CURRENT
DIRECTION.LMIT EQU 3 ; LIMI
T REACHED.LNUM EQU 4 ; LINE
NUMBERING ON.DOUBLE EQU 5 ;
DOUBLE 0-9 VALUES.CNT1 EQU 6
; CURRENT NUMBER FOR SCROLL.CNT2 EQ
U 7 ; NUMBER OF LINES SCROLLED
.COUNT EQU 8 ; GENERAL PURPO
SE.;.;----------------------------------
----------.CHKSUM: ;CHECKSUMS YOUR CODE
- . ;CAN BE DELETED WHEN ALL IS W
ELL. LXI B,PROGEND-START ;COU
NT TO CHECK. LXIY START
;FROM SSTART. LXI H,9170H
;CHECKSUM EXCESS. MVI
D,0.CHKS: LDY E,0 ;C
HECK LOOP. DAD D
;...ADDS BYTES. INXIY. D
CX B. MOV A,B. ORA
C. JRNZ CHKS. MOV
A,L ;SHOULD. ORA
H ;...BE 0. JRZ
START ;GOOD CODE.
MVI C,DCIOF ;BAD CODE.
LXI D,'?' ;...PRINT ?.
CALL BDOS ;...AND.
RET ;...EXIT.;
END OF CHECKSUM CODE -.;----------------
-------------------------------.;.START:
;SET STACK AND OPEN FILE. SSPD
OLDSP. LXI SP,STKTOP.
XRA A ;INIT FCB.
STA FCBEX. STA FCBCR
. LXI D,FCB. MVI C
,OPENF. CALL BDOS ;
OPEN. ORA A. JRZ R
EAD. LXI D,OPNERR ;BAD
OPEN. MVI C,PRINTF. C
ALL BDOS.FINIS: ;RESTORE STACK AND E
XIT. LSPD OLDSP. RET.;.
READ: ;READ FILE. LXIX PFLAG
S ;PRINT FLAGS BASE. LXI
H,0 ;INIT SECTOR COUNT.
SHLD LINE. MVI E,1
28 ;128 SECTORS TO READ.
STX E,LMIT ;SAVE FOR RLOO
P. MVI C,MSECF. CALL
BDOS ;SET MULTISECTORS.
MVIX 3,COUNT ;3 READS.
LXI D,FBEGIN ;START OF R
EAD AREA. CALL RLOOP
;READ UP TO 48K. ORA A
;CHECK END OF FILE. JRNZ
CLOSE ;...YES!. PUS
H D ;SAVE DMA ADDRESS.
MVI E,48 ;READ 48
MORE SECTORS. STX E,LMIT
;SAVE FOR RLOOP. MVI C,M
SECF. CALL BDOS ;SE
T MULTISECTORS. POP D.
MVIX 1,COUNT ;1 READ.
CALL RLOOP ;READ UP TO 6K
MORE.CLOSE: LXI D,FCB. MVI
C,CLOSEF ;CLOSE. CALL
BDOS.;.BYTES: ;CALCULATE TOTAL CHARS.
LHLD LINE ;TOTAL S
ECTORS. MVI B,7 ;
COUNT.BYTE10: DAD H ;D
OUBLE VALUE. DCR B
;...7 TIMES. JRNZ BYTE10.
LXI D,FBEGIN ;START.
DAD D ;END.
MVI A,EOMC.EOM: DCX H
;FIND LAST CHAR. CMP
M. JRZ EOM. MOV
A,M. INX H. CPI LF
. JRZ EOM10. MVI M
,CR ;CR/LF AT END. INX
H. MVI M,LF. INX
H.EOM10: MVI M,EOMC ;E
ND OF FILE CHAR. SHLD FEND
;END OF FILE ADDRESS. INX
H. SHLD LINBUF ;
LINE BUFFER ADDRESS. JMP PRIN
T ;OUTPUT ROUTINE.;.RLOOP: ;R
EADS MULTISECTORS AND KEEPS COUNT.
PUSH D ;SAVE DMA ADDR
ESS. MVI C,SDMAF. CALL
BDOS ;SET DMA ADDRESS.
LXI D,FCB. MVI C,REA
DF. CALL BDOS ;READ
MULTISECTORS. CPI 2
;BAD ERROR?. JRC RLP5
;...NO!.;.BADR: ;ERROR ON RE
AD. LXI D,RDERR. MVI
C,PRINTF. CALL BDOS.
LXI D,FCB. MVI C,CLOSEF
;CLOSE. CALL BDOS.
JMP FINIS.;.RLP5: ORA A
;MORE TO READ?. JRNZ
RLP6 ;NO!. LDX H
,LMIT ;STORE FULL COUNT.RLP6:
MOV E,H ;# SECTORS READ
. MVI D,0.;.RLP10: ;SUM TOTA
L SECTORS SO FAR. LHLD LINE
;CURRENT COUNT. DAD
D ;ADD IN SECTORS READ.
SHLD LINE. POP D.
CPI 1 ;END OF FILE
?. RZ ;YES!.
MVI A,64 ;NEXT DM
A ADDRESS. ADD D
;...UP 128 SECTORS. MOV D,A
;...OR 16K IN DE. DC
RX COUNT ;ANY MORE READS?.
JRNZ RLOOP ;YES, CON
TINUE READING. XRA A
;MORE BYTES STATUS. RET.;.P
RINT: ;INITIALIZE FOR PRINTING FILE.
MVI A,40 ;40 CHAR BU
FFER. STA MX ;..
.FOR FIND. MVIX NSCROL,STOP
;TO SCROLL. MVIX 0,SCROLY
;NOT CONTINUOUS. MVIX 0,D
OUBLE ;DONT DOUBLE COUNT.
MVIX PLUS,DIR ;DIRECTION.
MVIX 0,LNUM ;NO LINE NUMB
ERS. MVIX 24,CNT1 ;24
LINES A TIME. LXI H,FBEGIN-2
;STORE BEGINNING. MVI M,
EOMC ;...OF FILE. INX
H ;...PREAMBLE. M
VI M,LF. INX H. SH
LD LINE ;ADDRESS OF.
LXI H,1 ;...FIRST LINE
. SHLD LINO ;...LIN
E NUMBER.PR10: CALL GETLN
;GET NEXT LINE. JRNZ PR10
;...UNTIL LIMIT. LHLD
LINO ;STORE LAST LINE'S.
SHLD ENDLN ;...LINE NUMB
ER. LXI H,FBEGIN ;STAR
T WITH. SHLD LINE ;
...FIRST LINE. LXI H,1.
SHLD LINO. MVIX 0,LMIT
;CLEAR LIMIT. MVI E,LF
;SET LF. MVI C,SD
LMF ;...DELIMITER. CALL
BDOS ;...FOR OUTPUT.
LXI D,RAWINP ;CONSOLE MODE.
MVI C,SCONM ;...SET.
CALL BDOS. CALL CLEA
R ;CLEAR SCREEN.;.PLOOP: ;PRI
NT LOOP CONTROLS OUTPUT TO SCREEN.
LDX A,CNT1 ;LINES TO OUTP
UT. STX A,CNT2.PLP10: CALL
GETKEY ;CONDITIONS OUTPUT.
LXI D,SFWD ;FORWARD.
LDX A,DIR ;...DIRECT
ION. ORA A. JRNZ PL
P12. LXI D,SBAK ;BAC
KWARD.PLP12: MVI C,PRINTF ;O
UTP INSERT OR DELETE. CALL BDO
S ;...LINE STRING. LDX
A,LNUM ;CHECK LINE.
ORA A ;...NUMBERING.
CNZ NUMOUT ;...ON AN
D OUTPUT NUM. CALL BUFLIN
;EXPAND LINE IN BUFFER. LDED
LINBUF ;LINE BUFFER ADDRESS
. MVI C,PRINTF ;OUTPUT
. CALL BDOS ;...LIN
E.PLP18: CALL GETLN ;GET N
EXT LINE POINTER. LDX A,LMIT
;CHECK FILE LIMIT. ORA
A ;...REACHED. J
RZ PLP20 ;NO!. MVIX
0,STOP ;STOP OUTPUT.
JR PLP10.PLP20: DCRX CNT2
;COUNT DOWN. JRNZ PLP10
. MVIX 0,STOP ;COUNT
EXPIRED..STOP. JR PLOOP.; AC
TIONS KEY INPUT...LOOPS UNTIL STOP CLEAR
ED.GETKEY: ;INPUT ROUTINE. CALL
KSCAN ;SCAN 128 KEYS.
ORA A. JRZ GKG60
;NO PRESS. CPI NUMBER
;LINE FEED?. JRNZ GK20.
XORX LNUM ;TOGGLE LI
NE. STX A,LNUM ;...N
UMBER FLAG. JR GK48.;.GK20:
CPI TAB ;TAB?.
JRNZ GK22. CALL UPLN
;ADVANCE LINE. JR GK48
;...POSITION.GK22: CPI
ALT ;ALT?. JRNZ GK
30. XORX DOUBLE ;TOGG
LE. STX A,DOUBLE ;...D
OUBLE FLAG. CALL SOUND
;SOUND BELL. JR GKG60.;.G
K30: CPI ENTER ;ENTER?.
JRZ GK48 ;YES!.
JRNC GK36 ;NOT A NUMB
ER KEY!. CPI 11
;PERIOD KEY..24 LINES?. JRNC G
K34 ;YES!. MOV B,A
. LDX A,DOUBLE ;DOUBLE
FLAG?. ORA A. MOV
A,B. JRZ GK34. ADD
A ;DOUBLE 1-(1)0.GK34:
STX A,CNT1 ;NEW OUTPUT COU
NT. JR GK48.GK36: CPI
NSCROL ;NO SCROLL?. JRNZ
GK40. XORX SCROLY
;TOGGLE. STX A,SCROLY
;...SCROLL FLAG.GKG60: JR GK60.;.
GK40: CPI BGNOF ;CURS UP
?. JRNZ GK44. MVIX P
LUS,DIR ;SCROLL UP DIRECTION.
LXI H,FBEGIN ;FIRST LINE.
SHLD LINE ;...ADDR
ESS. LXI H,1 ;LIN
E 1. JR GK46.GK44: CPI
ENDOF ;CURS DOWN?. JRN
Z GK50. MVIX 0,DIR
;SCROLL DOWN DIR. LHLD FEND
;END OF FILE ADDRESS.
LXI B,2000 ;MAX LENGTH OF L
INE. CALL UPM02 ;GO
BACK 1 TO LAST LINE. LHLD ENDL
N ;LAST LINE NUMBER.GK46: SH
LD LINO ;LINE NUMBER.GK47:
CALL CLEAR ;CLEAR SCREEN
. MVIX 0,LMIT ;CLEAR
LIMIT CONDITION.GK48: LDX A,CNT1
;NEW COUNT. STX A,CNT
2. JR GK64.;.GK50: CPI
HELP ;HELP?. JRNZ
GK52. CALL FIND ;FI
ND INPUT STRING. JRNZ GK47.
MVIX 1,CNT2 ;1 LINE OUT
UT. MVIX 0,SCROLY ;CLEA
R SCROLL FLAG. JR GK64.GK52:
CPI MINUS ;MINUS?.
JRNZ GK54 ;NO, MUST BE
PLUS!. XRA A.GK54: LDX
B,DIR ;UPDATE DIRECTION.
STX A,DIR. CMP B.
JRZ GK62. JR GK47
;DIRECTION CHANGED.;.GK60: LDX
A,SCROLY ;CHECK SCROLL ON.
ORA A. JRZ GK70
;NO!.;.GK62: MVIX 1,CNT2
;FEED ONGOING COUNT.GK64: LDX
A,LMIT ;CHECK LIMIT REACHED.
ORA A. JRNZ GK70
;YES!. MVIX NSCROL,ST
OP ;CLEAR STOP CONDITION.;.GK70: L
DX A,STOP ;IF STOP CONDITIO
N. ORA A ;...TH
EN. JZ GETKEY ;...L
OOP UNTIL CLEAR. RET.;.UPLN: ;A
DVANCE 24 LINES. LDX A,LMIT
;DONT ADVANCE. ORA A
;...IF. RNZ
;...ON LIMIT. MVIX
25,COUNT.UPLN1: DCRX COUNT.
CNZ GETLN ;GET NEXT LINE.
JRNZ UPLN1 ;NOT ON
LIMIT. MVIX 0,LMIT ;C
LEAR LIMIT IF SET TO. RET
;...DSP 1ST/LAST LINE.;.GET
LN: ;GET NEXT LINE. LHLD LINE
;LINE ADDRESS. LXI
B,2000 ;MAX LENGTH. LD
X A,DIR ;CHECK DIRECTION.
ORA A. JRZ UPMIN.;
.UPLUS: MVI A,LF ;SEARCH
CHAR. LXI D,1. CCIR
;FIND NEXT LINE.
MVI A,EOMC ;REACHED LIMIT
. CMP M. JRNZ UPM10
;NO!.UPP10: MVIX 1,LMIT
;RETURN LIMIT. RET
;...SET.;.UPMIN: LDA
LINO+1 ;CHECK. ORA A
;...IF. JRNZ UP
M02 ;...ON. LDA LIN
O ;...FIRST. CPI 1
;...LINE. JRZ
UPP10 ;YES!.UPM02: DCX H.
DCX H. MVI A,LF.
LXI D,-1. CCDR
;FIND PREVIOUS LINE.
INX H. INX H.UPM10: SHLD
LINE ;NEW LINE ADDRESS.
MVIX 0,LMIT ;CLEAR LIM
IT. LHLD LINO ;UPDA
TE. DAD D ;...L
INE. SHLD LINO ;...
NUMBER. MVI A,1 ;
RETURN. ORA A ;
...GOOD. RET
;CONDITION.;.;.NUMOUT: ;OUTPUT LINE NUMB
ER. LXIY LINASC ;BASE
FOR STRING. LHLD LINO
;LINE NUMBER. LXI D,-1000
0 ;TEN THOUSANDS. CALL
TOASC ;CONVERT TO ASCII.
LXI D,-1000 ;THOUSANDS.
CALL TOASC. LXI D,-10
0 ;HUNDREDS. CALL TOA
SC. LXI D,-10 ;TENS
. CALL TOASC. MOV A
,L ;0 - 9. ADI '0
'. STY A,0. LXI D,
LINASC. MVI C,PRINTF ;
PRINT STRING. CALL BDOS.
RET.;.TOASC: MVI C,'0'-1.TOAS1:
INR C. DAD D. JC
TOAS1. MOV A,D. CM
A. MOV D,A. MOV A,
E. CMA. MOV E,A.
INX D. DAD D. ST
Y C,0. INXIY. RET.;.BU
FLIN: ;PREPARE LINE FOR OUTPUT. L
BCD LINE ;CURRENT LINE ADD
RESS. LHLD LINBUF ;LI
NE BUFFER ADDRESS.BUFL10: MVIX 8,COUN
T ;TAB COUNT.BUFL12: LDAX B.
INX B. CPI 20H
;TRAP CONTROL CHAR. JRNC
BUFL16 ;NOT ONE. CPI
CR ;CARRIAGE RETURN?.
JRZ BUFL16. CPI LF
;LINE FEED?. JRZ
BUFL16. CPI TABC
;CHECK IF TAB. JRNZ BUFL15
;NO!.BUFL14: MVI M,' '
;EXPAND TAB. INX H.
DCRX COUNT. JRNZ BUFL14.
JR BUFL10.BUFL15: MVI M,
'^' ;CONVERT CONTROL CHAR.
INX H ;...TO TWO C
HARS. ORI 40H ;..
.FOR DISPLAY.BUFL16: MOV M,A
;NORMAL CHAR. INX H.
CPI LF ;LINE FEED.
RZ ;...ENDS
LINE. DCRX COUNT. JRZ
BUFL10. JR BUFL12.;.FIND:
;SEARCH INPUT STRING FUNCTION.
CALL KSCAN ;LOOP UNTIL.
LDA KTABLE ;...HELP.
ORA A ;...KEY IS
. JRNZ FIND ;...REL
EASED. CALL REVRSE ;D
IRECTION. CALL GETLN
;ADJUST LINE PARAMS. CALL REV
RSE. LXI D,CBOT ;BOT
TOM LINE. LDX A,DIR
;CHECK DIRECTION. ORA A.
JRNZ FIND02. LXI D,CTO
P ;TOP LINE.FIND02: MVI C,P
RINTF ;CLEAR LINE. CALL
BDOS. LXI D,DMABUF ;B
UFFER FOR INPUT. MVI C,CONINF
;GET INPUT STRING. CALL
BDOS. LDA NC ;
CHECK CHAR COUNT. ORA A.
RZ ;EMPTY STRING
. STX A,COUNT. LHLD
LINO ;SAVE. SHLD T
EMPN ;...CURRENT LINE.
LHLD LINE ;...PARAMS IN CA
SE. SHLD TEMPL ;...N
O MATCH.FIND10: LBCD LINE
;BEGIN SEARCH LOOP.FIND12: MVI E,0.
LXI H,RCHAR.FIND14: LDAX B
. CMP M. INX H.
INX B. JRNZ FIND16.
INR E. MOV A,E.
CMPX COUNT. JRNZ FIND14
. JR SOUND ;STRING
FOUND.FIND16: CPI LF. JRNZ
FIND12. CALL GETLN. J
RNZ FIND10.FIND20: LHLD TEMPL
;LIMIT REACHED. SHLD LIN
E ;...SO. LHLD TEMP
N ;...RESTORE. SHLD
LINO ;...ORIGINAL LINE.
MVIX 0,LMIT ;CLEAR LIMIT.
RET.;.SOUND: ;BELL. MVI
C,DCIOF. LXI D,BELL.
CALL BDOS. MVI A,1.
ORA A. RET.;.REVRSE: ;REVE
RSE CURRENT DIRECTION. MVI A,
PLUS. XORX DIR. STX
A,DIR. RET.;.CLEAR: ;CLEAR SCRE
EN. LXI D,CLR. MVI
C,PRINTF. CALL BDOS. R
ET.;.KSCAN: ;SCAN C128 KEYS. DI.
LXI H,KTABLE ;KEY PRE
SS/CHANGE TABLE. LXI B,0DC00H
;KEY MATRIX DRIVES FOR. M
VI D,0FFH ;...C64 KEYS ARE.
OUTP D ;...ARE
DISABLED. MVI D,0FEH
;DRIVE ONE ROW. MVI E,3
;...OF THREE.KSCN2: LXI B,0
D02FH ;DRIVES FOR. OUTP
D ;...C128 KEYS. L
XI B,0DC01H ;TO READ ROW.KSCN
3: INP A ;READ KEYS.
PUSH H ;A LITTLE
DELAY. INP H ;
...HELPS ALONG THE WAY!. CMP
H ;DEBOUNCE. POP
H. JRNZ KSCN3 ;CHE
CK AGAIN. CMA
;MAKE 1'S OF PRESSES. MOV B,
M ;PREVIOUS KEYS. MOV
M,A ;NEW KEYS. X
RA B ;...GIVES CHANGES
. ANA M ;...AND
PRESSED CHANGES. INX H.
MOV M,A ;SAVE PRESSED
CHANGES. INX H
;NOW FOR. RLCR D
;...NEXT ROW. DCR E.
JRNZ KSCN2.;.KCHNG: ;PROCESS CHANGE
S. EI. LXI H,KTABLE+2
;FIRST. MOV A,M
;...CHECK. ANI 1
;...ESC?. JRZ KCHG1.
CALL CLEAR ;CLEAR SCRE
EN. JMP FINIS ;...A
ND EXIT.KCHG1: MOV A,M. ANI
06H ;+/- PRESSES?.
INX H. JRZ KCHG2.
ORA M ;FORCE A CHANG
E. MOV M,A.KCHG2: INX H.
INX H. MVI C,3
;COUNT.KCHG3: MOV A,M
;PRESSED CHANGES. CMA.
INR A. ANA M
;EXTRACT ONE CHANGE. JNZ
KCHG10 ;FOUND ONE. D
CX H ;GOTO NEXT ROW.
DCX H. DCR C.
JRNZ KCHG3. RET
;NO CHANGES FOUND.;.KCHG10: ;DEC
ODE CHANGE. LXI H,DTABLE
;KEY DECODE TABLE. LXI D,8
.KCHG12: DCR E. ADD A.
JRNC KCHG12. DAD D.
MVI E,8.KCHG14: DCR C.
JRZ KCHG20. DAD D.
JR KCHG14.KCHG20: MOV A,M
;DECODED VALUE. RET.;
.DTABLE: ;KEY DECODE TABLE. DB
HELP,08,05,TAB,02,04,07,01. DB
00,PLUS,MINUS,NUMBER,ENTER,06,09,0
3. DB ALT,10,24,BGNOF,ENDOF,
00,00,NSCROL.;.KTABLE: ;KEY PRESS/CHANGE
TABLE: ROWS 1-3. DB 0,0,0,0
,0,0,0,0,0,0,0,0,0,0,0,0. DB
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.;.OPNERR: DB CR,LF,'NO FILE$'.RDER
R: DB CR,LF,'BAD READ ERROR$'.;.SF
WD: DB 1BH,3DH,20H,20H,1BH,52H,1B
H,3DH,37H,20H,0AH.SBAK: DB 1BH,3D
H,20H,20H,1BH,45H,0AH.CTOP: DB 1B
H,3DH,20H,20H,1BH,54H,0AH.CBOT: DB
1BH,3DH,37H,20H,1BH,54H,0AH.CLR: DB
1AH,0AH.LINASC: DB '00000: ',
0AH.;.PROGEND EQU $ ;USED FOR
CHECKSUM ON CODE.;.FEND: DS 2
;FILE END ADDRESS.LINBUF: DS 2
;LINE BUFFER ADDRESS.LINE: DS
2 ;CURRENT LINE ADDRESS.LINO:
DS 2 ;CURRENT LINE NUMBER.END
LN: DS 2 ;LAST LINE NUMBER.T
EMPL: DS 2 ;WORK AREA.TEMPN:
DS 2 ;WORK AREA.PFLAGS: DS
10 ;IX REGISTER VARIABLES.OLDS
P: DS 2 ;SAVED STACK.
DS 128 ;PROGRAM STACK.STKTOP
EQU $.;.FBEGIN EQU 800H ;TEX
T FILE LOADS HERE.;. END.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL