CHAPTER.5\BASPATCH.BAS ·
BAS ·
1.5 KB ·
1989-12-22 ·
from PCPlus_Help-Screen-Collection_1990
REM Program to patch BASIC2 Version 1.12 to 1.12B
p$="a:\basic2\basic2.":REM Path & filename
REPEAT:READ c$:FOR i=1 TO LEN(c$)
s=(s+ASC(c${i}))*2:s=(s+s\1000)MOD 1000
NEXT:UNTIL c$="e":IF s<>182 THEN STOP
RESTORE:RECORD b;a [0 TO 127]UBYTE
REPEAT:READ c$
IF c$="o" THEN READ f$:OPEN #9 OLD RANDOM p$+f$
IF c$="c" THEN CLOSE
IF c$="g" THEN READ r:GET #9,r$ AT r
IF c$="p" THEN PUT #9,r$
IF c$="x" THEN READ f,l:FOR o=f TO l:READ r$.b.a[o]:NEXT
UNTIL c$="e"
DATA c,o,app,g,1,x,18,19,13,175,p
DATA g,310,x,85,86,64,4,p
DATA g,319,x,23,28,232,198,250,233,73,251,p
DATA g,324,x,73,73,65,x,75,78,84,2,137,4
DATA x,87,90,138,236,50,232,x,92,92,196
DATA x,94,97,3,233,19,7,x,99,103,30,7,233,92,110
DATA x,105,116,247,229,93,137,84
DATA 2,247,218,112,14,127,20
DATA x,120,120,212,x,122,127,216,131,218,0,235,202,p
DATA g,325,x,1,13,11,192,117,4,11,201
DATA 120,196,247,218,232,188,255
DATA x,61,61,171,x,87,87,147,p,c
DATA o,rsc,g,13,x,127,127,66,p
DATA g,14,x,2,3,50,57,x,5,7,77,97,121
DATA x,10,10,55,p,c,e
REM Program to checksum BASIC 2 Version 1.12B
p$="a:\basic2\basic2.":REM Path and filename
f$="app":GOSUB check:IF s<>&28e0d839 THEN STOP
f$="rsc":GOSUB check:IF s<>&10babee0 THEN STOP
?"CORRECT":END
LABEL check
CLOSE:OPEN #9 OLD RANDOM p$+f$
RECORD w;a[0 TO 63]UWORD:s=0
WHILE NOT EOF(#9):GET #9,r$:FOR i=0 TO 63
s=(s+r$.w.a[i])*2:s=(s+s\&3fff0000)MOD &3fff0000
NEXT i:POSITION #9,NEXT:WEND:CLOSE
RETURN