home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib35a.dsk / DECEMBER.1988 / ENCR.DECR.bas < prev    next >
BASIC Source File  |  2023-02-26  |  4KB  |  101 lines

  1. 10  REM *
  2. 20  REM * ENCR.DECR
  3. 30  REM * BY WILLIAM F. SIMPSON
  4. 40  REM * COPYRIGHT (C) 1988
  5. 50  REM * BY MICROSPARC, INC.
  6. 60  REM * CONCORD, MA 01742 
  7. 70  REM *
  8. 80  ONERR  GOTO 950
  9. 90  PRINT  CHR$(4)"BLOAD ENCR.OBJ"
  10. 100  HOME : VTAB 5: POKE 216,0
  11. 110  PRINT "TEXT FILE ENCRYPTION-DECRYPTION PROGRAM"
  12. 120  PRINT "   BY WILLIAM F. SIMPSON"
  13. 130  PRINT "   (C) 1988 MICROSPARC, INC."
  14. 140  PRINT 
  15. 150  PRINT "   1. ENCRYPTION  "
  16. 160  PRINT "   2. DECRYPTION  "
  17. 170  PRINT "   3. END         "
  18. 180  PRINT 
  19. 190  VTAB 13: PRINT "   ENTER CHOICE:";: GET AN$
  20. 200  IF AN$ <"1"  OR AN$ >"3"  THEN  PRINT : GOTO 190
  21. 210  IF AN$ = "3"  THEN  TEXT : HOME : VTAB 23: END 
  22. 220 AN =  VAL(AN$)
  23. 230  HOME 
  24. 240  REM  *    ENCRYPTION/DECRYPTION SECTION
  25. 250  GOSUB 920
  26. 260  VTAB 1: INPUT "INPUT FILE  =>";IX$
  27. 270 TE$ = IX$: GOSUB 730
  28. 280  IF FL = 1  THEN FL = 0: GOTO 260
  29. 290  IF IX$ = ""  THEN  GOTO 100
  30. 300  VTAB 3: INPUT "OUTPUT FILE =>";OX$
  31. 310 TE$ = OX$: GOSUB 730
  32. 320  IF FL = 1  THEN FL = 0: GOTO 300
  33. 330  IF OX$ = ""  THEN  GOTO 100
  34. 340  IF IX$ = OX$  THEN  VTAB 18: PRINT "INPUT AND OUTPUT FILES CANNOT HAVE THE  SAME NAME. PRESS RETURN TO CONTINUE. ";: POKE  -16368,0: GET AN$: PRINT : VTAB 18: HTAB 1: CALL  -958: HTAB 1: GOTO 260
  35. 350  VTAB 5: INPUT "ENTER KEY   =>";K$
  36. 360  IF K$ = ""  THEN  GOTO 100
  37. 370  IF  LEN(K$) < >1  THEN  GOTO 350
  38. 380  HOME 
  39. 390  HTAB 13: VTAB 12
  40. 400  IF AN = 1  THEN  PRINT "ENCRYPTING..."
  41. 410  IF AN = 2  THEN  PRINT "DECRYPTING..."
  42. 420  ONERR  GOTO 450
  43. 430  PRINT  CHR$(4);"VERIFY ";OX$
  44. 440  VTAB 22: PRINT "OUTPUT FILE ALREADY EXISTS.": GOSUB 900: GOTO 100
  45. 450  ONERR  GOTO 620
  46. 460  PRINT  CHR$(4);"VERIFY ";IX$
  47. 470  PRINT  CHR$(4);"OPEN ";IX$
  48. 480  PRINT  CHR$(4);"OPEN ";OX$
  49. 490  POKE 768, ASC(K$)
  50. 500  PRINT  CHR$(4);"READ ";IX$
  51. 510  GET X$
  52. 520  IF AN = 2  THEN  GOSUB 960
  53. 530  IF X$ = ""  THEN  POKE 769,0: GOTO 550
  54. 540  POKE 769, ASC(X$)
  55. 550  CALL 771
  56. 560 BN$ =  CHR$( PEEK(770))
  57. 570  PRINT  CHR$(4);"WRITE ";OX$
  58. 580  IF AN = 1  THEN  GOSUB 970
  59. 590  IF  ASC(BN$) = 4  OR  ASC(BN$) = 132  THEN  GOTO 1010
  60. 600  PRINT BN$;
  61. 610  GOTO 500
  62. 620  IF  PEEK(222) = 6  THEN  PRINT "FILE ";IX$: PRINT "DOES NOT EXIST": GOSUB 900: GOTO 100
  63. 630  IF  PEEK(222) = 13  THEN  HOME : PRINT "THIS PROGRAM ONLY WORKS WITH TEXT FILES.": GOSUB 900: GOTO 100
  64. 640  IF  PEEK(222) < >5  THEN  HOME : PRINT "DOS ERROR "; PEEK(222): PRINT  CHR$(4);"CLOSE": GOSUB 900: POKE 216,0: VTAB 23: HOME : END 
  65. 650  POKE 216,0
  66. 660  PRINT  CHR$(4);"CLOSE"
  67. 670  IF AN = 1  THEN  PRINT "ENCRYPTION COMPLETED"
  68. 680  IF AN = 2  THEN  PRINT "DECRYPTION COMPLETED"
  69. 690  FOR I = 1 TO 1000: NEXT 
  70. 700  GOTO 100
  71. 710  REM  *  CHANGE SLOT/DRIVE & CATALOG 
  72. 720  REM  *          SUBROUTINE           
  73. 730  ONERR  GOTO 940
  74. 740  IF TE$ = "/"  THEN 770
  75. 750  IF TE$ = "?"  THEN 860
  76. 760  RETURN 
  77. 770  VTAB 7: PRINT "SLOT:";: GET S$
  78. 780  IF S$ <"1"  OR S$ >"6"  THEN  PRINT : GOTO 770
  79. 790  PRINT S$;
  80. 800  HTAB 8: VTAB 7: PRINT " DRIVE:";: GET D$
  81. 810  IF D$ <"1"  OR D$ >"2"  THEN  PRINT : GOTO 800
  82. 820  PRINT D$
  83. 830 S =  VAL(S$):D =  VAL(D$)
  84. 840  IF  PEEK(48896) = 76  THEN  PRINT  CHR$(4);"PREFIX,S";S;",D";D: GOTO 860
  85. 850  POKE 43624,D: POKE 43626,S
  86. 860  POKE 34,8
  87. 870  HOME 
  88. 880  VTAB 8
  89. 890  PRINT  CHR$(4); LEFT$("CATALOG",7 -4 *( PEEK(48896) = 76))
  90. 900  VTAB 23: PRINT "PRESS RETURN TO CONTINUE.";: POKE  -16368,0: GET AN$: HOME 
  91. 910 FL = 1: POKE 34,0
  92. 920  VTAB 9: PRINT "PRESS '/' TO CHANGE SLOT & DRIVE       ": PRINT "PRESS '?' TO SEE A CATALOG             ": PRINT "OR 'RETURN' TO EXIT                    "
  93. 930  POKE 216,0: RETURN 
  94. 940  HOME : PRINT "INVALID SLOT&DRIVE OR NON SYSTEM DISK": PRINT "PRESS RETURN TO CONTINUE";: POKE  -16368,0: GET AN$:FL = 1: POKE 34,0: HOME : CALL  -3288: POKE 216,0: GOSUB 920: GOTO 740
  95. 950  HOME : VTAB 23: PRINT "ERROR LOADING ENCR.OBJ": END 
  96. 960  GET B$: GET C$:A$ = X$ +B$ +C$:X$ =  CHR$( VAL(A$)): RETURN 
  97. 970 BN$ =  STR$( PEEK(770))
  98. 980  IF  LEN(BN$) = 1  THEN BN$ = "00" +BN$
  99. 990  IF  LEN(BN$) = 2  THEN BN$ = "0" +BN$
  100. 1000  RETURN 
  101. 1010  PRINT  CHR$(4);"CLOSE": VTAB 21: PRINT "TEXT FILE CANNOT BE DECRYPTED": GOSUB 900: GOTO 100