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

CA-EDITOR   4302

FILE INFORMATION

FILENAME(S): CA-EDITOR   4302

FILE TYPE(S): SEQ

FILE SIZE: 13.8K

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

APPEARS ON: 2 disk(s)

FILE HASH

490aa9518cb107d1da4f3230c2b3400875cb01b2c072001fb9e87cc18e84aec3

FOUND ON DISKS (2 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
C64 HULP 18 2 CA-EDITOR   4302 SEQ DuncanTwain 25 2 DOWNLOAD FILE
C64 HULP 40 2 CA-EDITOR   4302 SEQ DuncanTwain 19 2 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 2B 2B 2B  |;+++++++++++++++|
00000010: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 2B 2B 2B  |++++++++++++++++|
00000020: 2B 2B 2B 0D 3B 2B 0D 3B  2B 20 4D 49 4E 49 2D 45  |+++.;+.;+ MINI-E|
00000030: 44 49 54 4F 52 0D 3B 2B  0D 3B 2B 20 56 45 52 53  |DITOR.;+.;+ VERS|
00000040: 49 4F 4E 20 36 2E 38 2E  33 0D 3B 2B 0D 3B 2B 20  |ION 6.8.3.;+.;+ |
00000050: 36 2F 32 38 2F 37 39 0D  3B 2B 0D 3B 2B 2B 2B 2B  |6/28/79.;+.;++++|
00000060: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 2B 2B 2B  |++++++++++++++++|
00000070: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 2B 0D 3B  |++++++++++++++.;|
00000080: 0D 53 41 56 43 48 52 20  3D 20 24 30 30 20 3B 53  |.SAVCHR = $00 ;S|
00000090: 41 56 45 20 4E 45 57 20  43 48 41 52 20 46 4F 52  |AVE NEW CHAR FOR|
000000A0: 20 52 45 50 45 41 54 0D  44 45 4C 41 59 20 3D 20  | REPEAT.DELAY = |
000000B0: 24 30 31 20 3B 44 45 4C  41 59 20 42 45 46 4F 52  |$01 ;DELAY BEFOR|
000000C0: 45 20 52 45 50 45 41 54  0D 52 45 50 44 59 20 3D  |E REPEAT.REPDY =|
000000D0: 20 24 30 32 20 3B 44 45  4C 41 59 20 42 45 54 57  | $02 ;DELAY BETW|
000000E0: 45 45 4E 20 52 45 50 45  41 54 53 0D 43 4F 55 4E  |EEN REPEATS.COUN|
000000F0: 54 20 3D 20 24 30 35 0D  4C 49 4E 4E 55 4D 20 3D  |T = $05.LINNUM =|
00000100: 20 24 31 31 0D 49 4E 44  45 58 31 20 3D 20 24 31  | $11.INDEX1 = $1|
00000110: 46 0D 49 4E 44 45 58 32  20 3D 20 24 32 31 0D 54  |F.INDEX2 = $21.T|
00000120: 58 54 54 41 42 20 3D 20  24 32 38 20 3B 42 45 47  |XTTAB = $28 ;BEG|
00000130: 49 4E 20 4F 46 20 53 4F  55 52 43 45 0D 56 41 52  |IN OF SOURCE.VAR|
00000140: 54 41 42 20 3D 20 24 32  41 20 3B 42 59 54 45 20  |TAB = $2A ;BYTE |
00000150: 41 46 54 45 52 20 54 52  49 50 20 5A 45 52 4F 53  |AFTER TRIP ZEROS|
00000160: 0D 53 54 52 45 4E 44 20  3D 20 24 32 45 0D 46 52  |.STREND = $2E.FR|
00000170: 45 54 4F 50 20 3D 20 24  33 30 0D 4D 45 4D 53 49  |ETOP = $30.MEMSI|
00000180: 5A 20 3D 20 24 33 34 20  3B 54 4F 50 20 4F 46 20  |Z = $34 ;TOP OF |
00000190: 4D 45 4D 4F 52 59 20 53  50 41 43 45 0D 4F 4C 44  |MEMORY SPACE.OLD|
000001A0: 4C 49 4E 20 3D 20 24 33  38 0D 49 4E 50 50 54 52  |LIN = $38.INPPTR|
000001B0: 20 3D 20 24 34 30 0D 4C  53 54 50 4E 54 20 3D 20  | = $40.LSTPNT = |
000001C0: 24 34 36 0D 4C 4F 57 54  52 20 3D 20 24 35 43 0D  |$46.LOWTR = $5C.|
000001D0: 46 41 43 48 4F 20 3D 20  24 35 46 20 3B 46 4C 4F  |FACHO = $5F ;FLO|
000001E0: 41 54 20 41 43 43 55 4D  0D 54 58 54 50 54 52 20  |AT ACCUM.TXTPTR |
000001F0: 3D 20 24 37 37 0D 43 49  4E 56 20 3D 20 24 39 30  |= $77.CINV = $90|
00000200: 20 3B 49 4E 44 49 52 45  43 54 20 49 52 51 20 56  | ;INDIRECT IRQ V|
00000210: 45 43 54 4F 52 0D 53 41  54 55 53 20 3D 20 24 39  |ECTOR.SATUS = $9|
00000220: 36 20 3B 49 2F 4F 20 53  54 41 54 55 53 0D 4C 53  |6 ;I/O STATUS.LS|
00000230: 54 58 20 3D 20 24 39 37  20 3B 4C 41 53 54 20 4B  |TX = $97 ;LAST K|
00000240: 45 59 20 48 49 54 0D 4E  44 58 20 3D 20 24 39 45  |EY HIT.NDX = $9E|
00000250: 20 3B 4E 55 4D 42 45 52  20 43 48 41 52 20 49 4E  | ;NUMBER CHAR IN|
00000260: 20 42 55 46 46 45 52 0D  42 4C 4E 43 54 20 3D 20  | BUFFER.BLNCT = |
00000270: 24 41 38 20 3B 43 54 52  20 42 45 54 57 45 45 4E  |$A8 ;CTR BETWEEN|
00000280: 20 43 52 53 52 20 42 4C  49 4E 4B 53 0D 57 53 57  | CRSR BLINKS.WSW|
00000290: 20 3D 20 24 42 33 0D 54  31 20 3D 20 24 42 34 0D  | = $B3.T1 = $B4.|
000002A0: 54 32 20 3D 20 24 42 35  0D 54 33 20 3D 20 24 42  |T2 = $B5.T3 = $B|
000002B0: 36 0D 46 4E 4C 45 4E 20  3D 20 24 44 31 0D 4C 41  |6.FNLEN = $D1.LA|
000002C0: 20 3D 20 24 44 32 20 3B  4C 4F 47 49 43 41 4C 20  | = $D2 ;LOGICAL |
000002D0: 41 44 52 0D 53 41 20 3D  20 24 44 33 20 3B 53 45  |ADR.SA = $D3 ;SE|
000002E0: 43 4F 4E 44 20 41 44 52  0D 46 41 20 3D 20 24 44  |COND ADR.FA = $D|
000002F0: 34 20 3B 46 49 52 53 54  20 41 44 52 0D 54 42 55  |4 ;FIRST ADR.TBU|
00000300: 46 20 3D 20 24 44 36 20  3B 41 43 54 49 56 45 20  |F = $D6 ;ACTIVE |
00000310: 43 41 53 53 45 54 54 45  20 42 55 46 20 50 54 52  |CASSETTE BUF PTR|
00000320: 0D 46 4E 41 44 52 20 3D  20 24 44 41 0D 42 55 46  |.FNADR = $DA.BUF|
00000330: 4F 46 53 20 3D 20 24 30  32 30 30 20 3B 42 41 53  |OFS = $0200 ;BAS|
00000340: 49 43 20 49 4E 50 55 54  20 42 55 46 46 45 52 0D  |IC INPUT BUFFER.|
00000350: 43 48 52 47 45 54 20 3D  20 24 30 30 37 30 20 3B  |CHRGET = $0070 ;|
00000360: 47 45 54 20 43 48 41 52  20 52 4F 55 54 49 4E 45  |GET CHAR ROUTINE|
00000370: 0D 43 48 52 47 4F 54 20  3D 20 24 30 30 37 36 20  |.CHRGOT = $0076 |
00000380: 3B 47 45 54 20 4C 41 53  54 20 43 48 41 52 0D 43  |;GET LAST CHAR.C|
00000390: 48 52 52 54 53 20 3D 20  24 30 30 38 37 0D 4B 45  |HRRTS = $0087.KE|
000003A0: 59 44 20 3D 20 24 30 32  36 46 20 3B 4B 45 59 42  |YD = $026F ;KEYB|
000003B0: 4F 41 52 44 20 49 4E 50  55 54 20 42 55 46 0D 42  |OARD INPUT BUF.B|
000003C0: 45 47 49 4E 20 3D 20 24  37 30 30 30 20 3B 42 45  |EGIN = $7000 ;BE|
000003D0: 47 49 4E 20 4D 49 4E 49  2D 45 44 49 54 4F 52 20  |GIN MINI-EDITOR |
000003E0: 48 45 52 45 0D 57 41 52  4D 20 3D 20 24 43 33 38  |HERE.WARM = $C38|
000003F0: 39 20 3B 57 41 52 4D 20  53 54 41 52 54 20 4F 46  |9 ;WARM START OF|
00000400: 20 42 41 53 49 43 0D 49  4E 53 45 52 54 20 3D 20  | BASIC.INSERT = |
00000410: 24 43 33 42 31 20 3B 49  4E 53 45 52 54 20 4C 49  |$C3B1 ;INSERT LI|
00000420: 4E 45 20 49 4E 54 4F 20  53 4F 55 52 43 45 0D 46  |NE INTO SOURCE.F|
00000430: 49 4E 49 20 3D 20 24 43  34 33 39 20 3B 46 49 58  |INI = $C439 ;FIX|
00000440: 45 53 20 4C 49 4E 4B 53  20 42 41 43 4B 20 54 4F  |ES LINKS BACK TO|
00000450: 20 52 45 41 44 59 0D 46  4E 44 4C 49 4E 20 3D 20  | READY.FNDLIN = |
00000460: 24 43 35 32 43 20 3B 46  49 4E 44 53 20 4C 49 4E  |$C52C ;FINDS LIN|
00000470: 45 20 49 4E 20 53 4F 55  52 43 45 0D 53 43 52 54  |E IN SOURCE.SCRT|
00000480: 43 48 20 3D 20 24 43 35  35 44 20 3B 4E 45 57 20  |CH = $C55D ;NEW |
00000490: 41 4C 4C 0D 4C 49 4E 47  45 54 20 3D 20 24 43 38  |ALL.LINGET = $C8|
000004A0: 37 33 20 3B 47 45 54 53  20 41 53 43 49 49 20 4E  |73 ;GETS ASCII N|
000004B0: 55 4D 20 49 4E 54 4F 20  4C 49 4E 4E 55 4D 0D 43  |UM INTO LINNUM.C|
000004C0: 52 44 4F 20 3D 20 24 43  39 45 32 20 3B 28 43 52  |RDO = $C9E2 ;(CR|
000004D0: 29 20 28 4C 46 29 0D 43  48 4B 43 4F 4D 20 3D 20  |) (LF).CHKCOM = |
000004E0: 24 43 44 46 38 20 3B 43  48 45 43 4B 53 20 46 4F  |$CDF8 ;CHECKS FO|
000004F0: 52 20 41 20 43 4F 4D 4D  41 0D 53 4E 45 52 52 20  |R A COMMA.SNERR |
00000500: 3D 20 24 43 45 30 33 20  3B 53 59 4E 54 41 58 20  |= $CE03 ;SYNTAX |
00000510: 45 52 52 4F 52 0D 47 45  54 42 59 54 20 3D 20 24  |ERROR.GETBYT = $|
00000520: 44 36 37 36 20 3B 47 45  54 53 20 42 59 54 45 20  |D676 ;GETS BYTE |
00000530: 49 4E 54 4F 20 58 20 52  45 47 0D 47 45 54 4E 55  |INTO X REG.GETNU|
00000540: 4D 20 3D 20 24 44 36 43  36 20 3B 47 45 54 53 20  |M = $D6C6 ;GETS |
00000550: 4E 55 4D 20 49 4E 54 4F  20 4C 49 4E 55 4D 0D 46  |NUM INTO LINUM.F|
00000560: 4C 4F 41 54 43 20 3D 20  24 44 42 35 35 20 3B 46  |LOATC = $DB55 ;F|
00000570: 4C 4F 41 54 20 31 36 42  49 54 20 49 4E 54 0D 4C  |LOAT 16BIT INT.L|
00000580: 49 4E 50 52 54 20 3D 20  24 44 43 44 39 20 3B 50  |INPRT = $DCD9 ;P|
00000590: 52 54 20 4C 49 4E 45 20  23 0D 46 4F 55 54 20 3D  |RT LINE #.FOUT =|
000005A0: 20 24 44 43 45 39 20 3B  4D 41 4B 45 20 41 53 43  | $DCE9 ;MAKE ASC|
000005B0: 49 49 20 23 20 49 4E 20  24 30 31 30 31 0D 49 52  |II # IN $0101.IR|
000005C0: 51 56 45 43 20 3D 20 24  45 36 32 45 20 3B 4B 45  |QVEC = $E62E ;KE|
000005D0: 59 42 4F 41 52 44 20 49  52 51 0D 50 41 52 53 31  |YBOARD IRQ.PARS1|
000005E0: 31 20 3D 20 24 46 34 34  37 20 3B 50 41 52 53 45  |1 = $F447 ;PARSE|
000005F0: 20 4C 49 4B 45 20 4C 4F  41 44 2F 53 41 56 45 0D  | LIKE LOAD/SAVE.|
00000600: 43 4C 53 45 49 20 3D 20  24 46 36 32 45 20 3B 43  |CLSEI = $F62E ;C|
00000610: 4C 4F 53 45 20 43 48 41  4E 4E 45 4C 0D 42 53 49  |LOSE CHANNEL.BSI|
00000620: 56 20 3D 20 24 46 43 39  42 20 3B 49 52 51 20 46  |V = $FC9B ;IRQ F|
00000630: 49 58 45 52 20 52 4F 55  54 49 4E 45 0D 4F 50 45  |IXER ROUTINE.OPE|
00000640: 4E 20 3D 20 24 46 35 32  31 20 3B 4F 50 45 4E 20  |N = $F521 ;OPEN |
00000650: 4C 4F 47 49 43 41 4C 20  46 49 4C 45 0D 43 4C 4F  |LOGICAL FILE.CLO|
00000660: 53 45 20 3D 20 24 46 32  41 39 20 3B 43 4C 4F 53  |SE = $F2A9 ;CLOS|
00000670: 45 20 4C 4F 47 49 43 41  4C 20 46 49 4C 45 0D 43  |E LOGICAL FILE.C|
00000680: 48 4B 49 4E 20 3D 20 24  46 46 43 36 20 3B 53 45  |HKIN = $FFC6 ;SE|
00000690: 54 55 50 20 46 4F 52 20  49 4E 50 55 54 0D 43 4B  |TUP FOR INPUT.CK|
000006A0: 4F 55 54 20 3D 20 24 46  46 43 39 20 3B 53 45 54  |OUT = $FFC9 ;SET|
000006B0: 55 50 20 46 4F 52 20 4F  55 54 50 55 54 0D 43 4C  |UP FOR OUTPUT.CL|
000006C0: 52 43 48 20 3D 20 24 46  46 43 43 20 3B 43 4C 45  |RCH = $FFCC ;CLE|
000006D0: 41 52 53 20 41 43 54 49  56 45 20 43 48 41 4E 4E  |ARS ACTIVE CHANN|
000006E0: 45 4C 0D 42 41 53 49 4E  20 3D 20 24 46 46 43 46  |EL.BASIN = $FFCF|
000006F0: 20 3B 47 45 54 53 20 41  20 43 48 41 52 20 46 52  | ;GETS A CHAR FR|
00000700: 4F 4D 20 46 49 4C 45 0D  42 53 4F 55 54 20 3D 20  |OM FILE.BSOUT = |
00000710: 24 46 46 44 32 20 3B 53  45 4E 44 20 43 48 41 52  |$FFD2 ;SEND CHAR|
00000720: 20 54 4F 20 46 49 4C 45  0D 43 4C 4F 41 44 20 3D  | TO FILE.CLOAD =|
00000730: 20 24 46 46 44 35 20 3B  43 41 53 53 45 54 54 45  | $FFD5 ;CASSETTE|
00000740: 20 4C 4F 41 44 0D 43 53  41 56 45 20 3D 20 24 46  | LOAD.CSAVE = $F|
00000750: 46 44 38 20 3B 43 41 53  53 45 54 54 45 20 53 41  |FD8 ;CASSETTE SA|
00000760: 56 45 0D 53 54 4F 50 20  3D 20 24 46 46 45 31 20  |VE.STOP = $FFE1 |
00000770: 3B 54 45 53 54 20 53 54  4F 50 20 4B 45 59 0D 47  |;TEST STOP KEY.G|
00000780: 45 54 49 4E 20 3D 20 24  46 46 45 34 20 3B 47 45  |ETIN = $FFE4 ;GE|
00000790: 54 20 4F 4E 45 20 43 48  41 52 0D 43 4C 41 4C 4C  |T ONE CHAR.CLALL|
000007A0: 20 3D 20 24 46 46 45 37  20 3B 43 4C 4F 53 45 20  | = $FFE7 ;CLOSE |
000007B0: 41 4C 4C 20 46 49 4C 45  53 0D 3B 2B 2B 2B 2B 2B  |ALL FILES.;+++++|
000007C0: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 2B 2B 2B  |++++++++++++++++|
000007D0: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 0D 3B 2B  |+++++++++++++.;+|
000007E0: 0D 3B 2B 20 4D 49 4E 49  0D 3B 2B 0D 3B 2B 20 56  |.;+ MINI.;+.;+ V|
000007F0: 45 52 53 49 4F 4E 20 36  2E 32 0D 3B 2B 0D 3B 2B  |ERSION 6.2.;+.;+|
00000800: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 2B 2B 2B  |++++++++++++++++|
00000810: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 2B 2B 2B  |++++++++++++++++|
00000820: 2B 0D 3B 0D 20 2A 3D 20  42 45 47 49 4E 0D 3B 0D  |+.;. *= BEGIN.;.|
00000830: 3B 20 45 4E 41 42 4C 45  20 57 45 44 47 45 20 43  |; ENABLE WEDGE C|
00000840: 4F 44 45 0D 3B 0D 53 45  54 57 20 4C 44 41 20 23  |ODE.;.SETW LDA #|
00000850: 30 20 3B 49 4E 53 45 52  54 20 41 20 4A 4D 50 20  |0 ;INSERT A JMP |
00000860: 54 4F 20 57 45 44 47 45  0D 20 53 54 41 20 4F 4C  |TO WEDGE. STA OL|
00000870: 44 4C 49 4E 20 3B 43 4C  45 41 52 20 41 55 54 4F  |DLIN ;CLEAR AUTO|
00000880: 20 4D 4F 44 45 0D 20 53  54 41 20 4F 4C 44 4C 49  | MODE. STA OLDLI|
00000890: 4E 2B 31 0D 20 4C 44 41  20 23 3C 42 45 47 49 4E  |N+1. LDA #<BEGIN|
000008A0: 0D 20 53 54 41 20 4D 45  4D 53 49 5A 20 3B 50 52  |. STA MEMSIZ ;PR|
000008B0: 4F 54 45 43 54 20 4D 49  4E 49 2D 45 44 49 54 4F  |OTECT MINI-EDITO|
000008C0: 52 0D 20 4C 44 41 20 23  3E 42 45 47 49 4E 0D 20  |R. LDA #>BEGIN. |
000008D0: 53 54 41 20 4D 45 4D 53  49 5A 2B 31 0D 20 4C 44  |STA MEMSIZ+1. LD|
000008E0: 41 20 23 24 34 43 20 3B  49 4E 53 45 52 54 20 41  |A #$4C ;INSERT A|
000008F0: 20 4A 4D 50 20 54 4F 20  57 45 44 47 45 0D 20 2E  | JMP TO WEDGE. .|
00000900: 42 59 54 45 20 24 32 43  20 3B 53 4B 49 50 20 32  |BYTE $2C ;SKIP 2|
00000910: 20 42 59 54 45 53 0D 3B  0D 3B 20 44 49 53 41 42  | BYTES.;.; DISAB|
00000920: 4C 45 20 57 45 44 47 45  20 43 4F 44 45 0D 3B 0D  |LE WEDGE CODE.;.|
00000930: 4B 49 4C 4C 20 4C 44 41  20 23 24 36 30 20 3B 49  |KILL LDA #$60 ;I|
00000940: 4E 53 45 52 54 20 41 20  52 54 53 0D 20 53 54 41  |NSERT A RTS. STA|
00000950: 20 43 48 52 52 54 53 0D  20 4C 44 41 20 23 3C 57  | CHRRTS. LDA #<W|
00000960: 45 44 47 45 0D 20 53 54  41 20 43 48 52 52 54 53  |EDGE. STA CHRRTS|
00000970: 2B 31 0D 20 4C 44 41 20  23 3E 57 45 44 47 45 0D  |+1. LDA #>WEDGE.|
00000980: 20 53 54 41 20 43 48 52  52 54 53 2B 32 0D 20 52  | STA CHRRTS+2. R|
00000990: 54 53 0D 3B 0D 3B 20 53  41 56 45 20 41 4C 4C 20  |TS.;.; SAVE ALL |
000009A0: 52 45 47 49 53 54 45 52  53 0D 3B 0D 53 41 56 52  |REGISTERS.;.SAVR|
000009B0: 45 47 20 53 54 41 20 57  53 57 20 3B 53 41 56 45  |EG STA WSW ;SAVE|
000009C0: 20 41 0D 20 50 48 50 0D  20 50 4C 41 0D 20 53 54  | A. PHP. PLA. ST|
000009D0: 41 20 54 31 20 3B 53 41  56 45 20 53 54 41 54 55  |A T1 ;SAVE STATU|
000009E0: 53 0D 20 53 54 58 20 54  32 20 3B 53 41 56 45 20  |S. STX T2 ;SAVE |
000009F0: 58 0D 20 53 54 59 20 54  33 20 3B 53 41 56 45 20  |X. STY T3 ;SAVE |
00000A00: 59 0D 20 52 54 53 0D 3B  0D 3B 20 57 45 44 47 45  |Y. RTS.;.; WEDGE|
00000A10: 20 43 4F 44 45 20 49 4E  54 45 52 43 45 50 54 53  | CODE INTERCEPTS|
00000A20: 20 53 43 41 4E 20 43 48  41 52 53 0D 3B 0D 57 45  | SCAN CHARS.;.WE|
00000A30: 44 47 45 20 4A 53 52 20  53 41 56 52 45 47 20 3B  |DGE JSR SAVREG ;|
00000A40: 53 41 56 45 20 41 4C 4C  20 52 45 47 53 0D 20 54  |SAVE ALL REGS. T|
00000A50: 53 58 20 3B 53 45 45 20  57 48 4F 20 43 41 4C 4C  |SX ;SEE WHO CALL|
00000A60: 45 44 20 43 48 52 47 45  54 0D 20 4C 44 41 20 24  |ED CHRGET. LDA $|
00000A70: 30 31 30 31 2C 58 20 3B  57 41 53 20 49 54 20 4D  |0101,X ;WAS IT M|
00000A80: 41 49 4E 20 3F 0D 20 43  4D 50 20 23 24 39 42 0D  |AIN ?. CMP #$9B.|
00000A90: 20 42 4E 45 20 52 45 53  52 45 47 20 3B 4E 4F 0D  | BNE RESREG ;NO.|
00000AA0: 20 4C 44 41 20 24 30 31  30 32 2C 58 20 3B 4D 41  | LDA $0102,X ;MA|
00000AB0: 59 42 45 0D 20 43 4D 50  20 23 24 43 33 0D 20 42  |YBE. CMP #$C3. B|
00000AC0: 45 51 20 57 53 54 41 52  54 20 3B 59 45 53 20 2D  |EQ WSTART ;YES -|
00000AD0: 20 53 54 41 52 54 20 57  45 44 47 45 20 43 4F 44  | START WEDGE COD|
00000AE0: 45 0D 3B 0D 3B 20 52 45  53 54 4F 52 45 20 41 4C  |E.;.; RESTORE AL|
00000AF0: 4C 20 52 45 47 49 53 54  45 52 53 0D 3B 0D 52 45  |L REGISTERS.;.RE|
00000B00: 53 52 45 47 20 4C 44 59  20 54 33 20 3B 52 45 53  |SREG LDY T3 ;RES|
00000B10: 54 4F 52 45 20 59 0D 20  4C 44 58 20 54 32 20 3B  |TORE Y. LDX T2 ;|
00000B20: 52 45 53 54 4F 52 45 20  58 0D 20 4C 44 41 20 54  |RESTORE X. LDA T|
00000B30: 31 20 3B 52 45 53 54 4F  52 45 20 53 54 41 54 55  |1 ;RESTORE STATU|
00000B40: 53 0D 20 50 48 41 0D 20  4C 44 41 20 57 53 57 0D  |S. PHA. LDA WSW.|
00000B50: 20 50 4C 50 0D 20 52 54  53 0D 3B 0D 57 53 54 41  | PLP. RTS.;.WSTA|
00000B60: 52 54 20 4C 44 41 20 54  31 20 3B 47 45 54 20 53  |RT LDA T1 ;GET S|
00000B70: 54 41 54 55 53 20 52 45  47 0D 20 4C 53 52 20 41  |TATUS REG. LSR A|
00000B80: 20 3B 57 41 53 20 49 54  20 41 20 4E 55 4D 42 45  | ;WAS IT A NUMBE|
00000B90: 52 20 3F 0D 20 42 43 43  20 57 4E 55 4D 42 20 3B  |R ?. BCC WNUMB ;|
00000BA0: 59 45 53 0D 50 41 52 53  45 20 4C 44 58 20 23 30  |YES.PARSE LDX #0|
00000BB0: 20 3B 43 48 45 43 4B 20  46 4F 52 20 4D 49 4E 49  | ;CHECK FOR MINI|
00000BC0: 2D 45 44 49 54 4F 52 20  43 4D 44 0D 20 53 54 58  |-EDITOR CMD. STX|
00000BD0: 20 43 4F 55 4E 54 20 3B  5A 45 52 4F 20 49 4E 44  | COUNT ;ZERO IND|
00000BE0: 45 58 20 49 4E 54 4F 20  43 4D 44 20 41 44 44 52  |EX INTO CMD ADDR|
00000BF0: 45 53 53 0D 20 44 45 58  20 3B 58 3D 46 46 0D 50  |ESS. DEX ;X=FF.P|
00000C00: 41 52 31 30 30 20 49 4E  58 0D 20 4C 44 59 20 54  |AR100 INX. LDY T|
00000C10: 58 54 50 54 52 20 3B 53  54 41 52 54 20 41 54 20  |XTPTR ;START AT |
00000C20: 42 45 47 49 4E 0D 50 41  52 32 30 30 20 4C 44 41  |BEGIN.PAR200 LDA|
00000C30: 20 42 55 46 4F 46 53 2C  59 0D 20 53 45 43 20 3B  | BUFOFS,Y. SEC ;|
00000C40: 44 4F 20 43 4D 50 0D 20  53 42 43 20 43 4C 49 53  |DO CMP. SBC CLIS|
00000C50: 54 2C 58 20 3B 43 48 41  52 20 53 41 4D 45 0D 20  |T,X ;CHAR SAME. |
00000C60: 42 45 51 20 50 41 52 33  30 30 20 3B 59 45 53 0D  |BEQ PAR300 ;YES.|
00000C70: 20 43 4D 50 20 23 24 38  30 20 3B 53 41 4D 45 20  | CMP #$80 ;SAME |
00000C80: 41 4E 44 20 46 4F 55 4E  44 20 43 4D 44 20 3F 0D  |AND FOUND CMD ?.|
00000C90: 20 42 45 51 20 50 41 52  34 30 30 20 3B 59 45 53  | BEQ PAR400 ;YES|
00000CA0: 0D 20 49 4E 43 20 43 4F  55 4E 54 20 3B 4E 4F 20  |. INC COUNT ;NO |
00000CB0: 2D 20 54 52 59 20 4E 45  58 54 0D 50 41 52 32 35  |- TRY NEXT.PAR25|
00000CC0: 30 20 49 4E 58 20 3B 53  4B 49 50 20 52 45 53 54  |0 INX ;SKIP REST|
00000CD0: 20 4F 46 20 43 4D 44 20  4E 41 4D 45 0D 20 4C 44  | OF CMD NAME. LD|
00000CE0: 41 20 43 4C 49 53 54 2D  31 2C 58 20 3B 45 4E 44  |A CLIST-1,X ;END|
00000CF0: 20 4F 46 20 43 4D 44 20  4E 41 4D 45 20 3F 0D 20  | OF CMD NAME ?. |
00000D00: 42 50 4C 20 50 41 52 32  35 30 20 3B 4E 4F 0D 20  |BPL PAR250 ;NO. |
00000D10: 4C 44 41 20 43 4C 49 53  54 2C 58 20 3B 45 4E 44  |LDA CLIST,X ;END|
00000D20: 20 4F 46 20 43 4D 44 20  4E 41 4D 45 20 54 41 42  | OF CMD NAME TAB|
00000D30: 4C 45 20 3F 0D 20 42 4E  45 20 50 41 52 32 30 30  |LE ?. BNE PAR200|
00000D40: 20 3B 4E 4F 20 2D 20 4C  4F 4F 4B 20 4F 4E 0D 20  | ;NO - LOOK ON. |
00000D50: 42 45 51 20 52 45 53 52  45 47 20 3B 59 45 53 20  |BEQ RESREG ;YES |
00000D60: 2D 20 4E 4F 54 20 4D 49  4E 49 2D 45 44 49 54 4F  |- NOT MINI-EDITO|
00000D70: 52 20 43 4D 44 0D 50 41  52 33 30 30 20 49 4E 58  |R CMD.PAR300 INX|
00000D80: 20 3B 4D 41 54 43 48 20  54 52 59 20 4E 45 58 54  | ;MATCH TRY NEXT|
00000D90: 20 43 48 41 52 0D 20 49  4E 59 0D 20 42 4E 45 20  | CHAR. INY. BNE |
00000DA0: 50 41 52 32 30 30 20 3B  42 52 41 4E 43 48 20 41  |PAR200 ;BRANCH A|
00000DB0: 4C 57 41 59 53 0D 50 41  52 34 30 30 20 53 54 59  |LWAYS.PAR400 STY|
00000DC0: 20 54 58 54 50 54 52 20  3B 50 4F 49 4E 54 20 54  | TXTPTR ;POINT T|
00000DD0: 58 54 50 54 52 20 41 54  20 4C 41 53 54 20 43 48  |XTPTR AT LAST CH|
00000DE0: 41 52 0D 20 4C 44 41 20  43 4F 55 4E 54 20 3B 46  |AR. LDA COUNT ;F|
00000DF0: 4F 55 4E 44 20 43 4D 44  20 4A 4D 50 20 54 4F 20  |OUND CMD JMP TO |
00000E00: 49 54 0D 20 41 53 4C 20  41 20 3B 41 44 52 53 20  |IT. ASL A ;ADRS |
00000E10: 41 52 45 20 32 20 42 59  54 45 53 0D 20 54 41 58  |ARE 2 BYTES. TAX|
00000E20: 0D 20 4C 44 41 20 43 41  44 52 2B 31 2C 58 20 3B  |. LDA CADR+1,X ;|
00000E30: 44 4F 20 49 4E 44 49 52  45 43 54 20 4A 4D 50 0D  |DO INDIRECT JMP.|
00000E40: 20 50 48 41 0D 20 4C 44  41 20 43 41 44 52 2C 58  | PHA. LDA CADR,X|
00000E50: 0D 20 50 48 41 0D 20 4A  53 52 20 52 45 53 52 45  |. PHA. JSR RESRE|
00000E60: 47 20 3B 52 45 53 54 4F  52 45 20 41 4C 4C 20 52  |G ;RESTORE ALL R|
00000E70: 45 47 53 0D 20 4A 4D 50  20 43 48 52 47 45 54 0D  |EGS. JMP CHRGET.|
00000E80: 3B 0D 3B 20 41 55 54 4F  20 4C 49 4E 45 20 23 0D  |;.; AUTO LINE #.|
00000E90: 3B 0D 3B 20 53 59 4E 54  41 58 0D 3B 20 41 55 54  |;.; SYNTAX.; AUT|
00000EA0: 4F 20 49 4E 43 23 20 2D  20 45 4E 41 42 4C 45 20  |O INC# - ENABLE |
00000EB0: 41 55 54 4F 0D 3B 20 41  55 54 4F 20 2D 20 44 49  |AUTO.; AUTO - DI|
00000EC0: 53 41 42 4C 45 20 41 55  54 4F 0D 3B 0D 41 55 54  |SABLE AUTO.;.AUT|
00000ED0: 4F 20 4A 53 52 20 4C 49  4E 47 45 54 20 3B 47 45  |O JSR LINGET ;GE|
00000EE0: 54 20 53 54 41 52 54 20  23 0D 20 4C 44 41 20 4C  |T START #. LDA L|
00000EF0: 49 4E 4E 55 4D 20 3B 53  41 56 45 20 49 54 0D 20  |INNUM ;SAVE IT. |
00000F00: 53 54 41 20 4F 4C 44 4C  49 4E 0D 20 4C 44 41 20  |STA OLDLIN. LDA |
00000F10: 4C 49 4E 4E 55 4D 2B 31  0D 20 53 54 41 20 4F 4C  |LINNUM+1. STA OL|
00000F20: 44 4C 49 4E 2B 31 0D 20  52 54 53 0D 3B 0D 3B 20  |DLIN+1. RTS.;.; |
00000F30: 48 41 4E 44 4C 45 53 20  41 20 4E 45 57 20 4C 49  |HANDLES A NEW LI|
00000F40: 4E 45 20 57 49 54 48 20  4E 55 4D 42 45 52 0D 3B  |NE WITH NUMBER.;|
00000F50: 0D 57 4E 55 4D 42 20 50  4C 41 20 3B 52 45 4D 4F  |.WNUMB PLA ;REMO|
00000F60: 56 45 20 4A 55 4E 4B 20  46 52 4F 4D 20 53 54 41  |VE JUNK FROM STA|
00000F70: 43 4B 0D 20 50 4C 41 0D  20 4A 53 52 20 52 45 53  |CK. PLA. JSR RES|
00000F80: 52 45 47 20 3B 52 45 53  54 4F 52 45 20 52 45 47  |REG ;RESTORE REG|
00000F90: 0D 20 4A 53 52 20 4C 49  4E 47 45 54 20 3B 47 45  |. JSR LINGET ;GE|
00000FA0: 54 20 4C 49 4E 45 20 23  20 49 4E 54 4F 20 4C 49  |T LINE # INTO LI|
00000FB0: 4E 4E 55 4D 0D 20 42 45  51 20 57 4E 42 39 30 30  |NNUM. BEQ WNB900|
00000FC0: 20 3B 4C 49 4E 45 20 23  20 4F 4E 4C 59 0D 57 4E  | ;LINE # ONLY.WN|
00000FD0: 42 34 30 30 20 4C 44 41  20 4F 4C 44 4C 49 4E 20  |B400 LDA OLDLIN |
00000FE0: 3B 49 4E 20 41 55 54 4F  20 4D 4F 44 45 20 3F 0D  |;IN AUTO MODE ?.|
00000FF0: 20 4F 52 41 20 4F 4C 44  4C 49 4E 2B 31 0D 20 42  | ORA OLDLIN+1. B|
00001000: 45 51 20 57 4E 42 39 30  30 20 3B 4E 4F 0D 57 4E  |EQ WNB900 ;NO.WN|
00001010: 42 36 30 30 20 4C 44 41  20 4C 49 4E 4E 55 4D 20  |B600 LDA LINNUM |
00001020: 3B 4C 49 4E 45 20 23 20  46 4F 52 20 4E 45 58 54  |;LINE # FOR NEXT|
00001030: 20 4C 49 4E 45 0D 20 43  4C 43 0D 20 41 44 43 20  | LINE. CLC. ADC |
00001040: 4F 4C 44 4C 49 4E 0D 20  53 54 41 20 46 41 43 48  |OLDLIN. STA FACH|
00001050: 4F 2B 31 0D 20 4C 44 41  20 4C 49 4E 4E 55 4D 2B  |O+1. LDA LINNUM+|
00001060: 31 0D 20 41 44 43 20 4F  4C 44 4C 49 4E 2B 31 0D  |1. ADC OLDLIN+1.|
00001070: 20 53 54 41 20 46 41 43  48 4F 0D 20 4C 44 58 20  | STA FACHO. LDX |
00001080: 23 24 39 30 0D 20 53 45  43 0D 20 4A 53 52 20 46  |#$90. SEC. JSR F|
00001090: 4C 4F 41 54 43 20 3B 46  4C 4F 41 54 20 49 54 0D  |LOATC ;FLOAT IT.|
000010A0: 20 4A 53 52 20 46 4F 55  54 20 3B 4D 41 4B 45 20  | JSR FOUT ;MAKE |
000010B0: 41 53 43 49 49 20 23 0D  20 4C 44 58 20 23 30 20  |ASCII #. LDX #0 |
000010C0: 3B 50 55 54 20 41 53 43  49 49 20 23 20 49 4E 20  |;PUT ASCII # IN |
000010D0: 4B 45 59 42 0D 20 4C 44  41 20 23 24 32 30 20 3B  |KEYB. LDA #$20 ;|
000010E0: 50 55 54 20 31 20 53 50  41 43 45 20 42 45 46 4F  |PUT 1 SPACE BEFO|
000010F0: 52 45 20 23 0D 20 53 54  41 20 4B 45 59 44 2C 58  |RE #. STA KEYD,X|
00001100: 0D 20 49 4E 58 0D 57 4E  42 37 30 30 20 4C 44 41  |. INX.WNB700 LDA|
00001110: 20 24 30 31 30 30 2C 58  0D 20 42 45 51 20 57 4E  | $0100,X. BEQ WN|
00001120: 42 38 30 30 20 3B 44 4F  4E 45 0D 20 53 54 41 20  |B800 ;DONE. STA |
00001130: 4B 45 59 44 2C 58 0D 20  49 4E 58 0D 20 42 4E 45  |KEYD,X. INX. BNE|
00001140: 20 57 4E 42 37 30 30 20  3B 42 52 41 4E 43 48 20  | WNB700 ;BRANCH |
00001150: 41 4C 57 41 59 53 0D 57  4E 42 38 30 30 20 4C 44  |ALWAYS.WNB800 LD|
00001160: 41 20 23 24 32 30 20 3B  50 55 54 20 49 4E 20 45  |A #$20 ;PUT IN E|
00001170: 58 54 52 41 20 53 50 41  43 45 0D 20 53 54 41 20  |XTRA SPACE. STA |
00001180: 4B 45 59 44 2C 58 0D 20  49 4E 58 0D 20 53 54 58  |KEYD,X. INX. STX|
00001190: 20 4E 44 58 20 3B 53 45  54 20 23 20 43 48 41 52  | NDX ;SET # CHAR|
000011A0: 20 49 4E 20 42 55 46 0D  57 4E 42 39 30 30 20 4A  | IN BUF.WNB900 J|
000011B0: 53 52 20 43 4F 4D 50 43  54 20 3B 53 51 55 49 53  |SR COMPCT ;SQUIS|
000011C0: 48 20 49 54 0D 20 4A 4D  50 20 49 4E 53 45 52 54  |H IT. JMP INSERT|
000011D0: 20 3B 47 4F 20 49 4E 53  45 52 54 20 49 54 0D 3B  | ;GO INSERT IT.;|
000011E0: 0D 3B 20 52 45 4E 55 4D  42 45 52 53 20 53 4F 55  |.; RENUMBERS SOU|
000011F0: 52 43 45 20 46 49 4C 45  0D 3B 0D 3B 20 53 59 4E  |RCE FILE.;.; SYN|
00001200: 54 41 58 0D 3B 20 4E 55  4D 42 45 52 20 53 54 41  |TAX.; NUMBER STA|
00001210: 52 54 23 2C 4E 45 57 23  2C 49 4E 43 23 0D 3B 0D  |RT#,NEW#,INC#.;.|
00001220: 4E 55 4D 42 45 52 20 4A  53 52 20 4C 49 4E 47 45  |NUMBER JSR LINGE|
00001230: 54 20 3B 47 45 54 20 53  54 41 52 54 20 4E 55 4D  |T ;GET START NUM|
00001240: 42 45 52 0D 20 4A 53 52  20 46 4E 44 4C 49 4E 20  |BER. JSR FNDLIN |
00001250: 3B 46 49 4E 44 20 49 54  20 49 4E 20 53 4F 55 52  |;FIND IT IN SOUR|
00001260: 43 45 0D 20 4A 53 52 20  43 48 4B 43 4F 4D 20 3B  |CE. JSR CHKCOM ;|
00001270: 43 48 45 43 4B 20 46 4F  52 20 43 4F 4D 4D 41 0D  |CHECK FOR COMMA.|
00001280: 20 4A 53 52 20 4C 49 4E  47 45 54 20 3B 47 45 54  | JSR LINGET ;GET|
00001290: 20 4E 45 57 20 53 54 41  52 54 20 4E 55 4D 42 45  | NEW START NUMBE|
000012A0: 52 0D 20 4C 44 41 20 4C  49 4E 4E 55 4D 20 3B 53  |R. LDA LINNUM ;S|
000012B0: 41 56 45 20 49 54 0D 20  53 54 41 20 46 4E 41 44  |AVE IT. STA FNAD|
000012C0: 52 0D 20 4C 44 41 20 4C  49 4E 4E 55 4D 2B 31 0D  |R. LDA LINNUM+1.|
000012D0: 20 53 54 41 20 46 4E 41  44 52 2B 31 0D 20 4A 53  | STA FNADR+1. JS|
000012E0: 52 20 43 48 4B 43 4F 4D  20 3B 43 4F 4D 4D 41 20  |R CHKCOM ;COMMA |
000012F0: 3F 0D 20 4A 53 52 20 4C  49 4E 47 45 54 20 3B 47  |?. JSR LINGET ;G|
00001300: 45 54 20 49 4E 43 0D 4E  55 4D 31 30 30 20 4A 53  |ET INC.NUM100 JS|
00001310: 52 20 4C 4F 41 44 54 52  20 3B 47 45 54 20 48 49  |R LOADTR ;GET HI|
00001320: 20 4C 49 4E 4B 0D 20 42  45 51 20 4E 44 4F 4E 45  | LINK. BEQ NDONE|
00001330: 20 3B 45 51 55 41 4C 20  5A 45 52 4F 20 54 48 45  | ;EQUAL ZERO THE|
00001340: 4E 20 44 4F 4E 45 0D 20  4A 53 52 20 49 4E 43 54  |N DONE. JSR INCT|
00001350: 52 20 3B 53 4B 49 50 20  4C 49 4E 45 23 20 4C 4F  |R ;SKIP LINE# LO|
00001360: 0D 20 43 4C 43 0D 20 4C  44 41 20 46 4E 41 44 52  |. CLC. LDA FNADR|
00001370: 20 3B 47 45 54 20 4E 45  57 20 4E 55 4D 42 45 52  | ;GET NEW NUMBER|
00001380: 20 4C 4F 20 42 59 54 45  0D 20 4A 53 52 20 53 54  | LO BYTE. JSR ST|
00001390: 4F 52 54 52 20 3B 49 4E  53 54 41 4C 4C 20 49 54  |ORTR ;INSTALL IT|
000013A0: 0D 20 41 44 43 20 4C 49  4E 4E 55 4D 20 3B 47 45  |. ADC LINNUM ;GE|
000013B0: 4E 20 4E 45 57 0D 20 53  54 41 20 46 4E 41 44 52  |N NEW. STA FNADR|
000013C0: 0D 20 4C 44 41 20 46 4E  41 44 52 2B 31 20 3B 47  |. LDA FNADR+1 ;G|
000013D0: 45 54 20 4E 45 57 20 4E  55 4D 42 45 52 20 48 49  |ET NEW NUMBER HI|
000013E0: 20 42 59 54 45 0D 20 4A  53 52 20 53 54 4F 52 54  | BYTE. JSR STORT|
000013F0: 52 20 3B 49 4E 53 54 41  4C 4C 20 49 54 0D 20 41  |R ;INSTALL IT. A|
00001400: 44 43 20 4C 49 4E 4E 55  4D 2B 31 20 3B 47 45 4E  |DC LINNUM+1 ;GEN|
00001410: 20 4E 45 57 0D 20 53 54  41 20 46 4E 41 44 52 2B  | NEW. STA FNADR+|
00001420: 31 0D 4E 55 4D 35 30 30  20 4A 53 52 20 4C 4F 41  |1.NUM500 JSR LOA|
00001430: 44 54 52 20 3B 45 4E 44  20 4F 46 20 4C 49 4E 45  |DTR ;END OF LINE|
00001440: 20 3F 0D 20 42 4E 45 20  4E 55 4D 35 30 30 20 3B  | ?. BNE NUM500 ;|
00001450: 4E 4F 0D 20 4A 53 52 20  49 4E 43 54 52 20 3B 59  |NO. JSR INCTR ;Y|
00001460: 45 53 20 2D 20 53 4B 49  50 20 49 54 0D 20 42 4E  |ES - SKIP IT. BN|
00001470: 45 20 4E 55 4D 31 30 30  20 3B 42 52 41 4E 43 48  |E NUM100 ;BRANCH|
00001480: 20 41 4C 57 41 59 53 0D  4E 44 4F 4E 45 20 4A 4D  | ALWAYS.NDONE JM|
00001490: 50 20 46 49 4E 49 20 3B  46 49 58 20 4C 49 4E 4B  |P FINI ;FIX LINK|
000014A0: 53 0D 3B 0D 3B 20 47 45  54 20 50 55 52 45 20 41  |S.;.; GET PURE A|
000014B0: 53 43 49 49 20 53 4F 55  52 43 45 0D 3B 0D 47 45  |SCII SOURCE.;.GE|
000014C0: 54 20 4A 53 52 20 50 41  52 53 49 54 20 3B 50 41  |T JSR PARSIT ;PA|
000014D0: 52 53 45 20 4C 49 4B 45  20 4C 4F 41 44 2F 53 41  |RSE LIKE LOAD/SA|
000014E0: 56 45 0D 20 4A 53 52 20  43 48 4B 49 4E 0D 47 45  |VE. JSR CHKIN.GE|
000014F0: 54 31 30 30 20 4C 44 41  20 23 31 20 3B 4A 55 4E  |T100 LDA #1 ;JUN|
00001500: 4B 20 46 4F 52 20 4C 49  4E 4B 53 0D 20 4A 53 52  |K FOR LINKS. JSR|
00001510: 20 53 54 4F 52 34 20 3B  46 41 4B 45 20 4C 49 4E  | STOR4 ;FAKE LIN|
00001520: 4B 53 20 41 4E 44 20 4C  49 4E 45 23 0D 47 45 54  |KS AND LINE#.GET|
00001530: 35 30 30 20 4A 53 52 20  42 41 53 49 4E 20 3B 47  |500 JSR BASIN ;G|
00001540: 45 54 20 41 20 43 48 41  52 0D 20 43 4D 50 20 23  |ET A CHAR. CMP #|
00001550: 24 30 44 20 3B 45 4E 44  20 4F 46 20 41 20 4C 49  |$0D ;END OF A LI|
00001560: 4E 45 20 3F 0D 20 42 45  51 20 47 45 54 36 30 30  |NE ?. BEQ GET600|
00001570: 20 3B 59 45 53 0D 20 4A  53 52 20 53 54 4F 52 54  | ;YES. JSR STORT|
00001580: 52 20 3B 4E 4F 20 2D 20  53 41 56 45 20 49 54 0D  |R ;NO - SAVE IT.|
00001590: 20 42 4E 45 20 47 45 54  35 30 30 20 3B 42 52 41  | BNE GET500 ;BRA|
000015A0: 4E 43 48 20 41 4C 57 41  59 53 0D 47 45 54 36 30  |NCH ALWAYS.GET60|
000015B0: 30 20 4C 44 41 20 23 30  20 3B 4E 55 4C 4C 20 42  |0 LDA #0 ;NULL B|
000015C0: 41 53 49 43 20 45 4E 44  20 4F 46 20 4C 49 4E 45  |ASIC END OF LINE|
000015D0: 0D 20 4A 53 52 20 53 54  4F 52 54 52 0D 20 4C 44  |. JSR STORTR. LD|
000015E0: 41 20 53 41 54 55 53 20  3B 45 4F 49 20 2D 20 41  |A SATUS ;EOI - A|
000015F0: 4C 4C 20 44 4F 4E 45 20  3F 0D 20 42 45 51 20 47  |LL DONE ?. BEQ G|
00001600: 45 54 31 30 30 20 3B 4E  4F 0D 20 54 59 41 0D 20  |ET100 ;NO. TYA. |
00001610: 4A 53 52 20 53 54 4F 52  32 20 3B 4D 41 4B 45 20  |JSR STOR2 ;MAKE |
00001620: 5A 45 52 4F 20 4C 49 4E  4B 0D 20 4C 44 41 20 4C  |ZERO LINK. LDA L|
00001630: 4F 57 54 52 20 3B 47 45  4E 20 4E 45 57 20 53 4F  |OWTR ;GEN NEW SO|
00001640: 55 52 43 45 20 45 4E 44  0D 20 53 54 41 20 56 41  |URCE END. STA VA|
00001650: 52 54 41 42 0D 20 4C 44  41 20 4C 4F 57 54 52 2B  |RTAB. LDA LOWTR+|
00001660: 31 0D 20 53 54 41 20 56  41 52 54 41 42 2B 31 0D  |1. STA VARTAB+1.|
00001670: 20 4A 53 52 20 43 4C 4F  53 45 2B 33 20 3B 43 4C  | JSR CLOSE+3 ;CL|
00001680: 4F 53 45 20 43 48 41 4E  4E 45 4C 0D 20 4A 53 52  |OSE CHANNEL. JSR|
00001690: 20 43 52 44 4F 20 3B 50  52 54 20 28 43 52 29 20  | CRDO ;PRT (CR) |
000016A0: 28 4C 46 29 0D 20 4A 53  52 20 43 4F 50 54 41 42  |(LF). JSR COPTAB|
000016B0: 20 3B 52 45 53 45 54 20  50 54 52 20 54 4F 20 42  | ;RESET PTR TO B|
000016C0: 45 47 49 4E 4E 49 4E 47  0D 20 4C 44 41 20 23 31  |EGINNING. LDA #1|
000016D0: 30 20 3B 53 54 41 52 54  20 4C 49 4E 45 23 20 31  |0 ;START LINE# 1|
000016E0: 30 20 41 4E 44 0D 20 53  54 41 20 46 4E 41 44 52  |0 AND. STA FNADR|
000016F0: 20 3B 4E 55 4D 42 45 52  20 42 59 20 31 30 0D 20  | ;NUMBER BY 10. |
00001700: 53 54 41 20 4C 49 4E 4E  55 4D 0D 20 54 59 41 0D  |STA LINNUM. TYA.|
00001710: 20 53 54 41 20 46 4E 41  44 52 2B 31 0D 20 53 54  | STA FNADR+1. ST|
00001720: 41 20 4C 49 4E 4E 55 4D  2B 31 0D 20 42 45 51 20  |A LINNUM+1. BEQ |
00001730: 4E 55 4D 31 30 30 20 3B  47 4F 20 52 45 4E 55 4D  |NUM100 ;GO RENUM|
00001740: 42 45 52 20 46 49 4C 45  0D 3B 0D 3B 20 4F 55 54  |BER FILE.;.; OUT|
00001750: 50 55 54 20 50 55 52 45  20 41 53 43 49 49 20 53  |PUT PURE ASCII S|
00001760: 4F 55 52 43 45 0D 3B 0D  50 55 54 20 4A 53 52 20  |OURCE.;.PUT JSR |
00001770: 50 41 52 53 49 54 20 3B  50 41 52 53 45 20 4C 49  |PARSIT ;PARSE LI|
00001780: 4B 45 20 4C 4F 41 44 2F  53 41 56 45 0D 20 4A 53  |KE LOAD/SAVE. JS|
00001790: 52 20 43 4B 4F 55 54 0D  20 42 4E 45 20 50 55 54  |R CKOUT. BNE PUT|
000017A0: 34 30 30 20 3B 42 52 41  4E 43 48 20 41 4C 57 41  |400 ;BRANCH ALWA|
000017B0: 59 53 0D 50 55 54 43 52  20 4C 44 41 20 23 24 30  |YS.PUTCR LDA #$0|
000017C0: 44 20 3B 53 45 4E 44 20  28 43 52 29 20 46 4F 52  |D ;SEND (CR) FOR|
000017D0: 20 45 4E 44 20 4F 46 20  4C 49 4E 45 0D 20 4A 53  | END OF LINE. JS|
000017E0: 52 20 42 53 4F 55 54 0D  20 4A 53 52 20 49 4E 43  |R BSOUT. JSR INC|
000017F0: 54 52 20 3B 53 4B 49 50  20 4C 4F 20 4C 49 4E 4B  |TR ;SKIP LO LINK|
00001800: 0D 50 55 54 34 30 30 20  4A 53 52 20 4C 4F 41 44  |.PUT400 JSR LOAD|
00001810: 54 52 20 3B 47 45 54 20  48 49 20 4C 49 4E 4B 20  |TR ;GET HI LINK |
00001820: 2D 20 44 4F 4E 45 20 3F  0D 20 42 45 51 20 50 55  |- DONE ?. BEQ PU|
00001830: 54 44 4F 4E 20 3B 59 45  53 0D 20 4A 53 52 20 43  |TDON ;YES. JSR C|
00001840: 4D 50 4E 55 4D 20 3B 44  4F 4E 45 20 4C 49 4E 45  |MPNUM ;DONE LINE|
00001850: 20 52 41 4E 47 45 0D 20  42 43 43 20 50 55 54 44  | RANGE. BCC PUTD|
00001860: 4F 4E 20 3B 59 45 53 0D  50 55 54 36 30 30 20 4A  |ON ;YES.PUT600 J|
00001870: 53 52 20 4C 4F 41 44 54  52 20 3B 47 45 54 20 41  |SR LOADTR ;GET A|
00001880: 20 43 48 41 52 0D 20 42  45 51 20 50 55 54 43 52  | CHAR. BEQ PUTCR|
00001890: 20 3B 45 4E 44 20 4F 46  20 4C 49 4E 45 0D 20 4A  | ;END OF LINE. J|
000018A0: 53 52 20 42 53 4F 55 54  20 3B 4F 55 54 50 55 54  |SR BSOUT ;OUTPUT|
000018B0: 20 49 54 0D 20 43 4C 56  0D 20 42 56 43 20 50 55  | IT. CLV. BVC PU|
000018C0: 54 36 30 30 20 3B 42 52  41 4E 43 48 20 41 4C 57  |T600 ;BRANCH ALW|
000018D0: 41 59 53 0D 50 55 54 44  4F 4E 20 4A 53 52 20 43  |AYS.PUTDON JSR C|
000018E0: 4C 4F 53 45 2B 33 20 3B  43 4C 4F 53 45 20 43 48  |LOSE+3 ;CLOSE CH|
000018F0: 41 4E 4E 45 4C 0D 20 4A  4D 50 20 46 49 4E 49 20  |ANNEL. JMP FINI |
00001900: 3B 46 49 58 20 4C 49 4E  4B 20 41 4E 59 57 41 59  |;FIX LINK ANYWAY|
00001910: 0D 3B 0D 3B 20 52 45 50  45 41 54 20 45 4E 41 42  |.;.; REPEAT ENAB|
00001920: 4C 45 20 43 4D 44 0D 3B  0D 52 45 50 43 4D 44 20  |LE CMD.;.REPCMD |
00001930: 53 45 49 20 3B 53 54 4F  50 20 49 52 51 0D 20 4C  |SEI ;STOP IRQ. L|
00001940: 44 41 20 23 3C 52 45 50  45 41 54 0D 20 53 54 41  |DA #<REPEAT. STA|
00001950: 20 43 49 4E 56 0D 20 4C  44 41 20 23 3E 52 45 50  | CINV. LDA #>REP|
00001960: 45 41 54 0D 20 53 54 41  20 43 49 4E 56 2B 31 0D  |EAT. STA CINV+1.|
00001970: 20 4C 44 41 20 23 31 20  3B 53 54 41 52 54 20 44  | LDA #1 ;START D|
00001980: 45 4C 41 59 20 4C 4F 57  0D 20 53 54 41 20 52 45  |ELAY LOW. STA RE|
00001990: 50 44 59 0D 20 43 4C 49  0D 20 52 54 53 0D 3B 0D  |PDY. CLI. RTS.;.|
000019A0: 3B 20 53 51 55 49 53 48  20 4C 49 4E 45 20 23 20  |; SQUISH LINE # |
000019B0: 41 4E 44 20 4F 4E 45 20  53 50 41 43 45 20 46 4F  |AND ONE SPACE FO|
000019C0: 52 20 4E 45 57 20 4C 49  4E 45 0D 3B 0D 43 4F 4D  |R NEW LINE.;.COM|
000019D0: 50 43 54 20 4C 44 58 20  23 24 46 46 0D 20 4C 44  |PCT LDX #$FF. LD|
000019E0: 59 20 23 30 0D 43 4F 4D  31 30 30 20 49 4E 58 0D  |Y #0.COM100 INX.|
000019F0: 20 4C 44 41 20 42 55 46  4F 46 53 2C 58 20 3B 53  | LDA BUFOFS,X ;S|
00001A00: 4B 49 50 20 53 50 41 43  45 53 0D 20 43 4D 50 20  |KIP SPACES. CMP |
00001A10: 23 24 32 30 0D 20 42 45  51 20 43 4F 4D 31 30 30  |#$20. BEQ COM100|
00001A20: 0D 20 2E 42 59 54 45 20  24 32 34 20 3B 53 4B 49  |. .BYTE $24 ;SKI|
00001A30: 50 20 31 20 42 59 54 45  0D 43 4F 4D 32 30 30 20  |P 1 BYTE.COM200 |
00001A40: 49 4E 58 0D 20 4C 44 41  20 42 55 46 4F 46 53 2C  |INX. LDA BUFOFS,|
00001A50: 58 20 3B 53 4B 49 50 20  4E 55 4D 42 45 52 53 0D  |X ;SKIP NUMBERS.|
00001A60: 20 43 4D 50 20 23 24 33  30 20 3B 4C 45 53 53 20  | CMP #$30 ;LESS |
00001A70: 54 48 41 4E 20 30 0D 20  42 43 43 20 43 4F 4D 32  |THAN 0. BCC COM2|
00001A80: 35 30 20 3B 53 54 4F 50  20 53 4B 49 50 49 4E 47  |50 ;STOP SKIPING|
00001A90: 0D 20 43 4D 50 20 23 24  33 41 20 3B 4D 4F 52 45  |. CMP #$3A ;MORE|
00001AA0: 20 54 48 41 4E 20 39 0D  20 42 43 43 20 43 4F 4D  | THAN 9. BCC COM|
00001AB0: 32 30 30 20 3B 4E 4F 20  2D 20 41 20 23 20 53 4B  |200 ;NO - A # SK|
00001AC0: 49 50 20 49 54 0D 43 4F  4D 32 35 30 20 4C 44 41  |IP IT.COM250 LDA|
00001AD0: 20 42 55 46 4F 46 53 2C  58 20 3B 53 4B 49 50 20  | BUFOFS,X ;SKIP |
00001AE0: 4F 4E 45 20 4D 4F 52 45  20 53 50 41 43 45 0D 20  |ONE MORE SPACE. |
00001AF0: 43 4D 50 20 23 24 32 30  0D 20 42 4E 45 20 43 4F  |CMP #$20. BNE CO|
00001B00: 4D 33 30 30 0D 20 49 4E  58 0D 43 4F 4D 33 30 30  |M300. INX.COM300|
00001B10: 20 4C 44 41 20 42 55 46  4F 46 53 2C 58 20 3B 43  | LDA BUFOFS,X ;C|
00001B20: 4F 4D 50 52 45 53 53 20  42 55 46 46 45 52 0D 20  |OMPRESS BUFFER. |
00001B30: 42 45 51 20 43 4F 4D 45  4E 44 20 3B 45 4E 44 20  |BEQ COMEND ;END |
00001B40: 4F 46 20 42 55 46 46 45  52 0D 20 41 4E 44 20 23  |OF BUFFER. AND #|
00001B50: 24 37 46 20 3B 4E 4F 20  47 52 41 50 48 49 43 53  |$7F ;NO GRAPHICS|
00001B60: 20 46 4F 52 20 4E 4F 57  0D 20 53 54 41 20 42 55  | FOR NOW. STA BU|
00001B70: 46 4F 46 53 2C 59 0D 20  49 4E 58 0D 20 49 4E 59  |FOFS,Y. INX. INY|
00001B80: 0D 20 42 4E 45 20 43 4F  4D 33 30 30 20 3B 42 52  |. BNE COM300 ;BR|
00001B90: 41 4E 43 48 20 41 4C 57  41 59 53 0D 43 4F 4D 45  |ANCH ALWAYS.COME|
00001BA0: 4E 44 20 53 54 41 20 42  55 46 4F 46 53 2C 59 20  |ND STA BUFOFS,Y |
00001BB0: 3B 46 49 58 20 46 41 4B  45 20 4C 49 4E 4B 0D 20  |;FIX FAKE LINK. |
00001BC0: 49 4E 59 0D 20 49 4E 59  0D 20 53 54 41 20 42 55  |INY. INY. STA BU|
00001BD0: 46 4F 46 53 2C 59 0D 20  49 4E 59 0D 20 49 4E 59  |FOFS,Y. INY. INY|
00001BE0: 0D 20 49 4E 59 0D 20 52  54 53 0D 3B 0D 3B 20 52  |. INY. RTS.;.; R|
00001BF0: 45 50 45 41 54 20 4B 45  59 20 46 55 4E 43 54 49  |EPEAT KEY FUNCTI|
00001C00: 4F 4E 0D 3B 20 48 4F 4C  44 20 41 4E 59 20 4B 45  |ON.; HOLD ANY KE|
00001C10: 59 20 46 4F 52 20 31 2F  32 20 53 45 43 2C 20 49  |Y FOR 1/2 SEC, I|
00001C20: 54 20 52 45 50 45 41 54  53 0D 3B 0D 52 45 50 45  |T REPEATS.;.REPE|
00001C30: 41 54 20 4C 44 41 20 4C  53 54 58 20 3B 47 45 54  |AT LDA LSTX ;GET|
00001C40: 20 4C 41 53 54 20 4B 45  59 0D 20 43 4D 50 20 53  | LAST KEY. CMP S|
00001C50: 41 56 43 48 52 20 3B 53  41 4D 45 20 41 53 20 4C  |AVCHR ;SAME AS L|
00001C60: 41 53 54 20 54 49 4D 45  0D 20 42 45 51 20 52 45  |AST TIME. BEQ RE|
00001C70: 50 31 30 30 20 3B 59 45  53 0D 20 53 54 41 20 53  |P100 ;YES. STA S|
00001C80: 41 56 43 48 52 20 3B 4E  4F 20 2D 20 53 41 56 45  |AVCHR ;NO - SAVE|
00001C90: 20 4E 45 57 20 43 48 41  52 0D 20 4C 44 41 20 23  | NEW CHAR. LDA #|
00001CA0: 24 31 30 20 3B 53 45 54  20 44 45 4C 41 59 20 43  |$10 ;SET DELAY C|
00001CB0: 54 52 0D 20 53 54 41 20  44 45 4C 41 59 0D 52 50  |TR. STA DELAY.RP|
00001CC0: 45 58 49 54 20 4A 4D 50  20 49 52 51 56 45 43 0D  |EXIT JMP IRQVEC.|
00001CD0: 52 45 50 31 30 30 20 43  4D 50 20 23 24 46 46 20  |REP100 CMP #$FF |
00001CE0: 3B 49 53 20 54 48 49 53  20 41 20 4E 4F 20 4B 45  |;IS THIS A NO KE|
00001CF0: 59 20 3F 0D 20 42 45 51  20 52 50 45 58 49 54 20  |Y ?. BEQ RPEXIT |
00001D00: 3B 59 45 53 0D 20 4C 44  41 20 44 45 4C 41 59 20  |;YES. LDA DELAY |
00001D10: 3B 44 45 4C 41 59 45 44  20 45 4E 4F 55 47 48 20  |;DELAYED ENOUGH |
00001D20: 3F 0D 20 42 45 51 20 52  45 50 32 30 30 20 3B 59  |?. BEQ REP200 ;Y|
00001D30: 45 53 0D 20 44 45 43 20  44 45 4C 41 59 20 3B 4E  |ES. DEC DELAY ;N|
00001D40: 4F 20 2D 20 42 55 4D 50  20 43 54 52 0D 20 42 4E  |O - BUMP CTR. BN|
00001D50: 45 20 52 50 45 58 49 54  0D 52 45 50 32 30 30 20  |E RPEXIT.REP200 |
00001D60: 44 45 43 20 52 45 50 44  59 20 3B 54 49 4D 45 20  |DEC REPDY ;TIME |
00001D70: 54 4F 20 52 45 50 45 41  54 0D 20 42 4E 45 20 52  |TO REPEAT. BNE R|
00001D80: 50 45 58 49 54 20 3B 4E  4F 0D 20 4C 44 41 20 23  |PEXIT ;NO. LDA #|
00001D90: 24 30 34 20 3B 59 45 53  20 2D 20 52 45 53 45 54  |$04 ;YES - RESET|
00001DA0: 20 43 54 52 0D 20 53 54  41 20 52 45 50 44 59 0D  | CTR. STA REPDY.|
00001DB0: 20 4C 44 41 20 23 24 30  30 20 3B 54 45 4C 4C 20  | LDA #$00 ;TELL |
00001DC0: 49 52 51 20 54 4F 20 52  45 50 45 41 54 0D 20 53  |IRQ TO REPEAT. S|
00001DD0: 54 41 20 4C 53 54 58 0D  20 4C 44 41 20 23 24 30  |TA LSTX. LDA #$0|
00001DE0: 32 20 3B 46 49 58 20 54  48 45 20 42 4C 49 4E 4B  |2 ;FIX THE BLINK|
00001DF0: 20 4F 4E 20 43 52 53 52  0D 20 53 54 41 20 42 4C  | ON CRSR. STA BL|
00001E00: 4E 43 54 0D 20 42 4E 45  20 52 50 45 58 49 54 20  |NCT. BNE RPEXIT |
00001E10: 3B 42 52 41 4E 43 48 20  41 4C 57 41 59 53 0D 3B  |;BRANCH ALWAYS.;|
00001E20: 0D 3B 20 43 41 53 53 45  54 54 45 20 43 41 4C 4C  |.; CASSETTE CALL|
00001E30: 53 20 44 49 53 41 42 4C  45 20 52 45 50 45 41 54  |S DISABLE REPEAT|
00001E40: 0D 3B 0D 53 41 56 45 20  4A 53 52 20 46 49 58 49  |.;.SAVE JSR FIXI|
00001E50: 52 51 0D 20 4A 4D 50 20  43 53 41 56 45 0D 4C 4F  |RQ. JMP CSAVE.LO|
00001E60: 41 44 20 4A 53 52 20 46  49 58 49 52 51 0D 20 4A  |AD JSR FIXIRQ. J|
00001E70: 4D 50 20 43 4C 4F 41 44  0D 3B 0D 46 49 58 49 52  |MP CLOAD.;.FIXIR|
00001E80: 51 20 4C 44 58 20 23 31  32 0D 20 4A 4D 50 20 42  |Q LDX #12. JMP B|
00001E90: 53 49 56 20 3B 52 45 53  54 4F 52 45 20 4F 4C 44  |SIV ;RESTORE OLD|
00001EA0: 20 49 52 51 0D 3B 0D 3B  0D 3B 20 50 41 52 53 45  | IRQ.;.;.; PARSE|
00001EB0: 20 22 53 54 52 49 4E 47  22 2C 46 41 23 2C 53 41  | "STRING",FA#,SA|
00001EC0: 23 0D 3B 0D 50 41 52 53  49 54 20 4C 44 58 20 23  |#.;.PARSIT LDX #|
00001ED0: 30 20 3B 53 45 54 20 44  45 46 41 55 4C 54 53 0D  |0 ;SET DEFAULTS.|
00001EE0: 20 53 54 58 20 53 41 54  55 53 0D 20 53 54 58 20  | STX SATUS. STX |
00001EF0: 46 4E 4C 45 4E 0D 20 4C  44 58 20 23 38 0D 20 53  |FNLEN. LDX #8. S|
00001F00: 54 58 20 4C 41 0D 20 53  54 58 20 53 41 0D 20 4A  |TX LA. STX SA. J|
00001F10: 53 52 20 50 41 52 53 31  31 20 3B 46 49 4E 49 53  |SR PARS11 ;FINIS|
00001F20: 48 20 49 54 0D 20 4C 44  41 20 46 41 20 3B 47 45  |H IT. LDA FA ;GE|
00001F30: 54 20 44 45 56 49 43 45  20 23 0D 20 43 4D 50 20  |T DEVICE #. CMP |
00001F40: 23 33 20 3B 41 20 43 41  53 53 45 54 54 45 0D 20  |#3 ;A CASSETTE. |
00001F50: 42 43 43 20 50 52 53 32  30 30 20 3B 4E 4F 0D 20  |BCC PRS200 ;NO. |
00001F60: 4A 53 52 20 46 49 58 49  52 51 20 3B 44 49 53 41  |JSR FIXIRQ ;DISA|
00001F70: 42 4C 45 20 52 45 50 45  41 54 53 0D 50 52 53 32  |BLE REPEATS.PRS2|
00001F80: 30 30 20 4A 53 52 20 43  48 52 47 4F 54 20 3B 47  |00 JSR CHRGOT ;G|
00001F90: 45 54 20 4C 41 53 54 20  43 48 41 52 0D 20 42 45  |ET LAST CHAR. BE|
00001FA0: 51 20 50 52 53 33 30 30  20 3B 53 4B 49 50 20 49  |Q PRS300 ;SKIP I|
00001FB0: 46 20 45 4E 44 0D 20 4A  53 52 20 43 48 4B 43 4F  |F END. JSR CHKCO|
00001FC0: 4D 20 3B 43 48 45 43 4B  20 46 4F 52 20 41 20 43  |M ;CHECK FOR A C|
00001FD0: 4F 4D 4D 41 0D 50 52 53  33 30 30 20 4A 53 52 20  |OMMA.PRS300 JSR |
00001FE0: 52 41 4E 47 45 20 3B 53  45 54 20 4C 49 4E 45 20  |RANGE ;SET LINE |
00001FF0: 23 20 52 41 4E 47 45 0D  20 4A 53 52 20 4F 50 45  |# RANGE. JSR OPE|
00002000: 4E 2B 33 20 3B 4F 50 45  4E 20 54 48 45 20 46 49  |N+3 ;OPEN THE FI|
00002010: 4C 45 0D 20 4C 44 58 20  4C 41 0D 20 52 54 53 0D  |LE. LDX LA. RTS.|
00002020: 3B 0D 3B 20 53 54 4F 52  45 20 41 20 41 54 20 4C  |;.; STORE A AT L|
00002030: 4F 57 54 52 0D 3B 0D 53  54 4F 52 34 20 4A 53 52  |OWTR.;.STOR4 JSR|
00002040: 20 53 54 4F 52 32 20 3B  53 54 4F 52 45 20 34 20  | STOR2 ;STORE 4 |
00002050: 54 49 4D 45 53 0D 53 54  4F 52 32 20 4A 53 52 20  |TIMES.STOR2 JSR |
00002060: 53 54 4F 52 54 52 20 3B  53 54 4F 52 45 20 32 20  |STORTR ;STORE 2 |
00002070: 54 49 4D 45 53 0D 53 54  4F 52 54 52 20 4C 44 59  |TIMES.STORTR LDY|
00002080: 20 23 30 0D 20 53 54 41  20 28 4C 4F 57 54 52 29  | #0. STA (LOWTR)|
00002090: 2C 59 0D 3B 0D 3B 20 49  4E 43 20 4C 4F 57 54 52  |,Y.;.; INC LOWTR|
000020A0: 0D 3B 0D 49 4E 43 54 52  20 49 4E 43 20 4C 4F 57  |.;.INCTR INC LOW|
000020B0: 54 52 0D 20 42 4E 45 20  49 4E 43 32 30 30 0D 20  |TR. BNE INC200. |
000020C0: 49 4E 43 20 4C 4F 57 54  52 2B 31 0D 49 4E 43 32  |INC LOWTR+1.INC2|
000020D0: 30 30 20 52 54 53 0D 3B  0D 3B 20 4C 4F 41 44 20  |00 RTS.;.; LOAD |
000020E0: 41 20 46 52 4F 4D 20 4C  4F 57 54 52 0D 3B 0D 4C  |A FROM LOWTR.;.L|
000020F0: 4F 41 44 32 20 4A 53 52  20 4C 4F 41 44 54 52 20  |OAD2 JSR LOADTR |
00002100: 3B 4C 4F 41 44 20 54 57  49 43 45 0D 4C 4F 41 44  |;LOAD TWICE.LOAD|
00002110: 54 52 20 4A 53 52 20 49  4E 43 54 52 20 3B 49 4E  |TR JSR INCTR ;IN|
00002120: 43 20 46 49 52 53 54 0D  4C 4F 44 31 30 30 20 4C  |C FIRST.LOD100 L|
00002130: 44 59 20 23 30 0D 20 4C  44 41 20 28 4C 4F 57 54  |DY #0. LDA (LOWT|
00002140: 52 29 2C 59 0D 20 52 54  53 0D 3B 0D 3B 20 43 4F  |R),Y. RTS.;.; CO|
00002150: 50 59 20 54 58 54 54 41  42 20 49 4E 54 4F 20 49  |PY TXTTAB INTO I|
00002160: 4E 44 45 58 31 0D 3B 0D  43 4F 50 54 41 42 20 4C  |NDEX1.;.COPTAB L|
00002170: 44 41 20 54 58 54 54 41  42 0D 20 53 54 41 20 4C  |DA TXTTAB. STA L|
00002180: 4F 57 54 52 0D 20 4C 44  41 20 54 58 54 54 41 42  |OWTR. LDA TXTTAB|
00002190: 2B 31 0D 20 53 54 41 20  4C 4F 57 54 52 2B 31 0D  |+1. STA LOWTR+1.|
000021A0: 20 52 54 53 0D 3B 0D 3B  20 44 45 4C 45 54 45 20  | RTS.;.; DELETE |
000021B0: 41 20 52 41 4E 47 45 20  4F 46 20 53 4F 55 52 43  |A RANGE OF SOURC|
000021C0: 45 0D 3B 0D 3B 20 53 59  4E 54 41 58 0D 3B 20 44  |E.;.; SYNTAX.; D|
000021D0: 45 4C 45 54 45 20 46 52  4F 4D 23 2C 54 4F 23 0D  |ELETE FROM#,TO#.|
000021E0: 3B 0D 44 45 4C 45 54 45  20 4A 53 52 20 52 41 4E  |;.DELETE JSR RAN|
000021F0: 47 45 20 3B 47 45 54 20  4C 49 4E 45 20 23 20 52  |GE ;GET LINE # R|
00002200: 41 4E 47 45 0D 20 4C 44  41 20 4C 4F 57 54 52 20  |ANGE. LDA LOWTR |
00002210: 3B 53 41 56 45 20 49 54  0D 20 4C 44 58 20 4C 4F  |;SAVE IT. LDX LO|
00002220: 57 54 52 2B 31 0D 20 53  54 41 20 49 4E 44 45 58  |WTR+1. STA INDEX|
00002230: 32 0D 20 53 54 58 20 49  4E 44 45 58 32 2B 31 0D  |2. STX INDEX2+1.|
00002240: 20 4A 53 52 20 46 4E 44  4C 49 4E 20 3B 46 49 4E  | JSR FNDLIN ;FIN|
00002250: 44 20 49 54 0D 20 42 43  43 20 44 45 4C 33 30 30  |D IT. BCC DEL300|
00002260: 20 3B 53 4B 49 50 20 49  46 20 4E 4F 54 20 46 4F  | ;SKIP IF NOT FO|
00002270: 55 4E 44 0D 20 4C 44 59  20 23 31 0D 20 4C 44 41  |UND. LDY #1. LDA|
00002280: 20 28 4C 4F 57 54 52 29  2C 59 20 3B 41 54 20 45  | (LOWTR),Y ;AT E|
00002290: 4E 44 20 4F 46 20 53 4F  55 52 43 45 20 3F 0D 20  |ND OF SOURCE ?. |
000022A0: 42 45 51 20 44 45 4C 33  30 30 20 3B 59 45 53 0D  |BEQ DEL300 ;YES.|
000022B0: 20 54 41 58 0D 20 44 45  59 0D 20 4C 44 41 20 28  | TAX. DEY. LDA (|
000022C0: 4C 4F 57 54 52 29 2C 59  0D 20 53 54 41 20 4C 4F  |LOWTR),Y. STA LO|
000022D0: 57 54 52 20 3B 49 4E 43  4C 55 44 45 20 54 4F 20  |WTR ;INCLUDE TO |
000022E0: 4C 49 4E 45 20 23 0D 20  53 54 58 20 4C 4F 57 54  |LINE #. STX LOWT|
000022F0: 52 2B 31 0D 44 45 4C 33  30 30 20 4C 44 41 20 49  |R+1.DEL300 LDA I|
00002300: 4E 44 45 58 32 20 3B 43  48 45 43 4B 20 46 52 4F  |NDEX2 ;CHECK FRO|
00002310: 4D 3C 54 4F 23 0D 20 53  45 43 0D 20 53 42 43 20  |M<TO#. SEC. SBC |
00002320: 4C 4F 57 54 52 20 3B 47  45 4E 20 4E 45 47 20 44  |LOWTR ;GEN NEG D|
00002330: 45 4C 54 41 0D 20 54 41  58 0D 20 4C 44 41 20 49  |ELTA. TAX. LDA I|
00002340: 4E 44 45 58 32 2B 31 0D  20 53 42 43 20 4C 4F 57  |NDEX2+1. SBC LOW|
00002350: 54 52 2B 31 0D 20 54 41  59 0D 20 42 43 53 20 4E  |TR+1. TAY. BCS N|
00002360: 4F 54 44 45 4C 20 3B 4E  4F 20 47 4F 4F 44 0D 20  |OTDEL ;NO GOOD. |
00002370: 54 58 41 0D 20 43 4C 43  0D 20 41 44 43 20 56 41  |TXA. CLC. ADC VA|
00002380: 52 54 41 42 20 3B 47 45  4E 20 4E 45 57 20 45 4E  |RTAB ;GEN NEW EN|
00002390: 44 20 4F 46 20 53 4F 55  52 43 45 0D 20 53 54 41  |D OF SOURCE. STA|
000023A0: 20 56 41 52 54 41 42 0D  20 54 59 41 0D 20 41 44  | VARTAB. TYA. AD|
000023B0: 43 20 56 41 52 54 41 42  2B 31 0D 20 53 54 41 20  |C VARTAB+1. STA |
000023C0: 56 41 52 54 41 42 2B 31  0D 20 4C 44 59 20 23 30  |VARTAB+1. LDY #0|
000023D0: 0D 44 45 4C 35 30 30 20  4C 44 41 20 28 4C 4F 57  |.DEL500 LDA (LOW|
000023E0: 54 52 29 2C 59 20 3B 4D  4F 56 45 20 53 4F 55 52  |TR),Y ;MOVE SOUR|
000023F0: 43 45 20 44 4F 57 4E 0D  20 53 54 41 20 28 49 4E  |CE DOWN. STA (IN|
00002400: 44 45 58 32 29 2C 59 0D  20 49 4E 59 0D 20 42 4E  |DEX2),Y. INY. BN|
00002410: 45 20 44 45 4C 35 30 30  0D 20 49 4E 43 20 4C 4F  |E DEL500. INC LO|
00002420: 57 54 52 2B 31 0D 20 49  4E 43 20 49 4E 44 45 58  |WTR+1. INC INDEX|
00002430: 32 2B 31 0D 20 4C 44 41  20 56 41 52 54 41 42 2B  |2+1. LDA VARTAB+|
00002440: 31 20 3B 44 4F 4E 45 20  4F 4E 45 20 45 58 54 52  |1 ;DONE ONE EXTR|
00002450: 41 20 50 41 47 45 0D 20  43 4D 50 20 49 4E 44 45  |A PAGE. CMP INDE|
00002460: 58 32 2B 31 0D 20 42 43  53 20 44 45 4C 35 30 30  |X2+1. BCS DEL500|
00002470: 20 3B 4E 4F 0D 4E 4F 54  44 45 4C 20 4A 4D 50 20  | ;NO.NOTDEL JMP |
00002480: 46 49 4E 49 0D 3B 0D 3B  0D 3B 0D 3B 2B 2B 2B 2B  |FINI.;.;.;.;++++|
00002490: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 2B 2B 2B  |++++++++++++++++|
000024A0: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 0D 3B 2B 0D  |++++++++++++.;+.|
000024B0: 3B 2B 20 46 49 4E 44 20  33 2E 38 0D 3B 2B 0D 3B  |;+ FIND 3.8.;+.;|
000024C0: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 2B 2B 2B  |++++++++++++++++|
000024D0: 2B 2B 2B 2B 2B 2B 2B 2B  2B 2B 2B 2B 2B 2B 2B 2B  |++++++++++++++++|
000024E0: 0D 3B 0D 3B 20 43 48 41  4E 47 45 20 41 4E 44 20  |.;.; CHANGE AND |
000024F0: 46 49 4E 44 20 43 4D 44  53 0D 3B 0D 43 48 41 4E  |FIND CMDS.;.CHAN|
00002500: 47 45 20 53 54 41 20 43  4F 55 4E 54 20 3B 53 41  |GE STA COUNT ;SA|
00002510: 56 45 20 44 45 4C 49 4D  49 54 45 52 0D 20 4C 44  |VE DELIMITER. LD|
00002520: 58 20 23 30 0D 20 53 54  58 20 46 52 45 54 4F 50  |X #0. STX FRETOP|
00002530: 20 3B 5A 45 52 4F 20 32  4E 44 20 53 54 52 49 4E  | ;ZERO 2ND STRIN|
00002540: 47 20 50 54 52 0D 20 4A  53 52 20 47 45 54 53 54  |G PTR. JSR GETST|
00002550: 52 20 3B 52 45 41 44 20  4F 4C 44 20 53 54 52 49  |R ;READ OLD STRI|
00002560: 4E 47 0D 20 4C 44 58 20  23 32 0D 20 53 54 58 20  |NG. LDX #2. STX |
00002570: 4C 53 54 50 4E 54 20 3B  53 45 54 20 43 48 41 4E  |LSTPNT ;SET CHAN|
00002580: 47 45 20 46 4C 41 47 0D  20 42 4E 45 20 46 4E 44  |GE FLAG. BNE FND|
00002590: 30 35 30 20 3B 42 52 41  4E 43 48 20 41 4C 57 41  |050 ;BRANCH ALWA|
000025A0: 59 53 0D 46 49 4E 44 20  53 54 41 20 43 4F 55 4E  |YS.FIND STA COUN|
000025B0: 54 20 3B 53 41 56 45 20  44 45 4C 49 4D 49 54 45  |T ;SAVE DELIMITE|
000025C0: 52 0D 20 4C 44 58 20 23  30 20 3B 46 4C 41 47 20  |R. LDX #0 ;FLAG |
000025D0: 46 4F 52 20 46 49 4E 44  0D 20 53 54 58 20 4C 53  |FOR FIND. STX LS|
000025E0: 54 50 4E 54 0D 46 4E 44  30 35 30 20 4A 53 52 20  |TPNT.FND050 JSR |
000025F0: 47 45 54 53 54 52 20 3B  49 4E 50 55 54 20 53 45  |GETSTR ;INPUT SE|
00002600: 41 52 43 48 20 53 54 52  49 4E 47 0D 20 4A 53 52  |ARCH STRING. JSR|
00002610: 20 43 48 52 47 45 54 20  3B 4D 4F 52 45 20 53 54  | CHRGET ;MORE ST|
00002620: 55 46 46 20 28 52 41 4E  47 45 29 0D 20 42 45 51  |UFF (RANGE). BEQ|
00002630: 20 46 4E 44 31 30 30 20  3B 4E 4F 0D 20 4A 53 52  | FND100 ;NO. JSR|
00002640: 20 43 48 4B 43 4F 4D 20  3B 50 52 4F 50 45 52 20  | CHKCOM ;PROPER |
00002650: 44 45 4C 49 4D 49 54 45  52 0D 46 4E 44 31 30 30  |DELIMITER.FND100|
00002660: 20 4A 53 52 20 52 41 4E  47 45 20 3B 47 45 54 20  | JSR RANGE ;GET |
00002670: 52 41 4E 47 45 20 53 45  54 20 50 54 52 53 0D 20  |RANGE SET PTRS. |
00002680: 4A 53 52 20 43 52 44 4F  20 3B 50 52 54 20 28 43  |JSR CRDO ;PRT (C|
00002690: 52 29 20 28 4C 46 29 0D  20 42 4E 45 20 46 4E 44  |R) (LF). BNE FND|
000026A0: 32 30 30 20 3B 42 52 41  4E 43 48 20 41 4C 57 41  |200 ;BRANCH ALWA|
000026B0: 59 53 0D 46 4E 44 31 35  30 20 49 4E 59 0D 20 54  |YS.FND150 INY. T|
000026C0: 59 41 0D 20 43 4C 43 0D  20 41 44 43 20 4C 4F 57  |YA. CLC. ADC LOW|
000026D0: 54 52 20 3B 43 41 4C 43  20 50 54 52 20 54 4F 20  |TR ;CALC PTR TO |
000026E0: 4E 45 58 54 20 4C 49 4E  45 0D 20 53 54 41 20 4C  |NEXT LINE. STA L|
000026F0: 4F 57 54 52 0D 20 42 43  43 20 46 4E 44 32 30 30  |OWTR. BCC FND200|
00002700: 0D 20 49 4E 43 20 4C 4F  57 54 52 2B 31 0D 46 4E  |. INC LOWTR+1.FN|
00002710: 44 32 30 30 20 4A 53 52  20 4C 4F 41 44 54 52 20  |D200 JSR LOADTR |
00002720: 3B 45 4E 44 20 4F 46 20  53 4F 55 52 43 45 0D 20  |;END OF SOURCE. |
00002730: 42 45 51 20 46 44 4F 4E  45 20 3B 59 45 53 20 2D  |BEQ FDONE ;YES -|
00002740: 20 44 4F 4E 45 0D 20 4A  53 52 20 43 4D 50 4E 55  | DONE. JSR CMPNU|
00002750: 4D 20 3B 43 48 45 43 4B  20 4C 49 4E 45 20 52 41  |M ;CHECK LINE RA|
00002760: 4E 47 45 0D 20 42 43 53  20 46 4E 44 34 30 30 20  |NGE. BCS FND400 |
00002770: 3B 4E 4F 54 20 44 4F 4E  45 0D 46 44 4F 4E 45 20  |;NOT DONE.FDONE |
00002780: 4A 4D 50 20 46 49 4E 49  20 3B 46 49 58 20 4C 49  |JMP FINI ;FIX LI|
00002790: 4E 4B 53 0D 46 4E 44 34  30 30 20 4C 44 58 20 53  |NKS.FND400 LDX S|
000027A0: 54 52 45 4E 44 20 3B 53  54 41 52 54 20 4F 46 20  |TREND ;START OF |
000027B0: 43 4F 4D 50 41 49 52 20  53 54 52 49 4E 47 0D 20  |COMPAIR STRING. |
000027C0: 4C 44 41 20 53 54 52 45  4E 44 2B 31 20 3B 53 45  |LDA STREND+1 ;SE|
000027D0: 54 20 43 4D 50 20 43 54  52 0D 20 53 54 41 20 57  |T CMP CTR. STA W|
000027E0: 53 57 0D 46 4E 44 35 30  30 20 49 4E 59 0D 20 4C  |SW.FND500 INY. L|
000027F0: 44 41 20 28 4C 4F 57 54  52 29 2C 59 20 3B 45 4E  |DA (LOWTR),Y ;EN|
00002800: 44 20 4F 46 20 4C 49 4E  45 20 3F 0D 20 42 45 51  |D OF LINE ?. BEQ|
00002810: 20 46 4E 44 31 35 30 20  3B 59 45 53 20 2D 20 53  | FND150 ;YES - S|
00002820: 54 41 52 54 20 4E 45 57  20 4C 49 4E 45 0D 20 43  |TART NEW LINE. C|
00002830: 4D 50 20 42 55 46 4F 46  53 2C 58 20 3B 4D 41 54  |MP BUFOFS,X ;MAT|
00002840: 43 48 20 3F 0D 20 42 4E  45 20 46 4E 44 34 30 30  |CH ?. BNE FND400|
00002850: 20 3B 4E 4F 0D 20 49 4E  58 0D 20 44 45 43 20 57  | ;NO. INX. DEC W|
00002860: 53 57 20 3B 4D 41 54 43  48 45 44 20 41 4C 4C 20  |SW ;MATCHED ALL |
00002870: 3F 0D 20 42 4E 45 20 46  4E 44 35 30 30 20 3B 4E  |?. BNE FND500 ;N|
00002880: 4F 0D 20 53 54 59 20 43  4F 55 4E 54 20 3B 59 45  |O. STY COUNT ;YE|
00002890: 53 20 2D 20 53 41 56 45  20 4C 41 53 54 20 59 0D  |S - SAVE LAST Y.|
000028A0: 20 53 54 59 20 54 32 0D  20 4C 44 41 20 4C 53 54  | STY T2. LDA LST|
000028B0: 50 4E 54 20 3B 41 20 43  48 41 4E 47 45 20 3F 0D  |PNT ;A CHANGE ?.|
000028C0: 20 42 45 51 20 50 52 54  49 54 20 3B 4E 4F 20 2D  | BEQ PRTIT ;NO -|
000028D0: 20 50 52 49 4E 54 49 54  0D 43 48 47 49 54 20 4A  | PRINTIT.CHGIT J|
000028E0: 53 52 20 53 45 54 50 54  52 20 3B 53 45 54 20 42  |SR SETPTR ;SET B|
000028F0: 4F 54 48 20 49 4E 44 45  58 53 0D 20 4C 44 41 20  |OTH INDEXS. LDA |
00002900: 46 52 45 54 4F 50 2B 31  20 3B 43 41 4C 43 20 44  |FRETOP+1 ;CALC D|
00002910: 49 46 46 20 4F 46 20 53  54 52 49 4E 47 53 0D 20  |IFF OF STRINGS. |
00002920: 53 45 43 0D 20 53 42 43  20 53 54 52 45 4E 44 2B  |SEC. SBC STREND+|
00002930: 31 0D 20 53 54 41 20 54  31 0D 20 42 45 51 20 4D  |1. STA T1. BEQ M|
00002940: 4F 56 4E 4F 54 20 3B 53  54 52 49 4E 47 53 20 45  |OVNOT ;STRINGS E|
00002950: 47 55 41 4C 20 4E 4F 20  4D 4F 56 45 0D 54 45 53  |GUAL NO MOVE.TES|
00002960: 54 4C 4E 20 49 4E 59 0D  54 44 4F 4E 45 20 42 45  |TLN INY.TDONE BE|
00002970: 51 20 46 44 4F 4E 45 20  3B 32 35 36 20 57 52 41  |Q FDONE ;256 WRA|
00002980: 50 20 2D 20 47 45 54 20  4F 55 54 0D 20 4C 44 41  |P - GET OUT. LDA|
00002990: 20 28 4C 4F 57 54 52 29  2C 59 20 3B 45 4E 44 20  | (LOWTR),Y ;END |
000029A0: 4F 46 20 4C 49 4E 45 0D  20 42 4E 45 20 54 45 53  |OF LINE. BNE TES|
000029B0: 54 4C 4E 20 3B 4E 4F 0D  20 43 4C 43 0D 20 54 59  |TLN ;NO. CLC. TY|
000029C0: 41 0D 20 41 44 43 20 54  31 0D 20 43 4D 50 20 23  |A. ADC T1. CMP #|
000029D0: 32 20 3B 4C 49 4E 45 20  54 4F 4F 20 53 48 4F 52  |2 ;LINE TOO SHOR|
000029E0: 54 20 54 4F 20 43 48 41  4E 47 45 20 3F 0D 20 42  |T TO CHANGE ?. B|
000029F0: 43 43 20 50 52 54 49 54  20 3B 59 45 53 20 2D 20  |CC PRTIT ;YES - |
00002A00: 4A 55 53 54 20 50 52 54  0D 20 43 4D 50 20 23 24  |JUST PRT. CMP #$|
00002A10: 34 42 20 3B 4C 49 4E 45  20 54 4F 4F 20 4C 4F 4E  |4B ;LINE TOO LON|
00002A20: 47 20 3F 0D 20 42 43 53  20 50 52 54 49 54 20 3B  |G ?. BCS PRTIT ;|
00002A30: 59 45 53 0D 20 4C 44 41  20 54 31 20 3B 53 45 54  |YES. LDA T1 ;SET|
00002A40: 20 50 4C 55 53 2F 4D 49  4E 55 53 0D 20 42 50 4C  | PLUS/MINUS. BPL|
00002A50: 20 43 48 47 31 30 30 20  3B 4E 4F 20 42 4F 52 52  | CHG100 ;NO BORR|
00002A60: 4F 57 0D 20 44 45 43 20  57 53 57 20 3B 48 49 20  |OW. DEC WSW ;HI |
00002A70: 42 59 54 45 20 4E 45 47  0D 43 48 47 31 30 30 20  |BYTE NEG.CHG100 |
00002A80: 43 4C 43 0D 20 41 44 43  20 43 4F 55 4E 54 20 3B  |CLC. ADC COUNT ;|
00002A90: 43 41 4C 43 20 4D 4F 56  45 20 54 4F 20 50 54 52  |CALC MOVE TO PTR|
00002AA0: 0D 20 53 54 41 20 54 32  0D 20 42 43 53 20 44 57  |. STA T2. BCS DW|
00002AB0: 4E 44 57 4E 20 3B 41 20  4D 4F 56 45 20 44 4F 57  |NDWN ;A MOVE DOW|
00002AC0: 4E 0D 55 50 55 50 20 4A  53 52 20 4D 4F 56 45 55  |N.UPUP JSR MOVEU|
00002AD0: 50 20 3B 4D 4F 56 45 20  55 50 0D 20 42 45 51 20  |P ;MOVE UP. BEQ |
00002AE0: 4D 4F 56 4E 4F 54 20 3B  42 52 41 4E 43 48 20 41  |MOVNOT ;BRANCH A|
00002AF0: 4C 57 41 59 53 0D 44 57  4E 44 57 4E 20 4A 53 52  |LWAYS.DWNDWN JSR|
00002B00: 20 4D 4F 56 44 57 4E 0D  4D 4F 56 4E 4F 54 20 4C  | MOVDWN.MOVNOT L|
00002B10: 44 41 20 54 32 20 3B 43  41 4C 43 20 42 45 47 49  |DA T2 ;CALC BEGI|
00002B20: 4E 20 4F 4C 44 20 53 54  52 0D 20 53 45 43 0D 20  |N OLD STR. SEC. |
00002B30: 53 42 43 20 46 52 45 54  4F 50 2B 31 0D 20 54 41  |SBC FRETOP+1. TA|
00002B40: 59 0D 20 49 4E 59 0D 20  4C 44 41 20 46 52 45 54  |Y. INY. LDA FRET|
00002B50: 4F 50 2B 31 0D 20 42 45  51 20 4D 4E 54 32 30 30  |OP+1. BEQ MNT200|
00002B60: 20 3B 4E 45 57 20 53 54  52 49 4E 47 20 45 4D 50  | ;NEW STRING EMP|
00002B70: 54 59 2C 53 4B 49 50 0D  20 53 54 41 20 54 33 20  |TY,SKIP. STA T3 |
00002B80: 3B 4E 45 57 20 53 54 52  20 43 54 52 0D 20 4C 44  |;NEW STR CTR. LD|
00002B90: 58 20 46 52 45 54 4F 50  20 3B 49 4E 44 45 58 20  |X FRETOP ;INDEX |
00002BA0: 54 4F 20 4E 45 57 20 53  54 52 49 4E 47 0D 4D 4E  |TO NEW STRING.MN|
00002BB0: 54 31 30 30 20 4C 44 41  20 42 55 46 4F 46 53 2C  |T100 LDA BUFOFS,|
00002BC0: 58 20 3B 47 45 54 20 4E  45 57 20 53 54 52 0D 20  |X ;GET NEW STR. |
00002BD0: 53 54 41 20 28 4C 4F 57  54 52 29 2C 59 0D 20 49  |STA (LOWTR),Y. I|
00002BE0: 4E 58 0D 20 49 4E 59 0D  20 44 45 43 20 54 33 20  |NX. INY. DEC T3 |
00002BF0: 3B 44 4F 4E 45 0D 20 42  4E 45 20 4D 4E 54 31 30  |;DONE. BNE MNT10|
00002C00: 30 0D 4D 4E 54 32 30 30  20 43 4C 43 0D 20 4C 44  |0.MNT200 CLC. LD|
00002C10: 41 20 56 41 52 54 41 42  20 3B 43 41 4C 43 20 4E  |A VARTAB ;CALC N|
00002C20: 45 57 20 45 4E 44 20 4F  46 20 4D 45 4D 4F 52 59  |EW END OF MEMORY|
00002C30: 0D 20 41 44 43 20 54 31  0D 20 53 54 41 20 56 41  |. ADC T1. STA VA|
00002C40: 52 54 41 42 0D 20 4C 44  41 20 56 41 52 54 41 42  |RTAB. LDA VARTAB|
00002C50: 2B 31 0D 20 41 44 43 20  57 53 57 0D 20 53 54 41  |+1. ADC WSW. STA|
00002C60: 20 56 41 52 54 41 42 2B  31 0D 50 52 54 49 54 20  | VARTAB+1.PRTIT |
00002C70: 4C 44 58 20 49 4E 50 50  54 52 20 3B 47 45 54 20  |LDX INPPTR ;GET |
00002C80: 4C 49 4E 45 20 23 20 4C  4F 0D 20 4C 44 41 20 49  |LINE # LO. LDA I|
00002C90: 4E 50 50 54 52 2B 31 20  3B 47 45 54 20 4C 49 4E  |NPPTR+1 ;GET LIN|
00002CA0: 45 20 23 20 48 49 0D 20  4A 53 52 20 4C 49 4E 50  |E # HI. JSR LINP|
00002CB0: 52 54 20 3B 50 52 54 20  4C 49 4E 45 20 23 0D 20  |RT ;PRT LINE #. |
00002CC0: 4C 44 59 20 23 30 0D 20  4C 44 41 20 23 24 32 30  |LDY #0. LDA #$20|
00002CD0: 20 3B 50 52 54 20 53 50  41 43 45 0D 50 52 54 32  | ;PRT SPACE.PRT2|
00002CE0: 30 30 20 4A 53 52 20 42  53 4F 55 54 0D 20 49 4E  |00 JSR BSOUT. IN|
00002CF0: 59 0D 20 42 4E 45 20 50  52 54 32 35 30 20 3B 4C  |Y. BNE PRT250 ;L|
00002D00: 49 4E 45 20 4C 4F 4E 47  45 52 20 32 35 36 20 53  |INE LONGER 256 S|
00002D10: 54 4F 50 0D 20 4A 4D 50  20 46 49 4E 49 0D 50 52  |TOP. JMP FINI.PR|
00002D20: 54 32 35 30 20 4C 44 41  20 28 4C 4F 57 54 52 29  |T250 LDA (LOWTR)|
00002D30: 2C 59 20 3B 44 4F 4E 45  0D 20 42 4E 45 20 50 52  |,Y ;DONE. BNE PR|
00002D40: 54 32 30 30 0D 20 4A 53  52 20 43 52 44 4F 20 3B  |T200. JSR CRDO ;|
00002D50: 28 43 52 29 20 28 4C 46  29 0D 20 4A 53 52 20 47  |(CR) (LF). JSR G|
00002D60: 45 54 49 4E 20 3B 53 54  4F 50 20 48 45 52 45 0D  |ETIN ;STOP HERE.|
00002D70: 20 42 45 51 20 50 52 54  35 30 30 20 3B 4E 4F 0D  | BEQ PRT500 ;NO.|
00002D80: 50 52 54 33 30 30 20 43  4D 50 20 23 24 30 33 20  |PRT300 CMP #$03 |
00002D90: 3B 53 54 4F 50 20 4B 45  59 20 3F 0D 20 42 45 51  |;STOP KEY ?. BEQ|
00002DA0: 20 54 44 4F 4E 45 20 3B  59 45 53 0D 50 52 54 34  | TDONE ;YES.PRT4|
00002DB0: 30 30 20 4A 53 52 20 47  45 54 49 4E 20 3B 47 4F  |00 JSR GETIN ;GO|
00002DC0: 20 4F 4E 20 3F 0D 20 42  45 51 20 50 52 54 34 30  | ON ?. BEQ PRT40|
00002DD0: 30 20 3B 4E 4F 20 2D 20  57 41 49 54 0D 50 52 54  |0 ;NO - WAIT.PRT|
00002DE0: 35 30 30 20 4C 44 59 20  54 32 20 3B 43 4F 4E 54  |500 LDY T2 ;CONT|
00002DF0: 49 4E 55 45 20 4F 4E 0D  20 4A 4D 50 20 46 4E 44  |INUE ON. JMP FND|
00002E00: 34 30 30 0D 3B 0D 3B 0D  3B 20 47 45 54 20 53 54  |400.;.;.; GET ST|
00002E10: 52 49 4E 47 53 20 46 4F  52 20 46 49 4E 44 20 41  |RINGS FOR FIND A|
00002E20: 4E 44 20 43 48 41 4E 47  45 0D 3B 0D 47 45 54 53  |ND CHANGE.;.GETS|
00002E30: 54 52 20 4C 44 59 20 54  58 54 50 54 52 20 3B 53  |TR LDY TXTPTR ;S|
00002E40: 54 41 52 54 20 4F 46 20  46 49 52 53 54 20 53 54  |TART OF FIRST ST|
00002E50: 52 49 4E 47 0D 20 49 4E  59 0D 20 53 54 59 20 53  |RING. INY. STY S|
00002E60: 54 52 45 4E 44 2C 58 20  3B 53 45 54 20 42 45 47  |TREND,X ;SET BEG|
00002E70: 49 4E 20 4F 46 20 53 54  52 49 4E 47 20 50 54 52  |IN OF STRING PTR|
00002E80: 0D 20 4C 44 41 20 23 30  0D 20 53 54 41 20 53 54  |. LDA #0. STA ST|
00002E90: 52 45 4E 44 2B 31 2C 58  20 3B 5A 45 52 4F 20 4C  |REND+1,X ;ZERO L|
00002EA0: 45 4E 47 54 48 0D 47 54  53 32 30 30 20 4C 44 41  |ENGTH.GTS200 LDA|
00002EB0: 20 42 55 46 4F 46 53 2C  59 20 3B 45 4E 44 0D 20  | BUFOFS,Y ;END. |
00002EC0: 42 45 51 20 52 4E 47 45  52 52 20 3B 59 45 53 20  |BEQ RNGERR ;YES |
00002ED0: 2D 20 47 45 54 20 4F 55  54 0D 20 43 4D 50 20 43  |- GET OUT. CMP C|
00002EE0: 4F 55 4E 54 20 3B 4E 4F  20 2D 20 44 45 4C 49 4D  |OUNT ;NO - DELIM|
00002EF0: 49 54 45 52 20 3F 0D 20  42 45 51 20 47 54 53 35  |ITER ?. BEQ GTS5|
00002F00: 30 30 20 3B 59 45 53 0D  20 49 4E 43 20 53 54 52  |00 ;YES. INC STR|
00002F10: 45 4E 44 2B 31 2C 58 20  3B 49 4E 43 20 53 54 52  |END+1,X ;INC STR|
00002F20: 49 4E 47 20 4C 45 4E 47  54 48 0D 20 49 4E 59 0D  |ING LENGTH. INY.|
00002F30: 20 42 4E 45 20 47 54 53  32 30 30 0D 47 54 53 35  | BNE GTS200.GTS5|
00002F40: 30 30 20 53 54 59 20 54  58 54 50 54 52 20 3B 46  |00 STY TXTPTR ;F|
00002F50: 49 58 20 54 45 58 54 20  50 54 52 0D 20 52 54 53  |IX TEXT PTR. RTS|
00002F60: 0D 3B 0D 3B 20 42 52 45  41 4B 20 54 4F 20 4D 4F  |.;.; BREAK TO MO|
00002F70: 4E 49 54 4F 52 0D 3B 0D  42 52 45 41 4B 20 50 4C  |NITOR.;.BREAK PL|
00002F80: 41 0D 20 50 4C 41 0D 20  42 52 4B 0D 20 4A 4D 50  |A. PLA. BRK. JMP|
00002F90: 20 57 41 52 4D 20 3B 47  4F 20 57 41 52 4D 20 53  | WARM ;GO WARM S|
00002FA0: 54 41 52 54 20 42 41 53  49 43 0D 3B 0D 3B 20 49  |TART BASIC.;.; I|
00002FB0: 4E 50 55 54 20 52 41 4E  47 45 20 50 41 52 4D 53  |NPUT RANGE PARMS|
00002FC0: 0D 3B 0D 3B 20 31 30 30  2D 32 30 30 0D 3B 20 31  |.;.; 100-200.; 1|
00002FD0: 30 30 2D 0D 3B 20 2D 32  30 30 0D 3B 20 31 30 30  |00-.; -200.; 100|
00002FE0: 0D 3B 0D 52 41 4E 47 45  20 42 43 43 20 52 4E 47  |.;.RANGE BCC RNG|
00002FF0: 31 30 30 20 3B 46 52 4F  4D 20 43 48 52 47 4F 54  |100 ;FROM CHRGOT|
00003000: 20 41 20 23 20 3F 0D 20  42 45 51 20 52 4E 47 31  | A # ?. BEQ RNG1|
00003010: 30 30 20 3B 41 20 54 45  52 49 4D 41 54 4F 52 0D  |00 ;A TERIMATOR.|
00003020: 20 43 4D 50 20 23 27 2D  20 3B 41 20 44 41 53 48  | CMP #'- ;A DASH|
00003030: 0D 20 42 45 51 20 52 4E  47 31 30 30 0D 52 4E 47  |. BEQ RNG100.RNG|
00003040: 45 52 52 20 4A 4D 50 20  53 4E 45 52 52 20 3B 53  |ERR JMP SNERR ;S|
00003050: 59 4E 54 41 58 20 45 52  52 4F 52 0D 52 4E 47 31  |YNTAX ERROR.RNG1|
00003060: 30 30 20 4A 53 52 20 4C  49 4E 47 45 54 20 3B 47  |00 JSR LINGET ;G|
00003070: 45 54 20 23 0D 20 4A 53  52 20 46 4E 44 4C 49 4E  |ET #. JSR FNDLIN|
00003080: 20 3B 46 49 4E 44 20 4F  52 20 53 45 54 20 50 54  | ;FIND OR SET PT|
00003090: 52 53 0D 20 4A 53 52 20  43 48 52 47 4F 54 20 3B  |RS. JSR CHRGOT ;|
000030A0: 47 45 54 20 4C 41 53 54  20 43 48 41 52 0D 20 42  |GET LAST CHAR. B|
000030B0: 45 51 20 52 4E 47 32 30  30 20 3B 53 4B 49 50 20  |EQ RNG200 ;SKIP |
000030C0: 44 4F 4E 45 0D 20 43 4D  50 20 23 27 2D 20 3B 41  |DONE. CMP #'- ;A|
000030D0: 20 44 41 53 48 0D 20 42  4E 45 20 52 4E 47 45 52  | DASH. BNE RNGER|
000030E0: 52 20 3B 53 59 4E 54 41  58 20 45 52 52 4F 52 0D  |R ;SYNTAX ERROR.|
000030F0: 20 4A 53 52 20 43 48 52  47 45 54 20 3B 59 45 53  | JSR CHRGET ;YES|
00003100: 20 2D 20 53 4B 49 50 20  44 41 53 48 0D 20 4A 53  | - SKIP DASH. JS|
00003110: 52 20 4C 49 4E 47 45 54  20 3B 47 45 54 20 54 4F  |R LINGET ;GET TO|
00003120: 20 23 0D 20 42 4E 45 20  52 4E 47 45 52 52 20 3B  | #. BNE RNGERR ;|
00003130: 4E 4F 54 20 41 20 4E 55  4D 42 45 52 20 45 52 52  |NOT A NUMBER ERR|
00003140: 0D 52 4E 47 32 30 30 20  4C 44 41 20 4C 49 4E 4E  |.RNG200 LDA LINN|
00003150: 55 4D 0D 20 4F 52 41 20  4C 49 4E 4E 55 4D 20 3B  |UM. ORA LINNUM ;|
00003160: 41 20 54 4F 20 23 20 3F  0D 20 42 4E 45 20 52 4E  |A TO # ?. BNE RN|
00003170: 47 52 54 53 20 3B 59 45  53 0D 20 4C 44 41 20 23  |GRTS ;YES. LDA #|
00003180: 24 46 46 20 3B 4E 4F 20  2D 20 4D 41 4B 45 20 4D  |$FF ;NO - MAKE M|
00003190: 41 58 0D 20 53 54 41 20  4C 49 4E 4E 55 4D 0D 20  |AX. STA LINNUM. |
000031A0: 53 54 41 20 4C 49 4E 4E  55 4D 2B 31 0D 52 4E 47  |STA LINNUM+1.RNG|
000031B0: 52 54 53 20 52 54 53 0D  3B 0D 3B 20 43 4F 4D 50  |RTS RTS.;.; COMP|
000031C0: 41 49 52 53 20 28 4C 4F  57 54 52 29 2C 59 20 57  |AIRS (LOWTR),Y W|
000031D0: 49 54 48 20 4C 49 4E 4E  55 4D 0D 3B 0D 3B 20 43  |ITH LINNUM.;.; C|
000031E0: 3D 31 20 4C 49 4E 4E 55  4D 3D 3E 28 4C 4F 57 54  |=1 LINNUM=>(LOWT|
000031F0: 52 29 2C 59 0D 3B 20 43  3D 30 20 4C 49 4E 4E 55  |R),Y.; C=0 LINNU|
00003200: 4D 3C 20 28 4C 4F 57 54  52 29 2C 59 0D 3B 0D 43  |M< (LOWTR),Y.;.C|
00003210: 4D 50 4E 55 4D 20 4A 53  52 20 4C 4F 41 44 54 52  |MPNUM JSR LOADTR|
00003220: 20 3B 47 45 54 20 23 20  4C 4F 0D 20 53 54 41 20  | ;GET # LO. STA |
00003230: 49 4E 50 50 54 52 20 3B  53 41 56 45 20 54 4F 20  |INPPTR ;SAVE TO |
00003240: 50 52 54 20 4C 41 54 45  52 0D 20 4A 53 52 20 4C  |PRT LATER. JSR L|
00003250: 4F 41 44 54 52 0D 20 53  54 41 20 49 4E 50 50 54  |OADTR. STA INPPT|
00003260: 52 2B 31 0D 20 53 45 43  0D 20 4C 44 41 20 4C 49  |R+1. SEC. LDA LI|
00003270: 4E 4E 55 4D 0D 20 53 42  43 20 49 4E 50 50 54 52  |NNUM. SBC INPPTR|
00003280: 0D 20 4C 44 41 20 4C 49  4E 4E 55 4D 2B 31 0D 20  |. LDA LINNUM+1. |
00003290: 53 42 43 20 49 4E 50 50  54 52 2B 31 0D 20 52 54  |SBC INPPTR+1. RT|
000032A0: 53 0D 3B 0D 3B 20 53 45  54 53 20 49 4E 44 45 58  |S.;.; SETS INDEX|
000032B0: 31 20 41 4E 44 20 49 4E  44 45 58 32 0D 3B 0D 3B  |1 AND INDEX2.;.;|
000032C0: 20 49 4E 44 45 58 31 20  3D 20 4C 4F 57 54 52 0D  | INDEX1 = LOWTR.|
000032D0: 3B 20 49 4E 44 45 58 32  20 3D 20 56 41 52 54 41  |; INDEX2 = VARTA|
000032E0: 42 0D 3B 0D 53 45 54 50  54 52 20 4C 44 41 20 4C  |B.;.SETPTR LDA L|
000032F0: 4F 57 54 52 0D 20 53 54  41 20 49 4E 44 45 58 31  |OWTR. STA INDEX1|
00003300: 0D 20 4C 44 41 20 4C 4F  57 54 52 2B 31 0D 20 53  |. LDA LOWTR+1. S|
00003310: 54 41 20 49 4E 44 45 58  31 2B 31 0D 20 4C 44 41  |TA INDEX1+1. LDA|
00003320: 20 56 41 52 54 41 42 0D  20 53 54 41 20 49 4E 44  | VARTAB. STA IND|
00003330: 45 58 32 0D 20 4C 44 41  20 56 41 52 54 41 42 2B  |EX2. LDA VARTAB+|
00003340: 31 0D 20 53 54 41 20 49  4E 44 45 58 32 2B 31 0D  |1. STA INDEX2+1.|
00003350: 20 52 54 53 0D 3B 0D 3B  20 43 4F 4D 50 41 49 52  | RTS.;.; COMPAIR|
00003360: 53 20 49 4E 44 45 58 31  20 41 4E 44 20 49 4E 44  |S INDEX1 AND IND|
00003370: 45 58 32 0D 3B 0D 43 4D  50 49 4E 44 20 4C 44 41  |EX2.;.CMPIND LDA|
00003380: 20 49 4E 44 45 58 31 0D  20 43 4D 50 20 49 4E 44  | INDEX1. CMP IND|
00003390: 45 58 32 0D 20 42 4E 45  20 43 4D 50 52 54 53 0D  |EX2. BNE CMPRTS.|
000033A0: 20 4C 44 41 20 49 4E 44  45 58 31 2B 31 0D 20 43  | LDA INDEX1+1. C|
000033B0: 4D 50 20 49 4E 44 45 58  32 2B 31 0D 43 4D 50 52  |MP INDEX2+1.CMPR|
000033C0: 54 53 20 52 54 53 0D 3B  0D 3B 20 4D 4F 56 45 53  |TS RTS.;.; MOVES|
000033D0: 20 4D 45 4D 4F 52 59 20  44 4F 57 4E 0D 3B 0D 4D  | MEMORY DOWN.;.M|
000033E0: 4F 56 44 57 4E 20 4C 44  59 20 43 4F 55 4E 54 0D  |OVDWN LDY COUNT.|
000033F0: 20 49 4E 59 0D 20 4C 44  41 20 28 49 4E 44 45 58  | INY. LDA (INDEX|
00003400: 31 29 2C 59 0D 20 4C 44  59 20 54 32 0D 20 49 4E  |1),Y. LDY T2. IN|
00003410: 59 0D 20 53 54 41 20 28  49 4E 44 45 58 31 29 2C  |Y. STA (INDEX1),|
00003420: 59 0D 20 4A 53 52 20 43  4D 50 49 4E 44 20 3B 44  |Y. JSR CMPIND ;D|
00003430: 4F 4E 45 20 3F 0D 20 42  4E 45 20 4D 44 4E 31 30  |ONE ?. BNE MDN10|
00003440: 30 20 3B 4E 4F 0D 20 52  54 53 0D 4D 44 4E 31 30  |0 ;NO. RTS.MDN10|
00003450: 30 20 49 4E 43 20 49 4E  44 45 58 31 0D 20 42 4E  |0 INC INDEX1. BN|
00003460: 45 20 4D 4F 56 44 57 4E  0D 20 49 4E 43 20 49 4E  |E MOVDWN. INC IN|
00003470: 44 45 58 31 2B 31 0D 20  42 4E 45 20 4D 4F 56 44  |DEX1+1. BNE MOVD|
00003480: 57 4E 0D 3B 0D 3B 20 4D  4F 56 45 20 4D 45 4D 4F  |WN.;.; MOVE MEMO|
00003490: 52 59 20 55 50 0D 3B 0D  4D 4F 56 45 55 50 20 4C  |RY UP.;.MOVEUP L|
000034A0: 44 59 20 43 4F 55 4E 54  0D 20 4C 44 41 20 28 49  |DY COUNT. LDA (I|
000034B0: 4E 44 45 58 32 29 2C 59  0D 20 4C 44 59 20 54 32  |NDEX2),Y. LDY T2|
000034C0: 0D 20 53 54 41 20 28 49  4E 44 45 58 32 29 2C 59  |. STA (INDEX2),Y|
000034D0: 0D 20 4A 53 52 20 43 4D  50 49 4E 44 20 3B 44 4F  |. JSR CMPIND ;DO|
000034E0: 4E 45 20 3F 0D 20 42 4E  45 20 4D 55 50 31 30 30  |NE ?. BNE MUP100|
000034F0: 20 3B 4E 4F 0D 20 52 54  53 0D 4D 55 50 31 30 30  | ;NO. RTS.MUP100|
00003500: 20 4C 44 41 20 49 4E 44  45 58 32 20 3B 5A 45 52  | LDA INDEX2 ;ZER|
00003510: 4F 20 3F 0D 20 42 4E 45  20 4D 55 50 32 30 30 20  |O ?. BNE MUP200 |
00003520: 3B 4E 4F 20 2D 20 4E 4F  20 42 4F 52 52 4F 57 0D  |;NO - NO BORROW.|
00003530: 20 44 45 43 20 49 4E 44  45 58 32 2B 31 0D 4D 55  | DEC INDEX2+1.MU|
00003540: 50 32 30 30 20 44 45 43  20 49 4E 44 45 58 32 0D  |P200 DEC INDEX2.|
00003550: 20 4A 4D 50 20 4D 4F 56  45 55 50 0D 3B 0D 3B 20  | JMP MOVEUP.;.; |
00003560: 43 4F 4D 4D 41 4E 44 20  4C 49 53 54 0D 3B 0D 43  |COMMAND LIST.;.C|
00003570: 4C 49 53 54 20 2E 42 59  54 45 20 27 41 55 54 27  |LIST .BYTE 'AUT'|
00003580: 2C 24 43 46 0D 20 2E 42  59 54 45 20 27 42 52 45  |,$CF. .BYTE 'BRE|
00003590: 41 27 2C 24 43 42 0D 20  2E 42 59 54 45 20 27 43  |A',$CB. .BYTE 'C|
000035A0: 48 41 4E 47 27 2C 24 43  35 0D 20 2E 42 59 54 45  |HANG',$C5. .BYTE|
000035B0: 20 27 44 45 4C 45 54 27  2C 24 43 35 0D 20 2E 42  | 'DELET',$C5. .B|
000035C0: 59 54 45 20 27 46 49 4E  27 2C 24 43 34 0D 20 2E  |YTE 'FIN',$C4. .|
000035D0: 42 59 54 45 20 27 47 45  27 2C 24 44 34 0D 20 2E  |BYTE 'GE',$D4. .|
000035E0: 42 59 54 45 20 27 4B 49  4C 27 2C 24 43 43 0D 20  |BYTE 'KIL',$CC. |
000035F0: 2E 42 59 54 45 20 27 4C  4F 41 27 2C 24 43 34 0D  |.BYTE 'LOA',$C4.|
00003600: 20 2E 42 59 54 45 20 27  4E 55 4D 42 45 27 2C 24  | .BYTE 'NUMBE',$|
00003610: 44 32 0D 20 2E 42 59 54  45 20 27 50 55 27 2C 24  |D2. .BYTE 'PU',$|
00003620: 44 34 0D 20 2E 42 59 54  45 20 27 52 45 50 45 41  |D4. .BYTE 'REPEA|
00003630: 27 2C 24 44 34 0D 20 2E  42 59 54 45 20 27 53 41  |',$D4. .BYTE 'SA|
00003640: 56 27 2C 24 43 35 0D 20  2E 42 59 54 45 20 24 30  |V',$C5. .BYTE $0|
00003650: 30 0D 3B 0D 3B 0D 43 41  44 52 20 2E 57 4F 52 44  |0.;.;.CADR .WORD|
00003660: 20 41 55 54 4F 2D 31 0D  20 2E 57 4F 52 44 20 42  | AUTO-1. .WORD B|
00003670: 52 45 41 4B 2D 31 0D 20  2E 57 4F 52 44 20 43 48  |REAK-1. .WORD CH|
00003680: 41 4E 47 45 2D 31 0D 20  2E 57 4F 52 44 20 44 45  |ANGE-1. .WORD DE|
00003690: 4C 45 54 45 2D 31 0D 20  2E 57 4F 52 44 20 46 49  |LETE-1. .WORD FI|
000036A0: 4E 44 2D 31 0D 20 2E 57  4F 52 44 20 47 45 54 2D  |ND-1. .WORD GET-|
000036B0: 31 0D 20 2E 57 4F 52 44  20 4B 49 4C 4C 2D 31 0D  |1. .WORD KILL-1.|
000036C0: 20 2E 57 4F 52 44 20 4C  4F 41 44 2D 31 0D 20 2E  | .WORD LOAD-1. .|
000036D0: 57 4F 52 44 20 4E 55 4D  42 45 52 2D 31 0D 20 2E  |WORD NUMBER-1. .|
000036E0: 57 4F 52 44 20 50 55 54  2D 31 0D 20 2E 57 4F 52  |WORD PUT-1. .WOR|
000036F0: 44 20 52 45 50 43 4D 44  2D 31 0D 20 2E 57 4F 52  |D REPCMD-1. .WOR|
00003700: 44 20 53 41 56 45 2D 31  0D 3B 0D 3B 0D 3B 0D 3B  |D SAVE-1.;.;.;.;|
00003710: 0D 20 2E 45 4E 44 0D FF                           |. .END..        |
;++++++++++++++++++++++++++++++++++.;+.;
+ MINI-EDITOR.;+.;+ VERSION 6.8.3.;+.;+ 
6/28/79.;+.;++++++++++++++++++++++++++++
++++++.;.SAVCHR = $00 ;SAVE NEW CHAR FOR
 REPEAT.DELAY = $01 ;DELAY BEFORE REPEAT
.REPDY = $02 ;DELAY BETWEEN REPEATS.COUN
T = $05.LINNUM = $11.INDEX1 = $1F.INDEX2
 = $21.TXTTAB = $28 ;BEGIN OF SOURCE.VAR
TAB = $2A ;BYTE AFTER TRIP ZEROS.STREND 
= $2E.FRETOP = $30.MEMSIZ = $34 ;TOP OF 
MEMORY SPACE.OLDLIN = $38.INPPTR = $40.L
STPNT = $46.LOWTR = $5C.FACHO = $5F ;FLO
AT ACCUM.TXTPTR = $77.CINV = $90 ;INDIRE
CT IRQ VECTOR.SATUS = $96 ;I/O STATUS.LS
TX = $97 ;LAST KEY HIT.NDX = $9E ;NUMBER
 CHAR IN BUFFER.BLNCT = $A8 ;CTR BETWEEN
 CRSR BLINKS.WSW = $B3.T1 = $B4.T2 = $B5
.T3 = $B6.FNLEN = $D1.LA = $D2 ;LOGICAL 
ADR.SA = $D3 ;SECOND ADR.FA = $D4 ;FIRST
 ADR.TBUF = $D6 ;ACTIVE CASSETTE BUF PTR
.FNADR = $DA.BUFOFS = $0200 ;BASIC INPUT
 BUFFER.CHRGET = $0070 ;GET CHAR ROUTINE
.CHRGOT = $0076 ;GET LAST CHAR.CHRRTS = 
$0087.KEYD = $026F ;KEYBOARD INPUT BUF.B
EGIN = $7000 ;BEGIN MINI-EDITOR HERE.WAR
M = $C389 ;WARM START OF BASIC.INSERT = 
$C3B1 ;INSERT LINE INTO SOURCE.FINI = $C
439 ;FIXES LINKS BACK TO READY.FNDLIN = 
$C52C ;FINDS LINE IN SOURCE.SCRTCH = $C5
5D ;NEW ALL.LINGET = $C873 ;GETS ASCII N
UM INTO LINNUM.CRDO = $C9E2 ;(CR) (LF).C
HKCOM = $CDF8 ;CHECKS FOR A COMMA.SNERR 
= $CE03 ;SYNTAX ERROR.GETBYT = $D676 ;GE
TS BYTE INTO X REG.GETNUM = $D6C6 ;GETS 
NUM INTO LINUM.FLOATC = $DB55 ;FLOAT 16B
IT INT.LINPRT = $DCD9 ;PRT LINE #.FOUT =
 $DCE9 ;MAKE ASCII # IN $0101.IRQVEC = $
E62E ;KEYBOARD IRQ.PARS11 = $F447 ;PARSE
 LIKE LOAD/SAVE.CLSEI = $F62E ;CLOSE CHA
NNEL.BSIV = $FC9B ;IRQ FIXER ROUTINE.OPE
N = $F521 ;OPEN LOGICAL FILE.CLOSE = $F2
A9 ;CLOSE LOGICAL FILE.CHKIN = $FFC6 ;SE
TUP FOR INPUT.CKOUT = $FFC9 ;SETUP FOR O
UTPUT.CLRCH = $FFCC ;CLEARS ACTIVE CHANN
EL.BASIN = $FFCF ;GETS A CHAR FROM FILE.
BSOUT = $FFD2 ;SEND CHAR TO FILE.CLOAD =
 $FFD5 ;CASSETTE LOAD.CSAVE = $FFD8 ;CAS
SETTE SAVE.STOP = $FFE1 ;TEST STOP KEY.G
ETIN = $FFE4 ;GET ONE CHAR.CLALL = $FFE7
 ;CLOSE ALL FILES.;+++++++++++++++++++++
+++++++++++++.;+.;+ MINI.;+.;+ VERSION 6
.2.;+.;+++++++++++++++++++++++++++++++++
+.;. *= BEGIN.;.; ENABLE WEDGE CODE.;.SE
TW LDA #0 ;INSERT A JMP TO WEDGE. STA OL
DLIN ;CLEAR AUTO MODE. STA OLDLIN+1. LDA
 #<BEGIN. STA MEMSIZ ;PROTECT MINI-EDITO
R. LDA #>BEGIN. STA MEMSIZ+1. LDA #$4C ;
INSERT A JMP TO WEDGE. .BYTE $2C ;SKIP 2
 BYTES.;.; DISABLE WEDGE CODE.;.KILL LDA
 #$60 ;INSERT A RTS. STA CHRRTS. LDA #<W
EDGE. STA CHRRTS+1. LDA #>WEDGE. STA CHR
RTS+2. RTS.;.; SAVE ALL REGISTERS.;.SAVR
EG STA WSW ;SAVE A. PHP. PLA. STA T1 ;SA
VE STATUS. STX T2 ;SAVE X. STY T3 ;SAVE 
Y. RTS.;.; WEDGE CODE INTERCEPTS SCAN CH
ARS.;.WEDGE JSR SAVREG ;SAVE ALL REGS. T
SX ;SEE WHO CALLED CHRGET. LDA $0101,X ;
WAS IT MAIN ?. CMP #$9B. BNE RESREG ;NO.
 LDA $0102,X ;MAYBE. CMP #$C3. BEQ WSTAR
T ;YES - START WEDGE CODE.;.; RESTORE AL
L REGISTERS.;.RESREG LDY T3 ;RESTORE Y. 
LDX T2 ;RESTORE X. LDA T1 ;RESTORE STATU
S. PHA. LDA WSW. PLP. RTS.;.WSTART LDA T
1 ;GET STATUS REG. LSR A ;WAS IT A NUMBE
R ?. BCC WNUMB ;YES.PARSE LDX #0 ;CHECK 
FOR MINI-EDITOR CMD. STX COUNT ;ZERO IND
EX INTO CMD ADDRESS. DEX ;X=FF.PAR100 IN
X. LDY TXTPTR ;START AT BEGIN.PAR200 LDA
 BUFOFS,Y. SEC ;DO CMP. SBC CLIST,X ;CHA
R SAME. BEQ PAR300 ;YES. CMP #$80 ;SAME 
AND FOUND CMD ?. BEQ PAR400 ;YES. INC CO
UNT ;NO - TRY NEXT.PAR250 INX ;SKIP REST
 OF CMD NAME. LDA CLIST-1,X ;END OF CMD 
NAME ?. BPL PAR250 ;NO. LDA CLIST,X ;END
 OF CMD NAME TABLE ?. BNE PAR200 ;NO - L
OOK ON. BEQ RESREG ;YES - NOT MINI-EDITO
R CMD.PAR300 INX ;MATCH TRY NEXT CHAR. I
NY. BNE PAR200 ;BRANCH ALWAYS.PAR400 STY
 TXTPTR ;POINT TXTPTR AT LAST CHAR. LDA 
COUNT ;FOUND CMD JMP TO IT. ASL A ;ADRS 
ARE 2 BYTES. TAX. LDA CADR+1,X ;DO INDIR
ECT JMP. PHA. LDA CADR,X. PHA. JSR RESRE
G ;RESTORE ALL REGS. JMP CHRGET.;.; AUTO
 LINE #.;.; SYNTAX.; AUTO INC# - ENABLE 
AUTO.; AUTO - DISABLE AUTO.;.AUTO JSR LI
NGET ;GET START #. LDA LINNUM ;SAVE IT. 
STA OLDLIN. LDA LINNUM+1. STA OLDLIN+1. 
RTS.;.; HANDLES A NEW LINE WITH NUMBER.;
.WNUMB PLA ;REMOVE JUNK FROM STACK. PLA.
 JSR RESREG ;RESTORE REG. JSR LINGET ;GE
T LINE # INTO LINNUM. BEQ WNB900 ;LINE #
 ONLY.WNB400 LDA OLDLIN ;IN AUTO MODE ?.
 ORA OLDLIN+1. BEQ WNB900 ;NO.WNB600 LDA
 LINNUM ;LINE # FOR NEXT LINE. CLC. ADC 
OLDLIN. STA FACHO+1. LDA LINNUM+1. ADC O
LDLIN+1. STA FACHO. LDX #$90. SEC. JSR F
LOATC ;FLOAT IT. JSR FOUT ;MAKE ASCII #.
 LDX #0 ;PUT ASCII # IN KEYB. LDA #$20 ;
PUT 1 SPACE BEFORE #. STA KEYD,X. INX.WN
B700 LDA $0100,X. BEQ WNB800 ;DONE. STA 
KEYD,X. INX. BNE WNB700 ;BRANCH ALWAYS.W
NB800 LDA #$20 ;PUT IN EXTRA SPACE. STA 
KEYD,X. INX. STX NDX ;SET # CHAR IN BUF.
WNB900 JSR COMPCT ;SQUISH IT. JMP INSERT
 ;GO INSERT IT.;.; RENUMBERS SOURCE FILE
.;.; SYNTAX.; NUMBER START#,NEW#,INC#.;.
NUMBER JSR LINGET ;GET START NUMBER. JSR
 FNDLIN ;FIND IT IN SOURCE. JSR CHKCOM ;
CHECK FOR COMMA. JSR LINGET ;GET NEW STA
RT NUMBER. LDA LINNUM ;SAVE IT. STA FNAD
R. LDA LINNUM+1. STA FNADR+1. JSR CHKCOM
 ;COMMA ?. JSR LINGET ;GET INC.NUM100 JS
R LOADTR ;GET HI LINK. BEQ NDONE ;EQUAL 
ZERO THEN DONE. JSR INCTR ;SKIP LINE# LO
. CLC. LDA FNADR ;GET NEW NUMBER LO BYTE
. JSR STORTR ;INSTALL IT. ADC LINNUM ;GE
N NEW. STA FNADR. LDA FNADR+1 ;GET NEW N
UMBER HI BYTE. JSR STORTR ;INSTALL IT. A
DC LINNUM+1 ;GEN NEW. STA FNADR+1.NUM500
 JSR LOADTR ;END OF LINE ?. BNE NUM500 ;
NO. JSR INCTR ;YES - SKIP IT. BNE NUM100
 ;BRANCH ALWAYS.NDONE JMP FINI ;FIX LINK
S.;.; GET PURE ASCII SOURCE.;.GET JSR PA
RSIT ;PARSE LIKE LOAD/SAVE. JSR CHKIN.GE
T100 LDA #1 ;JUNK FOR LINKS. JSR STOR4 ;
FAKE LINKS AND LINE#.GET500 JSR BASIN ;G
ET A CHAR. CMP #$0D ;END OF A LINE ?. BE
Q GET600 ;YES. JSR STORTR ;NO - SAVE IT.
 BNE GET500 ;BRANCH ALWAYS.GET600 LDA #0
 ;NULL BASIC END OF LINE. JSR STORTR. LD
A SATUS ;EOI - ALL DONE ?. BEQ GET100 ;N
O. TYA. JSR STOR2 ;MAKE ZERO LINK. LDA L
OWTR ;GEN NEW SOURCE END. STA VARTAB. LD
A LOWTR+1. STA VARTAB+1. JSR CLOSE+3 ;CL
OSE CHANNEL. JSR CRDO ;PRT (CR) (LF). JS
R COPTAB ;RESET PTR TO BEGINNING. LDA #1
0 ;START LINE# 10 AND. STA FNADR ;NUMBER
 BY 10. STA LINNUM. TYA. STA FNADR+1. ST
A LINNUM+1. BEQ NUM100 ;GO RENUMBER FILE
.;.; OUTPUT PURE ASCII SOURCE.;.PUT JSR 
PARSIT ;PARSE LIKE LOAD/SAVE. JSR CKOUT.
 BNE PUT400 ;BRANCH ALWAYS.PUTCR LDA #$0
D ;SEND (CR) FOR END OF LINE. JSR BSOUT.
 JSR INCTR ;SKIP LO LINK.PUT400 JSR LOAD
TR ;GET HI LINK - DONE ?. BEQ PUTDON ;YE
S. JSR CMPNUM ;DONE LINE RANGE. BCC PUTD
ON ;YES.PUT600 JSR LOADTR ;GET A CHAR. B
EQ PUTCR ;END OF LINE. JSR BSOUT ;OUTPUT
 IT. CLV. BVC PUT600 ;BRANCH ALWAYS.PUTD
ON JSR CLOSE+3 ;CLOSE CHANNEL. JMP FINI 
;FIX LINK ANYWAY.;.; REPEAT ENABLE CMD.;
.REPCMD SEI ;STOP IRQ. LDA #<REPEAT. STA
 CINV. LDA #>REPEAT. STA CINV+1. LDA #1 
;START DELAY LOW. STA REPDY. CLI. RTS.;.
; SQUISH LINE # AND ONE SPACE FOR NEW LI
NE.;.COMPCT LDX #$FF. LDY #0.COM100 INX.
 LDA BUFOFS,X ;SKIP SPACES. CMP #$20. BE
Q COM100. .BYTE $24 ;SKIP 1 BYTE.COM200 
INX. LDA BUFOFS,X ;SKIP NUMBERS. CMP #$3
0 ;LESS THAN 0. BCC COM250 ;STOP SKIPING
. CMP #$3A ;MORE THAN 9. BCC COM200 ;NO 
- A # SKIP IT.COM250 LDA BUFOFS,X ;SKIP 
ONE MORE SPACE. CMP #$20. BNE COM300. IN
X.COM300 LDA BUFOFS,X ;COMPRESS BUFFER. 
BEQ COMEND ;END OF BUFFER. AND #$7F ;NO 
GRAPHICS FOR NOW. STA BUFOFS,Y. INX. INY
. BNE COM300 ;BRANCH ALWAYS.COMEND STA B
UFOFS,Y ;FIX FAKE LINK. INY. INY. STA BU
FOFS,Y. INY. INY. INY. RTS.;.; REPEAT KE
Y FUNCTION.; HOLD ANY KEY FOR 1/2 SEC, I
T REPEATS.;.REPEAT LDA LSTX ;GET LAST KE
Y. CMP SAVCHR ;SAME AS LAST TIME. BEQ RE
P100 ;YES. STA SAVCHR ;NO - SAVE NEW CHA
R. LDA #$10 ;SET DELAY CTR. STA DELAY.RP
EXIT JMP IRQVEC.REP100 CMP #$FF ;IS THIS
 A NO KEY ?. BEQ RPEXIT ;YES. LDA DELAY 
;DELAYED ENOUGH ?. BEQ REP200 ;YES. DEC 
DELAY ;NO - BUMP CTR. BNE RPEXIT.REP200 
DEC REPDY ;TIME TO REPEAT. BNE RPEXIT ;N
O. LDA #$04 ;YES - RESET CTR. STA REPDY.
 LDA #$00 ;TELL IRQ TO REPEAT. STA LSTX.
 LDA #$02 ;FIX THE BLINK ON CRSR. STA BL
NCT. BNE RPEXIT ;BRANCH ALWAYS.;.; CASSE
TTE CALLS DISABLE REPEAT.;.SAVE JSR FIXI
RQ. JMP CSAVE.LOAD JSR FIXIRQ. JMP CLOAD
.;.FIXIRQ LDX #12. JMP BSIV ;RESTORE OLD
 IRQ.;.;.; PARSE "STRING",FA#,SA#.;.PARS
IT LDX #0 ;SET DEFAULTS. STX SATUS. STX 
FNLEN. LDX #8. STX LA. STX SA. JSR PARS1
1 ;FINISH IT. LDA FA ;GET DEVICE #. CMP 
#3 ;A CASSETTE. BCC PRS200 ;NO. JSR FIXI
RQ ;DISABLE REPEATS.PRS200 JSR CHRGOT ;G
ET LAST CHAR. BEQ PRS300 ;SKIP IF END. J
SR CHKCOM ;CHECK FOR A COMMA.PRS300 JSR 
RANGE ;SET LINE # RANGE. JSR OPEN+3 ;OPE
N THE FILE. LDX LA. RTS.;.; STORE A AT L
OWTR.;.STOR4 JSR STOR2 ;STORE 4 TIMES.ST
OR2 JSR STORTR ;STORE 2 TIMES.STORTR LDY
 #0. STA (LOWTR),Y.;.; INC LOWTR.;.INCTR
 INC LOWTR. BNE INC200. INC LOWTR+1.INC2
00 RTS.;.; LOAD A FROM LOWTR.;.LOAD2 JSR
 LOADTR ;LOAD TWICE.LOADTR JSR INCTR ;IN
C FIRST.LOD100 LDY #0. LDA (LOWTR),Y. RT
S.;.; COPY TXTTAB INTO INDEX1.;.COPTAB L
DA TXTTAB. STA LOWTR. LDA TXTTAB+1. STA 
LOWTR+1. RTS.;.; DELETE A RANGE OF SOURC
E.;.; SYNTAX.; DELETE FROM#,TO#.;.DELETE
 JSR RANGE ;GET LINE # RANGE. LDA LOWTR 
;SAVE IT. LDX LOWTR+1. STA INDEX2. STX I
NDEX2+1. JSR FNDLIN ;FIND IT. BCC DEL300
 ;SKIP IF NOT FOUND. LDY #1. LDA (LOWTR)
,Y ;AT END OF SOURCE ?. BEQ DEL300 ;YES.
 TAX. DEY. LDA (LOWTR),Y. STA LOWTR ;INC
LUDE TO LINE #. STX LOWTR+1.DEL300 LDA I
NDEX2 ;CHECK FROM<TO#. SEC. SBC LOWTR ;G
EN NEG DELTA. TAX. LDA INDEX2+1. SBC LOW
TR+1. TAY. BCS NOTDEL ;NO GOOD. TXA. CLC
. ADC VARTAB ;GEN NEW END OF SOURCE. STA
 VARTAB. TYA. ADC VARTAB+1. STA VARTAB+1
. LDY #0.DEL500 LDA (LOWTR),Y ;MOVE SOUR
CE DOWN. STA (INDEX2),Y. INY. BNE DEL500
. INC LOWTR+1. INC INDEX2+1. LDA VARTAB+
1 ;DONE ONE EXTRA PAGE. CMP INDEX2+1. BC
S DEL500 ;NO.NOTDEL JMP FINI.;.;.;.;++++
++++++++++++++++++++++++++++.;+.;+ FIND 
3.8.;+.;++++++++++++++++++++++++++++++++
.;.; CHANGE AND FIND CMDS.;.CHANGE STA C
OUNT ;SAVE DELIMITER. LDX #0. STX FRETOP
 ;ZERO 2ND STRING PTR. JSR GETSTR ;READ 
OLD STRING. LDX #2. STX LSTPNT ;SET CHAN
GE FLAG. BNE FND050 ;BRANCH ALWAYS.FIND 
STA COUNT ;SAVE DELIMITER. LDX #0 ;FLAG 
FOR FIND. STX LSTPNT.FND050 JSR GETSTR ;
INPUT SEARCH STRING. JSR CHRGET ;MORE ST
UFF (RANGE). BEQ FND100 ;NO. JSR CHKCOM 
;PROPER DELIMITER.FND100 JSR RANGE ;GET 
RANGE SET PTRS. JSR CRDO ;PRT (CR) (LF).
 BNE FND200 ;BRANCH ALWAYS.FND150 INY. T
YA. CLC. ADC LOWTR ;CALC PTR TO NEXT LIN
E. STA LOWTR. BCC FND200. INC LOWTR+1.FN
D200 JSR LOADTR ;END OF SOURCE. BEQ FDON
E ;YES - DONE. JSR CMPNUM ;CHECK LINE RA
NGE. BCS FND400 ;NOT DONE.FDONE JMP FINI
 ;FIX LINKS.FND400 LDX STREND ;START OF 
COMPAIR STRING. LDA STREND+1 ;SET CMP CT
R. STA WSW.FND500 INY. LDA (LOWTR),Y ;EN
D OF LINE ?. BEQ FND150 ;YES - START NEW
 LINE. CMP BUFOFS,X ;MATCH ?. BNE FND400
 ;NO. INX. DEC WSW ;MATCHED ALL ?. BNE F
ND500 ;NO. STY COUNT ;YES - SAVE LAST Y.
 STY T2. LDA LSTPNT ;A CHANGE ?. BEQ PRT
IT ;NO - PRINTIT.CHGIT JSR SETPTR ;SET B
OTH INDEXS. LDA FRETOP+1 ;CALC DIFF OF S
TRINGS. SEC. SBC STREND+1. STA T1. BEQ M
OVNOT ;STRINGS EGUAL NO MOVE.TESTLN INY.
TDONE BEQ FDONE ;256 WRAP - GET OUT. LDA
 (LOWTR),Y ;END OF LINE. BNE TESTLN ;NO.
 CLC. TYA. ADC T1. CMP #2 ;LINE TOO SHOR
T TO CHANGE ?. BCC PRTIT ;YES - JUST PRT
. CMP #$4B ;LINE TOO LONG ?. BCS PRTIT ;
YES. LDA T1 ;SET PLUS/MINUS. BPL CHG100 
;NO BORROW. DEC WSW ;HI BYTE NEG.CHG100 
CLC. ADC COUNT ;CALC MOVE TO PTR. STA T2
. BCS DWNDWN ;A MOVE DOWN.UPUP JSR MOVEU
P ;MOVE UP. BEQ MOVNOT ;BRANCH ALWAYS.DW
NDWN JSR MOVDWN.MOVNOT LDA T2 ;CALC BEGI
N OLD STR. SEC. SBC FRETOP+1. TAY. INY. 
LDA FRETOP+1. BEQ MNT200 ;NEW STRING EMP
TY,SKIP. STA T3 ;NEW STR CTR. LDX FRETOP
 ;INDEX TO NEW STRING.MNT100 LDA BUFOFS,
X ;GET NEW STR. STA (LOWTR),Y. INX. INY.
 DEC T3 ;DONE. BNE MNT100.MNT200 CLC. LD
A VARTAB ;CALC NEW END OF MEMORY. ADC T1
. STA VARTAB. LDA VARTAB+1. ADC WSW. STA
 VARTAB+1.PRTIT LDX INPPTR ;GET LINE # L
O. LDA INPPTR+1 ;GET LINE # HI. JSR LINP
RT ;PRT LINE #. LDY #0. LDA #$20 ;PRT SP
ACE.PRT200 JSR BSOUT. INY. BNE PRT250 ;L
INE LONGER 256 STOP. JMP FINI.PRT250 LDA
 (LOWTR),Y ;DONE. BNE PRT200. JSR CRDO ;
(CR) (LF). JSR GETIN ;STOP HERE. BEQ PRT
500 ;NO.PRT300 CMP #$03 ;STOP KEY ?. BEQ
 TDONE ;YES.PRT400 JSR GETIN ;GO ON ?. B
EQ PRT400 ;NO - WAIT.PRT500 LDY T2 ;CONT
INUE ON. JMP FND400.;.;.; GET STRINGS FO
R FIND AND CHANGE.;.GETSTR LDY TXTPTR ;S
TART OF FIRST STRING. INY. STY STREND,X 
;SET BEGIN OF STRING PTR. LDA #0. STA ST
REND+1,X ;ZERO LENGTH.GTS200 LDA BUFOFS,
Y ;END. BEQ RNGERR ;YES - GET OUT. CMP C
OUNT ;NO - DELIMITER ?. BEQ GTS500 ;YES.
 INC STREND+1,X ;INC STRING LENGTH. INY.
 BNE GTS200.GTS500 STY TXTPTR ;FIX TEXT 
PTR. RTS.;.; BREAK TO MONITOR.;.BREAK PL
A. PLA. BRK. JMP WARM ;GO WARM START BAS
IC.;.; INPUT RANGE PARMS.;.; 100-200.; 1
00-.; -200.; 100.;.RANGE BCC RNG100 ;FRO
M CHRGOT A # ?. BEQ RNG100 ;A TERIMATOR.
 CMP #'- ;A DASH. BEQ RNG100.RNGERR JMP 
SNERR ;SYNTAX ERROR.RNG100 JSR LINGET ;G
ET #. JSR FNDLIN ;FIND OR SET PTRS. JSR 
CHRGOT ;GET LAST CHAR. BEQ RNG200 ;SKIP 
DONE. CMP #'- ;A DASH. BNE RNGERR ;SYNTA
X ERROR. JSR CHRGET ;YES - SKIP DASH. JS
R LINGET ;GET TO #. BNE RNGERR ;NOT A NU
MBER ERR.RNG200 LDA LINNUM. ORA LINNUM ;
A TO # ?. BNE RNGRTS ;YES. LDA #$FF ;NO 
- MAKE MAX. STA LINNUM. STA LINNUM+1.RNG
RTS RTS.;.; COMPAIRS (LOWTR),Y WITH LINN
UM.;.; C=1 LINNUM=>(LOWTR),Y.; C=0 LINNU
M< (LOWTR),Y.;.CMPNUM JSR LOADTR ;GET # 
LO. STA INPPTR ;SAVE TO PRT LATER. JSR L
OADTR. STA INPPTR+1. SEC. LDA LINNUM. SB
C INPPTR. LDA LINNUM+1. SBC INPPTR+1. RT
S.;.; SETS INDEX1 AND INDEX2.;.; INDEX1 
= LOWTR.; INDEX2 = VARTAB.;.SETPTR LDA L
OWTR. STA INDEX1. LDA LOWTR+1. STA INDEX
1+1. LDA VARTAB. STA INDEX2. LDA VARTAB+
1. STA INDEX2+1. RTS.;.; COMPAIRS INDEX1
 AND INDEX2.;.CMPIND LDA INDEX1. CMP IND
EX2. BNE CMPRTS. LDA INDEX1+1. CMP INDEX
2+1.CMPRTS RTS.;.; MOVES MEMORY DOWN.;.M
OVDWN LDY COUNT. INY. LDA (INDEX1),Y. LD
Y T2. INY. STA (INDEX1),Y. JSR CMPIND ;D
ONE ?. BNE MDN100 ;NO. RTS.MDN100 INC IN
DEX1. BNE MOVDWN. INC INDEX1+1. BNE MOVD
WN.;.; MOVE MEMORY UP.;.MOVEUP LDY COUNT
. LDA (INDEX2),Y. LDY T2. STA (INDEX2),Y
. JSR CMPIND ;DONE ?. BNE MUP100 ;NO. RT
S.MUP100 LDA INDEX2 ;ZERO ?. BNE MUP200 
;NO - NO BORROW. DEC INDEX2+1.MUP200 DEC
 INDEX2. JMP MOVEUP.;.; COMMAND LIST.;.C
LIST .BYTE 'AUT',$CF. .BYTE 'BREA',$CB. 
.BYTE 'CHANG',$C5. .BYTE 'DELET',$C5. .B
YTE 'FIN',$C4. .BYTE 'GE',$D4. .BYTE 'KI
L',$CC. .BYTE 'LOA',$C4. .BYTE 'NUMBE',$
D2. .BYTE 'PU',$D4. .BYTE 'REPEA',$D4. .
BYTE 'SAV',$C5. .BYTE $00.;.;.CADR .WORD
 AUTO-1. .WORD BREAK-1. .WORD CHANGE-1. 
.WORD DELETE-1. .WORD FIND-1. .WORD GET-
1. .WORD KILL-1. .WORD LOAD-1. .WORD NUM
BER-1. .WORD PUT-1. .WORD REPCMD-1. .WOR
D SAVE-1.;.;.;.;. .END..
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL