BIN.TO.GEOS
FILE INFORMATION
FILENAME(S): BIN.TO.GEOS
FILE TYPE(S): SEQ
FILE SIZE: 6.6K
FIRST SEEN: 2025-10-20 14:30:52
APPEARS ON: 1 disk(s)
FILE HASH
e29139928852efb0519c6e5f2482c9ebe063b5cf8dc492e2980d2c6efab453bb
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| G PD 67 | BIN.TO.GEOS | SEQ | Treasure Chest - Klaus Der Suhler | 17 | 2 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 0D 20 35 20 20 52 45 4D 20 20 43 4F 4D 4D 4F 44 |. 5 REM COMMOD| 00000010: 4F 52 45 20 54 4F 20 41 50 50 4C 45 20 43 4F 4E |ORE TO APPLE CON| 00000020: 56 45 52 53 49 4F 4E 0D 20 31 30 20 20 52 45 4D |VERSION. 10 REM| 00000030: 20 20 46 4F 52 20 47 45 4F 53 20 46 49 4C 45 53 | FOR GEOS FILES| 00000040: 0D 20 32 30 20 20 52 45 4D 20 20 20 20 42 59 20 |. 20 REM BY | 00000050: 54 45 52 52 59 20 56 41 4E 20 43 41 4D 50 0D 20 |TERRY VAN CAMP. | 00000060: 33 30 20 20 52 45 4D 20 20 20 20 20 20 20 41 55 |30 REM AU| 00000070: 47 55 53 54 20 20 31 39 38 39 0D 20 34 30 20 20 |GUST 1989. 40 | 00000080: 52 45 4D 20 0D 20 35 30 20 20 48 4F 4D 45 20 3A |REM . 50 HOME :| 00000090: 20 50 52 49 4E 54 20 0D 20 36 30 20 20 50 52 49 | PRINT . 60 PRI| 000000A0: 4E 54 20 22 49 4E 53 45 52 54 20 44 49 53 4B 20 |NT "INSERT DISK | 000000B0: 57 49 54 48 20 42 49 4E 20 46 49 4C 45 20 54 4F |WITH BIN FILE TO| 000000C0: 20 43 4F 4E 56 45 52 54 22 3A 20 50 52 49 4E 54 | CONVERT": PRINT| 000000D0: 20 22 20 20 20 20 20 20 20 49 4E 54 4F 20 43 55 | " INTO CU| 000000E0: 52 52 45 4E 54 20 44 52 49 56 45 22 0D 20 37 30 |RRENT DRIVE". 70| 000000F0: 20 20 50 52 49 4E 54 20 3A 20 50 52 49 4E 54 20 | PRINT : PRINT | 00000100: 22 50 52 45 53 53 20 41 4E 59 20 4B 45 59 20 54 |"PRESS ANY KEY T| 00000110: 4F 20 53 54 41 52 54 20 43 4F 4E 56 45 52 53 49 |O START CONVERSI| 00000120: 4F 4E 22 0D 20 38 30 20 20 47 45 54 20 41 24 3A |ON". 80 GET A$:| 00000130: 20 48 4F 4D 45 20 3A 20 50 52 49 4E 54 20 0D 20 | HOME : PRINT . | 00000140: 39 30 20 48 4D 20 3D 20 33 38 34 30 30 3A 20 52 |90 HM = 38400: R| 00000150: 45 4D 20 20 24 39 36 30 30 0D 20 31 30 30 20 4D |EM $9600. 100 M| 00000160: 4C 20 3D 20 48 4D 20 2D 20 33 38 20 2A 20 32 35 |L = HM - 38 * 25| 00000170: 36 3A 20 48 49 4D 45 4D 3A 20 4D 4C 20 2D 20 34 |6: HIMEM: ML - 4| 00000180: 20 2A 20 32 35 36 3A 20 52 45 4D 20 20 24 37 30 | * 256: REM $70| 00000190: 30 30 0D 20 31 31 30 20 45 42 20 3D 20 4D 4C 20 |00. 110 EB = ML | 000001A0: 2B 20 32 35 35 20 2D 20 33 39 3A 50 42 20 3D 20 |+ 255 - 39:PB = | 000001B0: 4D 4C 20 2B 20 32 35 36 3A 4D 42 20 3D 20 50 42 |ML + 256:MB = PB| 000001C0: 20 2B 20 32 35 36 3A 47 42 20 3D 20 4D 42 20 2B | + 256:GB = MB +| 000001D0: 20 35 31 32 3A 46 42 20 3D 20 47 42 20 2B 20 35 | 512:FB = GB + 5| 000001E0: 31 32 0D 20 31 31 35 20 20 46 4F 52 20 49 20 3D |12. 115 FOR I =| 000001F0: 20 45 42 20 54 4F 20 45 42 20 2B 20 33 38 3A 20 | EB TO EB + 38: | 00000200: 50 4F 4B 45 20 49 2C 30 3A 20 4E 45 58 54 20 0D |POKE I,0: NEXT .| 00000210: 20 31 32 30 20 20 46 4F 52 20 49 20 3D 20 4D 4C | 120 FOR I = ML| 00000220: 20 54 4F 20 4D 4C 20 2B 20 32 35 3A 20 52 45 41 | TO ML + 25: REA| 00000230: 44 20 58 3A 20 50 4F 4B 45 20 49 2C 58 3A 20 4E |D X: POKE I,X: N| 00000240: 45 58 54 20 0D 20 31 33 30 20 44 24 20 3D 20 20 |EXT . 130 D$ = | 00000250: 43 48 52 24 20 28 34 29 3A 20 50 4F 4B 45 20 4D |CHR$ (4): POKE M| 00000260: 4C 20 2B 20 31 31 2C 20 50 45 45 4B 20 28 34 38 |L + 11, PEEK (48| 00000270: 39 34 34 29 3A 20 52 45 4D 20 20 43 55 52 52 45 |944): REM CURRE| 00000280: 4E 54 20 55 4E 49 54 20 4E 55 4D 0D 20 31 34 30 |NT UNIT NUM. 140| 00000290: 20 20 44 45 46 20 20 46 4E 20 4C 42 28 58 29 20 | DEF FN LB(X) | 000002A0: 3D 20 58 20 2D 20 32 35 36 20 2A 20 20 49 4E 54 |= X - 256 * INT| 000002B0: 20 28 58 20 2F 20 32 35 36 29 0D 20 31 35 30 20 | (X / 256). 150 | 000002C0: 20 50 4F 4B 45 20 4D 4C 20 2B 20 35 2C 20 49 4E | POKE ML + 5, IN| 000002D0: 54 20 28 4D 4C 20 2F 20 32 35 36 29 3A 20 50 4F |T (ML / 256): PO| 000002E0: 4B 45 20 4D 4C 20 2B 20 31 33 2C 20 49 4E 54 20 |KE ML + 13, INT | 000002F0: 28 47 42 20 2F 20 32 35 36 29 0D 20 31 36 30 20 |(GB / 256). 160 | 00000300: 52 57 20 3D 20 31 32 38 3A 42 4C 20 3D 20 32 3A |RW = 128:BL = 2:| 00000310: 42 48 20 3D 20 30 3A 20 47 4F 53 55 42 20 32 30 |BH = 0: GOSUB 20| 00000320: 30 30 0D 20 31 37 30 20 20 49 46 20 45 52 20 3D |00. 170 IF ER =| 00000330: 20 31 20 47 4F 54 4F 20 34 35 30 30 0D 20 31 38 | 1 GOTO 4500. 18| 00000340: 30 20 20 52 45 4D 20 20 43 48 45 43 4B 20 44 49 |0 REM CHECK DI| 00000350: 53 4B 20 46 4F 52 20 23 46 49 4C 45 53 20 26 20 |SK FOR #FILES & | 00000360: 42 49 4E 0D 20 31 39 30 20 20 49 46 20 20 50 45 |BIN. 190 IF PE| 00000370: 45 4B 20 28 47 42 20 2B 20 33 37 29 20 3C 20 20 |EK (GB + 37) < | 00000380: 3E 20 31 20 54 48 45 4E 20 20 50 52 49 4E 54 20 |> 1 THEN PRINT | 00000390: 22 4F 4E 4C 59 20 4F 4E 45 20 46 49 4C 45 20 43 |"ONLY ONE FILE C| 000003A0: 41 4E 20 42 45 20 4F 4E 20 54 48 45 20 44 49 53 |AN BE ON THE DIS| 000003B0: 4B 22 3A 20 47 4F 54 4F 20 35 30 30 30 0D 20 32 |K": GOTO 5000. 2| 000003C0: 30 30 20 45 31 20 3D 20 47 42 20 2B 20 34 33 0D |00 E1 = GB + 43.| 000003D0: 20 32 31 30 20 20 49 46 20 20 50 45 45 4B 20 28 | 210 IF PEEK (| 000003E0: 45 31 20 2B 20 31 36 29 20 3C 20 20 3E 20 36 20 |E1 + 16) < > 6 | 000003F0: 54 48 45 4E 20 20 50 52 49 4E 54 20 22 4E 4F 54 |THEN PRINT "NOT| 00000400: 20 41 20 42 49 4E 20 46 49 4C 45 22 3A 20 47 4F | A BIN FILE": GO| 00000410: 54 4F 20 35 30 30 30 0D 20 32 32 30 20 20 52 45 |TO 5000. 220 RE| 00000420: 4D 20 20 4F 4B 41 59 20 54 4F 20 53 54 41 52 54 |M OKAY TO START| 00000430: 20 43 4F 4E 56 45 52 53 49 4F 4E 0D 20 32 33 30 | CONVERSION. 230| 00000440: 20 20 52 45 4D 20 20 47 45 54 20 4E 41 4D 45 20 | REM GET NAME | 00000450: 4F 46 20 42 49 4E 20 46 49 4C 45 0D 20 32 34 30 |OF BIN FILE. 240| 00000460: 20 20 44 45 46 20 20 46 4E 20 4C 4E 28 58 29 20 | DEF FN LN(X) | 00000470: 3D 20 58 20 2D 20 31 36 20 2A 20 20 49 4E 54 20 |= X - 16 * INT | 00000480: 28 58 20 2F 20 31 36 29 0D 20 32 35 30 20 4E 4C |(X / 16). 250 NL| 00000490: 20 3D 20 20 46 4E 20 4C 4E 28 20 50 45 45 4B 20 | = FN LN( PEEK | 000004A0: 28 45 31 29 29 3A 46 49 24 20 3D 20 22 22 0D 20 |(E1)):FI$ = "". | 000004B0: 32 36 30 20 20 46 4F 52 20 49 20 3D 20 31 20 54 |260 FOR I = 1 T| 000004C0: 4F 20 4E 4C 3A 46 49 24 20 3D 20 46 49 24 20 2B |O NL:FI$ = FI$ +| 000004D0: 20 20 43 48 52 24 20 28 20 50 45 45 4B 20 28 45 | CHR$ ( PEEK (E| 000004E0: 31 20 2B 20 49 29 29 3A 20 4E 45 58 54 20 0D 20 |1 + I)): NEXT . | 000004F0: 32 37 30 20 20 52 45 4D 20 20 52 45 41 44 2D 49 |270 REM READ-I| 00000500: 4E 20 43 4F 4D 4D 4F 44 4F 52 45 20 44 49 52 20 |N COMMODORE DIR | 00000510: 45 4E 54 52 59 0D 20 32 38 30 20 20 50 52 49 4E |ENTRY. 280 PRIN| 00000520: 54 20 44 24 3B 22 42 4C 4F 41 44 20 22 3B 46 49 |T D$;"BLOAD ";FI| 00000530: 24 3B 22 2C 41 22 3B 47 42 3B 22 2C 4C 34 30 22 |$;",A";GB;",L40"| 00000540: 0D 20 32 39 30 20 54 20 3D 20 20 50 45 45 4B 20 |. 290 T = PEEK | 00000550: 28 47 42 20 2B 3E B2 31 29 3A 50 5C 8E 9E 8F 99 |(GB +>.1):P\....| 00000560: 8E 9D E1 77 8E 8E 9E 8F 99 9F 9D EE 78 9E 8E 9E |...w........x...| 00000570: 89 89 8B F4 9E 89 8E 97 9E 8E EE 71 8E 8E EF EE |...........q....| 00000580: 7E 7C 9E 8E 71 78 8E 8C 9E 89 89 8E 9E 8E 9E 8E |~|..qx..........| 00000590: 9E E7 EE 7E 75 8E EF E7 8E 8E 9E 8F 99 9F 9D E1 |...~u...........| 000005A0: 77 8E 8E 9E 8F 99 99 8D EE 78 9E 8E 9E 8F 9E 97 |w........x......| 000005B0: F4 9E 89 9F 8F 8E 8E EE 71 8E E7 8E 86 9E 8E 8E |........q.......| 000005C0: 8E 8F 9E E7 EE 7E 75 8E 8E EF E9 EE 75 E7 8E 88 |.....~u.....u...| 000005D0: E8 7E 75 E5 E0 77 8E E8 70 75 EB EE 79 E7 8E E7 |.~u..w..pu..y...| 000005E0: EE 7E 79 9E E7 EE 7F EE 9E E0 71 8E E1 EE 7E 7E |.~y.......q...~~| 000005F0: 98 8D 8E EA 47 4F 54 4F 20 35 30 30 30 0D 20 33 |....GOTO 5000. 3| 00000600: 31 30 20 20 50 52 49 4E 54 20 3A 20 50 52 49 4E |10 PRINT : PRIN| 00000610: 54 20 22 43 4F 4E 56 45 52 54 49 4E 47 22 3A 20 |T "CONVERTING": | 00000620: 50 52 49 4E 54 20 3A 20 50 52 49 4E 54 20 46 49 |PRINT : PRINT FI| 00000630: 24 3A 20 50 52 49 4E 54 20 3A 20 50 52 49 4E 54 |$: PRINT : PRINT| 00000640: 20 22 50 4C 45 41 53 45 20 57 41 49 54 20 2E 2E | "PLEASE WAIT ..| 00000650: 2E 2E 22 0D 20 33 31 35 20 20 47 4F 53 55 42 20 |..". 315 GOSUB | 00000660: 31 30 30 30 0D 20 33 32 30 20 20 46 4F 52 20 49 |1000. 320 FOR I| 00000670: 20 3D 20 30 20 54 4F 20 31 35 3A 54 20 3D 20 20 | = 0 TO 15:T = | 00000680: 50 45 45 4B 20 28 47 42 20 2B 20 33 20 2B 20 49 |PEEK (GB + 3 + I| 00000690: 29 0D 20 33 33 30 20 20 49 46 20 54 20 3D 20 31 |). 330 IF T = 1| 000006A0: 36 30 20 47 4F 54 4F 20 33 35 30 0D 20 33 34 30 |60 GOTO 350. 340| 000006B0: 20 20 50 4F 4B 45 20 45 42 20 2B 20 31 20 2B 20 | POKE EB + 1 + | 000006C0: 49 2C 54 3A 20 4E 45 58 54 20 0D 20 33 35 30 20 |I,T: NEXT . 350 | 000006D0: 20 50 4F 4B 45 20 45 42 2C 34 38 20 2B 20 49 3A | POKE EB,48 + I:| 000006E0: 20 52 45 4D 20 20 53 54 4F 52 41 47 45 20 54 59 | REM STORAGE TY| 000006F0: 50 45 20 41 4E 44 20 4C 45 4E 47 54 48 0D 20 33 |PE AND LENGTH. 3| 00000700: 36 30 20 20 52 45 4D 20 20 47 45 54 20 52 45 43 |60 REM GET REC| 00000710: 4F 52 44 20 50 4E 54 52 53 0D 20 33 37 30 20 20 |ORD PNTRS. 370 | 00000720: 50 52 49 4E 54 20 44 24 3B 22 42 4C 4F 41 44 20 |PRINT D$;"BLOAD | 00000730: 22 3B 46 49 24 3B 22 2C 41 22 3B 50 42 3B 22 2C |";FI$;",A";PB;",| 00000740: 42 35 30 38 2C 4C 32 35 34 22 0D 20 33 38 30 20 |B508,L254". 380 | 00000750: 20 50 52 49 4E 54 20 44 24 3B 22 42 53 41 56 45 | PRINT D$;"BSAVE| 00000760: 20 52 45 43 42 4C 4F 43 4B 2C 41 22 3B 50 42 3B | RECBLOCK,A";PB;| 00000770: 22 2C 4C 32 35 34 0D 20 33 39 30 20 20 52 45 4D |",L254. 390 REM| 00000780: 20 20 46 4F 52 4D 41 54 20 4D 41 53 54 45 52 20 | FORMAT MASTER | 00000790: 49 4E 44 45 58 20 42 4C 4F 43 4B 0D 20 34 30 30 |INDEX BLOCK. 400| 000007A0: 20 20 50 4F 4B 45 20 4D 42 20 2B 20 31 32 37 2C | POKE MB + 127,| 000007B0: 30 3A 20 50 4F 4B 45 20 4D 42 20 2B 20 33 38 33 |0: POKE MB + 383| 000007C0: 2C 30 0D 20 34 30 35 20 20 46 4F 52 20 49 20 3D |,0. 405 FOR I =| 000007D0: 20 4D 42 20 2B 20 31 32 38 20 54 4F 20 4D 42 20 | MB + 128 TO MB | 000007E0: 2B 20 31 32 38 20 2B 20 31 32 37 3A 20 50 4F 4B |+ 128 + 127: POK| 000007F0: 45 20 49 2C 30 3A 20 4E 45 58 54 20 0D 20 34 31 |E I,0: NEXT . 41| 00000800: 30 20 20 46 4F 52 20 49 20 3D 20 4D 42 20 2B 20 |0 FOR I = MB + | 00000810: 33 38 34 20 54 4F 20 4D 42 20 2B 20 33 38 34 20 |384 TO MB + 384 | 00000820: 2B 20 31 32 37 3A 20 50 4F 4B 45 20 49 2C 30 3A |+ 127: POKE I,0:| 00000830: 20 4E 45 58 54 20 0D 20 34 32 30 20 20 47 4F 53 | NEXT . 420 GOS| 00000840: 55 42 20 31 35 30 30 3A 20 52 45 4D 20 20 53 41 |UB 1500: REM SA| 00000850: 56 45 20 4D 4F 44 49 46 49 45 44 20 48 45 41 44 |VE MODIFIED HEAD| 00000860: 45 52 20 42 4C 4B 0D 20 34 33 30 20 20 52 45 4D |ER BLK. 430 REM| 00000870: 20 20 44 49 52 20 49 4E 46 4F 20 4F 4E 20 4D 41 | DIR INFO ON MA| 00000880: 53 54 45 52 20 49 4E 44 45 58 20 26 20 48 45 41 |STER INDEX & HEA| 00000890: 44 45 52 0D 20 34 34 30 20 20 47 4F 53 55 42 20 |DER. 440 GOSUB | 000008A0: 32 30 30 30 3A 20 52 45 4D 20 20 41 4C 52 45 41 |2000: REM ALREA| 000008B0: 44 59 20 53 45 54 20 46 4F 52 20 44 49 52 20 52 |DY SET FOR DIR R| 000008C0: 45 41 44 0D 20 34 35 30 20 20 49 46 20 45 52 20 |EAD. 450 IF ER | 000008D0: 3D 20 31 20 47 4F 54 4F 20 34 35 30 30 0D 20 34 |= 1 GOTO 4500. 4| 000008E0: 36 30 20 54 20 3D 20 20 50 45 45 4B 20 28 45 31 |60 T = PEEK (E1| 000008F0: 20 2B 20 31 20 2A 20 33 39 20 2B 20 31 37 29 3A | + 1 * 39 + 17):| 00000900: 20 50 4F 4B 45 20 45 42 20 2B 20 31 37 2C 54 3A | POKE EB + 17,T:| 00000910: 20 52 45 4D 20 20 49 4E 44 45 58 20 50 4E 54 52 | REM INDEX PNTR| 00000920: 0D 20 34 37 30 20 54 20 3D 20 20 50 45 45 4B 20 |. 470 T = PEEK | 00000930: 28 45 31 20 2B 20 31 20 2A 20 33 39 20 2B 20 31 |(E1 + 1 * 39 + 1| 00000940: 38 29 3A 20 50 4F 4B 45 20 45 42 20 2B 20 31 38 |8): POKE EB + 18| 00000950: 2C 54 0D 20 34 38 30 20 54 20 3D 20 20 50 45 45 |,T. 480 T = PEE| 00000960: 4B 20 28 45 31 20 2B 20 32 20 2A 20 33 39 20 2B |K (E1 + 2 * 39 +| 00000970: 20 31 37 29 3A 20 50 4F 4B 45 20 45 42 20 2B 20 | 17): POKE EB + | 00000980: 33 31 2C 54 3A 20 52 45 4D 20 20 48 45 41 44 45 |31,T: REM HEADE| 00000990: 52 20 50 4E 54 52 0D 20 34 39 30 20 54 20 3D 20 |R PNTR. 490 T = | 000009A0: 20 50 45 45 4B 20 28 45 31 20 2B 20 32 20 2A 20 | PEEK (E1 + 2 * | 000009B0: 33 39 20 2B 20 31 38 29 3A 20 50 4F 4B 45 20 45 |39 + 18): POKE E| 000009C0: 42 20 2B 20 33 32 2C 54 3A 20 50 4F 4B 45 20 47 |B + 32,T: POKE G| 000009D0: 42 20 2B 20 33 37 2C 31 0D 20 35 33 30 20 20 52 |B + 37,1. 530 R| 000009E0: 45 4D 20 20 52 45 57 52 49 54 45 20 52 45 43 4F |EM REWRITE RECO| 000009F0: 52 44 53 0D 20 35 34 30 20 20 52 45 4D 20 20 43 |RDS. 540 REM C| 00000A00: 4C 52 20 44 49 52 20 45 4E 54 52 49 45 53 0D 20 |LR DIR ENTRIES. | 00000A10: 35 35 30 20 20 50 4F 4B 45 20 45 31 20 2B 20 33 |550 POKE E1 + 3| 00000A20: 39 2C 30 3A 20 50 4F 4B 45 20 45 31 20 2B 20 32 |9,0: POKE E1 + 2| 00000A30: 20 2A 20 33 39 2C 30 0D 20 35 36 30 20 52 57 20 | * 39,0. 560 RW | 00000A40: 3D 20 31 32 39 3A 20 47 4F 53 55 42 20 32 30 30 |= 129: GOSUB 200| 00000A50: 30 0D 20 35 37 30 20 20 49 46 20 45 52 20 3D 20 |0. 570 IF ER = | 00000A60: 31 20 47 4F 54 4F 20 34 35 30 30 0D 20 35 38 30 |1 GOTO 4500. 580| 00000A70: 20 43 52 20 3D 20 30 3A 42 20 3D 20 33 20 2A 20 | CR = 0:B = 3 * | 00000A80: 32 35 34 3A 54 42 20 3D 20 32 3A 54 59 20 3D 20 |254:TB = 2:TY = | 00000A90: 30 0D 20 35 39 30 20 20 46 4F 52 20 52 20 3D 20 |0. 590 FOR R = | 00000AA0: 31 20 54 4F 20 31 31 0D 20 36 30 30 20 20 47 4F |1 TO 11. 600 GO| 00000AB0: 53 55 42 20 33 35 30 30 3A 20 52 45 4D 20 20 47 |SUB 3500: REM G| 00000AC0: 45 54 20 52 45 43 4F 52 44 20 4C 45 4E 47 54 48 |ET RECORD LENGTH| 00000AD0: 0D 20 36 31 30 20 20 49 46 20 52 4C 20 3D 20 30 |. 610 IF RL = 0| 00000AE0: 20 54 48 45 4E 20 20 47 4F 53 55 42 20 33 30 30 | THEN GOSUB 300| 00000AF0: 30 3A 20 47 4F 54 4F 20 32 35 30 30 3A 20 52 45 |0: GOTO 2500: RE| 00000B00: 4D 20 20 4E 4F 20 4D 4F 52 45 20 52 45 43 4F 52 |M NO MORE RECOR| 00000B10: 44 53 0D 20 36 32 30 20 20 49 46 20 4C 20 3E 20 |DS. 620 IF L > | 00000B20: 38 20 2A 20 34 20 2A 20 32 35 36 20 54 48 45 4E |8 * 4 * 256 THEN| 00000B30: 20 20 50 52 49 4E 54 20 22 52 45 43 4F 52 44 20 | PRINT "RECORD | 00000B40: 54 4F 4F 20 4C 4F 4E 47 22 3A 20 47 4F 54 4F 20 |TOO LONG": GOTO | 00000B50: 35 30 30 30 0D 20 36 33 30 20 20 47 4F 53 55 42 |5000. 630 GOSUB| 00000B60: 20 34 30 30 30 3A 20 52 45 4D 20 20 52 45 57 52 | 4000: REM REWR| 00000B70: 49 54 45 20 52 45 43 4F 52 44 0D 20 36 34 30 20 |ITE RECORD. 640 | 00000B80: 43 52 20 3D 20 43 52 20 2B 20 31 3A 42 20 3D 20 |CR = CR + 1:B = | 00000B90: 42 20 2B 20 4C 3A 20 4E 45 58 54 20 52 0D 20 36 |B + L: NEXT R. 6| 00000BA0: 35 30 20 20 47 4F 53 55 42 20 33 30 30 30 3A 20 |50 GOSUB 3000: | 00000BB0: 52 45 4D 20 20 47 45 54 20 44 49 52 20 49 4E 46 |REM GET DIR INF| 00000BC0: 4F 20 26 20 43 4C 52 20 45 4E 54 52 49 45 53 0D |O & CLR ENTRIES.| 00000BD0: 20 36 35 35 20 20 49 46 20 45 52 20 3D 20 31 20 | 655 IF ER = 1 | 00000BE0: 47 4F 54 4F 20 34 35 30 30 0D 20 36 36 30 20 20 |GOTO 4500. 660 | 00000BF0: 47 4F 54 4F 20 35 39 30 3A 20 52 45 4D 20 20 53 |GOTO 590: REM S| 00000C00: 54 41 52 54 20 4E 45 58 54 20 31 31 20 52 45 43 |TART NEXT 11 REC| 00000C10: 4F 52 44 53 0D 20 31 30 30 30 20 20 56 54 41 42 |ORDS. 1000 VTAB| 00000C20: 20 31 39 3A 20 48 54 41 42 20 31 36 0D 20 31 30 | 19: HTAB 16. 10| 00000C30: 31 30 20 20 50 52 49 4E 54 20 22 41 20 53 68 61 |10 PRINT "A Sha| 00000C40: 72 65 77 61 72 65 20 50 72 6F 67 72 61 6D 22 0D |reware Program".| 00000C50: 20 31 30 32 30 20 20 50 52 49 4E 54 20 20 54 41 | 1020 PRINT TA| 00000C60: 42 28 20 32 32 29 3B 22 62 79 22 3A 20 50 52 49 |B( 22);"by": PRI| 00000C70: 4E 54 20 0D 20 31 30 33 30 20 20 48 54 41 42 20 |NT . 1030 HTAB | 00000C80: 31 36 3A 20 50 52 49 4E 54 20 22 54 65 72 72 79 |16: PRINT "Terry| 00000C90: 20 56 61 6E 20 43 61 6D 70 22 0D 20 31 30 34 30 | Van Camp". 1040| 00000CA0: 20 20 48 54 41 42 20 31 36 3A 20 50 52 49 4E 54 | HTAB 16: PRINT| 00000CB0: 20 22 31 36 36 30 34 20 43 79 70 72 65 73 73 22 | "16604 Cypress"| 00000CC0: 0D 20 31 30 35 30 20 20 48 54 41 42 20 31 36 3A |. 1050 HTAB 16:| 00000CD0: 20 50 52 49 4E 54 20 22 53 74 72 6F 6E 67 73 76 | PRINT "Strongsv| 00000CE0: 69 6C 6C 65 2C 20 4F 68 69 6F 20 20 34 34 31 33 |ille, Ohio 4413| 00000CF0: 36 22 3B 0D 20 31 30 36 30 20 20 52 45 54 55 52 |6";. 1060 RETUR| 00000D00: 4E 20 0D 20 31 35 30 30 20 20 52 45 4D 20 20 48 |N . 1500 REM H| 00000D10: 45 41 44 45 52 20 53 55 42 52 4F 55 54 49 4E 45 |EADER SUBROUTINE| 00000D20: 0D 20 31 35 31 30 20 20 50 52 49 4E 54 20 44 24 |. 1510 PRINT D$| 00000D30: 3B 22 42 4C 4F 41 44 20 22 3B 46 49 24 3B 22 2C |;"BLOAD ";FI$;",| 00000D40: 41 22 3B 47 42 20 2B 20 32 3B 22 2C 42 32 35 34 |A";GB + 2;",B254| 00000D50: 2C 4C 32 35 34 22 0D 20 31 35 32 30 20 20 50 4F |,L254". 1520 PO| 00000D60: 4B 45 20 47 42 2C 30 3A 20 50 4F 4B 45 20 47 42 |KE GB,0: POKE GB| 00000D70: 20 2B 20 31 2C 30 3A 20 50 4F 4B 45 20 47 42 20 | + 1,0: POKE GB | 00000D80: 2B 20 36 38 2C 50 54 3A 20 50 4F 4B 45 20 47 42 |+ 68,PT: POKE GB| 00000D90: 20 2B 20 36 39 2C 47 54 0D 20 31 35 33 30 20 20 | + 69,GT. 1530 | 00000DA0: 50 52 49 4E 54 20 44 24 3B 22 42 53 41 56 45 20 |PRINT D$;"BSAVE | 00000DB0: 48 45 41 44 45 52 2C 41 22 3B 47 42 3B 22 2C 4C |HEADER,A";GB;",L| 00000DC0: 32 35 36 22 0D 20 31 35 34 30 20 20 52 45 54 55 |256". 1540 RETU| 00000DD0: 52 4E 20 0D 20 32 30 30 30 20 20 52 45 4D 20 20 |RN . 2000 REM | 00000DE0: 42 4C 4B 20 52 45 41 44 20 4F 52 20 57 52 49 54 |BLK READ OR WRIT| 00000DF0: 45 20 53 55 42 52 4F 55 54 49 4E 45 0D 20 32 30 |E SUBROUTINE. 20| 00000E00: 31 30 20 20 50 4F 4B 45 20 4D 4C 20 2B 20 31 34 |10 POKE ML + 14| 00000E10: 2C 42 4C 3A 20 50 4F 4B 45 20 4D 4C 20 2B 20 31 |,BL: POKE ML + 1| 00000E20: 35 2C 42 48 0D 20 32 30 32 30 20 20 50 4F 4B 45 |5,BH. 2020 POKE| 00000E30: 20 4D 4C 20 2B 20 33 2C 52 57 3A 20 43 41 4C 4C | ML + 3,RW: CALL| 00000E40: 20 4D 4C 0D 20 32 30 33 30 20 20 49 46 20 20 50 | ML. 2030 IF P| 00000E50: 45 45 4B 20 28 38 29 20 3C 20 20 3E 20 30 20 54 |EEK (8) < > 0 T| 00000E60: 48 45 4E 20 45 52 20 3D 20 31 3A 20 52 45 54 55 |HEN ER = 1: RETU| 00000E70: 52 4E 20 0D 20 32 30 34 30 20 45 52 20 3D 20 30 |RN . 2040 ER = 0| 00000E80: 3A 20 52 45 54 55 52 4E 20 0D 20 32 35 30 30 20 |: RETURN . 2500 | 00000E90: 20 52 45 4D 20 20 41 4C 4C 20 52 45 43 4F 52 44 | REM ALL RECORD| 00000EA0: 53 20 43 4F 4E 56 45 52 54 45 44 0D 20 32 35 30 |S CONVERTED. 250| 00000EB0: 35 20 20 49 46 20 45 52 20 3D 20 31 20 47 4F 54 |5 IF ER = 1 GOT| 00000EC0: 4F 20 34 35 30 30 0D 20 32 35 31 30 20 20 52 45 |O 4500. 2510 RE| 00000ED0: 4D 20 20 43 4F 4D 50 4C 45 54 45 20 4D 41 53 54 |M COMPLETE MAST| 00000EE0: 45 52 20 49 4E 44 45 58 20 26 20 44 49 52 20 45 |ER INDEX & DIR E| 00000EF0: 4E 54 52 59 2D 2D 20 26 20 57 52 49 54 45 2D 4F |NTRY-- & WRITE-O| 00000F00: 55 54 0D 20 32 35 32 30 20 54 4C 20 3D 20 20 46 |UT. 2520 TL = F| 00000F10: 4E 20 4C 42 28 54 59 29 3A 54 48 20 3D 20 20 49 |N LB(TY):TH = I| 00000F20: 4E 54 20 28 54 59 20 2F 20 32 35 36 29 0D 20 32 |NT (TY / 256). 2| 00000F30: 35 32 35 20 20 49 46 20 54 48 20 3E 20 32 35 35 |525 IF TH > 255| 00000F40: 20 54 48 45 4E 20 54 48 20 3D 20 32 35 35 0D 20 | THEN TH = 255. | 00000F50: 32 35 33 30 20 20 50 4F 4B 45 20 4D 42 20 2B 20 |2530 POKE MB + | 00000F60: 32 35 35 2C 54 4C 3A 20 50 4F 4B 45 20 4D 42 20 |255,TL: POKE MB | 00000F70: 2B 20 35 31 31 2C 54 48 3A 20 52 45 4D 20 20 4C |+ 511,TH: REM L| 00000F80: 45 4E 47 54 48 20 4F 46 20 46 49 4C 45 0D 20 32 |ENGTH OF FILE. 2| 00000F90: 35 34 30 20 20 50 4F 4B 45 20 45 42 20 2B 20 32 |540 POKE EB + 2| 00000FA0: 31 2C 54 4C 3A 20 50 4F 4B 45 20 45 42 20 2B 20 |1,TL: POKE EB + | 00000FB0: 32 32 2C 54 48 0D 20 32 35 35 30 20 54 4C 20 3D |22,TH. 2550 TL =| 00000FC0: 20 20 46 4E 20 4C 42 28 54 42 29 3A 54 48 20 3D | FN LB(TB):TH =| 00000FD0: 20 20 49 4E 54 20 28 54 42 20 2F 20 32 35 36 29 | INT (TB / 256)| 00000FE0: 3A 20 52 45 4D 20 20 23 42 4C 4B 53 20 49 4E 20 |: REM #BLKS IN | 00000FF0: 46 49 4C 45 0D 20 32 35 36 30 20 20 50 4F 4B 45 |FILE. 2560 POKE| 00001000: 20 45 42 20 2B 20 31 39 2C 54 4C 3A 20 50 4F 4B | EB + 19,TL: POK| 00001010: 45 20 45 42 20 2B 20 32 30 2C 54 48 0D 20 32 35 |E EB + 20,TH. 25| 00001020: 37 30 20 20 50 4F 4B 45 20 45 42 20 2B 20 31 36 |70 POKE EB + 16| 00001030: 2C 47 54 3A 20 52 45 4D 20 20 46 49 4C 45 20 54 |,GT: REM FILE T| 00001040: 59 50 45 20 43 4F 44 45 0D 20 32 35 38 30 20 20 |YPE CODE. 2580 | 00001050: 50 52 49 4E 54 20 44 24 3B 22 44 45 4C 45 54 45 |PRINT D$;"DELETE| 00001060: 20 22 3B 46 49 24 3A 20 52 45 4D 20 20 44 45 4C | ";FI$: REM DEL| 00001070: 45 54 45 20 42 49 4E 20 46 49 4C 45 0D 20 32 35 |ETE BIN FILE. 25| 00001080: 39 30 20 20 46 4F 52 20 49 20 3D 20 30 20 54 4F |90 FOR I = 0 TO| 00001090: 20 32 32 3A 20 50 4F 4B 45 20 45 31 20 2B 20 49 | 22: POKE E1 + I| 000010A0: 2C 20 50 45 45 4B 20 28 45 42 20 2B 20 49 29 3A |, PEEK (EB + I):| 000010B0: 20 4E 45 58 54 20 0D 20 32 36 30 30 20 20 50 4F | NEXT . 2600 PO| 000010C0: 4B 45 20 45 31 20 2B 20 32 38 2C 30 3A 20 50 4F |KE E1 + 28,0: PO| 000010D0: 4B 45 20 45 31 20 2B 20 32 39 2C 30 3A 20 50 4F |KE E1 + 29,0: PO| 000010E0: 4B 45 20 45 31 20 2B 20 33 30 2C 41 43 0D 20 32 |KE E1 + 30,AC. 2| 000010F0: 36 31 30 20 20 50 4F 4B 45 20 45 31 20 2B 20 33 |610 POKE E1 + 3| 00001100: 31 2C 20 50 45 45 4B 20 28 45 42 20 2B 20 33 31 |1, PEEK (EB + 31| 00001110: 29 3A 20 50 4F 4B 45 20 45 31 20 2B 20 33 32 2C |): POKE E1 + 32,| 00001120: 20 50 45 45 4B 20 28 45 42 20 2B 20 33 32 29 0D | PEEK (EB + 32).| 00001130: 20 32 36 32 30 20 20 50 4F 4B 45 20 47 42 20 2B | 2620 POKE GB +| 00001140: 20 33 37 2C 31 3A 20 47 4F 53 55 42 20 32 30 30 | 37,1: GOSUB 200| 00001150: 30 3A 20 52 45 4D 20 20 57 52 49 54 45 20 44 49 |0: REM WRITE DI| 00001160: 52 45 43 54 4F 52 59 0D 20 32 36 33 30 20 20 49 |RECTORY. 2630 I| 00001170: 46 20 45 52 20 3D 20 31 20 47 4F 54 4F 20 34 35 |F ER = 1 GOTO 45| 00001180: 30 30 0D 20 32 36 34 30 20 20 52 45 4D 20 20 57 |00. 2640 REM W| 00001190: 52 49 54 45 2D 4F 55 54 20 4D 41 53 54 45 52 20 |RITE-OUT MASTER | 000011A0: 49 4E 44 45 58 20 42 4C 4B 0D 20 32 36 35 30 20 |INDEX BLK. 2650 | 000011B0: 54 4C 20 3D 20 20 46 4E 20 4C 42 28 4D 42 29 3A |TL = FN LB(MB):| 000011C0: 54 48 20 3D 20 20 49 4E 54 20 28 4D 42 20 2F 20 |TH = INT (MB / | 000011D0: 32 35 36 29 0D 20 32 36 36 30 20 20 50 4F 4B 45 |256). 2660 POKE| 000011E0: 20 4D 4C 20 2B 20 31 32 2C 54 4C 3A 20 50 4F 4B | ML + 12,TL: POK| 000011F0: 45 20 4D 4C 20 2B 20 31 33 2C 54 48 0D 20 32 36 |E ML + 13,TH. 26| 00001200: 37 30 20 42 4C 20 3D 20 20 50 45 45 4B 20 28 45 |70 BL = PEEK (E| 00001210: 42 20 2B 20 31 37 29 3A 42 48 20 3D 20 20 50 45 |B + 17):BH = PE| 00001220: 45 4B 20 28 45 42 20 2B 20 31 38 29 0D 20 32 36 |EK (EB + 18). 26| 00001230: 38 30 20 20 47 4F 53 55 42 20 32 30 30 30 0D 20 |80 GOSUB 2000. | 00001240: 32 36 39 30 20 20 49 46 20 45 52 20 3D 20 31 20 |2690 IF ER = 1 | 00001250: 47 4F 54 4F 20 34 35 30 30 0D 20 32 37 30 30 20 |GOTO 4500. 2700 | 00001260: 20 50 52 49 4E 54 20 3A 20 50 52 49 4E 54 20 22 | PRINT : PRINT "| 00001270: 44 4F 4E 45 21 22 3A 20 47 4F 54 4F 20 35 30 30 |DONE!": GOTO 500| 00001280: 30 0D 20 33 30 30 30 20 20 52 45 4D 20 20 44 49 |0. 3000 REM DI| 00001290: 52 20 43 4C 45 41 4E 55 50 20 53 55 42 52 4F 55 |R CLEANUP SUBROU| 000012A0: 54 49 4E 45 0D 20 33 30 31 30 20 20 49 46 20 52 |TINE. 3010 IF R| 000012B0: 4C 20 3D 20 30 20 41 4E 44 20 52 20 3D 20 31 20 |L = 0 AND R = 1 | 000012C0: 54 48 45 4E 20 20 52 45 54 55 52 4E 20 0D 20 33 |THEN RETURN . 3| 000012D0: 30 31 35 20 20 50 4F 4B 45 20 4D 4C 20 2B 20 31 |015 POKE ML + 1| 000012E0: 32 2C 20 46 4E 20 4C 42 28 47 42 29 3A 20 50 4F |2, FN LB(GB): PO| 000012F0: 4B 45 20 4D 4C 20 2B 20 31 33 2C 20 49 4E 54 20 |KE ML + 13, INT | 00001300: 28 47 42 20 2F 20 32 35 36 29 3A 42 4C 20 3D 20 |(GB / 256):BL = | 00001310: 32 3A 42 48 20 3D 20 30 0D 20 33 30 32 30 20 52 |2:BH = 0. 3020 R| 00001320: 57 20 3D 20 31 32 38 3A 20 47 4F 53 55 42 20 32 |W = 128: GOSUB 2| 00001330: 30 30 30 3A 20 52 45 4D 20 20 42 4C 4B 20 23 32 |000: REM BLK #2| 00001340: 20 49 4E 20 47 42 0D 20 33 30 32 35 20 20 49 46 | IN GB. 3025 IF| 00001350: 20 45 52 20 3D 20 31 20 54 48 45 4E 20 20 52 45 | ER = 1 THEN RE| 00001360: 54 55 52 4E 20 0D 20 33 30 33 30 20 20 46 4F 52 |TURN . 3030 FOR| 00001370: 20 49 20 3D 20 31 20 54 4F 20 52 20 2D 20 31 3A | I = 1 TO R - 1:| 00001380: 45 53 20 3D 20 45 31 20 2B 20 49 20 2A 20 33 39 |ES = E1 + I * 39| 00001390: 3A 20 52 45 4D 20 20 45 53 20 3D 20 45 4E 54 52 |: REM ES = ENTR| 000013A0: 59 20 53 54 41 52 54 0D 20 33 30 34 30 20 42 4C |Y START. 3040 BL| 000013B0: 20 3D 20 20 50 45 45 4B 20 28 45 53 20 2B 20 31 | = PEEK (ES + 1| 000013C0: 37 29 3A 42 48 20 3D 20 20 50 45 45 4B 20 28 45 |7):BH = PEEK (E| 000013D0: 53 20 2B 20 31 38 29 0D 20 33 30 35 30 20 20 50 |S + 18). 3050 P| 000013E0: 4F 4B 45 20 4D 4C 20 2B 20 31 32 2C 20 46 4E 20 |OKE ML + 12, FN | 000013F0: 4C 42 28 46 42 29 3A 20 50 4F 4B 45 20 4D 4C 20 |LB(FB): POKE ML | 00001400: 2B 20 31 33 2C 20 49 4E 54 20 28 46 42 20 2F 20 |+ 13, INT (FB / | 00001410: 32 35 36 29 0D 20 33 30 36 30 20 52 57 20 3D 20 |256). 3060 RW = | 00001420: 31 32 38 3A 20 47 4F 53 55 42 20 32 30 30 30 3A |128: GOSUB 2000:| 00001430: 20 52 45 4D 20 20 52 45 41 44 2D 49 4E 20 49 4E | REM READ-IN IN| 00001440: 44 45 58 20 42 4C 4B 20 46 4F 52 20 52 45 43 4F |DEX BLK FOR RECO| 00001450: 52 44 0D 20 33 30 37 30 20 20 49 46 20 45 52 20 |RD. 3070 IF ER | 00001460: 3D 20 31 20 54 48 45 4E 20 20 52 45 54 55 52 4E |= 1 THEN RETURN| 00001470: 20 0D 20 33 30 38 30 20 54 42 20 3D 20 54 42 20 | . 3080 TB = TB | 00001480: 2B 20 20 50 45 45 4B 20 28 45 53 20 2B 20 31 39 |+ PEEK (ES + 19| 00001490: 29 20 2B 20 32 35 36 20 2A 20 20 50 45 45 4B 20 |) + 256 * PEEK | 000014A0: 28 45 53 20 2B 20 32 30 29 0D 20 33 30 39 30 20 |(ES + 20). 3090 | 000014B0: 54 4C 20 3D 20 20 50 45 45 4B 20 28 45 53 20 2B |TL = PEEK (ES +| 000014C0: 20 32 31 29 3A 54 48 20 3D 20 20 50 45 45 4B 20 | 21):TH = PEEK | 000014D0: 28 45 53 20 2B 20 32 32 29 0D 20 33 31 30 30 20 |(ES + 22). 3100 | 000014E0: 54 59 20 3D 20 54 59 20 2B 20 54 4C 20 2B 20 32 |TY = TY + TL + 2| 000014F0: 35 36 20 2A 20 54 48 0D 20 33 31 31 30 20 20 50 |56 * TH. 3110 P| 00001500: 4F 4B 45 20 46 42 20 2B 20 32 35 35 2C 54 4C 3A |OKE FB + 255,TL:| 00001510: 20 50 4F 4B 45 20 46 42 20 2B 20 35 31 31 2C 54 | POKE FB + 511,T| 00001520: 48 3A 20 52 45 4D 20 20 46 49 4C 45 20 4C 45 4E |H: REM FILE LEN| 00001530: 47 54 48 0D 20 33 31 31 35 20 52 45 24 20 3D 20 |GTH. 3115 RE$ = | 00001540: 22 22 3A 20 46 4F 52 20 48 20 3D 20 45 53 20 2B |"": FOR H = ES +| 00001550: 20 35 20 54 4F 20 45 53 20 2B 20 37 3A 54 20 3D | 5 TO ES + 7:T =| 00001560: 20 20 50 45 45 4B 20 28 48 29 0D 20 33 31 32 30 | PEEK (H). 3120| 00001570: 20 20 49 46 20 54 20 3D 20 30 20 47 4F 54 4F 20 | IF T = 0 GOTO | 00001580: 33 31 33 30 0D 20 33 31 32 35 20 52 45 24 20 3D |3130. 3125 RE$ =| 00001590: 20 52 45 24 20 2B 20 20 43 48 52 24 20 28 54 29 | RE$ + CHR$ (T)| 000015A0: 3A 20 4E 45 58 54 20 48 0D 20 33 31 33 30 20 52 |: NEXT H. 3130 R| 000015B0: 45 20 3D 20 20 56 41 4C 20 28 52 45 24 29 0D 20 |E = VAL (RE$). | 000015C0: 33 31 33 35 20 20 50 4F 4B 45 20 4D 42 20 2B 20 |3135 POKE MB + | 000015D0: 52 45 2C 42 4C 3A 20 50 4F 4B 45 20 4D 42 20 2B |RE,BL: POKE MB +| 000015E0: 20 32 35 36 20 2B 20 52 45 2C 42 48 3A 20 52 45 | 256 + RE,BH: RE| 000015F0: 4D 20 20 50 4E 54 52 20 54 4F 20 52 45 43 4F 52 |M PNTR TO RECOR| 00001600: 44 20 49 4E 44 45 58 20 4F 46 20 42 4C 4B 53 0D |D INDEX OF BLKS.| 00001610: 20 33 31 34 30 20 52 57 20 3D 20 31 32 39 3A 20 | 3140 RW = 129: | 00001620: 47 4F 53 55 42 20 32 30 30 30 0D 20 33 31 35 30 |GOSUB 2000. 3150| 00001630: 20 20 49 46 20 45 52 20 3D 20 31 20 54 48 45 4E | IF ER = 1 THEN| 00001640: 20 20 52 45 54 55 52 4E 20 0D 20 33 31 36 30 20 | RETURN . 3160 | 00001650: 20 50 4F 4B 45 20 45 53 2C 30 3A 20 4E 45 58 54 | POKE ES,0: NEXT| 00001660: 20 49 0D 20 33 31 36 35 20 20 50 4F 4B 45 20 4D | I. 3165 POKE M| 00001670: 4C 20 2B 20 31 32 2C 20 46 4E 20 4C 42 28 47 42 |L + 12, FN LB(GB| 00001680: 29 3A 20 50 4F 4B 45 20 4D 4C 20 2B 20 31 33 2C |): POKE ML + 13,| 00001690: 20 49 4E 54 20 28 47 42 20 2F 20 32 35 36 29 0D | INT (GB / 256).| 000016A0: 20 33 31 37 30 20 20 50 4F 4B 45 20 47 42 20 2B | 3170 POKE GB +| 000016B0: 20 33 37 2C 31 3A 42 4C 20 3D 20 32 3A 42 48 20 | 37,1:BL = 2:BH | 000016C0: 3D 20 30 3A 52 57 20 3D 20 31 32 39 3A 20 47 4F |= 0:RW = 129: GO| 000016D0: 53 55 42 20 32 30 30 30 3A 20 52 45 4D 20 20 52 |SUB 2000: REM R| 000016E0: 45 57 52 49 54 45 20 44 49 52 45 43 54 4F 52 59 |EWRITE DIRECTORY| 000016F0: 0D 20 33 31 38 30 20 20 52 45 54 55 52 4E 20 0D |. 3180 RETURN .| 00001700: 20 33 35 30 30 20 20 52 45 4D 20 20 52 45 43 4F | 3500 REM RECO| 00001710: 52 44 20 4C 45 4E 47 54 48 20 53 55 42 52 4F 55 |RD LENGTH SUBROU| 00001720: 54 49 4E 45 0D 20 33 35 31 30 20 20 49 46 20 43 |TINE. 3510 IF C| 00001730: 52 20 3D 20 31 32 37 20 54 48 45 4E 20 52 4C 20 |R = 127 THEN RL | 00001740: 3D 20 30 3A 20 52 45 54 55 52 4E 20 0D 20 33 35 |= 0: RETURN . 35| 00001750: 32 30 20 53 43 20 3D 20 20 50 45 45 4B 20 28 50 |20 SC = PEEK (P| 00001760: 42 20 2B 20 43 52 20 2A 20 32 29 0D 20 33 35 33 |B + CR * 2). 353| 00001770: 30 20 20 49 46 20 53 43 20 3D 20 30 20 54 48 45 |0 IF SC = 0 THE| 00001780: 4E 20 54 20 3D 20 20 50 45 45 4B 20 28 50 42 20 |N T = PEEK (PB | 00001790: 2B 20 43 52 20 2A 20 32 20 2B 20 31 29 3A 20 50 |+ CR * 2 + 1): P| 000017A0: 4F 4B 45 20 4D 42 20 2B 20 43 52 2C 54 3A 20 50 |OKE MB + CR,T: P| 000017B0: 4F 4B 45 20 4D 42 20 2B 20 32 35 36 20 2B 20 43 |OKE MB + 256 + C| 000017C0: 52 2C 54 3A 43 52 20 3D 20 43 52 20 2B 20 31 3A |R,T:CR = CR + 1:| 000017D0: 20 47 4F 54 4F 20 33 35 30 30 0D 20 33 35 34 30 | GOTO 3500. 3540| 000017E0: 20 4C 20 3D 20 53 43 20 2A 20 32 35 34 0D 20 33 | L = SC * 254. 3| 000017F0: 35 35 30 20 52 4C 20 3D 20 28 53 43 20 2D 20 31 |550 RL = (SC - 1| 00001800: 29 20 2A 20 32 35 34 20 2B 20 20 50 45 45 4B 20 |) * 254 + PEEK | 00001810: 28 50 42 20 2B 20 43 52 20 2A 20 32 20 2B 20 31 |(PB + CR * 2 + 1| 00001820: 29 0D 20 33 35 36 30 20 20 52 45 54 55 52 4E 20 |). 3560 RETURN | 00001830: 0D 20 34 30 30 30 20 20 52 45 4D 20 20 52 45 57 |. 4000 REM REW| 00001840: 52 49 54 45 20 53 55 42 52 4F 55 54 49 4E 45 0D |RITE SUBROUTINE.| 00001850: 20 34 30 31 30 20 20 50 52 49 4E 54 20 44 24 3B | 4010 PRINT D$;| 00001860: 22 42 4C 4F 41 44 20 22 3B 46 49 24 3B 22 2C 41 |"BLOAD ";FI$;",A| 00001870: 22 3B 46 42 3B 22 2C 42 22 3B 42 3B 22 2C 4C 22 |";FB;",B";B;",L"| 00001880: 3B 4C 0D 20 34 30 31 35 20 54 20 3D 20 52 4C 20 |;L. 4015 T = RL | 00001890: 2D 20 31 0D 20 34 30 32 30 20 20 49 46 20 54 20 |- 1. 4020 IF T | 000018A0: 3C 20 35 31 32 20 4F 52 20 54 20 3D 20 35 31 32 |< 512 OR T = 512| 000018B0: 20 54 48 45 4E 20 54 20 3D 20 35 31 34 0D 20 34 | THEN T = 514. 4| 000018C0: 30 33 30 20 20 50 52 49 4E 54 20 44 24 3B 22 42 |030 PRINT D$;"B| 000018D0: 53 41 56 45 20 54 45 4D 50 22 3B 43 52 3B 22 2C |SAVE TEMP";CR;",| 000018E0: 41 22 3B 46 42 3B 22 2C 4C 22 3B 54 0D 20 34 30 |A";FB;",L";T. 40| 000018F0: 34 30 20 20 52 45 54 55 52 4E 20 0D 20 34 35 30 |40 RETURN . 450| 00001900: 30 20 20 49 4E 56 45 52 53 45 20 3A 20 50 52 49 |0 INVERSE : PRI| 00001910: 4E 54 20 22 44 49 53 4B 20 49 2F 4F 20 45 52 52 |NT "DISK I/O ERR| 00001920: 4F 52 22 3A 20 4E 4F 52 4D 41 4C 20 0D 20 35 30 |OR": NORMAL . 50| 00001930: 30 30 20 20 52 45 4D 20 20 45 58 49 54 20 52 4F |00 REM EXIT RO| 00001940: 55 54 49 4E 45 0D 20 35 30 31 30 20 20 48 49 4D |UTINE. 5010 HIM| 00001950: 45 4D 3A 20 48 4D 0D 20 35 30 32 30 20 20 45 4E |EM: HM. 5020 EN| 00001960: 44 20 0D 20 36 30 30 30 20 20 52 45 4D 20 20 4D |D . 6000 REM M| 00001970: 4C 20 52 4F 55 54 49 4E 45 20 28 53 45 54 20 46 |L ROUTINE (SET F| 00001980: 4F 52 20 52 45 41 44 20 4F 46 20 44 49 52 20 49 |OR READ OF DIR I| 00001990: 4E 54 4F 20 47 42 29 0D 20 36 30 31 30 20 20 44 |NTO GB). 6010 D| 000019A0: 41 54 41 20 20 33 32 2C 30 2C 31 39 31 2C 31 32 |ATA 32,0,191,12| 000019B0: 38 2C 31 30 2C 31 31 32 2C 31 34 34 2C 38 2C 31 |8,10,112,144,8,1| 000019C0: 37 36 2C 31 31 2C 33 2C 39 36 2C 30 2C 31 31 36 |76,11,3,96,0,116| 000019D0: 2C 32 2C 30 0D 20 36 30 32 30 20 20 44 41 54 41 |,2,0. 6020 DATA| 000019E0: 20 20 31 36 39 2C 30 2C 31 33 33 2C 38 2C 39 36 | 169,0,133,8,96| 000019F0: 2C 31 36 39 2C 31 2C 31 33 33 2C 38 2C 39 36 0D |,169,1,133,8,96.| 00001A00: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A |................| 00001A10: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A |................| 00001A20: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A |................| 00001A30: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A |................| 00001A40: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A |................| 00001A50: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A |................| 00001A60: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A |................| 00001A70: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A |................|
. 5 REM COMMODORE TO APPLE CONVERSION. 10 REM FOR GEOS FILES. 20 REM BY TERRY VAN CAMP. 30 REM AUGUST 19 89. 40 REM . 50 HOME : PRINT . 60 PRI NT "INSERT DISK WITH BIN FILE TO CONVERT ": PRINT " INTO CURRENT DRIVE". 70 PRINT : PRINT "PRESS ANY KEY TO START CONVERSION". 80 GET A$: HOME : PRINT . 90 HM = 38400: REM $9600. 100 ML = HM - 38 * 256: HIMEM: ML - 4 * 256: REM $70 00. 110 EB = ML + 255 - 39:PB = ML + 256 :MB = PB + 256:GB = MB + 512:FB = GB + 5 12. 115 FOR I = EB TO EB + 38: POKE I,0 : NEXT . 120 FOR I = ML TO ML + 25: REA D X: POKE I,X: NEXT . 130 D$ = CHR$ (4) : POKE ML + 11, PEEK (48944): REM CURRE NT UNIT NUM. 140 DEF FN LB(X) = X - 25 6 * INT (X / 256). 150 POKE ML + 5, IN T (ML / 256): POKE ML + 13, INT (GB / 25 6). 160 RW = 128:BL = 2:BH = 0: GOSUB 20 00. 170 IF ER = 1 GOTO 4500. 180 REM CHECK DISK FOR #FILES & BIN. 190 IF PE EK (GB + 37) < > 1 THEN PRINT "ONLY ON E FILE CAN BE ON THE DISK": GOTO 5000. 2 00 E1 = GB + 43. 210 IF PEEK (E1 + 16) < > 6 THEN PRINT "NOT A BIN FILE": GO TO 5000. 220 REM OKAY TO START CONVERS ION. 230 REM GET NAME OF BIN FILE. 240 DEF FN LN(X) = X - 16 * INT (X / 16) . 250 NL = FN LN( PEEK (E1)):FI$ = "". 260 FOR I = 1 TO NL:FI$ = FI$ + CHR$ ( PEEK (E1 + I)): NEXT . 270 REM READ-I N COMMODORE DIR ENTRY. 280 PRINT D$;"BL OAD ";FI$;",A";GB;",L40". 290 T = PEEK (GB +>.1):P\.......W........X........... ...Q....~|..QX.............~U........... W........X..............Q............~U. ....U....~U..W..PU..Y....~Y......Q...~~ ....GOTO 5000. 310 PRINT : PRINT "CONVE RTING": PRINT : PRINT FI$: PRINT : PRINT "PLEASE WAIT ....". 315 GOSUB 1000. 32 0 FOR I = 0 TO 15:T = PEEK (GB + 3 + I ). 330 IF T = 160 GOTO 350. 340 POKE E B + 1 + I,T: NEXT . 350 POKE EB,48 + I: REM STORAGE TYPE AND LENGTH. 360 REM GET RECORD PNTRS. 370 PRINT D$;"BLOAD ";FI$;",A";PB;",B508,L254". 380 PRINT D $;"BSAVE RECBLOCK,A";PB;",L254. 390 REM FORMAT MASTER INDEX BLOCK. 400 POKE M B + 127,0: POKE MB + 383,0. 405 FOR I = MB + 128 TO MB + 128 + 127: POKE I,0: N EXT . 410 FOR I = MB + 384 TO MB + 384 + 127: POKE I,0: NEXT . 420 GOSUB 1500: REM SAVE MODIFIED HEADER BLK. 430 REM DIR INFO ON MASTER INDEX & HEADER. 440 GOSUB 2000: REM ALREADY SET FOR DIR R EAD. 450 IF ER = 1 GOTO 4500. 460 T = PEEK (E1 + 1 * 39 + 17): POKE EB + 17,T: REM INDEX PNTR. 470 T = PEEK (E1 + 1 * 39 + 18): POKE EB + 18,T. 480 T = PEE K (E1 + 2 * 39 + 17): POKE EB + 31,T: RE M HEADER PNTR. 490 T = PEEK (E1 + 2 * 39 + 18): POKE EB + 32,T: POKE GB + 37,1 . 530 REM REWRITE RECORDS. 540 REM C LR DIR ENTRIES. 550 POKE E1 + 39,0: POK E E1 + 2 * 39,0. 560 RW = 129: GOSUB 200 0. 570 IF ER = 1 GOTO 4500. 580 CR = 0: B = 3 * 254:TB = 2:TY = 0. 590 FOR R = 1 TO 11. 600 GOSUB 3500: REM GET RECOR D LENGTH. 610 IF RL = 0 THEN GOSUB 300 0: GOTO 2500: REM NO MORE RECORDS. 620 IF L > 8 * 4 * 256 THEN PRINT "RECORD TOO LONG": GOTO 5000. 630 GOSUB 4000: R EM REWRITE RECORD. 640 CR = CR + 1:B = B + L: NEXT R. 650 GOSUB 3000: REM GET DIR INFO & CLR ENTRIES. 655 IF ER = 1 GOTO 4500. 660 GOTO 590: REM START NEX T 11 RECORDS. 1000 VTAB 19: HTAB 16. 10 10 PRINT "A SHAREWARE PROGRAM". 1020 P RINT TAB( 22);"BY": PRINT . 1030 HTAB 16: PRINT "TERRY VAN CAMP". 1040 HTAB 1 6: PRINT "16604 CYPRESS". 1050 HTAB 16: PRINT "STRONGSVILLE, OHIO 44136";. 106 0 RETURN . 1500 REM HEADER SUBROUTINE . 1510 PRINT D$;"BLOAD ";FI$;",A";GB + 2;",B254,L254". 1520 POKE GB,0: POKE GB + 1,0: POKE GB + 68,PT: POKE GB + 69,GT . 1530 PRINT D$;"BSAVE HEADER,A";GB;",L 256". 1540 RETURN . 2000 REM BLK READ OR WRITE SUBROUTINE. 2010 POKE ML + 14 ,BL: POKE ML + 15,BH. 2020 POKE ML + 3, RW: CALL ML. 2030 IF PEEK (8) < > 0 T HEN ER = 1: RETURN . 2040 ER = 0: RETURN . 2500 REM ALL RECORDS CONVERTED. 250 5 IF ER = 1 GOTO 4500. 2510 REM COMPL ETE MASTER INDEX & DIR ENTRY-- & WRITE-O UT. 2520 TL = FN LB(TY):TH = INT (TY / 256). 2525 IF TH > 255 THEN TH = 255. 2530 POKE MB + 255,TL: POKE MB + 511,TH : REM LENGTH OF FILE. 2540 POKE EB + 2 1,TL: POKE EB + 22,TH. 2550 TL = FN LB( TB):TH = INT (TB / 256): REM #BLKS IN FILE. 2560 POKE EB + 19,TL: POKE EB + 2 0,TH. 2570 POKE EB + 16,GT: REM FILE T YPE CODE. 2580 PRINT D$;"DELETE ";FI$: REM DELETE BIN FILE. 2590 FOR I = 0 TO 22: POKE E1 + I, PEEK (EB + I): NEXT . 2600 POKE E1 + 28,0: POKE E1 + 29,0: PO KE E1 + 30,AC. 2610 POKE E1 + 31, PEEK (EB + 31): POKE E1 + 32, PEEK (EB + 32). 2620 POKE GB + 37,1: GOSUB 2000: REM WRITE DIRECTORY. 2630 IF ER = 1 GOTO 45 00. 2640 REM WRITE-OUT MASTER INDEX BL K. 2650 TL = FN LB(MB):TH = INT (MB / 256). 2660 POKE ML + 12,TL: POKE ML + 1 3,TH. 2670 BL = PEEK (EB + 17):BH = PE EK (EB + 18). 2680 GOSUB 2000. 2690 IF ER = 1 GOTO 4500. 2700 PRINT : PRINT " DONE!": GOTO 5000. 3000 REM DIR CLEANU P SUBROUTINE. 3010 IF RL = 0 AND R = 1 THEN RETURN . 3015 POKE ML + 12, FN LB (GB): POKE ML + 13, INT (GB / 256):BL = 2:BH = 0. 3020 RW = 128: GOSUB 2000: REM BLK #2 IN GB. 3025 IF ER = 1 THEN RE TURN . 3030 FOR I = 1 TO R - 1:ES = E1 + I * 39: REM ES = ENTRY START. 3040 BL = PEEK (ES + 17):BH = PEEK (ES + 18). 3050 POKE ML + 12, FN LB(FB): POKE ML + 13, INT (FB / 256). 3060 RW = 128: GOS UB 2000: REM READ-IN INDEX BLK FOR RECO RD. 3070 IF ER = 1 THEN RETURN . 3080 TB = TB + PEEK (ES + 19) + 256 * PEEK (ES + 20). 3090 TL = PEEK (ES + 21):TH = PEEK (ES + 22). 3100 TY = TY + TL + 2 56 * TH. 3110 POKE FB + 255,TL: POKE FB + 511,TH: REM FILE LENGTH. 3115 RE$ = "": FOR H = ES + 5 TO ES + 7:T = PEEK ( H). 3120 IF T = 0 GOTO 3130. 3125 RE$ = RE$ + CHR$ (T): NEXT H. 3130 RE = VAL (RE$). 3135 POKE MB + RE,BL: POKE MB + 256 + RE,BH: REM PNTR TO RECORD INDEX OF BLKS. 3140 RW = 129: GOSUB 2000. 3150 IF ER = 1 THEN RETURN . 3160 POKE ES ,0: NEXT I. 3165 POKE ML + 12, FN LB(GB ): POKE ML + 13, INT (GB / 256). 3170 P OKE GB + 37,1:BL = 2:BH = 0:RW = 129: GO SUB 2000: REM REWRITE DIRECTORY. 3180 RETURN . 3500 REM RECORD LENGTH SUBROU TINE. 3510 IF CR = 127 THEN RL = 0: RET URN . 3520 SC = PEEK (PB + CR * 2). 353 0 IF SC = 0 THEN T = PEEK (PB + CR * 2 + 1): POKE MB + CR,T: POKE MB + 256 + C R,T:CR = CR + 1: GOTO 3500. 3540 L = SC * 254. 3550 RL = (SC - 1) * 254 + PEEK (PB + CR * 2 + 1). 3560 RETURN . 4000 REM REWRITE SUBROUTINE. 4010 PRINT D$; "BLOAD ";FI$;",A";FB;",B";B;",L";L. 4015 T = RL - 1. 4020 IF T < 512 OR T = 512 THEN T = 514. 4030 PRINT D$;"BSAVE TEM P";CR;",A";FB;",L";T. 4040 RETURN . 450 0 INVERSE : PRINT "DISK I/O ERROR": NOR MAL . 5000 REM EXIT ROUTINE. 5010 HIM EM: HM. 5020 END . 6000 REM ML ROUTIN E (SET FOR READ OF DIR INTO GB). 6010 D ATA 32,0,191,128,10,112,144,8,176,11,3, 96,0,116,2,0. 6020 DATA 169,0,133,8,96 ,169,1,133,8,96......................... ........................................ ........................................ ........................
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL