home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib04.dsk
/
RESTORER.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
53 lines
10 REM ******************************
20 REM * *
30 REM * RESTORER *
40 REM * BY *
50 REM * PRESTON R BLACK MD *
60 REM * *
70 REM * A DISK UTILITY TO RESTORE *
80 REM * FILES DELETED FROM THE *
90 REM * DISKETTE *
100 REM * *
110 REM ******************************
120 D$ = CHR$(4): REM CTRL-D
130 ITRK = 910:ISECT = 911:ICMD = 918:IBUFP = 915
140 PRINT D$;"BLOAD RWTS"
150 GOTO 270
160 REM
170 REM *** READING AND WRITING SUBROUTINE ***
180 REM
190 BUFP = 32:SECT = 15: POKE ITRK,17: POKE ICMD,CMD
200 POKE ISECT,SECT: POKE IBUFP,BUFP
210 CALL 896
220 SECT = SECT -1:BUFP = BUFP +1: IF SECT > = 1 THEN 200
230 RETURN
240 REM
250 REM *** INPUT THE FILE NAME HERE ***
260 REM
270 HOME : VTAB 12: INPUT "NAME OF FILE TO BE RESTORED? ";NAME$:NAMLN = LEN(NAME$)
280 FOR I = NAMLN TO 29:NAME$ = NAME$ +" ": NEXT
290 REM
300 REM *** SET THE IOB TO READ ***
310 A = A +35:B = B +1: IF B >7 THEN A1 = A1 +256:A = A1:B = 1
320 HOME : VTAB 12: HTAB 7: INVERSE : PRINT "READING DISKETTE DIRECTORY": NORMAL
330 CMD = 1: GOSUB 190
340 REM
350 REM *** THE SEARCH ROUTINE ***
360 REM
370 HOME : VTAB 12: HTAB 15: INVERSE : PRINT "SEARCHING": NORMAL
380 A = 8203:B = 1:A1 = A
390 IF PEEK(A) = 0 THEN 500
400 IF PEEK(A) = 255 THEN 430
410 A = A +35:B = B +1: IF B >7 THEN A1 = A1 +256:A = A1:B = 1
420 GOTO 390
430 C = A +2: FOR K = 1 TO 29:D = C +K
440 IF MID$ (NAME$,K,1) < > CHR$( PEEK(D) -128) THEN D = 0: GOTO 410
450 NEXT
460 REM
470 REM *** SET THE IOB TO WRITE HERE ***
480 HOME : VTAB 12: HTAB 15: INVERSE : PRINT "RESTORING": NORMAL
490 D = D +1: POKE A, PEEK(D): POKE D,160:CMD = 2: GOSUB 190
500 IF D < >0 THEN 520
510 VTAB 20: PRINT "FILE NOT FOUND IN DIRECTORY"
520 VTAB 21: END
32310 REM