[net.micro.pc] MS Basic on the IBM

bri5@sphinx.UChicago.UUCP (Eric Brill) (07/19/86)

I have a Basic file which was saved under the protect mode(MS Basic).  I need to
see the source code so I can modify it.  Does anybody know how I can do
this?  Thank you very much.
-Eric Brill

kreek@rocky2.UUCP (Biochemical Endocrinology) (07/22/86)

>I have a Basic file which was saved under the protect mode(MS Basic).  I need to
>see the source code so I can modify it.  Does anybody know how I can do
>this?  Thank you very much.
>-Eric Brill

Here you are, sir...

1 'This program will unprotect BASIC pgms that are saved using SAVE "XXX.BAS",P
2 'It will prompt for the drive and the program name
3 'It gives listing of the protected program, does not unprotect file on disk
4 'You may want to save the listing to disk using the original name
100 DEF SEG:CLEAR:KEY OFF:CLS:ON ERROR GOTO 300
110 B%=0:A=0
120 GOSUB 1000
130 A=PEEK(&H30)+256*PEEK(&H31)
140 LINE INPUT "PROTECTED FILE DRIVE ";G$:IF LEN(G$)>0 THEN IF INSTR(G$,":")=0 THEN G$=G$+":"
145 PRINT
150 LINE INPUT "PROTECTED FILE NAME ";F$:IF INSTR(F$,".")=0 THEN F$=F$+".BAS"
160 G$=G$+F$
170 F$="PROT.SCR"
180 H$="PROT.DAT":I$="UNPROT.BAS"
190 KEY 1,"B=VARPTR(B)"+CHR$(13)
200 KEY 2,"BSAVE F$,A,B-A"
210 KEY 3,"-4:BSAVE H$,B,"
220 KEY 4,"4:CHAIN I$,500"+CHR$(13)
230 KEY 5,"BLOAD"+CHR$(34)
240 KEY 6,H$+CHR$(34)+",856"+CHR$(13)
250 KEY 7,"BLOAD"+CHR$(34)+F$
260 KEY 8,CHR$(34)+","+STR$(A)+CHR$(13)+"LIST"+CHR$(13)
270 KEY 9,"FOR I=1 TO 10:K"
280 KEY 10,"EY I,"+CHR$(34)+CHR$(34)+":NEXT"+CHR$(13)
290 GOSUB 2000:COLOR 0,0:CHAIN G$,65529!,ALL
300 FOR Q=1 TO 10:KEY Q,"":NEXT Q
310 COLOR 7,0:IF ERL=290 AND ERR=53 THEN CLS:BEEP:PRINT G$+" DOES NOT EXIST":PRINT :RESUME 140
320 ON ERROR GOTO 0:END
500 B=0:DIM B1%(2):COLOR 7,0
510 BLOAD"PROT.DAT",VARPTR(B)
520 FOR I=0 TO 2:IF B<2^15 THEN B1%(I)=B ELSE B1%(I)=B-2^16
530 NEXT I:BSAVE "PROT.DAT",VARPTR(B1%(0)),6
540 CLS:NEW
1000 PRINT "UNPROTECTING BASIC PROGRAMS"
1010 LOCATE 4,10:PRINT "1.YOU WILL BE PROMPTED FOR THE FILE DRIVE AND NAME"
1040 LOCATE 7,10:PRINT "2. THE FINAL STEP IS THE LISTING OF YOUR PROGRAM"
1050 LOCATE 16,1:PRINT"NOTE: FUNCTION KEYS ARE CLEARED BY THE PROGRAM AND TWO SCRATCH"
1060 LOCATE 18,1:PRINT"FILES (PROT.SCR AND PROT.DAT) ARE LEFT ON YOUR DEFAULT DRIVE"
1070 LOCATE 25,25:PRINT "PRESS ANY KEY TO START";
1090 KB$=INKEY$:IF KB$="" GOTO 1090
1100 CLS:RETURN
2000 '
2020 DEF SEG=&H40:FOR I=1 TO 10:POKE 2*I+28,0:POKE 2*I+29,58+I:NEXT I
2030 POKE 2*I+28,13:POKE 2*I+29,28:POKE 26,30:POKE 28,50:DEF SEG:RETURN

--
UUCP:
     seismo|
    philabs|
       phri| -> cmcl2!rna!rocky2!kreek
    harvard|
      ihnp4|

ARPANET:        kreek@rockefeller.arpa
BITNET:         KREEK@ROCKVAX