home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib36b.dsk / SNAPSHOT.bas < prev    next >
BASIC Source File  |  2023-02-26  |  5KB  |  112 lines

  1. 10  REM  *************************
  2. 20  REM  *      SNAPSHOT         *
  3. 30  REM  * BY ROBERT T. YUILLE   *
  4. 40  REM  * COPYRIGHT (C) 1989    *
  5. 50  REM  * MINDCRAFT PUBL. CORP. *
  6. 60  REM  * CONCORD, MA  01742    *
  7. 70  REM  *************************
  8. 80 D$ =  CHR$(4):E$ =  CHR$(27):I$ =  CHR$(9):R$ =  CHR$(13):Q$ =  CHR$(17)
  9. 90  PRINT E$Q$: PRINT D$"PR#0": POKE 2043,255
  10. 100  TEXT : HOME : NORMAL : RESTORE : POKE 34,4: POKE 35,23
  11. 110  HTAB 18: PRINT "SNAPSHOT": HTAB 13: PRINT "BY ROBERT T. YUILLE": HTAB 13: PRINT "COPYRIGHT (C) 1989": HTAB 11: PRINT "MINDCRAFT PUBL. CORP."
  12. 120  GOSUB 1120: GOSUB 1100
  13. 130  VTAB 8: HTAB 1: PRINT "PRESS RETURN TO CONTINUE: ";: GET A$
  14. 140  IF A$ =  CHR$(27)  THEN  POKE 34,0: POKE 35,24: TEXT : HOME : END 
  15. 150  REM   INITIALIZATION
  16. 160 PD =  PEEK(48896) = 76: IF   NOT PD  THEN  HIMEM: 35840:D$ = R$ +D$: GOTO 220: REM   DOS
  17. 170  FOR I = 768 TO I +8
  18. 180  READ A: POKE I,A
  19. 190  NEXT 
  20. 200  CALL 768
  21. 210  DATA  32,248,190,169,10,32,245,190,96
  22. 220  ONERR  GOTO 260
  23. 230  PRINT : PRINT D$"BLOAD SS.BIN"
  24. 240  REM   -RESET ERROR FLAG-
  25. 250  POKE 216,0: GOTO 290
  26. 260  POKE 216,0: HOME : VTAB 10
  27. 270  IF  PEEK(222) = 6  THEN  PRINT "SS.BIN IS NOT ON THIS DISK.": PRINT : PRINT "INSERT CORRECT DISK...": PRINT : PRINT "AND RUN PROGRAM AGAIN": END 
  28. 280  GOTO 890
  29. 290  HOME : GOSUB 1120: GOSUB 1100: VTAB 8: HTAB 1: PRINT "UPRIGHT OR SIDEWAYS PICTURE (U/S)?: ";
  30. 300  GET Z$
  31. 310  IF Z$ = "U"  OR Z$ = "u"  THEN  POKE 9,1: PRINT Z$: GOTO 360
  32. 320  IF Z$ =  CHR$(27)  THEN  TEXT : HOME : END 
  33. 330  IF Z$ < >"S"  AND Z$ < >"s"  THEN 300
  34. 340  PRINT Z$: POKE 9,0
  35. 350  POKE 9,0
  36. 360  HOME : GOSUB 1110: VTAB 8: HTAB 1: PRINT "WHICH DISK DRIVE DO YOU": PRINT "WANT TO USE (1/2)?: ";
  37. 370  GET Z$
  38. 380  IF Z$ = "1"  THEN DR = 1: PRINT Z$: GOTO 420
  39. 390  IF Z$ =  CHR$(27)  THEN 290
  40. 400  IF Z$ < >"2"  THEN 370
  41. 410 DR = 2: PRINT Z$
  42. 420  HOME : VTAB 8: HTAB 1: PRINT "WHICH SLOT DO YOU WANT": PRINT "TO USE (5/6/7)?: ";
  43. 430  GET Z$
  44. 440  IF Z$ = "5"  THEN SL = 5: PRINT Z$: GOTO 490
  45. 450  IF Z$ = "6"  THEN SL = 6: PRINT Z$: GOTO 490
  46. 460  IF Z$ = "7"  THEN SL = 7: PRINT Z$: GOTO 490
  47. 470  IF Z$ =  CHR$(27)  THEN 360
  48. 480  GOTO 420
  49. 490  HOME : GOSUB 1110: VTAB 10: HTAB 1: PRINT "ENTER  ?  TO CATALOG DISK"
  50. 500  HTAB 1: VTAB 11: PRINT "PRESS RETURN TO PRINT CURRENT SCREEN"
  51. 510  HTAB 1: VTAB 8: PRINT "PICTURE FILENAME: ";: POKE  -16368,0: GOSUB 920
  52. 520 Z$ = ""
  53. 530  IF P$ =  CHR$(27)  THEN 420
  54. 540  IF P$ = "?"  THEN 580
  55. 550  IF P$ = ""  THEN  POKE  -16297,0: POKE  -16301,0: POKE  -16304,0: VTAB 22: HTAB 1: PRINT "PRESS RETURN TO PRINT ";: GET Z$: IF Z$ = R$  THEN  POKE  -16302,0: GOTO 740
  56. 560  IF Z$ =  CHR$(27)  THEN  POKE  -16303,0: GOTO 490
  57. 570  GOTO 600
  58. 580  ONERR  GOTO 890
  59. 590  HOME : PRINT D$ LEFT$("CATALOG",7 -4 *( PEEK(48896) = 76))",S"SL",D"DR: HTAB 1: VTAB 23: PRINT "PRESS RETURN TO CONTINUE: ";: GET A$: HOME : GOTO 490
  60. 600  HOME : VTAB 8: PRINT "BE SURE YOUR PRINTER IS READY": VTAB 10: PRINT "PRESS RETURN TO CONTINUE: ";: GET A$
  61. 610  IF A$ =  CHR$(27)  THEN 490
  62. 620  HGR : POKE  -16302,0: ONERR  GOTO 670
  63. 630  ONERR  GOTO 670
  64. 640  PRINT : PRINT D$"BLOAD"P$",S"SL",D"DR",A$2000"
  65. 650  REM   -RESET ERROR FLAG-
  66. 660  POKE 216,0: GOTO 740
  67. 670  POKE 216,0: POKE  -16303,0: HOME : VTAB 10
  68. 680  IF  PEEK(222) = 8  THEN  PRINT "I/O ERROR": GOTO 730
  69. 690  IF  PEEK(222) = 11  OR  PEEK(222) = 16  THEN  PRINT "THAT IS NOT A LEGAL FILE NAME.": GOTO 730
  70. 700  IF  PEEK(222) = 6  OR  PEEK(222) = 7  THEN  PRINT "THAT PICTURE IS NOT ON THIS DISK.": GOTO 730
  71. 710  IF  PEEK(222) = 13  THEN  PRINT "THAT FILE IS NOT A BINARY FILE.": GOTO 730
  72. 720  GOTO 890
  73. 730  GOSUB 1120: VTAB 12: HTAB 1: PRINT "PRESS RETURN AND TRY AGAIN: ";: GET Z$: HOME : CALL  -3288: GOTO 490
  74. 740  PRINT D$"PR#1"
  75. 750  PRINT E$"n": REM  9 CPI
  76. 760  PRINT  CHR$(14): REM  HEADLINE BEGIN
  77. 770  PRINT I$"K";I$"Z": REM  STOP LF AFTER CR & CONTROL CHARACTERS
  78. 780  CALL 36864
  79. 790  PRINT 
  80. 800  PRINT  CHR$(24): REM  CANCEL UNPRINTED TEXT
  81. 810  PRINT  CHR$(12): REM  FORM FEED
  82. 820  PRINT D$"PR#0"
  83. 830  POKE  -16303,0: HOME : HTAB 1: VTAB 10: PRINT "PRINT ANOTHER PICTURE  Y/N ?: ";
  84. 840  GET C$
  85. 850  IF C$ = "Y"  OR C$ = "y"  THEN 290
  86. 860  IF C$ < >"N"  AND C$ < >"n"  AND C$ < > CHR$(27)  THEN 840
  87. 870  TEXT : HOME : END 
  88. 880  REM   -- UNUSUAL DISK ERRORS --
  89. 890  TEXT : HOME : PRINT "A SYSTEM ERROR #"; PEEK(222);" HAS OCCURRED"
  90. 900  PRINT "AT LINE #"; PEEK(218) + PEEK(219) *256
  91. 910  POKE 216,0: END 
  92. 920 T = 1:P$ = ""
  93. 930  GET KB$
  94. 940  IF KB$ =  CHR$(13)  THEN  RETURN 
  95. 950  IF T = 1  AND (KB$ =  CHR$(8)  OR KB$ =  CHR$(127))  THEN 930
  96. 960  IF T = 1  AND KB$ =  CHR$(27)  THEN P$ =  CHR$(27): RETURN 
  97. 970  IF T = 1  AND KB$ =  CHR$(63)  THEN P$ =  CHR$(63): RETURN 
  98. 980  IF T = 1  AND  ASC(KB$) <65  THEN 930
  99. 990  IF T = 1  AND  ASC(KB$) >122  THEN 930
  100. 1000  IF T = 1  AND ( ASC(KB$) <97  AND  ASC(KB$) >90)  THEN 930
  101. 1010  IF KB$ =  CHR$(8)  OR KB$ =  CHR$(127)  THEN 1080
  102. 1020  IF KB$ =  CHR$(27)  THEN  HTAB 19: PRINT "               ";: HTAB 19: GOTO 920
  103. 1030 P$ = P$ +KB$
  104. 1040  NORMAL : HTAB T +18: PRINT KB$;
  105. 1050 T = T +1
  106. 1060  IF T = 16  THEN  RETURN 
  107. 1070  GOTO 930
  108. 1080  HTAB T +18: PRINT " ";:T = T -1: IF T = 1  THEN P$ = "": HTAB T +18: GOTO 930
  109. 1090 P$ =  LEFT$(P$,T -1): HTAB T +18: GOTO 930
  110. 1100  VTAB 24: HTAB 1: INVERSE : PRINT "PRESS ESCAPE TO QUIT";: NORMAL : RETURN 
  111. 1110  VTAB 24: HTAB 1: INVERSE : PRINT "PRESS ESCAPE TO BACK UP";: NORMAL : RETURN 
  112. 1120  VTAB 24: HTAB 1: PRINT "                       ";: RETURN