home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Toolkit / SNAPFIX-V2.2 / SNAPFIX-V2.0808 (.txt)
Encoding:
Commodore BASIC  |  2019-04-13  |  8.0 KB  |  255 lines

  1. 0 REM " Y[166]L[174][167]" : SNAPFIX V2.2
  2. 1 REM   BY: JON PURKEY - 01/29/90
  3. 2 REM ORIGNAL SNAPFIX BY ANDY BARBOLLA
  4. 3 :
  5. 4 Z$=CHR$(0):X=0:A$="":GOTO10
  6. 6 OPEN1,D,15:OPEN5,D,5,"#":POKE53280,PEEK(53280)-15:PRINT#1,"U1:";5;0;T;S
  7. 7 FORX=BTOE:GET#5,A$:POKEX,ASC(A$+Z$):NEXT:CLOSE1:CLOSE5:RETURN
  8. 10 PRINTCHR$(142):GOSUB600:GOSUB500
  9. 15 PRINT"SNAPFIX ONLY? (Y/N):";
  10. 20 GOSUB700
  11. 25 IFX$<>"Y"ANDX$<>"N"THEN20
  12. 30 PRINTX$:IFX$="Y"THENSX=1
  13. 35 PRINT"PROGRAM WILL CHECK FOR DRIVE TYPE."
  14. 50 PRINT"DEVICE? (8-11):";:T=0:DD$=""
  15. 52 GOSUB700
  16. 56 IFX$>="0"ANDX$<="9"ANDT<2THENPRINTX$;:DD$=DD$+X$:T=T+1:GOTO52
  17. 57 IFX$=CHR$(20)ANDT=2THENPRINTX$;:DD$=LEFT$(DD$,1):T=1:GOTO52
  18. 58 IFX$=CHR$(20)ANDT=1THENPRINTX$;:DD$="":T=0:GOTO52
  19. 59 IFX$<>CHR$(13)THEN52
  20. 60 D=VAL(DD$):IFD>11ORD<8THENPRINTCHR$(20);CHR$(20);"[145][145]":GOTO50
  21. 65 PRINT:PRINT"NOTE: IF THE SNAPSHOT IS IN TWO FILES,"
  22. 66 PRINT"PLEASE ENTER THE FILENAME INCLUDING THE"
  23. 67 PRINT"'1' PREFIX."
  24. 70 FF$="":T=0:PRINT"FILENAME:";
  25. 72 GOSUB700
  26. 74 IFX$>=CHR$(32)ANDX$<=CHR$(127)ANDT<16THENPRINTX$;:FF$=FF$+X$:T=T+1:GOTO72
  27. 75 IFX$=CHR$(20)ANDT>=2THENPRINTX$;:FF$=LEFT$(FF$,LEN(FF$)-1):T=T-1:GOTO72
  28. 76 IFX$=CHR$(20)ANDT=1THENPRINTX$;:FF$="":T=0:GOTO72
  29. 77 IFX$<>CHR$(13)THEN72
  30. 78 IFT=0THEN72
  31. 79 PRINT:PRINT"DRIVE TYPE:";
  32. 80 OPEN1,D,15:PRINT#1,"M-R"Z$;CHR$(128):GET#1,A$:DT=ASC(A$+Z$):CLOSE1
  33. 82 IFDT=77THENPRINT"1581":T=40:S=3:GOTO85
  34. 83 T=18:S=1:IFDT=151THENPRINT"1541":GOTO85
  35. 84 PRINT"1571 OR OTHER?"
  36. 85 FORX=1TO500:NEXT:PRINT"CHECKING DISK...":OPEN1,D,15:OPEN2,D,2,FF$
  37. 92 INPUT#1,A$,B$,C$,D$:CLOSE1:CLOSE2
  38. 94 IFA$<>"00"THENPRINT"*ERROR* - "B$"!":END
  39. 100 POKE53280,0:POKE53281,0:PRINT"[147]SCANNING DIRECTORY..."
  40. 103 V1=160:V2=0:V3=32:V4=49382:V5=1:B=49152:E=49407
  41. 106 GOSUB6:T=PEEK(B):S=PEEK(B+1):X=B+5
  42. 108 B$="":Y=X
  43. 109 P=PEEK(Y):IFP=V1ORP=V2THEN111
  44. 110 B$=B$+CHR$(P):Y=Y+V5:GOTO109
  45. 111 PRINT"-";:IFB$=FF$THEN115
  46. 112 X=X+V3:IFX<V4THEN108
  47. 113 GOTO106
  48. 115 T=PEEK(X-2):S=PEEK(X-1)
  49. 120 PRINT:PRINT"READING CURRENT VALUES...":PRINT"SNAPFIX:";
  50. 122 E=49153:GOSUB6:T=PEEK(B):S=PEEK(E):T2=T:S2=S:E=49407:GOSUB6
  51. 123 IFPEEK(49337)=234THENSF$="NO":PRINTSF$:GOTO126
  52. 124 IFPEEK(49337)=169THENSF$="YES":SF=1:PRINTSF$:GOTO126
  53. 125 PRINT:PRINT"[145]*ERROR* - NOT A SNAPSHOT FILE!!":END
  54. 126 IFSX=1THENGOSUB2100:GOTO2200
  55. 127 GOSUB2000:PRINT"VECTORS...":B=49408:E=49409
  56. 128 GOSUB6:T=PEEK(B):S=PEEK(B+1):T6=T:S6=S
  57. 129 E=49663:GOSUB6:T=PEEK(B):S=PEEK(B+1):T7=T:S7=S:B=49664:E=49919:GOSUB6
  58. 130 POKE53280,0
  59. 134 LO=49536:PRINT"F-KEYS:";
  60. 135 FL=0:L1=72:L2=247:H1=235:H2=223:H3=222:GOSUB150:FK$=X$:FK=FL:PRINTFK$
  61. 136 KF=LO:PRINT"WEDGE:";:FL=0:L1=131:L2=250:H1=164:GOSUB150:WE$=X$:WE=FL
  62. 137 PRINTWE$:EW=LO:PRINT"NMI:";:FL=0:L1=71:L2=244:H1=254:GOSUB150:NM$=X$:NM=FL
  63. 139 PRINTNM$:MN=LO:PRINT"TURBO LOAD:";:FL=0:L1=165:L2=253:H1=244:GOSUB150
  64. 141 TL$=X$:TL=FL:PRINTTL$:LT=LO:PRINT"TURBO SAVE:";:FL=0:L1=237:L2=241:H1=245
  65. 143 GOSUB150:TS$=X$:TS=FL:PRINTTS$:SU=LO:IFSM<>2THENGOTO200
  66. 144 SX=1:GOTO2200
  67. 150 X=LO
  68. 153 X=X+1:IFX=49870THENX$=UN$:FL=2:RETURN
  69. 155 P=PEEK(X):IFP<>L1ANDP<>L2THEN153
  70. 160 P1=PEEK(X+1):IFP=L1ANDP1<>H1THEN153
  71. 162 IFP=L2ANDP1<>H2ANDP1<>H3THEN153
  72. 163 LO=X
  73. 164 IFP=L1THENX$="OFF":FL=0:IFSS<>1THENSM=0:SM$="SS DISABLED/NO SS"
  74. 165 IFP=L1THENRETURN
  75. 166 X$="ON":FL=1:IFSS=1THENRETURN
  76. 167 SS=1:IFP=L2ANDP1=H2THENSM$="V3/4":SM=3:RETURN
  77. 168 SM$="V5":SM=5:RETURN
  78. 200 GOSUB500:PRINT"   CURRENT SETTINGS ARE LISTED BELOW"
  79. 201 PRINT"   USE CRSR KEYS TO SELECT AND SPACE"
  80. 202 PRINT"[160]   TO TOGGLE SELECTIONS OFF AND ON"
  81. 203 PRINT"[160]   PRESS RETURN TO UPDATE THE FILE":CF=0
  82. 204 PRINT"           FILE: "FF$
  83. 210 GOSUB800:P=1545:POKEP,62
  84. 230 GETX$:IFX$=""THEN230
  85. 232 IFX$=""ANDP<1785THENP=P+40:POKEP,62:POKEP-40,32:GOTO230
  86. 233 IFX$="[145]"ANDP>1545THENP=P-40:POKEP,62:POKEP+40,32:GOTO230
  87. 234 IFX$=CHR$(32)THEN250
  88. 236 IFX$<>CHR$(13)THEN230
  89. 238 IFCF=1THENPOKE53280,0:POKE53281,0:PRINT"[147]UPDATING FILE...":GOTO300
  90. 240 PRINT" * NO CHANGES HAVE BEEN MADE * "
  91. 241 FORY=1TO1000:NEXT:PRINT"[145]"S$S$S$S$:GOTO230
  92. 250 ON(P-1505)/40GOSUB1100,1200,1300,1400,1500,1600,1700:CF=1
  93. 251 GOSUB800:POKEP,62:GOTO230
  94. 300 IFFS=0THEN306
  95. 301 IFSF=0THEN304
  96. 302 POKE49337,169:POKE49338,PEEK(49478):POKE49478,0:POKE49339,141:POKE49340,17
  97. 303 POKE49341,208:GOTO305
  98. 304 POKE49478,PEEK(49338):FORX=49337TO49341:POKEX,234:NEXT
  99. 305 IFSX=1THEN375
  100. 306 IFFK$="OFF"THENPOKEKF, 72:POKEKF+1,235
  101. 307 IFWE$="OFF"THENPOKEEW,131:POKEEW+1,164
  102. 308 IFNM$="OFF"THENPOKEMN, 71:POKEMN+1,254
  103. 309 IFTL$="OFF"THENPOKELT,165:POKELT+1,244
  104. 310 IFTS$="OFF"THENPOKESU,237:POKESU+1,245
  105. 311 IFSM=3THEN350
  106. 312 IFSM=5THEN325
  107. 315 GOTO365
  108. 325 IFFK=1THENPOKEKF,247:POKEKF+1,H3
  109. 327 IFWE=1THENPOKEEW,250:POKEEW+1,H3
  110. 329 IFNM=1THENPOKEMN,244:POKEMN+1,H3
  111. 331 IFTL=1THENPOKELT,253:POKELT+1,H3
  112. 333 IFTS=1THENPOKESU,241:POKESU+1,H3
  113. 335 GOTO365
  114. 350 IFFK=1THENPOKEKF,247:POKEKF+1,H2
  115. 357 IFWE=1THENPOKEEW,250:POKEEW+1,H2
  116. 359 IFNM=1THENPOKEMN,244:POKEMN+1,H2
  117. 361 IFTL=1THENPOKELT,253:POKELT+1,H2
  118. 363 IFTS=1THENPOKESU,241:POKESU+1,H2
  119. 364 REM
  120. 365 IFOS=2THEN375
  121. 366 IFNS=OSTHENOS=2:GOTO375
  122. 367 IFOS=0ANDNS=3THENPOKEOL,180:POKEOL+1,223:GOTO375
  123. 368 IFOS=0ANDNS=5THENPOKEOL,186:POKEOL+1,222:GOTO375
  124. 369 IFOS=3ANDNS=5THENPOKEOL,186:POKEOL+1,222:GOTO375
  125. 370 IFOS=5ANDNS=3THENPOKEOL,180:POKEOL+1,223:GOTO375
  126. 371 POKEOL,133:POKEOL+1,164:POKEOL+2,121:POKEOL+3,166:POKEOL+4,156:POKEOL+5,227
  127. 375 REM
  128. 377 T=T2:S=S2:B=49152:E=49407:GOSUB1800
  129. 378 T=T6:S=S6:B=B+256:E=E+256:GOSUB1800:IFSX=1THEN385
  130. 379 T=T7:S=S7:B=B+256:E=E+256:GOSUB1800
  131. 381 IFOS=2THEN385
  132. 382 B=50176:E=50431:T=T3:S=S3:GOSUB1800
  133. 383 B=B+256:E=E+256:T=T4:S=S4:GOSUB1800
  134. 385 POKE53280,0:PRINT"DONE!"
  135. 386 PRINT"R: RUN SNAPFIX ON ANOTHER FILE":PRINT"L: LOAD/RUN SNAPSHOT FILE"
  136. 387 PRINT"E: EXIT TO SNAPSHOT OR BASIC":PRINT"ENTER R, L, OR E:";
  137. 388 GOSUB700:IFX$<>"R"ANDX$<>"E"ANDX$<>"L"THEN388
  138. 389 PRINTX$:IFX$="L"THEN396
  139. 390 IFX$="R"THENGOSUB500:RUN
  140. 391 PRINT"OK!":FORY=1TO500:NEXT
  141. 392 POKE828,169:POKE829,0:POKE830,141:POKE831,0:POKE833,108:POKE834,252
  142. 393 POKE835,255:IFPEEK(56832)=2THENPOKE832,222:SYS828
  143. 394 IFPEEK(57088)=50THENPOKE832,223:SYS828
  144. 395 SYS64738
  145. 396 IFLEFT$(FF$,1)="1"THENFF$=RIGHT$(FF$,LEN(FF$)-1)
  146. 397 PRINT"[144]>#";D:PRINT"%"FF$"*":PRINT"RUN:":PRINT"[145][145][145][145][145][145][145][145][145][145]"
  147. 398 POKE631,13:POKE632,13:POKE633,13:POKE198,3:END
  148. 500 POKE53281,14:POKE53280,14:Q$="[192][192][192][192][192][192][192][192][192]"
  149. 501 PRINT"[147] [160]"Q$Q$Q$Q$
  150. 502 PRINT"  [144]SNAPSHOT FILE FIXER - BY: JON PURKEY"
  151. 503 PRINT"  "Q$Q$Q$Q$:RETURN
  152. 600 POKE53280,0:POKE53281,0:PRINT"[154][147]V2.2 - JANUARY 29TH 1990"
  153. 601 PRINT"THIS PROGRAM WILL ALLOW YOU TO CHANGE"
  154. 602 PRINT"THE F-KEYS, LOAD/SAVE, WEDGE AND OTHER"
  155. 603 PRINT"VECTORS ON A SNAPSHOT FILE WITHOUT HAV-"
  156. 604 PRINT"ING TO MAKE A NEW SNAPSHOT."
  157. 608 PRINT"NOTE: THIS MAY NOT WORK ON V3 SNAPSHOTS,";
  158. 609 PRINT"BUT I AM PRETTY SURE IT WILL."
  159. 610 PRINT"THE SNAPFIX OPTION WILL MAKE THE "
  160. 611 PRINT"START-UP ON RUN CLEANER."
  161. 612 PRINT"ORIGINAL SNAPFIX PROGRAM WRITTEN BY"
  162. 613 PRINT"ANDY BARBOLLA.
  163. 614 [153]"IF YOU HAVE ANY QUESTIONS OR COMMENTS"
  164. 615 [153]"ABOUT THIS PROGRAM, PLEASE SEND A "
  165. 616 [153]"MESSAGE TO 'GULLIBLE' ON THE SSI BOARD"
  166. 617 [153]"OR SEND E-MAIL TO EITHER 'JON PURKEY'"
  167. 618 [153]"OR 'GULLIBLE' ON Q-LINK. - THANK YOU."
  168. 619 [153]"ANY KEY TO CONTINUE";:[141]700:[142]
  169. 700 FL[178]0:[153]"TOCMD";:[129]Y[178]1[164]50:[161]X$:[139]X$[179][177]""[167]Y[178]50:FL[178]1
  170. 701 [130]Y:[139]FL[178]1[167][153]" CMD";:[142]
  171. 702 [153]" CMD";:[129]Y[178]1[164]50:[161]X$:[139]X$[179][177]""[167]Y[178]50:FL[178]1
  172. 703 [130]Y:[139]FL[178]1[167][142]
  173. 704 [137]700
  174. 800 S$[178]"         ":[141]808:[153]"CLOSE SNAPSHOT MODE: "SM$
  175. 801 [153]S$"SNAPFIX: "SF$
  176. 802 [153]S$" WEDGE: "WE$
  177. 803 [153]S$"F-KEYS: "FK$
  178. 804 [153]"     TURBO LOAD: "TL$
  179. 805 [153]"     TURBO SAVE: "TS$
  180. 806 [153]S$"   NMI: "NM$:[142]
  181. 808 [153]"";:[129]X[178]1[164]7:[153]S$S$S$S$"   ":[130]:[142]
  182. 900 [129]X[178]1[164]15:[151]54296,15:[151]54296,0:[130]:[142]
  183. 1100 [139]SM[178]2[167][141]900:[142]
  184. 1102 [139]SM$[178]"V5"[167]SM$[178]"V3/4":SM[178]3:NS[178]3:[142]
  185. 1105 [139]SM$[178]"V3/4"[167][137]1150
  186. 1110 SM$[178]"V5":SM[178]5:NS[178]5
  187. 1115 [139]WE[178]1[167]WE$[178]"ON"
  188. 1120 [139]FK[178]1[167]FK$[178]"ON"
  189. 1125 [139]TL[178]1[167]TL$[178]"ON"
  190. 1130 [139]TS[178]1[167]TS$[178]"ON"
  191. 1140 [139]NM[178]1[167]NM$[178]"ON"
  192. 1146 [142]
  193. 1150 SM$[178]"SS DISABLED/NO SS":SM[178]0:NS[178]0
  194. 1151 [139]WE[179][177]2[167]WE$[178]"OFF"
  195. 1152 [139]FK[179][177]2[167]FK$[178]"OFF"
  196. 1153 [139]TL[179][177]2[167]TL$[178]"OFF"
  197. 1154 [139]TS[179][177]2[167]TS$[178]"OFF"
  198. 1155 [139]NM[179][177]2[167]NM$[178]"OFF"
  199. 1156 [142]
  200. 1200 [139]SF[178]1[167]SF$[178]"NO":SF[178]0:[137]1202
  201. 1201 SF$[178]"YES":SF[178]1
  202. 1202 [139]FS[178]1[167]FS[178]0:[142]
  203. 1203 FS[178]1:[142]
  204. 1300 [139]WE[178]1[175]SM[179][177]0[167]WE$[178]"OFF":WE[178]0:[142]
  205. 1305 [139]WE[179][177]2[175](SM[178]5[176]SM[178]3)[167]WE$[178]"ON":WE[178]1:[142]
  206. 1310 [141]900:[142]
  207. 1400 [139]FK[178]1[175]SM[179][177]0[167]FK$[178]"OFF":FK[178]0:[142]
  208. 1405 [139]FK[179][177]2[175](SM[178]5[176]SM[178]3)[167]FK$[178]"ON":FK[178]1:[142]
  209. 1410 [141]900:[142]
  210. 1500 [139]TL[178]1[175]SM[179][177]0[167]TL$[178]"OFF":TL[178]0:[142]
  211. 1505 [139]TL[179][177]2[175](SM[178]5[176]SM[178]3)[167]TL$[178]"ON":TL[178]1:[142]
  212. 1510 [141]900:[142]
  213. 1600 [139]TS[178]1[175]SM[179][177]0[167]TS$[178]"OFF":TS[178]0:[142]
  214. 1605 [139]TS[179][177]2[175](SM[178]5[176]SM[178]3)[167]TS$[178]"ON":TS[178]1:[142]
  215. 1610 [141]900:[142]
  216. 1700 [139]NM[178]1[175]SM[179][177]0[167]NM$[178]"OFF":NM[178]0:[142]
  217. 1705 [139]NM[179][177]2[175](SM[178]5[176]SM[178]3)[167]NM$[178]"ON":NM[178]1:[142]
  218. 1710 [141]900:[142]
  219. 1800 A$[178]"":[159]1,D,15:[159]4,D,4,"#1":[151]53280,[194](53280)[171]15
  220. 1805 [129]X[178]B[170]1[164]E:A$[178]A$[170][199]([194](X)):[130]:[152]4,A$;[199]([194](B));
  221. 1810 [152]1,"U2";4;0;T;S:[160]4:[132]1,A$,B$,C$,D$
  222. 1815 [160]1:[139]B$[179][177]"OK"[167][153]"*DISK ERROR* - "B$"!":[128]
  223. 1820 [142]
  224. 2000 UN$[178]"UNKNOWN CAN'T CHANGE!!":[153]"STACK:";:T[178][194](B):S[178][194](B[170]1):T3[178]T:S3[178]S
  225. 2001 B[178]50176:E[178]50431:[141]6:T[178][194](B):S[178][194](B[170]1):T4[178]T:S4[178]S:B[178]B[170]256:E[178]E[170]256
  226. 2002 [141]6:T[178][194](B):S[178][194](B[170]1)
  227. 2004 X[178]50380
  228. 2006 X[178]X[170]1:P[178][194](X):P1[178][194](X[170]1)
  229. 2008 [139]P[178]133[175]P1[178]164[167]OS[178]0:NS[178]OS:SM[178]0:SM$[178]"SS DISABLED/NO SS":[137]2020
  230. 2010 [139]P[178]180[175]P1[178]223[167]OS[178]3:NS[178]OS:SS[178]1:SM[178]3:SM$[178]"V3/4":[137]2020
  231. 2012 [139]P[178]186[175]P1[178]222[167]OS[178]5:NS[178]OS:SS[178]1:SM[178]5:SM$[178]"V5":[137]2020
  232. 2015 [139]X[178]50441[167]OS[178]2:NS[178]OS:SM[178]2:SM$[178]UN$:[137]2020
  233. 2017 [137]2006
  234. 2020 OL[178]X
  235. 2025 [139]OS[178]2[167][153]"UNKNOWN! - THIS WON'T BE CHANGED!":[142]
  236. 2027 [153]SM$:[142]
  237. 2100 T[178][194](B):S[178][194](B[170]1):B[178]49408:E[178]49409
  238. 2110 [129]XX[178]1[164]3:[141]6:T[178][194](B):S[178][194](E):[130]:T6[178]T:S6[178]S:E[178]49663:[141]6:[142]
  239. 2200 [141]500:[139]SF[178]1[167]2250
  240. 2210 [153]"THIS SNAPSHOT DOES NOT CURRENTLY HAVE"
  241. 2212 [153]"'SNAPFIX' INSTALLED. DO YOU WISH TO"
  242. 2214 [153]"INSTALL IT? (Y/N):";
  243. 2216 [141]700
  244. 2218 [139]X$[179][177]"Y"[175]X$[179][177]"N"[167]2216
  245. 2220 [153]X$:[139]X$[178]"Y"[167]SF[178]1:FS[178]1:SF$[178]"YES":[137]2270
  246. 2225 [137]2265
  247. 2250 [153]"THE 'SNAPFIX' OPTION IS CURRENTLY "
  248. 2255 [153]"INSTALLED ON THIS SNAPSHOT. DO YOU WISH"
  249. 2257 [153]"TO REMOVE IT? (Y/N):";
  250. 2259 [141]700
  251. 2261 [139]X$[179][177]"Y"[175]X$[179][177]"N"[167]2259
  252. 2263 [153]X$:[139]X$[178]"Y"[167]SF[178]0:FS[178]1:SF$[178]"NO":[137]2270
  253. 2265 [151]53280,0:[151]53281,0:[153]"LOAD":[137]386
  254. 2270 [151]53280,0:[151]53281,0:[153]"LOADWORKING...":[137]300
  255.