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

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 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL