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