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 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL