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

  1. 10  REM  **********************
  2. 20  REM  *     PS.UTILITY     *
  3. 30  REM  * BY STEVE ARMSTRONG *
  4. 40  REM  * COPYRIGHT (C) 1986 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * CONCORD, MA  01742 *
  7. 70  REM  **********************
  8. 80  LOMEM: 16988: GOSUB 450:EF = 1: ONERR  GOTO 1270
  9. 90  PRINT  CHR$(4)"BLOAD PS.CONVERT"
  10. 100  REM  MENU
  11. 110 EF = 2: GOSUB 390
  12. 120  PRINT 
  13. 130  PRINT 
  14. 140  PRINT 
  15. 150  HTAB 5: PRINT "PS.UTILITY BY STEVE ARMSTRONG"
  16. 160  HTAB 3: PRINT "COPYRIGHT 1986 BY MICROSPARC, INC"
  17. 170  HTAB 3: PRINT "APPLE HI-RES TO PRINT SHOP GRAPHIC"
  18. 180  PRINT 
  19. 190  PRINT 
  20. 200  HTAB 5: PRINT "1. LOAD HIRES SCREEN"
  21. 210  PRINT 
  22. 220  HTAB 5: PRINT "2. FRAME PRINT SHOP GRAPHIC"
  23. 230  PRINT 
  24. 240  HTAB 5: PRINT "3. GENERATE PRINT SHOP GRAPHIC FILE"
  25. 250  PRINT 
  26. 260  HTAB 5: PRINT "4. HELP SCREEN"
  27. 270  PRINT 
  28. 280  HTAB 5: PRINT "5. QUIT"
  29. 290  PRINT 
  30. 300  PRINT 
  31. 310  HTAB 3: PRINT "ENTER CHOICE (1 - 5):";
  32. 320  HTAB 24: VTAB 20: GET A$: PRINT A$
  33. 330  IF A$ = "5"  THEN 360
  34. 340  IF A$ <"1"  OR A$ >"5"  THEN  PRINT  CHR$(7): GOTO 320
  35. 350  ON  VAL(A$) GOSUB 520,610,920,1060: GOTO 370
  36. 360  HOME : VTAB 10: INPUT "ARE YOU SURE YOU WANT TO QUIT? ";YN$: ON YN$ < >"Y"  AND YN$ < > CHR$(121) GOTO 110: END 
  37. 370  GOTO 100
  38. 380  REM  SET SCREEN TO TEXT
  39. 390  TEXT : HOME 
  40. 400  RETURN 
  41. 410  REM  SET SCREEN TO GRAPHICS
  42. 420  POKE  -16300,0: POKE  -16302,0: POKE  -16304,0: POKE  -16297,0
  43. 430  RETURN 
  44. 440  REM  INITIALIZATION
  45. 450  ROT= 0: SCALE= 1: TEXT : HOME 
  46. 460 SH = 16964
  47. 470  RESTORE : FOR ZZ = SH TO SH +22: READ BY: POKE ZZ,BY: NEXT 
  48. 480  POKE 232,SH - INT(SH/256) *256
  49. 490  POKE 233, INT(SH/256)
  50. 500  RETURN 
  51. 510  REM  LOADING HI-RES PICTURE
  52. 520  GOSUB 390: VTAB 10
  53. 530  PRINT "ENTER PICTURE FILE NAME"
  54. 540  PRINT "(<RETURN> TO CANCEL, ? FOR CATALOG)": INPUT "-> ";PC$
  55. 550  IF PC$ = ""  THEN 600
  56. 560  IF PC$ = "?"  THEN  PRINT  CHR$(4) LEFT$("CATALOG",7 -4 *( PEEK(48896) = 76)): GOTO 530
  57. 570  HOME : VTAB 10
  58. 580  HGR : POKE  -16302,0
  59. 590  PRINT  CHR$(4);"BLOAD ";PC$;",A$2000"
  60. 600  RETURN 
  61. 610  REM  FRAMING GRAPHIC
  62. 620  GOSUB 420: POKE 230,32
  63. 630 X = 139:Y = 95: POKE 49168,0
  64. 640  SCALE= 10
  65. 650  POKE 49168,0: XDRAW 2 AT X,Y: FOR ZZ = 1 TO 10: NEXT : XDRAW 2 AT X,Y
  66. 660 X3 =  PEEK(49152): IF X3 <128  THEN 650
  67. 670  POKE 49168,0:X3 =  PEEK(49152)
  68. 680  IF X3 < >8  THEN 700
  69. 690 X = X -8: IF X < = 0  THEN X = 0: GOTO 910
  70. 700  IF X3 < >21  THEN 720
  71. 710 X = X +8: IF X > = 191  THEN X = 191: GOTO 910
  72. 720  IF X3 < >65  AND X3 < >11  THEN 740
  73. 730 Y = Y -8: IF Y < = 0  THEN Y = 0: GOTO 910
  74. 740  IF X3 < >90  AND X3 < >10  THEN 760
  75. 750 Y = Y +8: IF Y > = 140  THEN Y = 140: GOTO 910
  76. 760  IF X3 < >81  THEN 810
  77. 770  SCALE= 1
  78. 780  POKE 49168,0
  79. 790  GOSUB 390
  80. 800  RETURN 
  81. 810  IF X3 < >73  THEN 830
  82. 820 Y = Y -1: IF Y < = 0  THEN Y = 0: GOTO 910
  83. 830  IF X3 < >77  THEN 850
  84. 840 Y = Y +1: IF Y >140  THEN Y = 140: GOTO 910
  85. 850  IF X3 < >74  THEN 870
  86. 860 X = X -1: IF X <0  THEN X = 0: GOTO 910
  87. 870  IF X3 < >75  THEN 890
  88. 880 X = X +1: IF X >191  THEN X = 191: GOTO 910
  89. 890  IF X3 < >63  AND X3 < >47  THEN 910
  90. 900  GOSUB 1060: GOSUB 420
  91. 910  POKE 49168,0: GOTO 650
  92. 920  REM  CONVERTING AND SAVING GRAPHIC
  93. 930  GOSUB 380: VTAB 10
  94. 940  PRINT "ENTER FILE NAME FOR PRINT SHOP GRAPHIC"
  95. 950  PRINT "(<RETURN> TO CANCEL, ? FOR CATALOG)": INPUT "-> ";PS$
  96. 960  IF PS$ = ""  THEN 1020
  97. 970  IF PS$ = "?"  THEN  PRINT  CHR$(4) LEFT$("CATALOG",7 -4 *( PEEK(48896) = 76)): GOTO 940
  98. 980  GOSUB 420
  99. 990  HCOLOR= 3
  100. 1000  POKE 950,X -256 *(X >255): POKE 951,X >255: POKE 952,Y: CALL 768
  101. 1010  PRINT  CHR$(4);"BSAVE ";PS$;",A$4000,L$240"
  102. 1020  RETURN 
  103. 1030  DATA  2,0,6,0,8,0,5,0
  104. 1040  DATA  45,45,45,45,53,54,54
  105. 1050  DATA  63,63,63,63,39,36,36,0
  106. 1060  REM  HELP SCREEN
  107. 1070  GOSUB 380: PRINT : PRINT 
  108. 1080  HTAB 6: PRINT "HELP SCREEN"
  109. 1090  PRINT 
  110. 1100  HTAB 4: PRINT "RECTANGLE CURSOR MOVEMENT"
  111. 1110  PRINT 
  112. 1120  HTAB 4: PRINT "<-  LEFT 8 PIXELS"
  113. 1130  HTAB 4: PRINT "->  RIGHT 8 PIXELS"
  114. 1140  HTAB 4: PRINT "A   UP 8 PIXELS"
  115. 1150  HTAB 4: PRINT "Z   DOWN 8 PIXELS"
  116. 1160  HTAB 4: PRINT "J   LEFT 1 PIXEL"
  117. 1170  HTAB 4: PRINT "K   RIGHT 1 PIXEL"
  118. 1180  HTAB 4: PRINT "I   UP 1 PIXEL"
  119. 1190  HTAB 4: PRINT "M   DOWN 1 PIXEL"
  120. 1200  PRINT 
  121. 1210  HTAB 4: PRINT "Q   DONE WITH CURSOR POSITIONING"
  122. 1220  PRINT 
  123. 1230  HTAB 4: PRINT "?   DISPLAY HELP SCREEN"
  124. 1240  PRINT : PRINT 
  125. 1250  HTAB 4: PRINT "PRESS <RETURN>";: GET A$: PRINT A$: GOSUB 380
  126. 1260  RETURN 
  127. 1270 E =  PEEK(222):EL =  PEEK(218) +256 * PEEK(219): CALL  -3288
  128. 1280  IF E = 6  AND EF = 1  THEN EM$ = "PS.CONVERT FILE NOT ON THIS DISK": GOTO 1350
  129. 1290  IF E = 6  THEN EM$ = "FILE NOT ON THIS DISK": GOTO 1340
  130. 1300  IF E = 8  THEN EM$ = "I/O ERROR--CHECK DRIVE DOOR": GOTO 1340
  131. 1310  IF E = 13  THEN EM$ = "FILE TYPE MISMATCH--MUST BE BINARY"
  132. 1320  IF E = 11  AND  PEEK(48896) = 76  THEN EM$ = "ILLEGAL PRODOS FILE NAME"
  133. 1330 EM$ = "ERROR " + STR$(E) +" IN LINE " + STR$(EL) +"."
  134. 1340  HOME : TEXT : VTAB 12: PRINT EM$: VTAB 21: PRINT "PRESS <RETURN> TO CONTINUE";: GET Z$: PRINT : ON EF GOTO 80,110
  135. 1350  HOME : TEXT : VTAB 12: PRINT EM$: VTAB 21: PRINT "<RETURN> TO CONTINUE, <ESC> TO QUIT";: GET Z$: PRINT : ON Z$ =  CHR$(27) GOTO 1360: GOTO 80
  136. 1360  END