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

  1. 10  REM  **********************
  2. 20  REM  * PRINT STUDIO       *
  3. 30  REM  * BY ALLAN LAMB      *
  4. 40  REM  * COPYRIGHT (C) 1989 *
  5. 50  REM  * BY MICROSPARC, INC.*
  6. 60  REM  * CONCORD, MA 01742  *
  7. 70  REM  **********************
  8. 80  IF  PEEK(104) < >96  THEN  POKE 103,1: POKE 104,96: POKE 24576,0: PRINT  CHR$(4)"RUN PRINT.STUDIO"
  9. 90  HOME : PRINT  CHR$(17): VTAB 1: HTAB 15: PRINT "PRINT STUDIO": HTAB 14: PRINT "BY ALLAN LAMB": HTAB 12: PRINT "COPYRIGHT (C) 1989": HTAB 12: PRINT "BY MICROSPARC, INC."
  10. 100  POKE 49168,0:TYPE = 249:HR = 3245:RD = 3279:RS = 3110
  11. 110  PRINT  CHR$(4);"BLOAD STUDIO.OBJ"
  12. 120  PRINT  CHR$(4);"BLOAD STUDIO.FONTS,A$2D00"
  13. 130  VTAB 7: HTAB 1: PRINT "PRINTER CARD IN WHICH SLOT (1/2/4/5) ";
  14. 140  IF A$ =  CHR$(27)  THEN  TEXT : HOME : END 
  15. 150  GET A$: PRINT A$: IF A$ <"1"  OR A$ >"5"  THEN 130
  16. 160  IF A$ = "3"  THEN 130
  17. 170  IF A$ =  CHR$(27)  THEN  TEXT : HOME : END 
  18. 180  POKE 10,176 + VAL(A$)
  19. 190  VTAB 10: HTAB 1: PRINT "ARE YOU USING A GRAPPLER CARD (Y/N) ";
  20. 200  GET A$: PRINT A$: IF A$ = "Y"  OR A$ =  CHR$(121)  THEN  POKE 11,1: GOTO 240
  21. 210  IF A$ =  CHR$(27)  THEN 130
  22. 220  IF A$ < >"N"  AND A$ < > CHR$(110)  THEN 190
  23. 230  POKE 11,0
  24. 240  VTAB 13: HTAB 1: PRINT "PRINT "; CHR$(34);"SUCCESSFUL DOWNLOAD"; CHR$(34);" AFTER EVERY": HTAB 12: PRINT "DOWNLOAD (Y/N) ";
  25. 250  GET A$: PRINT A$: IF A$ = "Y"  OR A$ =  CHR$(121)  THEN  POKE 12,1: GOTO 290
  26. 260  IF A$ =  CHR$(27)  THEN 190
  27. 270  IF A$ < >"N"  AND A$ < > CHR$(110)  THEN 240
  28. 280  POKE 12,0
  29. 290  CALL 3072
  30. 300  ONERR  GOTO 810
  31. 310  IF  PEEK(TYPE) = 131  THEN  NOTRACE : GOSUB 470: CALL HR: CALL RD: CALL RS
  32. 320  IF  PEEK(TYPE) = 140  THEN  NOTRACE : GOSUB 490: CALL HR: CALL RD: CALL RS
  33. 330  IF  PEEK(TYPE) = 147  THEN  NOTRACE : GOSUB 430: CALL HR: CALL RD: CALL RS
  34. 340  IF  PEEK(TYPE) = 145  THEN  NOTRACE : GOTO 360
  35. 350  GOTO 300
  36. 360  TEXT : HOME : VTAB 12: HTAB 1: PRINT "SET PRINTER FOR CUSTOM CHAR. SET (Y/N)";
  37. 370  GET A$: PRINT A$: IF A$ = "Y"  OR A$ =  CHR$(121)  THEN 400
  38. 380  IF A$ < >"N"  AND A$ < > CHR$(110)  THEN 360
  39. 390  HOME : END 
  40. 400  PRINT  CHR$(4)"PR#" PEEK(10) -176: PRINT  CHR$(27) + CHR$(39): PRINT  CHR$(4)"PR#0"
  41. 410  VTAB 14: HTAB 13: PRINT "<<< DONE >>>": PRINT : PRINT "(DO NOT POWER - DOWN PRINTER OR COMPUTER"
  42. 420  TEXT : HOME : END 
  43. 430  TEXT : HOME : VTAB 24: HTAB 1: PRINT "SAVE FILE";: GOSUB 740: IF ES  THEN  RETURN 
  44. 440  HTAB 1: VTAB 14: PRINT "NAME OF SET TO SAVE? ";: GOSUB 550
  45. 450  IF P$ =  CHR$(27)  THEN  RETURN 
  46. 460 P$ = P$ +".FONT": PRINT  CHR$(4): PRINT  CHR$(4)"BSAVE"P$",A$2400,L$5C0,S"S",D"D: RETURN 
  47. 470  TEXT : HOME : VTAB 24: HTAB 1: PRINT "CATALOG";: GOSUB 740: IF ES  THEN  RETURN 
  48. 480  PRINT  CHR$(4): PRINT  CHR$(4) LEFT$("CATALOG",7 -4 *( PEEK(48896) = 76))",S"S",D"D: GOSUB 540: POKE 49168,0: RETURN 
  49. 490  TEXT : HOME : VTAB 24: HTAB 1: PRINT "LOAD FILE";: GOSUB 740: IF ES  THEN  RETURN 
  50. 500  HTAB 1: VTAB 14: PRINT "NAME OF SET TO LOAD? ";: GOSUB 550
  51. 510  IF P$ =  CHR$(27)  THEN  RETURN 
  52. 520  IF P$ =  CHR$(63)  THEN  TEXT : HOME : GOSUB 480: HOME : VTAB 24: PRINT "LOAD FILE";: VTAB 14: GOTO 500
  53. 530 P$ = P$ +".FONT": PRINT  CHR$(4): PRINT  CHR$(4)"BLOAD"P$",A$2400,S"S",D"D: POKE 49168,0: RETURN 
  54. 540  PRINT : PRINT "PRESS RETURN TO CONTINUE";: GET QQ$: RETURN 
  55. 550 T = 1:P$ = ""
  56. 560  GET KB$
  57. 570  IF KB$ =  CHR$(13)  AND T >1  THEN  RETURN 
  58. 580  IF T = 1  AND (KB$ =  CHR$(8)  OR KB$ =  CHR$(127))  THEN 560
  59. 590  IF T = 1  AND KB$ =  CHR$(27)  THEN P$ =  CHR$(27): RETURN 
  60. 600  IF T = 1  AND KB$ =  CHR$(63)  THEN P$ =  CHR$(63): RETURN 
  61. 610  IF T = 1  AND  ASC(KB$) <65  THEN 560
  62. 620  IF T = 1  AND  ASC(KB$) >122  THEN 560
  63. 630  IF T = 1  AND ( ASC(KB$) <97  AND  ASC(KB$) >90)  THEN 560
  64. 640  IF KB$ =  CHR$(8)  OR KB$ =  CHR$(127)  THEN 710
  65. 650  IF KB$ =  CHR$(27)  THEN  HTAB 23: PRINT "                      ";: HTAB 22: GOTO 550: REM  22 SPACES
  66. 660 P$ = P$ +KB$
  67. 670  NORMAL : HTAB T +21: PRINT KB$;
  68. 680 T = T +1
  69. 690  IF T = 16  THEN  RETURN 
  70. 700  GOTO 560
  71. 710  HTAB T +21: PRINT " ";:T = T -1: IF T = 1  THEN P$ = "": HTAB T +21: GOTO 560
  72. 720 P$ =  LEFT$(P$,T -1): HTAB T +21: GOTO 560
  73. 730  VTAB 24: HTAB 1: PRINT "                       ";: RETURN : REM  23 SPACES
  74. 740  HTAB 1: VTAB 10: PRINT "WHICH SLOT (5,6,7)? ";: GET QQ$
  75. 750  IF QQ$ =  CHR$(27)  THEN ES = 1: RETURN 
  76. 760  IF QQ$ < >"5"  AND QQ$ < >"6"  AND QQ$ < >"7"  THEN 740
  77. 770 S =  VAL(QQ$):ES = 0
  78. 780  HTAB 1: VTAB 12: PRINT "WHICH DRIVE (1,2)? ";: GET QQ$: IF QQ$ =  CHR$(27)  THEN 740
  79. 790  IF QQ$ < >"1"  AND QQ$ < >"2"  THEN 780
  80. 800 D =  VAL(QQ$): HOME : RETURN 
  81. 810  HOME : IF  PEEK(222) = 6  THEN 860
  82. 820  IF  PEEK(222) = 3  THEN 870
  83. 830  IF  PEEK(222) = 8  THEN 880
  84. 840  IF  PEEK(222) = 4  THEN 890
  85. 850 N =  PEEK(218) +256 * PEEK(219): HOME : HTAB 1: VTAB 10: PRINT "UNEXPECTED ERROR #" PEEK(222)"AT LINE"N: END 
  86. 860  VTAB 12: HTAB 1: PRINT  CHR$(7)"FILE NOT FOUND": GOSUB 540: CALL HR: CALL RD: CALL RS: GOTO 300
  87. 870  VTAB 12: HTAB 1: PRINT  CHR$(7)"NO DEVICE CONNECTED": GOSUB 540: CALL HR: CALL RD: CALL RS: GOTO 300
  88. 880  VTAB 12: HTAB 1: PRINT  CHR$(7)"I/O ERROR": GOSUB 540: CALL HR: CALL RD: CALL RS: GOTO 300
  89. 890  VTAB 12: HTAB 1: PRINT  CHR$(7)"DISK IS WRITE PROTECTED": GOSUB 540: CALL HR: CALL RD: CALL RS: GOTO 300