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

CA-DOSUPP   4040

FILE INFORMATION

FILENAME(S): CA-DOSUPP   4040

FILE TYPE(S): SEQ

FILE SIZE: 10K

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

APPEARS ON: 2 disk(s)

FILE HASH

23562ec955774e8e466d9565001763caaa7b9b9129338ffb4a5aa6ddf6555ee6

FOUND ON DISKS (2 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
C64 HULP 18 2 CA-DOSUPP   4040 SEQ DuncanTwain 11 1 DOWNLOAD FILE
C64 HULP 40 2 CA-DOSUPP   4040 SEQ DuncanTwain 17 1 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |;***************|
00000010: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000020: 0D 3B 2A 0D 3B 2A 20 20  50 45 54 20 44 4F 53 20  |.;*.;*  PET DOS |
00000030: 53 55 50 50 4F 52 54 0D  3B 2A 0D 3B 2A 20 20 20  |SUPPORT.;*.;*   |
00000040: 20 30 34 2D 32 37 2D 37  39 0D 3B 2A 0D 3B 2A 20  | 04-27-79.;*.;* |
00000050: 20 42 4F 42 20 46 41 49  52 42 41 49 52 4E 0D 3B  | BOB FAIRBAIRN.;|
00000060: 2A 0D 3B 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |*.;*************|
00000070: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000080: 2A 2A 0D 3B 2A 0D 3B 2A  20 56 45 52 53 49 4F 4E  |**.;*.;* VERSION|
00000090: 20 33 2E 31 20 36 2F 31  34 2F 37 39 0D 3B 2A 20  | 3.1 6/14/79.;* |
000000A0: 20 20 20 41 44 44 20 40  20 50 52 4F 4D 50 54 20  |   ADD @ PROMPT |
000000B0: 46 4F 52 20 42 55 53 49  4E 45 53 53 0D 3B 2A 20  |FOR BUSINESS.;* |
000000C0: 20 20 20 4B 45 59 42 4F  41 52 44 2E 20 41 44 44  |   KEYBOARD. ADD|
000000D0: 20 53 54 4F 50 20 4B 45  59 20 43 48 45 43 4B 0D  | STOP KEY CHECK.|
000000E0: 3B 2A 20 20 20 20 49 4E  20 44 49 52 45 43 54 4F  |;*    IN DIRECTO|
000000F0: 52 59 20 50 52 49 4E 54  2E 20 41 44 44 0D 3B 2A  |RY PRINT. ADD.;*|
00000100: 20 20 20 20 48 41 4C 54  20 49 4E 20 44 49 52 45  |    HALT IN DIRE|
00000110: 43 54 4F 52 59 20 50 52  49 4E 54 0D 3B 2A 0D 3B  |CTORY PRINT.;*.;|
00000120: 2A 20 56 45 52 53 49 4F  4E 20 33 2E 32 20 37 2F  |* VERSION 3.2 7/|
00000130: 32 2F 37 39 0D 3B 2A 20  20 20 20 46 4F 52 20 28  |2/79.;*    FOR (|
00000140: 2D 30 34 29 20 52 4F 4D  20 50 52 4F 42 4C 45 4D  |-04) ROM PROBLEM|
00000150: 53 0D 3B 2A 20 20 20 20  57 49 54 48 20 4C 4F 41  |S.;*    WITH LOA|
00000160: 44 20 41 44 44 52 45 53  53 20 4F 4E 45 20 4F 46  |D ADDRESS ONE OF|
00000170: 46 0D 3B 2A 20 20 20 20  42 59 54 45 20 4C 4F 57  |F.;*    BYTE LOW|
00000180: 2E 0D 3B 2A 0D 3B 2A 20  56 45 52 53 49 4F 4E 20  |..;*.;* VERSION |
00000190: 33 2E 33 20 37 2F 32 2F  37 39 0D 3B 2A 20 20 20  |3.3 7/2/79.;*   |
000001A0: 20 41 44 44 20 53 54 41  43 4B 20 4C 4F 4F 4B 55  | ADD STACK LOOKU|
000001B0: 50 20 46 4F 52 0D 3B 2A  20 20 20 20 41 43 54 49  |P FOR.;*    ACTI|
000001C0: 56 41 54 49 4F 4E 2E 0D  3B 2A 0D 3B 2A 20 56 45  |VATION..;*.;* VE|
000001D0: 52 53 49 4F 4E 20 34 2E  30 20 37 2F 35 2F 37 39  |RSION 4.0 7/5/79|
000001E0: 0D 3B 2A 20 20 20 20 41  44 44 20 43 4F 4E 54 52  |.;*    ADD CONTR|
000001F0: 4F 4C 20 46 4F 52 20 43  4D 44 20 44 55 52 49 4E  |OL FOR CMD DURIN|
00000200: 47 0D 3B 2A 20 20 20 20  41 20 44 49 52 45 43 54  |G.;*    A DIRECT|
00000210: 4F 52 59 20 4C 49 53 54  49 4E 47 2E 0D 3B 2A 0D  |ORY LISTING..;*.|
00000220: 3B 2A 0D 3B 2A 20 56 45  52 53 49 4F 4E 20 34 2E  |;*.;* VERSION 4.|
00000230: 31 20 31 31 2F 37 2F 37  39 0D 3B 2A 20 20 20 20  |1 11/7/79.;*    |
00000240: 52 45 4D 4F 56 45 20 4D  4F 44 53 20 46 52 4F 4D  |REMOVE MODS FROM|
00000250: 20 34 2E 30 2E 20 43 41  4C 4C 0D 3B 2A 20 20 20  | 4.0. CALL.;*   |
00000260: 20 46 41 53 54 20 57 45  44 47 45 20 34 2E 31 2E  | FAST WEDGE 4.1.|
00000270: 0D 3B 2A 0D 3B 2A 0D 3B  2A 20 56 45 52 53 49 4F  |.;*.;*.;* VERSIO|
00000280: 4E 20 34 2E 32 20 31 32  2F 31 37 2F 37 39 0D 3B  |N 4.2 12/17/79.;|
00000290: 2A 20 20 20 20 53 45 54  20 55 50 20 46 4F 52 20  |*    SET UP FOR |
000002A0: 42 41 53 49 43 20 34 2E  30 20 41 4E 44 0D 3B 2A  |BASIC 4.0 AND.;*|
000002B0: 20 20 20 20 32 2E 30 20  28 4E 4F 20 43 48 41 4E  |    2.0 (NO CHAN|
000002C0: 47 45 53 29 0D 3B 2A 0D  3B 2A 0D 3B 2A 20 56 45  |GES).;*.;*.;* VE|
000002D0: 52 53 49 4F 4E 20 35 2E  30 20 31 32 2F 31 36 2F  |RSION 5.0 12/16/|
000002E0: 38 31 2D 30 32 2F 31 30  2F 38 32 0D 3B 2A 20 20  |81-02/10/82.;*  |
000002F0: 20 20 41 44 44 20 4E 45  57 20 43 4F 4D 4D 41 4E  |  ADD NEW COMMAN|
00000300: 44 53 2C 20 41 4C 4C 4F  57 20 54 4F 20 57 4F 52  |DS, ALLOW TO WOR|
00000310: 4B 20 49 4E 0D 3B 2A 20  20 20 20 52 55 4E 4E 49  |K IN.;*    RUNNI|
00000320: 4E 47 20 50 52 4F 47 52  41 4D 2E 20 50 55 54 20  |NG PROGRAM. PUT |
00000330: 56 4F 4C 55 4D 45 20 4E  41 4D 45 53 0D 3B 2A 20  |VOLUME NAMES.;* |
00000340: 20 20 20 49 4E 20 41 4C  4C 20 43 4F 4D 4D 41 4E  |   IN ALL COMMAN|
00000350: 44 53 20 55 53 49 4E 47  20 42 52 41 43 4B 45 54  |DS USING BRACKET|
00000360: 53 0D 3B 2A 20 20 20 20  4F 4E 4C 59 20 57 4F 52  |S.;*    ONLY WOR|
00000370: 4B 53 20 57 49 54 48 20  42 41 53 49 43 34 2E 30  |KS WITH BASIC4.0|
00000380: 0D 3B 2A 0D 3B 2A 0D 3B  2A 20 56 45 52 53 49 4F  |.;*.;*.;* VERSIO|
00000390: 4E 20 35 2E 31 2F 36 34  20 20 20 30 36 2F 30 37  |N 5.1/64   06/07|
000003A0: 2F 38 32 2D 30 37 2F 31  33 2F 38 32 0D 3B 2A 20  |/82-07/13/82.;* |
000003B0: 20 20 20 4D 41 4B 45 20  57 4F 52 4B 20 57 49 54  |   MAKE WORK WIT|
000003C0: 48 20 43 4F 4D 4D 4F 44  4F 52 45 20 36 34 0D 3B  |H COMMODORE 64.;|
000003D0: 2A 0D 2E 50 41 47 45 0D  3B 0D 3B 42 41 53 49 43  |*..PAGE.;.;BASIC|
000003E0: 20 56 41 52 49 41 42 4C  45 53 20 55 53 45 44 0D  | VARIABLES USED.|
000003F0: 3B 0D 53 41 4C 20 3D 24  41 43 20 3B 49 4E 44 49  |;.SAL =$AC ;INDI|
00000400: 52 45 43 54 20 50 4F 49  4E 54 45 52 20 4C 4F 0D  |RECT POINTER LO.|
00000410: 53 41 48 20 3D 24 41 44  20 3B 48 49 0D 42 55 46  |SAH =$AD ;HI.BUF|
00000420: 50 54 20 3D 24 41 36 20  3B 43 41 53 53 45 54 54  |PT =$A6 ;CASSETT|
00000430: 45 20 28 54 57 4F 20 42  59 54 45 53 29 0D 43 4E  |E (TWO BYTES).CN|
00000440: 54 44 4E 20 3D 24 41 35  20 3B 53 41 56 45 20 41  |TDN =$A5 ;SAVE A|
00000450: 52 45 41 0D 54 58 54 54  41 42 20 3D 24 32 42 20  |REA.TXTTAB =$2B |
00000460: 3B 50 4F 49 4E 54 45 52  20 54 4F 20 42 41 53 49  |;POINTER TO BASI|
00000470: 43 20 53 54 41 52 54 0D  4D 45 4D 53 49 5A 20 3D  |C START.MEMSIZ =|
00000480: 24 33 37 20 3B 50 4F 49  4E 54 45 52 20 54 4F 20  |$37 ;POINTER TO |
00000490: 54 4F 50 20 4D 45 4D 0D  54 58 54 50 54 52 20 3D  |TOP MEM.TXTPTR =|
000004A0: 24 37 41 20 3B 50 4F 49  4E 54 45 52 20 54 4F 20  |$7A ;POINTER TO |
000004B0: 42 55 46 0D 53 41 54 55  53 20 3D 24 39 30 20 3B  |BUF.SATUS =$90 ;|
000004C0: 53 54 41 54 55 53 20 42  59 54 45 0D 53 41 20 3D  |STATUS BYTE.SA =|
000004D0: 24 42 39 20 3B 53 45 43  4F 4E 44 41 52 59 20 41  |$B9 ;SECONDARY A|
000004E0: 44 44 52 45 53 53 0D 46  41 20 3D 24 42 41 20 3B  |DDRESS.FA =$BA ;|
000004F0: 50 52 49 4D 41 52 59 20  41 44 44 52 45 53 53 0D  |PRIMARY ADDRESS.|
00000500: 4C 41 20 3D 24 42 38 20  3B 4C 4F 47 49 43 41 4C  |LA =$B8 ;LOGICAL|
00000510: 20 44 45 56 49 43 45 20  23 0D 46 4E 4C 45 4E 20  | DEVICE #.FNLEN |
00000520: 3D 24 42 37 20 3B 46 49  4C 45 20 4E 41 4D 45 20  |=$B7 ;FILE NAME |
00000530: 4C 45 4E 47 54 48 0D 46  4E 41 44 52 20 3D 24 42  |LENGTH.FNADR =$B|
00000540: 42 20 3B 46 49 4C 45 20  4E 41 4D 45 20 41 44 44  |B ;FILE NAME ADD|
00000550: 52 45 53 53 0D 45 41 4C  20 3D 24 41 45 20 3B 45  |RESS.EAL =$AE ;E|
00000560: 4E 44 20 41 44 44 52 20  4C 4F 0D 45 41 48 20 3D  |ND ADDR LO.EAH =|
00000570: 24 41 46 20 3B 48 49 0D  53 54 41 4C 20 3D 24 43  |$AF ;HI.STAL =$C|
00000580: 31 20 3B 4C 4F 20 42 59  54 45 0D 53 54 41 48 20  |1 ;LO BYTE.STAH |
00000590: 3D 24 43 32 20 3B 48 49  20 42 59 54 45 0D 56 41  |=$C2 ;HI BYTE.VA|
000005A0: 52 54 41 42 20 3D 24 32  44 20 3B 45 4E 44 20 4F  |RTAB =$2D ;END O|
000005B0: 46 20 42 41 53 49 43 20  50 47 4D 2E 0D 54 4D 50  |F BASIC PGM..TMP|
000005C0: 32 20 3D 24 43 33 20 3B  54 45 4D 50 20 56 41 52  |2 =$C3 ;TEMP VAR|
000005D0: 49 41 42 4C 45 0D 42 55  46 20 3D 24 30 32 30 30  |IABLE.BUF =$0200|
000005E0: 20 3B 49 4E 50 55 54 20  42 55 46 46 45 52 0D 3B  | ;INPUT BUFFER.;|
000005F0: 0D 3B 50 52 4F 47 52 41  4D 20 56 41 52 49 41 42  |.;PROGRAM VARIAB|
00000600: 4C 45 53 0D 3B 0D 43 52  20 3D 24 30 44 20 3B 53  |LES.;.CR =$0D ;S|
00000610: 59 4D 42 4F 4C 49 43 20  43 41 52 52 49 41 47 45  |YMBOLIC CARRIAGE|
00000620: 20 52 45 54 55 52 4E 0D  2E 50 41 47 45 0D 3B 0D  | RETURN..PAGE.;.|
00000630: 3B 43 42 4D 20 36 34 20  20 52 4F 55 54 49 4E 45  |;CBM 64  ROUTINE|
00000640: 53 20 55 53 45 44 20 28  32 2E 30 20 42 41 53 49  |S USED (2.0 BASI|
00000650: 43 29 0D 3B 0D 4D 41 49  4E 20 3D 24 41 34 38 43  |C).;.MAIN =$A48C|
00000660: 20 3B 57 48 45 52 45 20  43 41 4C 4C 45 44 20 46  | ;WHERE CALLED F|
00000670: 52 4F 4D 28 4D 41 49 4E  2B 31 32 29 0D 4C 49 4E  |ROM(MAIN+12).LIN|
00000680: 50 52 54 20 3D 24 42 44  43 44 20 3B 50 52 49 4E  |PRT =$BDCD ;PRIN|
00000690: 54 20 4C 49 4E 45 20 23  0D 43 4C 53 45 49 20 3D  |T LINE #.CLSEI =|
000006A0: 24 46 36 34 32 20 3B 43  4C 4F 53 45 20 41 20 46  |$F642 ;CLOSE A F|
000006B0: 49 4C 45 0D 4C 4F 41 44  53 50 20 3D 24 46 46 44  |ILE.LOADSP =$FFD|
000006C0: 35 20 3B 4C 4F 41 44 20  52 4F 55 54 49 4E 45 0D  |5 ;LOAD ROUTINE.|
000006D0: 43 48 52 47 45 54 20 3D  24 37 33 20 3B 49 4E 50  |CHRGET =$73 ;INP|
000006E0: 55 54 53 20 43 48 41 52  41 43 54 45 52 53 0D 43  |UTS CHARACTERS.C|
000006F0: 48 52 47 4F 54 20 3D 24  37 39 20 3B 47 45 54 20  |HRGOT =$79 ;GET |
00000700: 4C 41 53 54 20 43 48 41  52 0D 47 4F 4E 45 20 3D  |LAST CHAR.GONE =|
00000710: 24 41 37 45 36 20 3B 20  53 54 41 54 45 4D 45 4E  |$A7E6 ; STATEMEN|
00000720: 54 20 45 58 45 43 28 4E  47 4F 4E 45 2B 32 29 0D  |T EXEC(NGONE+2).|
00000730: 53 4E 45 52 52 20 3D 24  41 46 30 38 20 3B 20 53  |SNERR =$AF08 ; S|
00000740: 59 4E 54 41 58 20 45 52  52 4F 52 20 50 52 49 4E  |YNTAX ERROR PRIN|
00000750: 54 0D 43 48 44 47 4F 54  20 3D 24 45 33 41 38 20  |T.CHDGOT =$E3A8 |
00000760: 3B 52 4F 4D 20 43 4F 50  59 20 4F 46 20 43 48 52  |;ROM COPY OF CHR|
00000770: 47 4F 54 0D 4E 45 57 53  54 54 20 3D 24 41 37 41  |GOT.NEWSTT =$A7A|
00000780: 45 20 3B 4E 45 57 20 53  54 41 54 45 4D 45 4E 54  |E ;NEW STATEMENT|
00000790: 20 45 58 45 43 0D 50 52  54 20 3D 24 45 37 31 36  | EXEC.PRT =$E716|
000007A0: 20 3B 50 52 49 4E 54 20  41 20 43 48 41 52 41 43  | ;PRINT A CHARAC|
000007B0: 54 45 52 0D 4C 49 53 54  4E 20 3D 24 46 46 42 31  |TER.LISTN =$FFB1|
000007C0: 20 3B 53 45 4E 44 20 4C  49 53 54 45 4E 0D 53 45  | ;SEND LISTEN.SE|
000007D0: 54 4D 53 47 20 3D 24 46  46 39 30 20 3B 53 45 54  |TMSG =$FF90 ;SET|
000007E0: 20 4B 45 52 4E 41 4C 20  4D 45 53 53 41 47 45 53  | KERNAL MESSAGES|
000007F0: 0D 53 45 43 4E 44 20 3D  24 46 46 39 33 20 3B 53  |.SECND =$FF93 ;S|
00000800: 45 4E 44 20 53 41 0D 43  49 4F 55 54 20 3D 24 46  |END SA.CIOUT =$F|
00000810: 46 41 38 20 3B 53 45 4E  44 20 43 48 41 52 41 43  |FA8 ;SEND CHARAC|
00000820: 54 45 52 0D 55 4E 4C 53  4E 20 3D 24 46 46 41 45  |TER.UNLSN =$FFAE|
00000830: 20 3B 55 4E 20 4C 49 53  54 45 4E 0D 41 43 50 54  | ;UN LISTEN.ACPT|
00000840: 52 20 3D 24 46 46 41 35  20 3B 47 45 54 20 41 20  |R =$FFA5 ;GET A |
00000850: 43 48 41 52 43 41 54 45  52 0D 54 41 4C 4B 20 3D  |CHARCATER.TALK =|
00000860: 24 46 46 42 34 20 3B 53  45 4E 44 20 54 41 4C 4B  |$FFB4 ;SEND TALK|
00000870: 0D 4F 50 45 4E 49 20 3D  24 46 33 44 35 20 3B 4F  |.OPENI =$F3D5 ;O|
00000880: 50 45 4E 20 46 49 4C 45  0D 52 45 41 44 59 20 3D  |PEN FILE.READY =|
00000890: 24 45 33 38 36 20 3B 52  45 45 4E 54 45 52 20 42  |$E386 ;REENTER B|
000008A0: 41 53 49 43 0D 52 55 4E  43 20 3D 24 41 36 35 39  |ASIC.RUNC =$A659|
000008B0: 20 3B 43 4C 45 41 52 20  56 41 52 49 41 42 4C 45  | ;CLEAR VARIABLE|
000008C0: 53 20 41 4E 44 20 53 54  41 43 4B 0D 4C 4E 4B 50  |S AND STACK.LNKP|
000008D0: 52 47 20 3D 24 41 35 33  33 20 3B 4C 49 4E 4B 20  |RG =$A533 ;LINK |
000008E0: 42 41 53 49 43 20 4C 49  4E 45 53 0D 55 4E 54 4C  |BASIC LINES.UNTL|
000008F0: 4B 20 3D 24 46 46 41 42  20 3B 55 4E 20 54 41 4C  |K =$FFAB ;UN TAL|
00000900: 4B 0D 53 54 58 54 50 54  20 3D 24 41 36 38 45 20  |K.STXTPT =$A68E |
00000910: 3B 53 45 54 20 53 54 41  52 54 20 54 45 58 54 20  |;SET START TEXT |
00000920: 50 4F 49 4E 54 45 52 0D  53 54 4F 50 20 3D 24 46  |POINTER.STOP =$F|
00000930: 46 45 31 20 3B 43 48 45  43 4B 20 46 4F 52 20 53  |FE1 ;CHECK FOR S|
00000940: 54 4F 50 20 4B 45 59 0D  43 53 41 56 45 20 3D 24  |TOP KEY.CSAVE =$|
00000950: 45 31 35 36 2B 33 20 3B  53 41 56 45 20 57 49 54  |E156+3 ;SAVE WIT|
00000960: 48 20 41 44 44 52 45 53  53 20 53 45 54 20 28 42  |H ADDRESS SET (B|
00000970: 41 53 49 43 29 0D 54 4B  53 41 20 3D 24 46 46 39  |ASIC).TKSA =$FF9|
00000980: 36 20 3B 54 41 4C 4B 20  53 45 43 4F 4E 44 41 52  |6 ;TALK SECONDAR|
00000990: 59 20 41 44 44 52 45 53  53 0D 47 45 54 49 4E 20  |Y ADDRESS.GETIN |
000009A0: 3D 24 46 46 45 34 20 3B  47 45 54 20 41 20 43 48  |=$FFE4 ;GET A CH|
000009B0: 41 52 41 43 54 45 52 0D  2E 50 41 47 45 20 27 57  |ARACTER..PAGE 'W|
000009C0: 45 44 47 45 20 50 41 52  53 45 52 27 0D 3B 0D 3B  |EDGE PARSER'.;.;|
000009D0: 57 45 44 47 45 20 49 4E  20 52 4F 55 54 49 4E 45  |WEDGE IN ROUTINE|
000009E0: 20 57 49 54 48 20 54 48  45 0D 3B 43 4F 4D 4D 41  | WITH THE.;COMMA|
000009F0: 4E 44 20 50 41 52 53 45  52 20 41 4E 44 20 45 58  |ND PARSER AND EX|
00000A00: 45 43 55 54 49 54 49 4F  4E 0D 3B 0D 2A 3D 24 43  |ECUTITION.;.*=$C|
00000A10: 43 30 30 0D 4A 4D 50 20  47 4F 4F 4F 0D 54 41 42  |C00.JMP GOOO.TAB|
00000A20: 48 49 0D 2E 42 59 54 20  3E 5A 5A 31 20 3B 25 20  |HI..BYT >ZZ1 ;% |
00000A30: 20 20 20 20 20 20 20 4C  4F 41 44 20 28 4E 4F 4E  |       LOAD (NON|
00000A40: 20 52 45 4C 4F 29 0D 2E  42 59 54 20 3E 5A 5A 31  | RELO)..BYT >ZZ1|
00000A50: 20 3B 2F 20 20 20 20 20  20 20 20 4C 4F 41 44 0D  | ;/        LOAD.|
00000A60: 2E 42 59 54 20 3E 5A 5A  31 20 3B 2F 20 54 4F 4B  |.BYT >ZZ1 ;/ TOK|
00000A70: 45 4E 20 20 20 20 22 0D  2E 42 59 54 20 3E 5A 5A  |EN    "..BYT >ZZ|
00000A80: 32 20 3B 5E 20 20 20 20  20 20 20 20 4C 4F 41 44  |2 ;^        LOAD|
00000A90: 2F 52 55 4E 0D 2E 42 59  54 20 3E 5A 5A 32 20 3B  |/RUN..BYT >ZZ2 ;|
00000AA0: 5E 20 54 4F 4B 45 4E 20  20 20 22 20 20 20 20 22  |^ TOKEN   "    "|
00000AB0: 0D 2E 42 59 54 20 3E 5A  5A 33 20 3B 5F 20 20 20  |..BYT >ZZ3 ;_   |
00000AC0: 20 20 20 20 20 53 41 56  45 0D 2E 42 59 54 20 3E  |     SAVE..BYT >|
00000AD0: 5A 5A 34 20 3B 3E 20 20  20 20 20 20 20 20 44 49  |ZZ4 ;>        DI|
00000AE0: 53 4B 20 43 4F 4D 4D 41  4E 44 0D 2E 42 59 54 20  |SK COMMAND..BYT |
00000AF0: 3E 5A 5A 34 20 3B 3E 20  54 4F 4B 45 4E 20 20 20  |>ZZ4 ;> TOKEN   |
00000B00: 20 22 20 20 20 20 20 22  0D 2E 42 59 54 20 3E 5A  | "     "..BYT >Z|
00000B10: 5A 34 20 3B 40 20 20 20  20 20 20 20 20 20 20 22  |Z4 ;@          "|
00000B20: 20 20 20 20 20 22 0D 2E  42 59 54 20 3E 5A 5A 35  |     "..BYT >ZZ5|
00000B30: 20 3B 23 20 20 20 20 20  20 20 20 43 48 41 4E 47  | ;#        CHANG|
00000B40: 45 20 44 45 56 49 43 45  0D 2E 42 59 54 20 3E 5A  |E DEVICE..BYT >Z|
00000B50: 5A 36 20 3B 51 20 20 20  20 20 20 20 20 51 55 49  |Z6 ;Q        QUI|
00000B60: 54 0D 3B 0D 54 41 42 4C  4F 0D 2E 42 59 54 20 3C  |T.;.TABLO..BYT <|
00000B70: 5A 5A 31 20 3B 25 0D 2E  42 59 54 20 3C 5A 5A 31  |ZZ1 ;%..BYT <ZZ1|
00000B80: 20 3B 2F 0D 2E 42 59 54  20 3C 5A 5A 31 20 3B 2F  | ;/..BYT <ZZ1 ;/|
00000B90: 20 54 4F 4B 45 4E 0D 2E  42 59 54 20 3C 5A 5A 32  | TOKEN..BYT <ZZ2|
00000BA0: 20 3B 5E 0D 2E 42 59 54  20 3C 5A 5A 32 20 3B 5E  | ;^..BYT <ZZ2 ;^|
00000BB0: 20 54 4F 4B 45 4E 0D 2E  42 59 54 20 3C 5A 5A 33  | TOKEN..BYT <ZZ3|
00000BC0: 20 3B 5F 0D 2E 42 59 54  20 3C 5A 5A 34 20 3B 3E  | ;_..BYT <ZZ4 ;>|
00000BD0: 0D 2E 42 59 54 20 3C 5A  5A 34 20 3B 3E 20 54 4F  |..BYT <ZZ4 ;> TO|
00000BE0: 4B 45 4E 0D 2E 42 59 54  20 3C 5A 5A 34 20 3B 40  |KEN..BYT <ZZ4 ;@|
00000BF0: 0D 2E 42 59 54 20 3C 5A  5A 35 20 3B 23 0D 2E 42  |..BYT <ZZ5 ;#..B|
00000C00: 59 54 20 3C 5A 5A 36 20  3B 51 0D 3B 0D 4E 43 4D  |YT <ZZ6 ;Q.;.NCM|
00000C10: 44 20 3D 39 20 3B 4E 55  4D 42 45 52 20 4F 46 20  |D =9 ;NUMBER OF |
00000C20: 4D 41 49 4E 20 43 4F 4D  4D 41 4E 44 53 0D 43 4D  |MAIN COMMANDS.CM|
00000C30: 44 20 2E 42 59 54 20 27  25 2F 27 2C 24 41 44 2C  |D .BYT '%/',$AD,|
00000C40: 27 5E 27 2C 24 41 45 2C  27 5F 27 2C 27 3E 27 2C  |'^',$AE,'_','>',|
00000C50: 24 42 31 2C 27 40 23 51  27 2C 24 30 30 0D 3B 43  |$B1,'@#Q',$00.;C|
00000C60: 4F 4D 4D 41 4E 44 53 20  20 25 20 2F 20 2F 20 5E  |OMMANDS  % / / ^|
00000C70: 20 5E 20 5F 20 3E 20 3E  20 40 20 23 20 51 0D 3B  | ^ _ > > @ # Q.;|
00000C80: 43 4F 4D 4D 41 4E 44 53  20 20 31 20 32 20 33 20  |COMMANDS  1 2 3 |
00000C90: 34 20 35 20 36 20 37 20  38 20 39 20 41 20 42 0D  |4 5 6 7 8 9 A B.|
00000CA0: 50 52 45 46 49 58 20 2A  3D 2A 2B 32 0D 46 49 4C  |PREFIX *=*+2.FIL|
00000CB0: 45 20 2A 3D 2A 2B 31 20  3B 44 41 54 41 20 46 4F  |E *=*+1 ;DATA FO|
00000CC0: 52 20 44 49 53 4B 20 49  53 20 53 54 4F 52 45 44  |R DISK IS STORED|
00000CD0: 20 48 45 52 45 0D 46 49  4C 45 31 20 2A 3D 2A 2B  | HERE.FILE1 *=*+|
00000CE0: 37 39 0D 53 56 46 41 20  2A 3D 2A 2B 31 20 3B 53  |79.SVFA *=*+1 ;S|
00000CF0: 41 56 45 20 46 41 0D 56  4F 4C 20 2A 3D 2A 2B 31  |AVE FA.VOL *=*+1|
00000D00: 20 3B 56 4F 4C 55 4D 45  20 4E 41 4D 45 0D 4C 41  | ;VOLUME NAME.LA|
00000D10: 53 54 43 48 20 2A 3D 2A  2B 31 20 3B 4C 41 53 54  |STCH *=*+1 ;LAST|
00000D20: 20 43 48 41 52 20 46 52  4F 4D 20 43 48 52 47 45  | CHAR FROM CHRGE|
00000D30: 54 0D 46 4C 41 47 20 2A  3D 2A 2B 31 20 3B 53 41  |T.FLAG *=*+1 ;SA|
00000D40: 56 45 20 43 4F 4D 4D 41  4E 44 0D 4A 55 4D 50 20  |VE COMMAND.JUMP |
00000D50: 4A 4D 50 20 53 54 41 52  54 20 3B 4F 56 45 52 4C  |JMP START ;OVERL|
00000D60: 41 59 20 46 4F 52 20 5A  2D 50 41 47 45 20 27 43  |AY FOR Z-PAGE 'C|
00000D70: 48 52 47 4F 54 27 0D 2E  50 41 47 45 20 27 49 4E  |HRGOT'..PAGE 'IN|
00000D80: 49 54 20 43 4F 44 45 3B  20 56 45 43 54 4F 52 27  |IT CODE; VECTOR'|
00000D90: 0D 3B 0D 3B 20 49 4E 49  54 20 54 48 45 20 4D 45  |.;.; INIT THE ME|
00000DA0: 4D 4F 52 59 20 4D 41 4E  41 47 45 52 20 28 53 54  |MORY MANAGER (ST|
00000DB0: 41 52 54 55 50 20 43 4F  4D 45 53 20 48 45 52 45  |ARTUP COMES HERE|
00000DC0: 29 0D 3B 0D 47 4F 4F 4F  0D 20 4C 44 58 20 23 24  |).;.GOOO. LDX #$|
00000DD0: 30 32 20 3B 4D 4F 56 45  20 54 48 52 45 45 20 42  |02 ;MOVE THREE B|
00000DE0: 59 54 45 53 0D 57 45 44  47 45 20 4C 44 41 20 4A  |YTES.WEDGE LDA J|
00000DF0: 55 4D 50 2C 58 0D 20 53  54 41 20 43 48 52 47 4F  |UMP,X. STA CHRGO|
00000E00: 54 2B 33 2C 58 0D 20 44  45 58 0D 20 42 50 4C 20  |T+3,X. DEX. BPL |
00000E10: 57 45 44 47 45 0D 3B 0D  20 4C 44 41 20 46 41 20  |WEDGE.;. LDA FA |
00000E20: 3B 55 53 45 20 43 55 52  52 45 4E 54 20 46 41 20  |;USE CURRENT FA |
00000E30: 46 4F 52 20 44 45 56 49  43 45 20 41 44 44 52 0D  |FOR DEVICE ADDR.|
00000E40: 20 53 54 41 20 53 56 46  41 0D 20 52 54 53 0D 3B  | STA SVFA. RTS.;|
00000E50: 0D 3B 20 54 48 49 53 20  49 53 20 57 48 45 52 45  |.; THIS IS WHERE|
00000E60: 20 57 45 20 43 4F 4D 45  20 54 4F 20 44 4F 20 54  | WE COME TO DO T|
00000E70: 48 45 20 57 4F 52 4B 0D  3B 0D 53 54 41 52 54 0D  |HE WORK.;.START.|
00000E80: 20 53 54 41 20 42 55 46  50 54 20 3B 53 41 56 45  | STA BUFPT ;SAVE|
00000E90: 20 2E 41 2C 20 2E 58 0D  20 53 54 58 20 42 55 46  | .A, .X. STX BUF|
00000EA0: 50 54 2B 31 0D 20 54 53  58 20 3B 41 43 54 49 56  |PT+1. TSX ;ACTIV|
00000EB0: 41 54 45 44 20 20 43 41  4C 4C 20 49 4E 20 27 47  |ATED  CALL IN 'G|
00000EC0: 4F 4E 45 27 0D 20 4C 44  41 20 24 30 31 30 31 2C  |ONE'. LDA $0101,|
00000ED0: 58 0D 20 43 4D 50 20 23  3C 47 4F 4E 45 20 3B 46  |X. CMP #<GONE ;F|
00000EE0: 52 4F 4D 20 41 20 52 55  4E 4E 49 4E 47 20 50 52  |ROM A RUNNING PR|
00000EF0: 4F 47 52 41 4D 3F 3F 0D  20 42 45 51 20 54 52 59  |OGRAM??. BEQ TRY|
00000F00: 54 57 4F 0D 20 43 4D 50  20 23 3C 4D 41 49 4E 20  |TWO. CMP #<MAIN |
00000F10: 3B 46 52 4F 4D 20 44 49  52 45 43 54 20 4D 4F 44  |;FROM DIRECT MOD|
00000F20: 45 3F 3F 0D 20 42 4E 45  20 4E 4F 54 43 4D 44 0D  |E??. BNE NOTCMD.|
00000F30: 54 52 59 54 57 4F 20 4C  44 41 20 24 30 31 30 32  |TRYTWO LDA $0102|
00000F40: 2C 58 0D 20 43 4D 50 20  23 3E 47 4F 4E 45 20 3B  |,X. CMP #>GONE ;|
00000F50: 50 52 4F 47 52 41 4D 3F  0D 20 42 45 51 20 46 49  |PROGRAM?. BEQ FI|
00000F60: 4E 44 49 54 0D 20 43 4D  50 20 23 3E 4D 41 49 4E  |NDIT. CMP #>MAIN|
00000F70: 20 3B 44 49 52 45 43 54  3F 0D 20 42 4E 45 20 4E  | ;DIRECT?. BNE N|
00000F80: 4F 54 43 4D 44 0D 46 49  4E 44 49 54 20 4C 44 41  |OTCMD.FINDIT LDA|
00000F90: 20 42 55 46 50 54 20 3B  47 45 54 20 54 48 45 20  | BUFPT ;GET THE |
00000FA0: 43 4F 4D 4D 41 4E 44 20  42 41 43 4B 0D 20 4C 44  |COMMAND BACK. LD|
00000FB0: 58 20 23 4E 43 4D 44 2D  31 0D 46 49 4E 44 43 20  |X #NCMD-1.FINDC |
00000FC0: 3B 46 49 4E 44 20 54 48  45 20 43 4F 4D 4D 41 4E  |;FIND THE COMMAN|
00000FD0: 44 0D 20 43 4D 50 20 43  4D 44 2C 58 0D 20 42 45  |D. CMP CMD,X. BE|
00000FE0: 51 20 43 41 4C 4C 31 30  0D 20 44 45 58 0D 20 42  |Q CALL10. DEX. B|
00000FF0: 50 4C 20 46 49 4E 44 43  0D 3B 0D 4E 4F 54 43 4D  |PL FINDC.;.NOTCM|
00001000: 44 0D 20 4C 44 41 20 42  55 46 50 54 20 3B 52 45  |D. LDA BUFPT ;RE|
00001010: 53 54 4F 52 45 20 52 45  47 53 0D 20 4C 44 58 20  |STORE REGS. LDX |
00001020: 42 55 46 50 54 2B 31 0D  20 43 4D 50 20 23 27 3A  |BUFPT+1. CMP #':|
00001030: 20 3B 43 4F 4D 50 4C 45  54 45 20 43 48 52 47 4F  | ;COMPLETE CHRGO|
00001040: 54 0D 20 42 43 53 20 53  54 52 54 53 0D 20 4A 4D  |T. BCS STRTS. JM|
00001050: 50 20 43 48 52 47 4F 54  2B 37 0D 53 54 52 54 53  |P CHRGOT+7.STRTS|
00001060: 20 4A 4D 50 20 43 48 52  47 4F 54 2B 31 37 20 3B  | JMP CHRGOT+17 ;|
00001070: 54 4F 20 54 48 45 20 45  4E 44 20 4F 46 20 43 48  |TO THE END OF CH|
00001080: 52 47 4F 54 0D 3B 0D 43  41 4C 4C 31 30 0D 20 53  |RGOT.;.CALL10. S|
00001090: 54 58 20 43 4E 54 44 4E  20 3B 53 41 56 45 20 49  |TX CNTDN ;SAVE I|
000010A0: 4E 44 45 58 0D 20 53 54  41 20 46 4C 41 47 20 3B  |NDEX. STA FLAG ;|
000010B0: 53 41 56 45 20 54 48 45  20 43 4F 4D 4D 41 4E 44  |SAVE THE COMMAND|
000010C0: 20 46 4F 52 20 4C 41 54  45 52 0D 20 4A 53 52 20  | FOR LATER. JSR |
000010D0: 52 44 46 49 4C 45 20 3B  47 45 54 20 54 48 45 20  |RDFILE ;GET THE |
000010E0: 46 49 4C 45 4E 41 4D 45  20 41 4E 44 20 4C 45 4E  |FILENAME AND LEN|
000010F0: 47 54 48 0D 20 4C 44 58  20 43 4E 54 44 4E 20 3B  |GTH. LDX CNTDN ;|
00001100: 52 45 53 54 4F 52 45 20  49 4E 44 45 58 0D 20 4C  |RESTORE INDEX. L|
00001110: 44 41 20 23 3C 46 49 4C  45 20 3B 53 45 54 20 46  |DA #<FILE ;SET F|
00001120: 49 4C 45 4E 41 4D 45 20  41 44 44 52 45 53 53 0D  |ILENAME ADDRESS.|
00001130: 20 53 54 41 20 46 4E 41  44 52 0D 20 4C 44 41 20  | STA FNADR. LDA |
00001140: 23 3E 46 49 4C 45 0D 20  53 54 41 20 46 4E 41 44  |#>FILE. STA FNAD|
00001150: 52 2B 31 0D 20 4C 44 41  20 53 56 46 41 20 3B 53  |R+1. LDA SVFA ;S|
00001160: 45 54 20 50 52 49 4D 41  52 59 20 41 44 44 52 45  |ET PRIMARY ADDRE|
00001170: 53 53 0D 20 53 54 41 20  46 41 0D 3B 0D 43 41 4C  |SS. STA FA.;.CAL|
00001180: 4C 49 54 0D 20 4C 44 41  20 54 41 42 48 49 2C 58  |LIT. LDA TABHI,X|
00001190: 20 3B 46 4F 55 4E 44 20  43 4F 4D 4D 41 4E 44 2E  | ;FOUND COMMAND.|
000011A0: 2E 2E 47 4F 20 54 48 45  52 45 0D 20 50 48 41 0D  |..GO THERE. PHA.|
000011B0: 20 4C 44 41 20 54 41 42  4C 4F 2C 58 0D 20 50 48  | LDA TABLO,X. PH|
000011C0: 41 0D 20 52 54 53 0D 2E  50 41 47 0D 3B 0D 3B 4D  |A. RTS..PAG.;.;M|
000011D0: 41 49 4E 20 41 43 54 49  4F 4E 20 52 4F 55 54 49  |AIN ACTION ROUTI|
000011E0: 4E 45 20 46 4F 52 20 57  45 44 47 45 20 43 4F 4D  |NE FOR WEDGE COM|
000011F0: 4D 41 4E 44 53 20 27 3E  40 27 0D 3B 0D 44 4F 49  |MANDS '>@'.;.DOI|
00001200: 54 0D 20 54 59 41 20 3B  2E 59 20 48 41 53 20 46  |T. TYA ;.Y HAS F|
00001210: 4E 4C 45 4E 0D 20 42 45  51 20 52 44 45 52 52 20  |NLEN. BEQ RDERR |
00001220: 3B 4E 4F 20 44 41 54 41  20 53 4F 20 52 45 41 44  |;NO DATA SO READ|
00001230: 20 45 2E 20 43 2E 0D 3B  0D 20 4C 44 58 20 23 4E  | E. C..;. LDX #N|
00001240: 43 4D 44 20 3B 4E 4F 57  20 43 48 45 43 4B 20 46  |CMD ;NOW CHECK F|
00001250: 4F 52 20 53 55 42 2D 43  4F 4D 4D 41 4E 44 53 0D  |OR SUB-COMMANDS.|
00001260: 43 48 4B 53 55 42 0D 20  4C 44 41 20 43 4D 44 2C  |CHKSUB. LDA CMD,|
00001270: 58 0D 20 42 45 51 20 43  48 4B 4C 53 54 20 3B 52  |X. BEQ CHKLST ;R|
00001280: 41 4E 20 4F 55 54 2E 2E  2E 0D 20 43 4D 50 20 46  |AN OUT.... CMP F|
00001290: 49 4C 45 20 3B 49 53 20  54 48 49 53 20 41 20 43  |ILE ;IS THIS A C|
000012A0: 4F 4D 4D 41 4E 44 3F 0D  20 42 45 51 20 46 4E 44  |OMMAND?. BEQ FND|
000012B0: 53 55 42 20 3B 59 45 53  2E 2E 2E 0D 20 49 4E 58  |SUB ;YES.... INX|
000012C0: 0D 20 42 50 4C 20 43 48  4B 53 55 42 0D 3B 0D 43  |. BPL CHKSUB.;.C|
000012D0: 48 4B 4C 53 54 20 3B 4E  4F 54 20 41 20 53 55 42  |HKLST ;NOT A SUB|
000012E0: 2D 43 4F 4D 4D 41 4E 44  0D 20 4C 44 41 20 46 49  |-COMMAND. LDA FI|
000012F0: 4C 45 20 3B 49 53 20 54  48 49 53 20 41 20 44 49  |LE ;IS THIS A DI|
00001300: 52 20 43 4F 4D 4D 41 4E  44 0D 20 43 4D 50 20 23  |R COMMAND. CMP #|
00001310: 27 24 0D 20 42 45 51 20  44 4F 44 49 52 20 3B 44  |'$. BEQ DODIR ;D|
00001320: 49 52 45 43 54 4F 52 59  20 53 54 55 46 46 0D 20  |IRECTORY STUFF. |
00001330: 4A 4D 50 20 4E 4F 54 44  49 52 20 3B 44 49 53 4B  |JMP NOTDIR ;DISK|
00001340: 20 43 4F 4D 4D 41 4E 44  53 0D 3B 0D 3B 0D 46 4E  | COMMANDS.;.;.FN|
00001350: 44 53 55 42 20 3B 46 4F  55 4E 44 20 53 55 42 20  |DSUB ;FOUND SUB |
00001360: 43 4F 4D 4D 41 4E 44 0D  20 44 45 43 20 46 4E 4C  |COMMAND. DEC FNL|
00001370: 45 4E 20 3B 53 45 54 55  50 20 41 4E 44 20 47 4F  |EN ;SETUP AND GO|
00001380: 20 54 48 45 52 45 0D 20  4C 44 41 20 23 3C 46 49  | THERE. LDA #<FI|
00001390: 4C 45 31 0D 20 53 54 41  20 46 4E 41 44 52 0D 20  |LE1. STA FNADR. |
000013A0: 4C 44 41 20 23 3E 46 49  4C 45 31 0D 20 53 54 41  |LDA #>FILE1. STA|
000013B0: 20 46 4E 41 44 52 2B 31  0D 20 4A 4D 50 20 43 41  | FNADR+1. JMP CA|
000013C0: 4C 4C 49 54 0D 2E 50 41  47 45 20 27 44 49 53 4B  |LLIT..PAGE 'DISK|
000013D0: 20 43 4D 44 20 26 20 45  2E 20 43 2E 27 0D 3B 0D  | CMD & E. C.'.;.|
000013E0: 3B 20 53 45 4E 44 20 43  4F 4D 4D 41 4E 44 20 54  |; SEND COMMAND T|
000013F0: 4F 20 44 49 53 4B 0D 3B  0D 4E 4F 54 44 49 52 0D  |O DISK.;.NOTDIR.|
00001400: 20 4C 44 41 20 46 41 20  3B 44 45 56 49 43 45 20  | LDA FA ;DEVICE |
00001410: 41 44 44 52 45 53 53 0D  20 4A 53 52 20 4C 49 53  |ADDRESS. JSR LIS|
00001420: 54 4E 0D 20 4C 44 41 20  23 24 36 46 0D 20 53 54  |TN. LDA #$6F. ST|
00001430: 41 20 53 41 0D 20 4A 53  52 20 53 45 43 4E 44 20  |A SA. JSR SECND |
00001440: 3B 53 45 4E 44 20 53 45  43 4F 4E 44 41 52 59 20  |;SEND SECONDARY |
00001450: 41 44 44 52 0D 20 4C 44  59 20 23 30 0D 42 55 4D  |ADDR. LDY #0.BUM|
00001460: 50 20 4C 44 41 20 46 49  4C 45 2C 59 0D 20 4A 53  |P LDA FILE,Y. JS|
00001470: 52 20 43 49 4F 55 54 0D  20 49 4E 59 0D 20 43 50  |R CIOUT. INY. CP|
00001480: 59 20 46 4E 4C 45 4E 0D  20 42 43 43 20 42 55 4D  |Y FNLEN. BCC BUM|
00001490: 50 20 3B 4D 4F 52 45 0D  3B 0D 57 47 31 32 30 20  |P ;MORE.;.WG120 |
000014A0: 4A 53 52 20 55 4E 4C 53  4E 20 3B 55 4E 20 4C 49  |JSR UNLSN ;UN LI|
000014B0: 53 54 45 4E 0D 20 4A 4D  50 20 57 47 39 39 38 0D  |STEN. JMP WG998.|
000014C0: 3B 0D 3B 20 52 45 41 44  20 54 48 45 20 45 52 52  |;.; READ THE ERR|
000014D0: 4F 52 20 43 48 41 4E 4E  45 4C 0D 3B 0D 52 44 45  |OR CHANNEL.;.RDE|
000014E0: 52 52 0D 20 4C 44 41 20  46 41 20 3B 44 45 56 49  |RR. LDA FA ;DEVI|
000014F0: 43 45 20 41 44 44 52 45  53 53 0D 20 4A 53 52 20  |CE ADDRESS. JSR |
00001500: 54 41 4C 4B 0D 20 4C 44  41 20 23 24 36 46 20 3B  |TALK. LDA #$6F ;|
00001510: 43 4F 4D 4D 41 4E 44 20  43 48 41 4E 4E 45 4C 20  |COMMAND CHANNEL |
00001520: 53 41 0D 20 53 54 41 20  53 41 0D 20 4A 53 52 20  |SA. STA SA. JSR |
00001530: 54 4B 53 41 20 3B 53 45  4E 44 20 53 41 20 54 41  |TKSA ;SEND SA TA|
00001540: 4C 4B 20 53 54 59 4C 45  0D 57 47 31 34 30 20 4A  |LK STYLE.WG140 J|
00001550: 53 52 20 41 43 50 54 52  20 3B 47 45 54 20 42 59  |SR ACPTR ;GET BY|
00001560: 54 45 20 46 52 4F 4D 20  44 49 53 4B 0D 20 43 4D  |TE FROM DISK. CM|
00001570: 50 20 23 43 52 0D 20 42  45 51 20 57 47 31 33 30  |P #CR. BEQ WG130|
00001580: 0D 20 4A 53 52 20 50 52  54 20 3B 50 52 49 4E 54  |. JSR PRT ;PRINT|
00001590: 20 42 59 54 45 20 54 4F  20 53 43 52 45 45 4E 0D  | BYTE TO SCREEN.|
000015A0: 20 4A 4D 50 20 57 47 31  34 30 20 3B 4C 4F 4F 50  | JMP WG140 ;LOOP|
000015B0: 20 46 4F 52 20 4D 4F 52  45 0D 57 47 31 33 30 20  | FOR MORE.WG130 |
000015C0: 4A 53 52 20 50 52 54 20  3B 50 52 49 4E 54 20 43  |JSR PRT ;PRINT C|
000015D0: 52 0D 20 4A 53 52 20 55  4E 54 4C 4B 20 3B 55 4E  |R. JSR UNTLK ;UN|
000015E0: 20 54 41 4C 4B 0D 57 47  39 39 38 20 4A 4D 50 20  | TALK.WG998 JMP |
000015F0: 43 48 52 47 4F 54 20 3B  44 4F 4E 45 20 57 49 54  |CHRGOT ;DONE WIT|
00001600: 48 20 43 4D 44 0D 2E 50  41 47 45 20 27 44 49 52  |H CMD..PAGE 'DIR|
00001610: 45 43 54 4F 52 59 20 52  45 41 44 27 0D 3B 0D 3B  |ECTORY READ'.;.;|
00001620: 50 52 49 4E 54 20 54 48  45 20 44 49 52 45 43 54  |PRINT THE DIRECT|
00001630: 4F 52 59 20 27 40 24 30  3A 2A 27 0D 3B 0D 44 4F  |ORY '@$0:*'.;.DO|
00001640: 44 49 52 0D 20 4C 44 41  20 23 24 36 30 20 3B 53  |DIR. LDA #$60 ;S|
00001650: 45 43 4F 4E 44 41 52 59  20 41 44 44 52 0D 20 53  |ECONDARY ADDR. S|
00001660: 54 41 20 53 41 0D 20 4A  53 52 20 4F 50 45 4E 49  |TA SA. JSR OPENI|
00001670: 20 3B 4F 50 45 4E 20 54  48 45 20 46 49 4C 45 0D  | ;OPEN THE FILE.|
00001680: 20 4C 44 41 20 46 41 20  3B 47 45 54 20 50 52 49  | LDA FA ;GET PRI|
00001690: 4D 41 52 59 20 41 44 44  52 45 53 53 0D 20 4A 53  |MARY ADDRESS. JS|
000016A0: 52 20 54 41 4C 4B 0D 20  4C 44 41 20 53 41 20 3B  |R TALK. LDA SA ;|
000016B0: 47 45 54 20 53 45 43 4F  4E 44 41 52 59 20 41 44  |GET SECONDARY AD|
000016C0: 44 52 45 53 53 0D 20 4A  53 52 20 54 4B 53 41 0D  |DRESS. JSR TKSA.|
000016D0: 2E 53 4B 49 0D 20 4C 44  41 20 23 30 0D 20 53 54  |.SKI. LDA #0. ST|
000016E0: 41 20 53 41 54 55 53 20  3B 53 45 54 20 53 54 41  |A SATUS ;SET STA|
000016F0: 54 55 53 20 54 4F 20 30  0D 20 4C 44 59 20 23 24  |TUS TO 0. LDY #$|
00001700: 30 33 20 3B 4C 4F 4F 50  20 54 48 52 45 45 20 54  |03 ;LOOP THREE T|
00001710: 49 4D 45 53 0D 57 47 32  32 30 20 53 54 59 20 46  |IMES.WG220 STY F|
00001720: 4E 4C 45 4E 20 3B 53 41  56 45 20 4E 45 57 20 43  |NLEN ;SAVE NEW C|
00001730: 4F 55 4E 54 0D 20 4A 53  52 20 41 43 50 54 52 0D  |OUNT. JSR ACPTR.|
00001740: 20 53 54 41 20 54 4D 50  32 0D 20 4A 53 52 20 41  | STA TMP2. JSR A|
00001750: 43 50 54 52 0D 20 53 54  41 20 54 4D 50 32 2B 31  |CPTR. STA TMP2+1|
00001760: 0D 20 4C 44 59 20 53 41  54 55 53 20 3B 43 48 45  |. LDY SATUS ;CHE|
00001770: 43 4B 20 53 54 41 54 55  53 0D 20 42 4E 45 20 57  |CK STATUS. BNE W|
00001780: 47 32 33 30 0D 20 4C 44  59 20 46 4E 4C 45 4E 20  |G230. LDY FNLEN |
00001790: 3B 4D 4F 52 45 20 54 4F  20 44 4F 3F 0D 20 44 45  |;MORE TO DO?. DE|
000017A0: 59 0D 20 42 4E 45 20 57  47 32 32 30 20 3B 4E 4F  |Y. BNE WG220 ;NO|
000017B0: 54 20 44 4F 4E 45 20 59  45 54 0D 20 4C 44 58 20  |T DONE YET. LDX |
000017C0: 54 4D 50 32 0D 20 4C 44  41 20 54 4D 50 32 2B 31  |TMP2. LDA TMP2+1|
000017D0: 0D 20 4A 53 52 20 4C 49  4E 50 52 54 20 3B 50 52  |. JSR LINPRT ;PR|
000017E0: 49 4E 54 20 4C 49 4E 45  20 4E 55 4D 42 45 52 0D  |INT LINE NUMBER.|
000017F0: 20 4C 44 41 20 23 24 32  30 20 3B 50 52 49 4E 54  | LDA #$20 ;PRINT|
00001800: 20 41 20 53 50 41 43 45  0D 20 4A 53 52 20 50 52  | A SPACE. JSR PR|
00001810: 54 0D 57 47 32 35 30 20  4A 53 52 20 41 43 50 54  |T.WG250 JSR ACPT|
00001820: 52 0D 20 4C 44 58 20 53  41 54 55 53 0D 20 42 4E  |R. LDX SATUS. BN|
00001830: 45 20 57 47 32 33 30 20  3B 42 41 44 0D 20 43 4D  |E WG230 ;BAD. CM|
00001840: 50 20 23 30 20 3B 45 4F  4C 0D 20 42 45 51 20 57  |P #0 ;EOL. BEQ W|
00001850: 47 32 34 30 0D 20 4A 53  52 20 50 52 54 0D 3B 43  |G240. JSR PRT.;C|
00001860: 48 45 43 4B 20 46 4F 52  20 53 54 4F 50 20 4B 45  |HECK FOR STOP KE|
00001870: 59 20 41 4E 44 20 50 41  55 53 45 0D 20 4A 53 52  |Y AND PAUSE. JSR|
00001880: 20 53 54 4F 50 20 3B 53  54 4F 50 20 4B 45 59 0D  | STOP ;STOP KEY.|
00001890: 20 42 45 51 20 57 47 32  33 30 20 3B 59 45 53 2E  | BEQ WG230 ;YES.|
000018A0: 2E 2E 0D 20 4A 53 52 20  47 45 54 49 4E 20 3B 47  |... JSR GETIN ;G|
000018B0: 45 54 20 41 20 43 48 41  52 20 46 52 4F 4D 20 4B  |ET A CHAR FROM K|
000018C0: 45 59 42 4F 41 52 44 0D  20 42 45 51 20 57 47 32  |EYBOARD. BEQ WG2|
000018D0: 35 30 20 3B 4E 4F 54 48  49 4E 47 2E 2E 2E 0D 20  |50 ;NOTHING.... |
000018E0: 43 4D 50 20 23 24 32 30  20 3B 53 50 41 43 45 20  |CMP #$20 ;SPACE |
000018F0: 42 41 52 20 46 4F 52 20  50 41 55 53 45 3F 0D 20  |BAR FOR PAUSE?. |
00001900: 42 4E 45 20 57 47 32 35  30 20 3B 4E 4F 2E 2E 2E  |BNE WG250 ;NO...|
00001910: 0D 57 47 32 35 35 20 4A  53 52 20 47 45 54 49 4E  |.WG255 JSR GETIN|
00001920: 20 3B 41 4E 59 20 4B 45  59 20 53 54 41 52 54 53  | ;ANY KEY STARTS|
00001930: 0D 20 42 45 51 20 57 47  32 35 35 0D 20 42 4E 45  |. BEQ WG255. BNE|
00001940: 20 57 47 32 35 30 20 3B  28 4A 4D 50 29 0D 3B 0D  | WG250 ;(JMP).;.|
00001950: 57 47 32 34 30 20 4C 44  41 20 23 43 52 0D 20 4A  |WG240 LDA #CR. J|
00001960: 53 52 20 50 52 54 0D 20  4C 44 59 20 23 24 30 32  |SR PRT. LDY #$02|
00001970: 20 3B 20 44 4F 20 54 57  49 43 45 0D 20 4A 4D 50  | ; DO TWICE. JMP|
00001980: 20 57 47 32 32 30 0D 3B  0D 3B 43 4C 4F 53 45 20  | WG220.;.;CLOSE |
00001990: 46 4C 4F 50 50 59 20 41  4E 44 20 52 45 54 55 52  |FLOPPY AND RETUR|
000019A0: 4E 0D 3B 0D 57 47 32 33  30 20 4A 53 52 20 43 4C  |N.;.WG230 JSR CL|
000019B0: 53 45 49 20 3B 43 4C 4F  53 45 20 46 49 4C 45 0D  |SEI ;CLOSE FILE.|
000019C0: 20 4C 44 41 20 23 43 52  20 3B 50 52 49 4E 54 20  | LDA #CR ;PRINT |
000019D0: 41 20 52 45 54 55 52 4E  0D 20 4A 53 52 20 50 52  |A RETURN. JSR PR|
000019E0: 54 0D 20 4A 4D 50 20 43  48 52 47 4F 54 20 3B 52  |T. JMP CHRGOT ;R|
000019F0: 45 54 55 52 4E 0D 2E 50  41 47 45 20 27 46 49 4C  |ETURN..PAGE 'FIL|
00001A00: 45 20 4C 4F 41 44 2F 52  55 4E 27 0D 3B 0D 3B 20  |E LOAD/RUN'.;.; |
00001A10: 20 20 20 4C 4F 41 44 20  4F 52 20 4C 4F 41 44 20  |   LOAD OR LOAD |
00001A20: 41 4E 44 20 52 55 4E 20  41 20 46 49 4C 45 0D 3B  |AND RUN A FILE.;|
00001A30: 20 20 28 46 4E 4C 45 4E  20 49 53 20 53 45 54 20  |  (FNLEN IS SET |
00001A40: 41 4E 44 20 54 48 45 20  4E 41 4D 45 20 49 53 20  |AND THE NAME IS |
00001A50: 49 4E 20 46 49 4C 45 29  0D 3B 20 20 25 46 49 4C  |IN FILE).;  %FIL|
00001A60: 45 4E 41 4D 45 20 2E 2E  2E 2E 2E 2E 20 4C 4F 41  |ENAME ...... LOA|
00001A70: 44 20 28 4E 4F 4E 20 52  45 4C 4F 43 41 54 49 4E  |D (NON RELOCATIN|
00001A80: 47 29 0D 3B 20 20 2F 46  49 4C 45 4E 41 4D 45 20  |G).;  /FILENAME |
00001A90: 2E 2E 2E 2E 2E 2E 20 4C  4F 41 44 0D 3B 20 20 5E  |...... LOAD.;  ^|
00001AA0: 46 49 4C 45 4E 41 4D 45  20 2E 2E 2E 2E 2E 2E 20  |FILENAME ...... |
00001AB0: 4C 4F 41 44 2F 52 55 4E  0D 3B 0D 52 55 4E 52 0D  |LOAD/RUN.;.RUNR.|
00001AC0: 4C 4F 41 44 0D 20 4C 44  58 20 54 58 54 54 41 42  |LOAD. LDX TXTTAB|
00001AD0: 20 3B 53 45 54 20 50 4F  49 4E 54 45 52 20 46 4F  | ;SET POINTER FO|
00001AE0: 52 20 41 55 54 4F 20 4C  4F 43 41 54 45 0D 20 4C  |R AUTO LOCATE. L|
00001AF0: 44 59 20 54 58 54 54 41  42 2B 31 0D 20 4C 44 41  |DY TXTTAB+1. LDA|
00001B00: 20 46 4C 41 47 20 3B 53  45 54 20 54 59 50 45 20  | FLAG ;SET TYPE |
00001B10: 4F 46 20 4C 4F 41 44 0D  20 43 4D 50 20 23 27 25  |OF LOAD. CMP #'%|
00001B20: 0D 20 42 4E 45 20 4C 4F  41 44 30 0D 20 4C 44 41  |. BNE LOAD0. LDA|
00001B30: 20 23 31 0D 20 2E 42 59  54 20 24 32 43 20 3B 53  | #1. .BYT $2C ;S|
00001B40: 4B 49 50 32 0D 4C 4F 41  44 30 20 4C 44 41 20 23  |KIP2.LOAD0 LDA #|
00001B50: 30 0D 20 53 54 41 20 53  41 0D 20 4C 44 41 20 23  |0. STA SA. LDA #|
00001B60: 24 30 0D 20 4A 53 52 20  4C 4F 41 44 53 50 20 3B  |$0. JSR LOADSP ;|
00001B70: 4C 4F 41 44 20 41 20 50  52 4F 47 52 41 4D 0D 20  |LOAD A PROGRAM. |
00001B80: 42 43 53 20 4C 44 45 52  52 20 3B 54 52 4F 55 42  |BCS LDERR ;TROUB|
00001B90: 4C 45 20 49 4E 20 52 49  56 45 52 20 43 49 54 59  |LE IN RIVER CITY|
00001BA0: 0D 20 4C 44 41 20 46 4C  41 47 20 3B 4C 4F 41 44  |. LDA FLAG ;LOAD|
00001BB0: 20 54 59 50 45 0D 20 43  4D 50 20 23 27 25 20 3B  | TYPE. CMP #'% ;|
00001BC0: 49 53 20 49 54 20 41 4E  20 41 42 53 4F 4C 55 54  |IS IT AN ABSOLUT|
00001BD0: 45 20 4C 4F 41 44 0D 20  42 45 51 20 4C 4F 41 44  |E LOAD. BEQ LOAD|
00001BE0: 31 20 3B 59 45 53 0D 20  4C 44 41 20 45 41 48 20  |1 ;YES. LDA EAH |
00001BF0: 3B 53 45 54 20 42 41 53  49 43 27 53 20 50 4F 49  |;SET BASIC'S POI|
00001C00: 4E 54 45 52 53 0D 20 53  54 41 20 56 41 52 54 41  |NTERS. STA VARTA|
00001C10: 42 2B 31 0D 20 4C 44 41  20 45 41 4C 0D 20 53 54  |B+1. LDA EAL. ST|
00001C20: 41 20 56 41 52 54 41 42  0D 20 4A 53 52 20 52 55  |A VARTAB. JSR RU|
00001C30: 4E 43 20 3B 46 49 58 20  50 4F 49 4E 54 45 52 53  |NC ;FIX POINTERS|
00001C40: 0D 20 4A 53 52 20 4C 4E  4B 50 52 47 20 3B 46 49  |. JSR LNKPRG ;FI|
00001C50: 58 20 4C 49 4E 4B 53 0D  20 4C 44 41 20 46 4C 41  |X LINKS. LDA FLA|
00001C60: 47 20 3B 43 48 45 43 4B  20 46 4F 52 20 4C 4F 41  |G ;CHECK FOR LOA|
00001C70: 44 20 4F 52 20 52 55 4E  0D 20 43 4D 50 20 23 24  |D OR RUN. CMP #$|
00001C80: 41 44 20 3B 4C 4F 41 44  20 43 4F 4D 4D 41 4E 44  |AD ;LOAD COMMAND|
00001C90: 20 49 53 20 2F 20 28 54  4F 4B 45 4E 29 0D 20 42  | IS / (TOKEN). B|
00001CA0: 45 51 20 4C 4F 41 44 31  20 3B 59 45 53 2E 2E 2E  |EQ LOAD1 ;YES...|
00001CB0: 4C 4F 41 44 20 4F 4E 4C  59 0D 20 43 4D 50 20 23  |LOAD ONLY. CMP #|
00001CC0: 27 2F 20 3B 4C 4F 41 44  20 43 4F 4D 4D 41 4E 44  |'/ ;LOAD COMMAND|
00001CD0: 20 49 53 20 2F 0D 20 42  4E 45 20 57 47 33 30 30  | IS /. BNE WG300|
00001CE0: 20 3B 4E 4F 2E 2E 2E 4C  4F 41 44 2F 52 55 4E 0D  | ;NO...LOAD/RUN.|
00001CF0: 4C 4F 41 44 31 20 4A 4D  50 20 52 45 41 44 59 20  |LOAD1 JMP READY |
00001D00: 3B 4C 4F 41 44 20 52 45  54 55 52 4E 20 54 4F 20  |;LOAD RETURN TO |
00001D10: 42 41 53 49 43 0D 57 47  33 30 30 20 4C 44 41 20  |BASIC.WG300 LDA |
00001D20: 23 24 30 30 20 3B 4E 4F  20 4B 45 52 4E 41 4C 20  |#$00 ;NO KERNAL |
00001D30: 4D 45 53 53 41 47 45 53  0D 20 4A 53 52 20 53 45  |MESSAGES. JSR SE|
00001D40: 54 4D 53 47 0D 20 4A 53  52 20 53 54 58 54 50 54  |TMSG. JSR STXTPT|
00001D50: 20 3B 53 45 54 20 54 58  54 50 54 52 20 46 4F 52  | ;SET TXTPTR FOR|
00001D60: 20 52 55 4E 0D 20 4A 4D  50 20 4E 45 57 53 54 54  | RUN. JMP NEWSTT|
00001D70: 20 3B 52 55 4E 20 50 52  4F 47 52 41 4D 0D 4C 44  | ;RUN PROGRAM.LD|
00001D80: 45 52 52 20 3B 4C 4F 41  44 20 45 52 52 4F 52 0D  |ERR ;LOAD ERROR.|
00001D90: 20 4A 4D 50 20 52 45 41  44 59 0D 2E 50 41 47 45  | JMP READY..PAGE|
00001DA0: 20 27 51 55 49 54 2C 20  53 41 56 45 2C 20 43 48  | 'QUIT, SAVE, CH|
00001DB0: 41 4E 47 45 27 0D 3B 0D  3B 20 51 55 49 54 20 43  |ANGE'.;.; QUIT C|
00001DC0: 4F 4D 4D 41 4E 44 20 27  40 51 27 0D 3B 0D 51 55  |OMMAND '@Q'.;.QU|
00001DD0: 49 54 0D 20 4C 44 58 20  23 24 30 32 0D 52 45 53  |IT. LDX #$02.RES|
00001DE0: 54 20 3B 52 45 53 54 4F  52 45 20 27 43 48 52 47  |T ;RESTORE 'CHRG|
00001DF0: 45 54 27 0D 20 4C 44 41  20 43 48 44 47 4F 54 2B  |ET'. LDA CHDGOT+|
00001E00: 33 2C 58 0D 20 53 54 41  20 43 48 52 47 4F 54 2B  |3,X. STA CHRGOT+|
00001E10: 33 2C 58 0D 20 44 45 58  0D 20 42 50 4C 20 52 45  |3,X. DEX. BPL RE|
00001E20: 53 54 0D 20 4A 4D 50 20  52 45 41 44 59 0D 3B 0D  |ST. JMP READY.;.|
00001E30: 3B 53 41 56 45 20 43 4F  4D 4D 41 4E 44 20 27 5F  |;SAVE COMMAND '_|
00001E40: 46 49 4C 45 4E 41 4D 45  27 0D 3B 0D 53 41 56 45  |FILENAME'.;.SAVE|
00001E50: 20 3B 53 41 56 45 20 41  20 46 49 4C 45 0D 20 4A  | ;SAVE A FILE. J|
00001E60: 53 52 20 43 53 41 56 45  20 3B 43 41 4C 4C 20 42  |SR CSAVE ;CALL B|
00001E70: 41 53 49 43 20 53 41 56  45 20 52 4F 55 54 49 4E  |ASIC SAVE ROUTIN|
00001E80: 45 20 4A 55 53 54 20 50  41 53 54 20 50 41 52 53  |E JUST PAST PARS|
00001E90: 49 4E 47 0D 20 4A 4D 50  20 52 44 45 52 52 20 3B  |ING. JMP RDERR ;|
00001EA0: 52 45 41 44 20 54 48 45  45 20 45 43 20 41 46 54  |READ THEE EC AFT|
00001EB0: 45 52 20 53 41 56 45 0D  3B 0D 3B 20 43 48 41 4E  |ER SAVE.;.; CHAN|
00001EC0: 47 45 20 54 48 45 20 44  45 46 41 55 4C 54 20 44  |GE THE DEFAULT D|
00001ED0: 45 56 49 43 45 20 4E 55  4D 42 45 52 20 27 40 23  |EVICE NUMBER '@#|
00001EE0: 39 27 0D 3B 0D 43 48 47  44 45 56 0D 20 4C 44 59  |9'.;.CHGDEV. LDY|
00001EF0: 20 46 4E 4C 45 4E 0D 20  4C 44 41 20 46 49 4C 45  | FNLEN. LDA FILE|
00001F00: 2C 59 0D 20 41 4E 44 20  23 24 30 46 20 3B 43 4F  |,Y. AND #$0F ;CO|
00001F10: 4E 56 45 52 54 20 41 53  43 49 49 20 54 4F 20 42  |NVERT ASCII TO B|
00001F20: 49 4E 41 52 59 0D 20 53  54 41 20 53 56 46 41 0D  |INARY. STA SVFA.|
00001F30: 20 44 45 59 0D 20 42 45  51 20 43 48 47 31 30 20  | DEY. BEQ CHG10 |
00001F40: 3B 4F 4E 4C 59 20 4F 4E  45 20 4E 55 4D 42 45 52  |;ONLY ONE NUMBER|
00001F50: 0D 3B 0D 20 4C 44 41 20  46 49 4C 45 2C 59 0D 20  |.;. LDA FILE,Y. |
00001F60: 41 4E 44 20 23 24 30 46  0D 20 54 41 59 20 3B 55  |AND #$0F. TAY ;U|
00001F70: 53 45 20 46 49 52 53 54  20 44 49 47 49 54 20 41  |SE FIRST DIGIT A|
00001F80: 53 20 43 4F 55 4E 54 0D  20 42 45 51 20 43 48 47  |S COUNT. BEQ CHG|
00001F90: 31 30 0D 20 4C 44 41 20  53 56 46 41 0D 20 43 4C  |10. LDA SVFA. CL|
00001FA0: 43 0D 43 48 47 30 35 20  41 44 43 20 23 31 30 20  |C.CHG05 ADC #10 |
00001FB0: 3B 41 44 44 20 31 30 20  46 4F 52 20 45 41 43 48  |;ADD 10 FOR EACH|
00001FC0: 20 43 4F 55 4E 54 0D 20  44 45 59 0D 20 42 4E 45  | COUNT. DEY. BNE|
00001FD0: 20 43 48 47 30 35 0D 20  53 54 41 20 53 56 46 41  | CHG05. STA SVFA|
00001FE0: 20 3B 53 41 56 45 20 52  45 53 55 4C 54 0D 43 48  | ;SAVE RESULT.CH|
00001FF0: 47 31 30 0D 20 4A 4D 50  20 43 48 52 47 4F 54 0D  |G10. JMP CHRGOT.|
00002000: 2E 50 41 47 45 20 27 53  55 42 52 4F 55 54 49 4E  |.PAGE 'SUBROUTIN|
00002010: 45 53 27 0D 3B 0D 3B 20  52 45 41 44 20 46 49 4C  |ES'.;.; READ FIL|
00002020: 45 4E 41 4D 45 20 53 54  52 49 4E 47 20 46 52 4F  |ENAME STRING FRO|
00002030: 4D 20 43 4F 4D 4D 41 4E  44 0D 3B 20 41 4E 44 20  |M COMMAND.; AND |
00002040: 50 4C 41 43 45 20 49 54  20 49 4E 54 4F 20 46 49  |PLACE IT INTO FI|
00002050: 4C 45 20 53 54 52 49 4E  47 0D 3B 0D 52 44 46 49  |LE STRING.;.RDFI|
00002060: 4C 45 0D 20 4C 44 59 20  23 30 0D 20 4A 53 52 20  |LE. LDY #0. JSR |
00002070: 43 48 52 47 45 54 0D 20  54 41 58 0D 20 42 4E 45  |CHRGET. TAX. BNE|
00002080: 20 52 44 30 35 20 3B 4D  4F 52 45 20 54 4F 20 44  | RD05 ;MORE TO D|
00002090: 4F 2E 2E 2E 0D 20 4A 4D  50 20 53 45 54 4C 45 4E  |O.... JMP SETLEN|
000020A0: 20 3B 44 4F 4E 45 2E 2E  2E 0D 52 44 30 35 20 4C  | ;DONE....RD05 L|
000020B0: 44 41 20 23 24 36 30 20  3B 44 4F 20 4E 4F 54 20  |DA #$60 ;DO NOT |
000020C0: 53 4B 49 50 20 42 4C 41  4E 4B 53 20 4F 52 20 43  |SKIP BLANKS OR C|
000020D0: 41 4C 4C 20 4D 45 20 43  48 52 47 45 54 0D 20 53  |ALL ME CHRGET. S|
000020E0: 54 41 20 43 48 52 47 4F  54 2B 33 0D 20 4C 44 41  |TA CHRGOT+3. LDA|
000020F0: 20 54 58 54 50 54 52 20  3B 53 41 56 45 20 50 4F  | TXTPTR ;SAVE PO|
00002100: 49 4E 54 45 52 20 54 4F  20 44 41 54 41 0D 20 50  |INTER TO DATA. P|
00002110: 48 41 0D 20 4C 44 41 20  54 58 54 50 54 52 2B 31  |HA. LDA TXTPTR+1|
00002120: 0D 20 50 48 41 0D 20 54  58 41 20 3B 50 55 54 20  |. PHA. TXA ;PUT |
00002130: 46 49 52 53 54 20 43 48  41 52 20 49 4E 54 4F 20  |FIRST CHAR INTO |
00002140: 2E 41 0D 52 44 31 30 20  43 4D 50 20 23 27 22 20  |.A.RD10 CMP #'" |
00002150: 3B 4C 4F 4F 4B 20 46 4F  52 20 51 55 4F 54 45 0D  |;LOOK FOR QUOTE.|
00002160: 20 42 45 51 20 52 44 32  30 0D 20 4A 53 52 20 43  | BEQ RD20. JSR C|
00002170: 48 52 47 45 54 20 3B 47  45 54 20 4E 45 58 54 20  |HRGET ;GET NEXT |
00002180: 43 48 41 52 41 43 54 45  52 0D 20 42 4E 45 20 52  |CHARACTER. BNE R|
00002190: 44 31 30 0D 20 50 4C 41  20 3B 44 49 44 20 4E 4F  |D10. PLA ;DID NO|
000021A0: 54 20 46 49 4E 44 20 51  55 4F 54 45 20 28 52 45  |T FIND QUOTE (RE|
000021B0: 41 44 20 41 4C 4C 20 4F  46 20 4C 49 4E 45 29 0D  |AD ALL OF LINE).|
000021C0: 20 53 54 41 20 54 58 54  50 54 52 2B 31 20 3B 52  | STA TXTPTR+1 ;R|
000021D0: 45 53 54 4F 52 45 20 50  4F 49 4E 54 45 52 0D 20  |ESTORE POINTER. |
000021E0: 50 4C 41 0D 20 53 54 41  20 54 58 54 50 54 52 0D  |PLA. STA TXTPTR.|
000021F0: 20 4A 53 52 20 43 48 52  47 4F 54 20 3B 47 45 54  | JSR CHRGOT ;GET|
00002200: 20 46 49 52 53 54 20 43  48 41 52 41 43 54 45 52  | FIRST CHARACTER|
00002210: 20 4F 4E 20 4C 49 4E 45  0D 20 4C 44 58 20 23 30  | ON LINE. LDX #0|
00002220: 20 3B 46 49 4C 45 20 4E  41 4D 45 20 4C 45 4E 47  | ;FILE NAME LENG|
00002230: 54 48 20 43 4F 55 4E 54  0D 20 43 4D 50 20 23 27  |TH COUNT. CMP #'|
00002240: 22 20 3B 4C 4F 4F 4B 49  4E 47 20 41 54 20 51 55  |" ;LOOKING AT QU|
00002250: 4F 54 45 3F 0D 20 42 45  51 20 46 49 4C 4C 20 3B  |OTE?. BEQ FILL ;|
00002260: 59 45 53 2E 2E 2E 28 4D  55 53 54 20 42 45 20 57  |YES...(MUST BE W|
00002270: 48 45 4E 20 52 55 4E 4E  49 4E 47 29 0D 20 4C 44  |HEN RUNNING). LD|
00002280: 58 20 23 3E 42 55 46 20  3B 49 46 20 49 4E 20 44  |X #>BUF ;IF IN D|
00002290: 49 52 45 43 54 20 4D 4F  44 45 20 54 48 45 4E 20  |IRECT MODE THEN |
000022A0: 4F 4B 0D 20 43 50 58 20  54 58 54 50 54 52 2B 31  |OK. CPX TXTPTR+1|
000022B0: 0D 20 42 4E 45 20 46 49  4C 45 52 31 20 3B 4D 55  |. BNE FILER1 ;MU|
000022C0: 53 54 20 48 41 56 45 20  41 20 51 55 4F 54 45 0D  |ST HAVE A QUOTE.|
000022D0: 20 4C 44 58 20 23 30 0D  20 42 45 51 20 46 49 4C  | LDX #0. BEQ FIL|
000022E0: 4C 31 30 20 3B 28 42 52  41 4E 43 48 29 0D 52 44  |L10 ;(BRANCH).RD|
000022F0: 32 30 20 50 4C 41 20 3B  46 4F 55 4E 44 20 51 55  |20 PLA ;FOUND QU|
00002300: 4F 54 45 20 44 4F 20 4F  55 52 20 54 48 49 4E 47  |OTE DO OUR THING|
00002310: 0D 20 50 4C 41 0D 20 4C  44 58 20 23 30 0D 3B 0D  |. PLA. LDX #0.;.|
00002320: 46 49 4C 4C 0D 20 4A 53  52 20 43 48 52 47 45 54  |FILL. JSR CHRGET|
00002330: 0D 20 42 45 51 20 53 45  54 4C 45 4E 0D 46 49 4C  |. BEQ SETLEN.FIL|
00002340: 4C 31 30 0D 20 43 4D 50  20 23 27 22 20 3B 45 4E  |L10. CMP #'" ;EN|
00002350: 44 20 51 55 4F 54 45 3F  0D 20 42 45 51 20 53 45  |D QUOTE?. BEQ SE|
00002360: 54 4C 45 4E 0D 20 43 4D  50 20 23 27 3D 20 3B 46  |TLEN. CMP #'= ;F|
00002370: 49 4C 45 4E 41 4D 45 20  53 54 41 52 54 0D 20 42  |ILENAME START. B|
00002380: 45 51 20 46 49 4C 4C 32  30 0D 20 43 4D 50 20 23  |EQ FILL20. CMP #|
00002390: 27 3A 20 3B 46 49 4C 45  4E 41 4D 45 20 53 54 41  |': ;FILENAME STA|
000023A0: 52 54 0D 20 42 4E 45 20  53 54 4F 52 49 54 0D 46  |RT. BNE STORIT.F|
000023B0: 49 4C 4C 32 30 0D 20 4C  44 58 20 23 24 46 46 20  |ILL20. LDX #$FF |
000023C0: 3B 44 4F 20 4E 4F 54 20  43 4F 55 4E 54 0D 53 54  |;DO NOT COUNT.ST|
000023D0: 4F 52 49 54 0D 20 43 4D  50 20 23 27 5B 20 3B 53  |ORIT. CMP #'[ ;S|
000023E0: 54 41 52 54 20 56 4F 4C  20 53 54 55 46 46 3F 0D  |TART VOL STUFF?.|
000023F0: 20 42 45 51 20 46 49 4C  4C 33 30 20 3B 59 45 53  | BEQ FILL30 ;YES|
00002400: 2E 2E 2E 0D 53 54 4F 52  31 30 0D 20 53 54 41 20  |....STOR10. STA |
00002410: 46 49 4C 45 2C 59 0D 20  53 54 41 20 4C 41 53 54  |FILE,Y. STA LAST|
00002420: 43 48 0D 20 49 4E 58 0D  20 49 4E 59 0D 20 42 50  |CH. INX. INY. BP|
00002430: 4C 20 46 49 4C 4C 0D 3B  0D 46 49 4C 4C 33 30 0D  |L FILL.;.FILL30.|
00002440: 20 4A 53 52 20 43 48 52  47 45 54 20 3B 47 45 54  | JSR CHRGET ;GET|
00002450: 20 56 4F 4C 20 4E 41 4D  45 0D 20 42 45 51 20 46  | VOL NAME. BEQ F|
00002460: 49 4C 45 52 31 20 3B 52  45 51 55 49 52 45 44 0D  |ILER1 ;REQUIRED.|
00002470: 20 53 54 41 20 56 4F 4C  20 3B 53 41 56 45 20 49  | STA VOL ;SAVE I|
00002480: 54 0D 20 4A 53 52 20 43  48 52 47 45 54 20 3B 47  |T. JSR CHRGET ;G|
00002490: 45 54 20 43 4C 4F 53 49  4E 47 20 44 45 4C 49 4D  |ET CLOSING DELIM|
000024A0: 49 54 45 52 0D 20 42 45  51 20 46 49 4C 45 52 31  |ITER. BEQ FILER1|
000024B0: 20 3B 4D 55 53 54 20 42  45 20 54 48 45 52 45 3F  | ;MUST BE THERE?|
000024C0: 3F 2E 2E 2E 0D 20 43 4D  50 20 23 27 5D 0D 20 42  |?.... CMP #']. B|
000024D0: 4E 45 20 46 49 4C 45 52  31 20 3B 57 52 4F 4E 47  |NE FILER1 ;WRONG|
000024E0: 20 44 45 4C 49 4D 49 54  45 52 2E 2E 2E 2E 0D 3B  | DELIMITER.....;|
000024F0: 0D 20 43 50 58 20 23 31  36 20 3B 53 45 45 20 49  |. CPX #16 ;SEE I|
00002500: 46 20 4E 41 4D 45 20 49  53 20 54 4F 4F 20 4C 4F  |F NAME IS TOO LO|
00002510: 4E 47 0D 20 42 43 53 20  46 49 4C 45 52 31 0D 20  |NG. BCS FILER1. |
00002520: 4C 44 41 20 4C 41 53 54  43 48 20 3B 49 46 20 4C  |LDA LASTCH ;IF L|
00002530: 41 53 54 20 49 53 20 2A  20 54 48 45 4E 20 46 49  |AST IS * THEN FI|
00002540: 4C 4C 20 3F 0D 20 43 4D  50 20 23 27 2A 0D 20 42  |LL ?. CMP #'*. B|
00002550: 4E 45 20 46 49 4C 53 50  43 0D 20 44 45 59 20 3B  |NE FILSPC. DEY ;|
00002560: 44 4F 20 4E 4F 54 20 50  55 54 20 49 4E 20 54 48  |DO NOT PUT IN TH|
00002570: 45 20 2A 0D 20 44 45 58  0D 20 4C 44 41 20 23 27  |E *. DEX. LDA #'|
00002580: 3F 0D 20 2E 42 59 54 20  24 32 43 0D 46 49 4C 53  |?. .BYT $2C.FILS|
00002590: 50 43 20 4C 44 41 20 23  24 32 30 20 3B 45 4C 53  |PC LDA #$20 ;ELS|
000025A0: 45 20 46 49 4C 4C 20 57  49 54 48 20 53 50 41 43  |E FILL WITH SPAC|
000025B0: 45 0D 46 49 4C 50 41 54  0D 20 43 50 58 20 23 31  |E.FILPAT. CPX #1|
000025C0: 35 20 3B 41 52 45 20 57  45 20 44 4F 4E 45 20 59  |5 ;ARE WE DONE Y|
000025D0: 45 54 20 3F 0D 20 42 43  53 20 46 49 4C 45 4E 44  |ET ?. BCS FILEND|
000025E0: 20 3B 59 45 53 2E 2E 2E  0D 20 53 54 41 20 46 49  | ;YES.... STA FI|
000025F0: 4C 45 2C 59 0D 20 49 4E  59 0D 20 49 4E 58 0D 20  |LE,Y. INY. INX. |
00002600: 42 50 4C 20 46 49 4C 50  41 54 0D 46 49 4C 45 4E  |BPL FILPAT.FILEN|
00002610: 44 0D 20 4C 44 41 20 56  4F 4C 20 3B 50 55 54 20  |D. LDA VOL ;PUT |
00002620: 49 4E 20 54 48 45 20 56  4F 4C 55 4D 45 20 4E 41  |IN THE VOLUME NA|
00002630: 4D 45 0D 20 42 4E 45 20  53 54 4F 52 31 30 20 3B  |ME. BNE STOR10 ;|
00002640: 42 52 41 4E 43 48 0D 3B  0D 46 49 4C 45 52 31 20  |BRANCH.;.FILER1 |
00002650: 3B 42 4C 4F 57 20 4F 46  46 20 54 4F 20 53 59 4E  |;BLOW OFF TO SYN|
00002660: 54 41 58 20 45 52 52 4F  52 0D 20 4C 44 58 20 23  |TAX ERROR. LDX #|
00002670: 24 34 43 20 3B 52 45 53  54 4F 52 45 20 43 48 52  |$4C ;RESTORE CHR|
00002680: 47 4F 54 0D 20 53 54 58  20 43 48 52 47 4F 54 2B  |GOT. STX CHRGOT+|
00002690: 33 0D 20 4A 4D 50 20 53  4E 45 52 52 0D 3B 0D 53  |3. JMP SNERR.;.S|
000026A0: 45 54 4C 45 4E 0D 20 53  54 59 20 46 4E 4C 45 4E  |ETLEN. STY FNLEN|
000026B0: 20 3B 53 41 56 45 20 4C  45 4E 47 54 48 0D 20 4C  | ;SAVE LENGTH. L|
000026C0: 44 58 20 23 24 34 43 20  3B 52 45 53 54 4F 52 45  |DX #$4C ;RESTORE|
000026D0: 20 43 48 52 47 4F 54 0D  20 53 54 58 20 43 48 52  | CHRGOT. STX CHR|
000026E0: 47 4F 54 2B 33 0D 3B 0D  20 4A 53 52 20 43 48 52  |GOT+3.;. JSR CHR|
000026F0: 47 4F 54 20 3B 54 48 52  4F 57 20 41 57 41 59 20  |GOT ;THROW AWAY |
00002700: 54 48 45 20 52 45 53 54  20 4F 46 20 54 48 45 20  |THE REST OF THE |
00002710: 4C 49 4E 45 0D 20 42 45  51 20 53 45 54 52 54 53  |LINE. BEQ SETRTS|
00002720: 0D 53 45 54 43 4C 52 0D  20 4A 53 52 20 43 48 52  |.SETCLR. JSR CHR|
00002730: 47 45 54 0D 20 42 4E 45  20 53 45 54 43 4C 52 0D  |GET. BNE SETCLR.|
00002740: 3B 0D 53 45 54 52 54 53  20 3B 44 4F 4E 45 0D 20  |;.SETRTS ;DONE. |
00002750: 52 54 53 0D 3B 0D 3B 54  48 45 53 45 20 4D 55 53  |RTS.;.;THESE MUS|
00002760: 54 20 42 45 20 41 46 54  45 52 20 54 48 45 20 44  |T BE AFTER THE D|
00002770: 45 46 49 4E 49 54 49 4F  4E 53 0D 3B 0D 5A 5A 31  |EFINITIONS.;.ZZ1|
00002780: 20 3D 4C 4F 41 44 2D 31  20 3B 4C 4F 41 44 20 41  | =LOAD-1 ;LOAD A|
00002790: 20 50 52 4F 47 52 41 4D  0D 5A 5A 32 20 3D 52 55  | PROGRAM.ZZ2 =RU|
000027A0: 4E 52 2D 31 20 3B 52 55  4E 20 41 20 50 52 4F 47  |NR-1 ;RUN A PROG|
000027B0: 52 41 4D 0D 5A 5A 33 20  3D 53 41 56 45 2D 31 20  |RAM.ZZ3 =SAVE-1 |
000027C0: 3B 53 41 56 45 20 41 20  50 52 4F 47 52 41 4D 0D  |;SAVE A PROGRAM.|
000027D0: 5A 5A 34 20 3D 44 4F 49  54 2D 31 20 3B 3E 20 43  |ZZ4 =DOIT-1 ;> C|
000027E0: 41 4C 4C 0D 5A 5A 35 20  3D 43 48 47 44 45 56 2D  |ALL.ZZ5 =CHGDEV-|
000027F0: 31 20 3B 43 48 41 4E 47  45 20 44 45 56 49 43 45  |1 ;CHANGE DEVICE|
00002800: 20 4E 55 4D 42 45 52 0D  5A 5A 36 20 3D 51 55 49  | NUMBER.ZZ6 =QUI|
00002810: 54 2D 31 20 3B 4C 45 41  56 45 20 44 4F 53 20 53  |T-1 ;LEAVE DOS S|
00002820: 55 50 50 4F 52 54 0D 2E  45 4E 44 0D EF           |UPPORT..END..   |
;*******************************.;*.;*  
PET DOS SUPPORT.;*.;*    04-27-79.;*.;* 
 BOB FAIRBAIRN.;*.;*********************
**********.;*.;* VERSION 3.1 6/14/79.;* 
   ADD @ PROMPT FOR BUSINESS.;*    KEYBO
ARD. ADD STOP KEY CHECK.;*    IN DIRECTO
RY PRINT. ADD.;*    HALT IN DIRECTORY PR
INT.;*.;* VERSION 3.2 7/2/79.;*    FOR (
-04) ROM PROBLEMS.;*    WITH LOAD ADDRES
S ONE OFF.;*    BYTE LOW..;*.;* VERSION 
3.3 7/2/79.;*    ADD STACK LOOKUP FOR.;*
    ACTIVATION..;*.;* VERSION 4.0 7/5/79
.;*    ADD CONTROL FOR CMD DURING.;*    
A DIRECTORY LISTING..;*.;*.;* VERSION 4.
1 11/7/79.;*    REMOVE MODS FROM 4.0. CA
LL.;*    FAST WEDGE 4.1..;*.;*.;* VERSIO
N 4.2 12/17/79.;*    SET UP FOR BASIC 4.
0 AND.;*    2.0 (NO CHANGES).;*.;*.;* VE
RSION 5.0 12/16/81-02/10/82.;*    ADD NE
W COMMANDS, ALLOW TO WORK IN.;*    RUNNI
NG PROGRAM. PUT VOLUME NAMES.;*    IN AL
L COMMANDS USING BRACKETS.;*    ONLY WOR
KS WITH BASIC4.0.;*.;*.;* VERSION 5.1/64
   06/07/82-07/13/82.;*    MAKE WORK WIT
H COMMODORE 64.;*..PAGE.;.;BASIC VARIABL
ES USED.;.SAL =$AC ;INDIRECT POINTER LO.
SAH =$AD ;HI.BUFPT =$A6 ;CASSETTE (TWO B
YTES).CNTDN =$A5 ;SAVE AREA.TXTTAB =$2B 
;POINTER TO BASIC START.MEMSIZ =$37 ;POI
NTER TO TOP MEM.TXTPTR =$7A ;POINTER TO 
BUF.SATUS =$90 ;STATUS BYTE.SA =$B9 ;SEC
ONDARY ADDRESS.FA =$BA ;PRIMARY ADDRESS.
LA =$B8 ;LOGICAL DEVICE #.FNLEN =$B7 ;FI
LE NAME LENGTH.FNADR =$BB ;FILE NAME ADD
RESS.EAL =$AE ;END ADDR LO.EAH =$AF ;HI.
STAL =$C1 ;LO BYTE.STAH =$C2 ;HI BYTE.VA
RTAB =$2D ;END OF BASIC PGM..TMP2 =$C3 ;
TEMP VARIABLE.BUF =$0200 ;INPUT BUFFER.;
.;PROGRAM VARIABLES.;.CR =$0D ;SYMBOLIC 
CARRIAGE RETURN..PAGE.;.;CBM 64  ROUTINE
S USED (2.0 BASIC).;.MAIN =$A48C ;WHERE 
CALLED FROM(MAIN+12).LINPRT =$BDCD ;PRIN
T LINE #.CLSEI =$F642 ;CLOSE A FILE.LOAD
SP =$FFD5 ;LOAD ROUTINE.CHRGET =$73 ;INP
UTS CHARACTERS.CHRGOT =$79 ;GET LAST CHA
R.GONE =$A7E6 ; STATEMENT EXEC(NGONE+2).
SNERR =$AF08 ; SYNTAX ERROR PRINT.CHDGOT
 =$E3A8 ;ROM COPY OF CHRGOT.NEWSTT =$A7A
E ;NEW STATEMENT EXEC.PRT =$E716 ;PRINT 
A CHARACTER.LISTN =$FFB1 ;SEND LISTEN.SE
TMSG =$FF90 ;SET KERNAL MESSAGES.SECND =
$FF93 ;SEND SA.CIOUT =$FFA8 ;SEND CHARAC
TER.UNLSN =$FFAE ;UN LISTEN.ACPTR =$FFA5
 ;GET A CHARCATER.TALK =$FFB4 ;SEND TALK
.OPENI =$F3D5 ;OPEN FILE.READY =$E386 ;R
EENTER BASIC.RUNC =$A659 ;CLEAR VARIABLE
S AND STACK.LNKPRG =$A533 ;LINK BASIC LI
NES.UNTLK =$FFAB ;UN TALK.STXTPT =$A68E 
;SET START TEXT POINTER.STOP =$FFE1 ;CHE
CK FOR STOP KEY.CSAVE =$E156+3 ;SAVE WIT
H ADDRESS SET (BASIC).TKSA =$FF96 ;TALK 
SECONDARY ADDRESS.GETIN =$FFE4 ;GET A CH
ARACTER..PAGE 'WEDGE PARSER'.;.;WEDGE IN
 ROUTINE WITH THE.;COMMAND PARSER AND EX
ECUTITION.;.*=$CC00.JMP GOOO.TABHI..BYT 
>ZZ1 ;%        LOAD (NON RELO)..BYT >ZZ1
 ;/        LOAD..BYT >ZZ1 ;/ TOKEN    ".
.BYT >ZZ2 ;^        LOAD/RUN..BYT >ZZ2 ;
^ TOKEN   "    "..BYT >ZZ3 ;_        SAV
E..BYT >ZZ4 ;>        DISK COMMAND..BYT 
>ZZ4 ;> TOKEN    "     "..BYT >ZZ4 ;@   
       "     "..BYT >ZZ5 ;#        CHANG
E DEVICE..BYT >ZZ6 ;Q        QUIT.;.TABL
O..BYT <ZZ1 ;%..BYT <ZZ1 ;/..BYT <ZZ1 ;/
 TOKEN..BYT <ZZ2 ;^..BYT <ZZ2 ;^ TOKEN..
BYT <ZZ3 ;_..BYT <ZZ4 ;>..BYT <ZZ4 ;> TO
KEN..BYT <ZZ4 ;@..BYT <ZZ5 ;#..BYT <ZZ6 
;Q.;.NCMD =9 ;NUMBER OF MAIN COMMANDS.CM
D .BYT '%/',$AD,'^',$AE,'_','>',$B1,'@#Q
',$00.;COMMANDS  % / / ^ ^ _ > > @ # Q.;
COMMANDS  1 2 3 4 5 6 7 8 9 A B.PREFIX *
=*+2.FILE *=*+1 ;DATA FOR DISK IS STORED
 HERE.FILE1 *=*+79.SVFA *=*+1 ;SAVE FA.V
OL *=*+1 ;VOLUME NAME.LASTCH *=*+1 ;LAST
 CHAR FROM CHRGET.FLAG *=*+1 ;SAVE COMMA
ND.JUMP JMP START ;OVERLAY FOR Z-PAGE 'C
HRGOT'..PAGE 'INIT CODE; VECTOR'.;.; INI
T THE MEMORY MANAGER (STARTUP COMES HERE
).;.GOOO. LDX #$02 ;MOVE THREE BYTES.WED
GE LDA JUMP,X. STA CHRGOT+3,X. DEX. BPL 
WEDGE.;. LDA FA ;USE CURRENT FA FOR DEVI
CE ADDR. STA SVFA. RTS.;.; THIS IS WHERE
 WE COME TO DO THE WORK.;.START. STA BUF
PT ;SAVE .A, .X. STX BUFPT+1. TSX ;ACTIV
ATED  CALL IN 'GONE'. LDA $0101,X. CMP #
<GONE ;FROM A RUNNING PROGRAM??. BEQ TRY
TWO. CMP #<MAIN ;FROM DIRECT MODE??. BNE
 NOTCMD.TRYTWO LDA $0102,X. CMP #>GONE ;
PROGRAM?. BEQ FINDIT. CMP #>MAIN ;DIRECT
?. BNE NOTCMD.FINDIT LDA BUFPT ;GET THE 
COMMAND BACK. LDX #NCMD-1.FINDC ;FIND TH
E COMMAND. CMP CMD,X. BEQ CALL10. DEX. B
PL FINDC.;.NOTCMD. LDA BUFPT ;RESTORE RE
GS. LDX BUFPT+1. CMP #': ;COMPLETE CHRGO
T. BCS STRTS. JMP CHRGOT+7.STRTS JMP CHR
GOT+17 ;TO THE END OF CHRGOT.;.CALL10. S
TX CNTDN ;SAVE INDEX. STA FLAG ;SAVE THE
 COMMAND FOR LATER. JSR RDFILE ;GET THE 
FILENAME AND LENGTH. LDX CNTDN ;RESTORE 
INDEX. LDA #<FILE ;SET FILENAME ADDRESS.
 STA FNADR. LDA #>FILE. STA FNADR+1. LDA
 SVFA ;SET PRIMARY ADDRESS. STA FA.;.CAL
LIT. LDA TABHI,X ;FOUND COMMAND...GO THE
RE. PHA. LDA TABLO,X. PHA. RTS..PAG.;.;M
AIN ACTION ROUTINE FOR WEDGE COMMANDS '>
@'.;.DOIT. TYA ;.Y HAS FNLEN. BEQ RDERR 
;NO DATA SO READ E. C..;. LDX #NCMD ;NOW
 CHECK FOR SUB-COMMANDS.CHKSUB. LDA CMD,
X. BEQ CHKLST ;RAN OUT.... CMP FILE ;IS 
THIS A COMMAND?. BEQ FNDSUB ;YES.... INX
. BPL CHKSUB.;.CHKLST ;NOT A SUB-COMMAND
. LDA FILE ;IS THIS A DIR COMMAND. CMP #
'$. BEQ DODIR ;DIRECTORY STUFF. JMP NOTD
IR ;DISK COMMANDS.;.;.FNDSUB ;FOUND SUB 
COMMAND. DEC FNLEN ;SETUP AND GO THERE. 
LDA #<FILE1. STA FNADR. LDA #>FILE1. STA
 FNADR+1. JMP CALLIT..PAGE 'DISK CMD & E
. C.'.;.; SEND COMMAND TO DISK.;.NOTDIR.
 LDA FA ;DEVICE ADDRESS. JSR LISTN. LDA 
#$6F. STA SA. JSR SECND ;SEND SECONDARY 
ADDR. LDY #0.BUMP LDA FILE,Y. JSR CIOUT.
 INY. CPY FNLEN. BCC BUMP ;MORE.;.WG120 
JSR UNLSN ;UN LISTEN. JMP WG998.;.; READ
 THE ERROR CHANNEL.;.RDERR. LDA FA ;DEVI
CE ADDRESS. JSR TALK. LDA #$6F ;COMMAND 
CHANNEL SA. STA SA. JSR TKSA ;SEND SA TA
LK STYLE.WG140 JSR ACPTR ;GET BYTE FROM 
DISK. CMP #CR. BEQ WG130. JSR PRT ;PRINT
 BYTE TO SCREEN. JMP WG140 ;LOOP FOR MOR
E.WG130 JSR PRT ;PRINT CR. JSR UNTLK ;UN
 TALK.WG998 JMP CHRGOT ;DONE WITH CMD..P
AGE 'DIRECTORY READ'.;.;PRINT THE DIRECT
ORY '@$0:*'.;.DODIR. LDA #$60 ;SECONDARY
 ADDR. STA SA. JSR OPENI ;OPEN THE FILE.
 LDA FA ;GET PRIMARY ADDRESS. JSR TALK. 
LDA SA ;GET SECONDARY ADDRESS. JSR TKSA.
.SKI. LDA #0. STA SATUS ;SET STATUS TO 0
. LDY #$03 ;LOOP THREE TIMES.WG220 STY F
NLEN ;SAVE NEW COUNT. JSR ACPTR. STA TMP
2. JSR ACPTR. STA TMP2+1. LDY SATUS ;CHE
CK STATUS. BNE WG230. LDY FNLEN ;MORE TO
 DO?. DEY. BNE WG220 ;NOT DONE YET. LDX 
TMP2. LDA TMP2+1. JSR LINPRT ;PRINT LINE
 NUMBER. LDA #$20 ;PRINT A SPACE. JSR PR
T.WG250 JSR ACPTR. LDX SATUS. BNE WG230 
;BAD. CMP #0 ;EOL. BEQ WG240. JSR PRT.;C
HECK FOR STOP KEY AND PAUSE. JSR STOP ;S
TOP KEY. BEQ WG230 ;YES.... JSR GETIN ;G
ET A CHAR FROM KEYBOARD. BEQ WG250 ;NOTH
ING.... CMP #$20 ;SPACE BAR FOR PAUSE?. 
BNE WG250 ;NO....WG255 JSR GETIN ;ANY KE
Y STARTS. BEQ WG255. BNE WG250 ;(JMP).;.
WG240 LDA #CR. JSR PRT. LDY #$02 ; DO TW
ICE. JMP WG220.;.;CLOSE FLOPPY AND RETUR
N.;.WG230 JSR CLSEI ;CLOSE FILE. LDA #CR
 ;PRINT A RETURN. JSR PRT. JMP CHRGOT ;R
ETURN..PAGE 'FILE LOAD/RUN'.;.;    LOAD 
OR LOAD AND RUN A FILE.;  (FNLEN IS SET 
AND THE NAME IS IN FILE).;  %FILENAME ..
.... LOAD (NON RELOCATING).;  /FILENAME 
...... LOAD.;  ^FILENAME ...... LOAD/RUN
.;.RUNR.LOAD. LDX TXTTAB ;SET POINTER FO
R AUTO LOCATE. LDY TXTTAB+1. LDA FLAG ;S
ET TYPE OF LOAD. CMP #'%. BNE LOAD0. LDA
 #1. .BYT $2C ;SKIP2.LOAD0 LDA #0. STA S
A. LDA #$0. JSR LOADSP ;LOAD A PROGRAM. 
BCS LDERR ;TROUBLE IN RIVER CITY. LDA FL
AG ;LOAD TYPE. CMP #'% ;IS IT AN ABSOLUT
E LOAD. BEQ LOAD1 ;YES. LDA EAH ;SET BAS
IC'S POINTERS. STA VARTAB+1. LDA EAL. ST
A VARTAB. JSR RUNC ;FIX POINTERS. JSR LN
KPRG ;FIX LINKS. LDA FLAG ;CHECK FOR LOA
D OR RUN. CMP #$AD ;LOAD COMMAND IS / (T
OKEN). BEQ LOAD1 ;YES...LOAD ONLY. CMP #
'/ ;LOAD COMMAND IS /. BNE WG300 ;NO...L
OAD/RUN.LOAD1 JMP READY ;LOAD RETURN TO 
BASIC.WG300 LDA #$00 ;NO KERNAL MESSAGES
. JSR SETMSG. JSR STXTPT ;SET TXTPTR FOR
 RUN. JMP NEWSTT ;RUN PROGRAM.LDERR ;LOA
D ERROR. JMP READY..PAGE 'QUIT, SAVE, CH
ANGE'.;.; QUIT COMMAND '@Q'.;.QUIT. LDX 
#$02.REST ;RESTORE 'CHRGET'. LDA CHDGOT+
3,X. STA CHRGOT+3,X. DEX. BPL REST. JMP 
READY.;.;SAVE COMMAND '_FILENAME'.;.SAVE
 ;SAVE A FILE. JSR CSAVE ;CALL BASIC SAV
E ROUTINE JUST PAST PARSING. JMP RDERR ;
READ THEE EC AFTER SAVE.;.; CHANGE THE D
EFAULT DEVICE NUMBER '@#9'.;.CHGDEV. LDY
 FNLEN. LDA FILE,Y. AND #$0F ;CONVERT AS
CII TO BINARY. STA SVFA. DEY. BEQ CHG10 
;ONLY ONE NUMBER.;. LDA FILE,Y. AND #$0F
. TAY ;USE FIRST DIGIT AS COUNT. BEQ CHG
10. LDA SVFA. CLC.CHG05 ADC #10 ;ADD 10 
FOR EACH COUNT. DEY. BNE CHG05. STA SVFA
 ;SAVE RESULT.CHG10. JMP CHRGOT..PAGE 'S
UBROUTINES'.;.; READ FILENAME STRING FRO
M COMMAND.; AND PLACE IT INTO FILE STRIN
G.;.RDFILE. LDY #0. JSR CHRGET. TAX. BNE
 RD05 ;MORE TO DO.... JMP SETLEN ;DONE..
..RD05 LDA #$60 ;DO NOT SKIP BLANKS OR C
ALL ME CHRGET. STA CHRGOT+3. LDA TXTPTR 
;SAVE POINTER TO DATA. PHA. LDA TXTPTR+1
. PHA. TXA ;PUT FIRST CHAR INTO .A.RD10 
CMP #'" ;LOOK FOR QUOTE. BEQ RD20. JSR C
HRGET ;GET NEXT CHARACTER. BNE RD10. PLA
 ;DID NOT FIND QUOTE (READ ALL OF LINE).
 STA TXTPTR+1 ;RESTORE POINTER. PLA. STA
 TXTPTR. JSR CHRGOT ;GET FIRST CHARACTER
 ON LINE. LDX #0 ;FILE NAME LENGTH COUNT
. CMP #'" ;LOOKING AT QUOTE?. BEQ FILL ;
YES...(MUST BE WHEN RUNNING). LDX #>BUF 
;IF IN DIRECT MODE THEN OK. CPX TXTPTR+1
. BNE FILER1 ;MUST HAVE A QUOTE. LDX #0.
 BEQ FILL10 ;(BRANCH).RD20 PLA ;FOUND QU
OTE DO OUR THING. PLA. LDX #0.;.FILL. JS
R CHRGET. BEQ SETLEN.FILL10. CMP #'" ;EN
D QUOTE?. BEQ SETLEN. CMP #'= ;FILENAME 
START. BEQ FILL20. CMP #': ;FILENAME STA
RT. BNE STORIT.FILL20. LDX #$FF ;DO NOT 
COUNT.STORIT. CMP #'[ ;START VOL STUFF?.
 BEQ FILL30 ;YES....STOR10. STA FILE,Y. 
STA LASTCH. INX. INY. BPL FILL.;.FILL30.
 JSR CHRGET ;GET VOL NAME. BEQ FILER1 ;R
EQUIRED. STA VOL ;SAVE IT. JSR CHRGET ;G
ET CLOSING DELIMITER. BEQ FILER1 ;MUST B
E THERE??.... CMP #']. BNE FILER1 ;WRONG
 DELIMITER.....;. CPX #16 ;SEE IF NAME I
S TOO LONG. BCS FILER1. LDA LASTCH ;IF L
AST IS * THEN FILL ?. CMP #'*. BNE FILSP
C. DEY ;DO NOT PUT IN THE *. DEX. LDA #'
?. .BYT $2C.FILSPC LDA #$20 ;ELSE FILL W
ITH SPACE.FILPAT. CPX #15 ;ARE WE DONE Y
ET ?. BCS FILEND ;YES.... STA FILE,Y. IN
Y. INX. BPL FILPAT.FILEND. LDA VOL ;PUT 
IN THE VOLUME NAME. BNE STOR10 ;BRANCH.;
.FILER1 ;BLOW OFF TO SYNTAX ERROR. LDX #
$4C ;RESTORE CHRGOT. STX CHRGOT+3. JMP S
NERR.;.SETLEN. STY FNLEN ;SAVE LENGTH. L
DX #$4C ;RESTORE CHRGOT. STX CHRGOT+3.;.
 JSR CHRGOT ;THROW AWAY THE REST OF THE 
LINE. BEQ SETRTS.SETCLR. JSR CHRGET. BNE
 SETCLR.;.SETRTS ;DONE. RTS.;.;THESE MUS
T BE AFTER THE DEFINITIONS.;.ZZ1 =LOAD-1
 ;LOAD A PROGRAM.ZZ2 =RUNR-1 ;RUN A PROG
RAM.ZZ3 =SAVE-1 ;SAVE A PROGRAM.ZZ4 =DOI
T-1 ;> CALL.ZZ5 =CHGDEV-1 ;CHANGE DEVICE
 NUMBER.ZZ6 =QUIT-1 ;LEAVE DOS SUPPORT..
END..
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL