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

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 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL