home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib32b.dsk / GALLERY.bas < prev    next >
BASIC Source File  |  2023-02-26  |  6KB  |  103 lines

  1. 10  REM  **************************
  2. 20  REM  **************************
  3. 30  REM  **                      **
  4. 40  REM  **  GALLERY             **
  5. 50  REM  **                      **
  6. 60  REM  **  Copyright (C) 1987  **
  7. 70  REM  **  by MicroSPARC, Inc. **
  8. 80  REM  **  52 Domino Drive     **
  9. 90  REM  **  Concord, MA  01742  **
  10. 100  REM **                      **
  11. 110  REM **************************
  12. 120  REM **************************
  13. 130 :
  14. 140 :
  15. 150  REM  by Robert C. Moore
  16. 160 :
  17. 170  REM  Part of Nibble Clip Art
  18. 180 :
  19. 190 :
  20. 200  HIMEM: 6144
  21. 210 D$ =  CHR$(4):B$ = ",S6,D1": POKE 216,0:V = 0:RAM =  PEEK(967):O$ = "PRODOS":C$ = "CAT":P$ = "PATH":R$ = ",S3,D2":DOS =  PEEK(966): IF DOS  THEN O$ = "DOS3.3":C$ = "CATALOG":P$ = "FILE":R$ = ",S3,D1"
  22. 220  ONERR  GOTO 940
  23. 230  GOSUB 890:PR$ = "PRESS <RETURN>":SD$ = B$: IF RAM  THEN SD$ = R$
  24. 240  PRINT D$"BLOAD BACKGROUND"SD$: PRINT D$"BLOAD UNPACK.FAST"SD$
  25. 250  ONERR  GOTO 580
  26. 260  POKE 49168,0: HTAB 10: PRINT "<L> LOAD PICTURE FILE": VTAB 17: HTAB 10: PRINT "<C> CATALOG DISK VOLUME": IF V  THEN  VTAB 19: HTAB 10: PRINT "<V> VIEW FILE IN MEMORY"
  27. 270  VTAB 19 +V +V: HTAB 8: PRINT "<ESC> RETURN TO MAIN MENU"
  28. 280  GOSUB 860: IF K = 195  OR K = 227 GOTO 800
  29. 290  IF V  THEN  IF K = 214  OR K = 246 GOTO 360
  30. 300  IF K = 155  OR K = 209  OR K = 241 GOTO 970
  31. 310  IF K < >204  AND K < >236 GOTO 280
  32. 320  GOSUB 550: HTAB 12: PRINT "LOAD PICTURE FILE": GOSUB 660:D = 0: GOSUB 710: IF ESC  THEN  GOSUB 550: GOTO 260
  33. 330  VTAB 21 +2 *RAM: PRINT  SPC( 28): HTAB 1: PRINT P$"NAME":";:INPUT "";F$:E=1:POKE 38397,255:POKE 38398,0:POKE 38399,0:?D$"B LOAD "F$SD$
  34. 340 V = 0:NP =  PEEK(38397):A = 38400 - PEEK(38398) -256 * PEEK(38399):S =  INT(A/576): IF 576 *S < >A GOTO 630
  35. 350  IF S < >NP GOTO 630
  36. 360 V = 1: GOSUB 550: HTAB 7: PRINT "WRITE GALLERY.PIC SCREENS TO:": GOSUB 660: VTAB 21 +2 *RAM: HTAB 14: PRINT "  <D> DISPLAY ONLY":D = 1: GOSUB 710: IF D GOTO 430
  37. 370 N = 5: ONERR  GOTO 400
  38. 380 F$ = "": IF P  THEN  VTAB 21 +2 *RAM: PRINT  SPC( 79): VTAB 20 +2 *RAM: PRINT : PRINT "PREFIX: ";: INPUT "";F$: IF  RIGHT$(F$,1) < >"/"  THEN F$ = F$ +"/"
  39. 390  PRINT D$"DELETE"F$"GALLERY.PIC."N;SD$: GOTO 410
  40. 400  CALL  -3288
  41. 410 N = N -1: IF N GOTO 390
  42. 420  ONERR  GOTO 580
  43. 430  GOSUB 550: PRINT "DO YOU WANT THE MINI-GRAPHICS XDRAWN TO ": PRINT " WHITE OR BLACK BACKGROUNDS? (W/B) ";
  44. 440  GET A$: IF A$ < >"W"  AND A$ < > CHR$(119)  AND A$ < >"B"  AND A$ < > CHR$(98) GOTO 440
  45. 450  PRINT A$: POKE 7213,9: POKE 7214,15: POKE 7221,127: IF A$ = "B"  OR A$ =  CHR$(98)  THEN  POKE 7213,41: POKE 7214,240: POKE 7221,0
  46. 460 E = 2:N = 1:PN = 0
  47. 470  CALL 7168: VTAB 22: HTAB 14: PRINT "GALLERY.PIC."N: FOR Y = 0 TO 108  STEP 54: FOR X = 0 TO 182  STEP 91:PN = PN +1: IF PN >NP  THEN X = 182:Y = 108: GOTO 490
  48. 480  POKE 215,PN: POKE 224,X: POKE 226,Y: CALL 774
  49. 490  NEXT X,Y: IF D GOTO 510
  50. 500  PRINT D$"BSAVE"F$"GALLERY.PIC."N",A$2000,L$1FF8"SD$
  51. 510  VTAB 24: HTAB 14: PRINT PR$;: VTAB 21: PRINT : GOSUB 860: GOSUB 550:N = N +1: IF PN <NP GOTO 470
  52. 520  GOTO 830
  53. 530 :
  54. 540  REM  CLEAR COMMUNICATIONS WINDOW
  55. 550  VTAB 15: PRINT  SPC( 200); SPC( 199): GOTO 910
  56. 560 :
  57. 570  REM  ERROR HANDLER
  58. 580  CALL 64477: CALL  -3288: GOSUB 550: ON E GOTO 260,510,600
  59. 590  GOTO 260
  60. 600  GOSUB 890: GOTO 800
  61. 610 :
  62. 620  REM  PICFILE CHECK ERROR
  63. 630  GOSUB 550: HTAB 12: PRINT "BAD PICTURE FILE": CALL 64477: FOR I = 0 TO 1999: NEXT : GOSUB 550: GOTO 260
  64. 640 :
  65. 650  REM  PARTIAL MENU
  66. 660 P = 0: VTAB 17: HTAB 16: PRINT "<1> DRIVE 1": VTAB 19: HTAB 16: PRINT "<2> DRIVE 2": IF RAM  THEN  VTAB 21: HTAB 16: PRINT "<R> RAMDISK"
  67. 670  IF   NOT DOS  THEN  VTAB 18: HTAB 28: PRINT "<P> PATHNAME"
  68. 680  VTAB 21 +2 *RAM: HTAB 14: PRINT "<ESC> GO BACK": RETURN 
  69. 690 :
  70. 700  REM  GET MENU SELECTION
  71. 710 ESC = 0: GOSUB 860: IF K = 177  OR K = 178  THEN  VTAB K +K -337: HTAB 16: INVERSE : PRINT "<"K -176">": NORMAL :SD$ =  LEFT$(B$,5) + CHR$(K -128): GOTO 770
  72. 720  IF RAM  THEN  IF K = 210  OR K = 242  THEN SD$ = R$: VTAB 21: HTAB 16: INVERSE : PRINT "<R>": NORMAL : GOTO 770
  73. 730  IF D  THEN  IF K = 196  OR K = 228  THEN  RETURN 
  74. 740  IF   NOT DOS  THEN  IF K = 208  OR K = 240  THEN  VTAB 18: HTAB 28: INVERSE : PRINT "<P>": NORMAL :SD$ = "":P = 1: GOTO 770
  75. 750  IF K = 155  THEN ESC = 1: RETURN 
  76. 760  GOTO 710
  77. 770 D = 0: RETURN 
  78. 780 :
  79. 790  REM  CATALOG DISK
  80. 800  GOSUB 550: HTAB 12: PRINT "CATALOG DISK VOLUME": GOSUB 660:D = 0: GOSUB 710: IF ESC  THEN  GOSUB 550: GOTO 260
  81. 810 F$ = "": IF P  THEN  VTAB 21 +2 *RAM: PRINT  SPC( 79): VTAB 20 +2 *RAM: PRINT : INPUT "DIRECTORY PREFIX: ";F$
  82. 820  HOME :E = 3: PRINT D$C$F$SD$: HTAB 12: PRINT PR$;: GOSUB 860
  83. 830  GOSUB 890: GOTO 260
  84. 840 :
  85. 850  REM  GET KEYPRESS CODE
  86. 860  WAIT 49152,128:K =  PEEK(49152): POKE 49168,0: RETURN 
  87. 870 :
  88. 880  REM  PRINT TITLE DISPLAY
  89. 890  TEXT : HOME : PRINT  CHR$(17); CHR$(21); CHR$(24): VTAB 1: FOR I = 0 TO 39: PRINT  CHR$(95);: NEXT : VTAB 3: HTAB 10: PRINT "NIBBLE "O$" GALLERY": VTAB 5: HTAB 12: PRINT "BY ROBERT C. MOORE": VTAB 6
  90. 900  FOR I = 0 TO 39: PRINT  CHR$(95);: NEXT : VTAB 9: HTAB 12: PRINT "COPYRIGHT (C) 1987": HTAB 12: PRINT "BY MICROSPARC, INC.": HTAB 12: PRINT "52 DOMINO DRIVE": HTAB 12: PRINT "CONCORD, MA  01742"
  91. 910  VTAB 14: PRINT : RETURN 
  92. 920 :
  93. 930  REM  FILE MISSING
  94. 940  CALL 64477: CALL  -3288: HOME : VTAB 10: PRINT "DISK ERROR": FOR I = 0 TO 999: NEXT 
  95. 950 :
  96. 960  REM  EXIT TO START.CLIPART
  97. 970  HOME : PRINT : ONERR  GOTO 1000
  98. 980 SD$ = B$: IF RAM  THEN SD$ = R$
  99. 990  PRINT D$"RUN START.CLIPART"SD$
  100. 1000  CALL 64477: CALL  -3288: VTAB 12: PRINT "PLEASE PLACE THE MINI-GRAPHICS DISK": PRINT : PRINT "IN DRIVE 1 AND PRESS <RETURN>."
  101. 1010  GOSUB 860: IF K < >141  AND K < >155 GOTO 1010
  102. 1020  IF K = 141  THEN SD$ = B$: GOTO 990
  103. 1030  GOTO 220