home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib04.dsk / RESTORER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  53 lines

  1. 10  REM   ******************************
  2. 20  REM   *                            *
  3. 30  REM   *          RESTORER          *
  4. 40  REM   *             BY             *
  5. 50  REM   *     PRESTON R BLACK MD     *
  6. 60  REM   *                            *
  7. 70  REM   *  A DISK UTILITY TO RESTORE *
  8. 80  REM   *   FILES DELETED FROM THE   *
  9. 90  REM   *          DISKETTE          *
  10. 100  REM  *                            *
  11. 110  REM  ******************************
  12. 120 D$ =  CHR$(4): REM  CTRL-D
  13. 130 ITRK = 910:ISECT = 911:ICMD = 918:IBUFP = 915
  14. 140  PRINT D$;"BLOAD RWTS"
  15. 150  GOTO 270
  16. 160  REM 
  17. 170  REM  *** READING AND WRITING SUBROUTINE ***
  18. 180  REM 
  19. 190 BUFP = 32:SECT = 15: POKE ITRK,17: POKE ICMD,CMD
  20. 200  POKE ISECT,SECT: POKE IBUFP,BUFP
  21. 210  CALL 896
  22. 220 SECT = SECT -1:BUFP = BUFP +1: IF SECT > = 1  THEN 200
  23. 230  RETURN 
  24. 240  REM 
  25. 250  REM  *** INPUT THE FILE NAME HERE ***
  26. 260  REM 
  27. 270  HOME : VTAB 12: INPUT "NAME OF FILE TO BE RESTORED? ";NAME$:NAMLN =  LEN(NAME$)
  28. 280  FOR I = NAMLN TO 29:NAME$ = NAME$ +" ": NEXT 
  29. 290  REM 
  30. 300  REM  *** SET THE IOB TO READ ***
  31. 310 A = A +35:B = B +1: IF B >7  THEN A1 = A1 +256:A = A1:B = 1
  32. 320  HOME : VTAB 12: HTAB 7: INVERSE : PRINT "READING DISKETTE DIRECTORY": NORMAL 
  33. 330 CMD = 1: GOSUB 190
  34. 340  REM 
  35. 350  REM  *** THE SEARCH ROUTINE ***
  36. 360  REM 
  37. 370  HOME : VTAB 12: HTAB 15: INVERSE : PRINT "SEARCHING": NORMAL 
  38. 380 A = 8203:B = 1:A1 = A
  39. 390  IF  PEEK(A) = 0  THEN 500
  40. 400  IF  PEEK(A) = 255  THEN 430
  41. 410 A = A +35:B = B +1: IF B >7  THEN A1 = A1 +256:A = A1:B = 1
  42. 420  GOTO 390
  43. 430 C = A +2: FOR K = 1 TO 29:D = C +K
  44. 440  IF  MID$ (NAME$,K,1) < > CHR$( PEEK(D) -128)  THEN D = 0: GOTO 410
  45. 450  NEXT 
  46. 460  REM 
  47. 470  REM  *** SET THE IOB TO WRITE HERE ***
  48. 480  HOME : VTAB 12: HTAB 15: INVERSE : PRINT "RESTORING": NORMAL 
  49. 490 D = D +1: POKE A, PEEK(D): POKE D,160:CMD = 2: GOSUB 190
  50. 500  IF D < >0  THEN 520
  51. 510  VTAB 20: PRINT "FILE NOT FOUND IN DIRECTORY"
  52. 520  VTAB 21: END 
  53. 32310  REM