
utilidad para recuperar programas guardados con "savep"
Publicado por Carlos Mendoza (5 intervenciones) el 23/08/2015 12:39:26
Para aquellos programadores de BBx/Pro5 & V/Pro5 que por alguna razón han guardado sus programas con el comando "savep" y perdieron los fuentes, y para quienes no usan el comando "savep" por temor a perder los fuentes, aquí les dejo un programa para recuperaros:
Desde la linea de comando ejecutar lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
0010 REM 0010"unsavep""unprotected program""CEMS""2015/08/23,05:43AM
0020 LET Z$=STBL("unsavep",ERR=0100)
0030 IF Z$=PGM(-1) THEN GOTO 0200
0100 REM ^100
0110 REM "Determina la linea a usar
0120 BEGIN
0130 LET Z$=STBL("unsavep",PGM(-1))
0140 LET Z$="65534 if err<>21 FOR LINE=1 TO 100; LET Z$=STR(LINE:""0000"")+"" ""; SETERR 65534; EXECUTE ""edit ""+Z$+""c[""+Z$+""
0150 EXECUTE Z$
0160 LET Z$="goto 65534"+$0D0A$+"run"+$0D0A$+"load """+PGM(-1)+""""+$0D0A$+"call ""unsavep"""+$0D0A$
0170 PRINT 'FL'+"9"+CHR(LEN(Z$))+Z$,
0180 EXIT
0200 REM ^100
0210 REM "Desproteje el programa
0220 LET Z$=STBL("unsavep","")
0230 LET C$=" "
0240 FOR Z=65 TO 90; LET C$=C$+CHR(Z); NEXT Z
0250 FOR Z=97 TO 122; LET C$=C$+CHR(Z); NEXT Z
0260 FOR Z=33 TO 64; LET C$=C$+CHR(Z); NEXT Z
0270 FOR Z=91 TO 96; LET C$=C$+CHR(Z); NEXT Z
0280 FOR Z=0 TO 31; LET C$=C$+CHR(Z); NEXT Z
0290 FOR Z=123 TO 255; LET C$=C$+CHR(Z); NEXT Z
0300 LET Z$=STBL("ch",C$)
0310 LET C=-1,L=0,CODE$="",LINE$=""
0320 LET PGM$=PGM(-1)+".unsavep"
0330 STRING PGM$,ERR=0420
0340 LET OUT=UNT; OPEN (OUT)PGM$
0350 LET LINE=65534,LINE=NUM(STBL("LINE",ERR=0360))
0360 LET Z$="????? IF C=-1 OR (C=1 AND ERR=21) THEN IF CODE$<>LINE$ THEN PRINT (OUT)CODE$ FI; LET L=L+1,C=0; IF L>65534 THEN END ELSE LET LINE$=STR(L:""0000""),CODE$=LINE$ FI FI; LET C=C+1; IF C>256 THEN LET C=-1; GOTO ????? FI; SETERR ?????; EXECUTE ""edit ""+LINE$+""c[""+CO
0370 LET Z=POS("?????"=Z$); IF Z THEN LET Z$(Z,5)=STR(LINE:"0000"); GOTO 0370
0380 EXECUTE Z$
0390 LET Z$="c$=stbl(""ch""),c=-1,l=0,out=1;goto "+STR(LINE)+$0D0A$+"run"+$0D0A$+"start"+$0D0A$+"open(9)"""+PGM(-1)+".unsavep"";merge(9)"+$0D0A$
0400 PRINT 'FL'+"9"+CHR(LEN(Z$))+Z$,
0410 EXIT
0420 ERASE PGM$; RETRY
como usar:
Desde la linea de comando ejecutar lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>load "PROGRAMA_PROTEGIDO"
>
>READY
>LIST
!ERROR=62 (Protected program)
>call "unsavep"
.........
.........
.........
>open (9)"PROGRAMA_PROTEGIDO.unsavep";merge(9)
!ERROR=2 (End of File)
>
>LIST
(se listara el programa protegido!!!)...
Valora esta pregunta


1