home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib40b.dsk / DISK.ENCRYPTER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  60 lines

  1. 10  REM  **************************
  2. 20  REM  * DISK.ENCRYPTER         *
  3. 30  REM  * BY WALKER ARCHER       *
  4. 40  REM  * AND ED ANDERSON        *
  5. 50  REM  * COPYRIGHT(C) 1990      *
  6. 60  REM  * MINDCRAFT PUBL. CORP.  *
  7. 70  REM  * CONCOARD, MA 01742     *
  8. 80  REM  *************************
  9. 90  REM  MAIN PROGRAM BEGINS
  10. 100  PRINT  CHR$(4)"BLOAD ENCRYPTER.BIN,A$4000"
  11. 110  TEXT : CLEAR : HOME : PRINT  CHR$(21)
  12. 120 L$ = "                                      ": REM  40 SPACES
  13. 130  GOSUB 260: GOSUB 370: GOSUB 380: REM  SET UP SCREEN
  14. 140  VTAB 18: PRINT "PRESS 1 OR 2 TO CHANGE PARAMETERS,      3 TO CHANGE CODE SEQUENCE, OR <RET> TO  PROCESS DISK.  PRESS Q TO QUIT.         YOUR CHOICE:";: GET I$: PRINT I$: REM  6,2, AND 9 SPACES
  15. 150  REM 
  16. 160  IF I$ = "1"  OR I$ = "2"  THEN P( VAL(I$)) =   NOT P( VAL(I$)): GOSUB 260: GOTO 140: REM  CHANGE PARAMETERS
  17. 170  IF I$ = "3"  THEN  GOSUB 380: GOTO 140: REM  CHANGE CODE
  18. 180  IF  ASC(I$) = 13  THEN  GOSUB 500: GOTO 140: REM  PROCESS DISK
  19. 190  IF I$ < >"Q"  THEN  PRINT  CHR$(7): GOTO 140: REM  BAD INPUT
  20. 200  VTAB 18: FOR L = 1 TO 4: PRINT L$: NEXT L: VTAB 18: PRINT "ARE YOU SURE YOU WANT TO QUIT? (Y/N)";: GET Q$: PRINT Q$: IF Q$ = "Y"  OR Q$ = "y"  THEN  TEXT : HOME : END 
  21. 210  PRINT : GOTO 140: REM  ERROR RECOVERY
  22. 220  REM 
  23. 230  REM  DEFAULTED PARAMETERS
  24. 240  REM     DISPLAY SUBROUTINE
  25. 250  REM 
  26. 260  VTAB 1: HTAB 1: PRINT "      1          2          3": REM  6,10,AND 10 SPACES
  27. 270  IF P(1)  THEN  PRINT "ENCODE/";: INVERSE : PRINT "DECODE";: NORMAL : PRINT " ";: GOTO 290
  28. 280  INVERSE : PRINT "ENCODE";: NORMAL : PRINT "/DECODE ";
  29. 290  IF P(2)  THEN  PRINT "DATA/";: INVERSE : PRINT "DOS";: NORMAL : PRINT " ";: GOTO 310
  30. 300  INVERSE : PRINT "DATA";: NORMAL : PRINT "/DOS ";
  31. 310  PRINT "CODE SEQUENCE"
  32. 320  RETURN 
  33. 330  REM 
  34. 340  REM  CODE SEQUENCE INPUT/
  35. 350  REM       DISPLAY ROUTINE
  36. 360  REM 
  37. 370  VTAB 6: FOR C = 0 TO 9: PRINT "       CODE DIGIT #";C +1;" ......";: HTAB 27: PRINT " ";D(C): NEXT C: RETURN : REM  7 SPACES
  38. 380  VTAB 5: PRINT "PRESS <RETURN> FOR DEFAULT VALUE."
  39. 390  FOR C = 0 TO 9
  40. 400  VTAB 6 +C: HTAB 28: GET N$
  41. 410  IF  ASC(N$) = 13  THEN 440
  42. 420  IF  ASC(N$) =  >48  AND  ASC(N$) < = 57  THEN D(C) =  VAL(N$): GOTO 440
  43. 430  PRINT  CHR$(7);: GOTO 400
  44. 440  PRINT D(C): NEXT C
  45. 450  VTAB 5: PRINT L$
  46. 460  RETURN 
  47. 470  REM 
  48. 480  REM  CALL ENCRYPTER.BIN ROUTINE
  49. 490  REM 
  50. 500  VTAB 18
  51. 510  PRINT "IF THE ABOVE DATA ARE CORRECT AND DISK  TO BE PROCESSED IS IN SLOT 6, DRIVE 1,  THEN PRESS <RETURN>.  PRESS <SPACE> TO  CHANGE ANYTHING. ";: GET I$
  52. 520  IF I$ = " "  THEN  PRINT : VTAB 18: FOR L = 1 TO 4: PRINT L$: NEXT L: RETURN 
  53. 530  IF  ASC(I$) < >13  THEN  PRINT  CHR$(7): GOTO 500
  54. 540  IF P(1)  THEN  POKE 16555,56: POKE 16556,249: GOTO 560: REM  SUBTRACT POKES
  55. 550  POKE 16555,24: POKE 16556,121: REM  ADD POKES
  56. 560  IF P(2)  THEN  POKE 16430,3: GOTO 580: REM  SAVE DOS TRACKS
  57. 570  POKE 16430,0: POKE 16461,96: REM  DATA DISK
  58. 580  FOR C = 0 TO 9: POKE 16612 +C,D(C): NEXT C
  59. 590  HOME : VTAB 10: HTAB 12: PRINT "PROCESSING DISK"
  60. 600  CALL 16384: PRINT : INPUT "PRESS RETURN TO CONTINUE.";R$: HOME : GOSUB 260: GOSUB 370: RETURN