home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #2 / RBBS_vol1_no2.iso / 014r / pcpgcnv_.bas < prev    next >
BASIC Source File  |  1985-09-21  |  16KB  |  371 lines

  1. 100 REM PCPG CONVERT PROGRAM **********************
  2. 200 KEY OFF
  3. 300 CLEAR,,1024
  4. 400 DEFINT A-Z:DIM F$(175):DIM PIC$(64):DIM T$(16)
  5. 500 DIM SCAN(7,7,2)
  6. 600 DIM MH(200,20):DIM MV(200,20)
  7. 700 WIDTH 80
  8. 800 GOSUB 34900
  9. 900 GOSUB 31600
  10. 1000 GOSUB 31000
  11. 1100 GOSUB 26200
  12. 1200 GOSUB 21700
  13. 1300 HMAX=0:HMIN=319:VMAX=0:VMIN=199:PCOL=2:SCANSIZE=95
  14. 1400 SCREEN 0,0,0:CLS:SCREEN 1,0
  15. 1500 COLOR 0,1
  16. 1600 GOSUB 17800
  17. 1700 LOCATE 1,1:PRINT"<C>ircle <S>aves?"
  18. 1800 SHAPE$=INKEY$:IF SHAPE$="" THEN 1800
  19. 1900 IF SHAPE$="C" THEN FIL$="C-"+LEFT$(TIME$,2)+MID$(TIME$,4,2)+RIGHT$(TIME$,2)     +".GRF":GOSUB 25600:GOSUB 8200:GOSUB 29900:GOTO 2200
  20. 2000 IF SHAPE$="S" THEN GOTO 10000
  21. 2100 GOTO 1800
  22. 2200 SCREEN 1
  23. 2300 COLOR 0,1
  24. 2400 HORIZ=159
  25. 2500 VERT=99
  26. 2600 HUNT=0
  27. 2700 REM LOAD SCAN MATRIX ************************
  28. 2800 FOR R=1 TO 7
  29. 2900 FOR C=1 TO 7
  30. 3000 READ SCAN(R,C,1)
  31. 3100 READ SCAN(R,C,2)
  32. 3200 NEXT C
  33. 3300 NEXT R
  34. 3400 REM START SCANNING ROUTINE ******************
  35. 3500 FOR SIZE=1 TO SCANSIZE STEP 2
  36. 3600 R=VAL(MID$(DIRECTION$,SIZE,1))
  37. 3700 C=VAL(MID$(DIRECTION$,SIZE+1,1))
  38. 3800 X=SCAN(R,C,1)
  39. 3900 Y=SCAN(R,C,2)
  40. 4000 PIX=POINT(HORIZ+X,VERT+Y):PSET(HORIZ+X,VERT+Y),PCOL                             :IF PCOL=3 THEN HALT=1:GOTO 26800
  41. 4100 IF PIX=3 THEN LOCATE 12,2:PRINT USING "\   \";STR$(HUNT+1):HUNT=HUNT+1          :GOSUB 19700:GOSUB 20900:GOTO 4500
  42. 4200 IF HUNT=0 THEN HORIZ=HORIZ+1:GOTO 3500
  43. 4300 NEXT SIZE
  44. 4400 GOTO 5400
  45. 4500 REM PUT DATA INTO MATRIX ********************
  46. 4600 HORIZ=HORIZ+X
  47. 4700 VERT=VERT+Y
  48. 4800 IF SW=0 AND HUNT=1 THEN HSTART=HORIZ+X:SW=1:X=0:PSET(HORIZ+X,VERT+Y),3          :DIRECTION$=UP$
  49. 4900 MH(COUNT,CARRY)=X
  50. 5000 MV(COUNT,CARRY)=Y
  51. 5100 COUNT=COUNT+1
  52. 5200 IF COUNT=200 THEN COUNT=0:CARRY=CARRY+1
  53. 5300 GOTO 3500
  54. 5400 REM PRINT DATA TO FILE ***********************
  55. 5500 CLS:SCREEN 0,0,0:WIDTH 80:COLOR 0,7:LOCATE 10,36:PRINT" DATA TO DISK "
  56. 5600 HSTART=HSTART-HMIN:VSTART=99-VMIN
  57. 5700 HTOTAL=(HMAX-HMIN)+1:VTOTAL=VMAX-VMIN
  58. 5800 '
  59. 5900  HSTART$=MID$(STR$(HSTART),2,LEN(STR$(HSTART)))                                 :VSTART$=MID$(STR$(VSTART),2,LEN(STR$(VSTART)))
  60. 6000 '
  61. 6100  VTOTAL$=MID$(STR$(VTOTAL),2,LEN(STR$(VTOTAL)))                                 :HTOTAL$=MID$(STR$(HTOTAL),2,LEN(STR$(HTOTAL)))
  62. 6200 '
  63. 6300  VMIN$=MID$(STR$(VMIN),2,LEN(STR$(VMIN)))                                       :HMIN$=MID$(STR$(HMIN),2,LEN(STR$(HMIN)))
  64. 6400 '
  65. 6500 '
  66. 6600 PRINT#2,CHR$(34)+CHR$(34):PRINT#2,CHR$(34);"BM+";HSTART$+","+VSTART$;
  67. 6700 IF MH(COUNT1,CARRY1)>0 THEN MHSGN$="+":ELSE MHSGN$="-"
  68. 6800 IF MV(COUNT1,CARRY1)>0 THEN MVSGN$="":ELSE MVSGN$="-"
  69. 6900 '
  70. 7000 IF PRNTCOUNT>15 THEN PRINT#2,CHR$(34):PRINT#2,CHR$(34);:FILCOUNT=FILCOUNT+1     :PRNTCOUNT=0
  71. 7100 '
  72. 7200 PRINT#2,"M"+MHSGN$+RIGHT$(STR$(MH(COUNT1,CARRY1)),1)+","                        +MVSGN$+RIGHT$(STR$(MV(COUNT1,CARRY1)),1);
  73. 7300 '
  74. 7400 PRNTCOUNT=PRNTCOUNT+1:COUNT1=COUNT1+1
  75. 7500 IF COUNT1=200 THEN COUNT1=0:CARRY1=CARRY1+1
  76. 7600 IF COUNT1=COUNT+1 AND CARRY1=CARRY THEN 7800
  77. 7700 GOTO 6700
  78. 7800 FILCOUNT$=MID$(STR$(FILCOUNT+1),2,LEN(STR$(FILCOUNT+1)))
  79. 7900 PRINT#2,CHR$(34):CLOSE:OPEN FIL$ AS #2 LEN=70:FIELD #2,70 AS FIRST$             :LSET FIRST$=CHR$(34)+"D"+CHR$(34)+",0,"+HMIN$+","+VMIN$+","+"3,4,0,0,"         +HTOTAL$+","+VTOTAL$+","+FILCOUNT$+",9,0,0,0":PUT #2,1
  80. 8000 GOTO 18500
  81. 8100 REM SETUP CIRCLE ROUTINE **********************
  82. 8200 CIRCLE(51,147),19,1:PAINT(51,147),2,1
  83. 8300 LOCATE 16,6:PRINT"090":LOCATE 22,6:PRINT"225"
  84. 8400 LOCATE 19,2:PRINT"180":LOCATE 19,10:PRINT"360"
  85. 8500 LOCATE 20,3:PRINT CHR$(25)
  86. 8600 LOCATE 1,1:PRINT SPACE$(18):LOCATE 1,1                                          :INPUT"RADIUS(5 to 60)?",RADIUS
  87. 8700 INPUT"     STOP POINT?",STP!:STP!=STP!*1.745329E-02
  88. 8800 INPUT"         ASPECT?",ASPECT$
  89. 8900 IF ASPECT$="" OR ASPECT$="0" THEN ASPECT$="5/6"
  90. 9000 IF STP!=0 THEN STP!=3+(RADIUS*.0021819)
  91. 9100 L=LEN(ASPECT$):SLASH=INSTR(ASPECT$,"/")                                         :ASPECT#=VAL(LEFT$(ASPECT$,SLASH-1))/VAL(RIGHT$(ASPECT$,L-SLASH))
  92. 9200 CIRCLE(170+RADIUS,99),RADIUS,3,3.14159,STP!,ASPECT#
  93. 9300 RETURN
  94. 9400 REM START SCREEN BLOAD ROUTINE **************
  95. 9500 '
  96. 9600 ' This BLOAD routine was originally written by John L. O'Boyle for his
  97. 9700 ' SHOW.BAS program. It was modified for this program but the ALGO's are
  98. 9800 ' John's and my thanks to him for putting it in Public Domain...
  99. 9900 '
  100. 10000 FALSE=0:TRUE=NOT FALSE:L=0:CLS:CODE=43
  101. 10100 KEY OFF:PRTSC$ = "N"
  102. 10200 F=7:B=0:BD=0
  103. 10300 SCREEN 0:WIDTH 80
  104. 10400 COLOR 7,1,0:CLS:KEY OFF
  105. 10500 LOCATE 5,8
  106. 10600 PRINT"Which disk drive contains the SCREEN SAVES?";
  107. 10700 RICH$=INKEY$:IF LEN(RICH$)<>1 THEN  10700
  108. 10800 IF ASC(RICH$)>96 AND ASC(RICH$)<103 THEN RICH$=CHR$(ASC(RICH$)-32)
  109. 10900 IF INSTR("ABCDEF",RICH$)<1 THEN BEEP:GOTO 10500
  110. 11000 DRIV$=LEFT$(RICH$,1)+":"
  111. 11100 LOCATE 5,8
  112. 11200 PRINT "Do you want a Printout of the SCREEN?         "
  113. 11300 LOCATE 7,28:PRINT "Enter Y or N "
  114. 11400 ZZZ$=INKEY$:IF LEN(ZZZ$)<>1 THEN 11400
  115. 11500 IF INSTR("YyNn",ZZZ$)<1 THEN BEEP:GOTO 11400
  116. 11600 IF ZZZ$ = "Y" OR ZZZ$ = "y" THEN PRTSC$ = "Y"
  117. 11700 IF PRTSC$ = "N" THEN GOTO 12400
  118. 11800 LOCATE 5,8
  119. 11900 PRINT "Do you want the prints identified?            "
  120. 12000 LOCATE 7,28:PRINT "Enter Y or N "
  121. 12100 ZYZ$=INKEY$:IF LEN(ZYZ$)<>1 THEN 12100
  122. 12200 IF INSTR("YyNn",ZYZ$)<1 THEN BEEP:GOTO 11400
  123. 12300 IF ZYZ$ = "Y" OR ZYZ$ = "y" THEN LABL$ = "Y"
  124. 12400 GOTO 15300
  125. 12500 WIDTH 80:CLS
  126. 12600 FILES DRIV$+"*.CNV"
  127. 12700 CLINE1 = CSRLIN
  128. 12800 D=0
  129. 12900 LOCATE 1,1,1
  130. 13000 FOR I = 2 TO CLINE1
  131. 13100 FOR B = 1 TO 72 STEP 18
  132. 13200 D=D+1
  133. 13300 FOR N = 0 TO 11
  134. 13400 T = SCREEN(I,(B+N)):F$(D)=F$(D)+CHR$(T)
  135. 13500 NEXT N
  136. 13600 IF LEFT$(F$(D),1)=" " THEN D=D-1 :GOTO 14000
  137. 13700 F$(D)= DRIV$+F$(D)
  138. 13800 NEXT B
  139. 13900 NEXT I
  140. 14000 LAST = D
  141. 14100 FOR X=1 TO D-1:FOR Y=X+1 TO D:IF F$(Y)<F$(X) THEN SWAP F$(X),F$(Y)
  142. 14200 NEXT Y:NEXT X
  143. 14300 SCREEN 1,0
  144. 14400 FOR XX = 1 TO LAST
  145. 14500 COLOR 0,1
  146. 14600 BLOAD F$(XX)
  147. 14700 IF PRTSC$ = "Y" THEN GOSUB 16600
  148. 14800 GOSUB 16000
  149. 14900 IF RICH$=CHR$(13) THEN 2400
  150. 15000 CLS
  151. 15100 NEXT XX
  152. 15200 END
  153. 15300 CLS:LOCATE 5,12:PRINT "Use RETURN key to start data compilation."
  154. 15400 LOCATE 7,12:PRINT "Use Grey Minus Key `-' to move backward."
  155. 15500 LOCATE 9,12:PRINT "Use Grey Plus  key `+' to move forward."
  156. 15600 LOCATE 19,12:PRINT "Press Space Bar to begin BLOAD"
  157. 15700 SP$=INKEY$:IF LEN(SP$)<>1 THEN 15700
  158. 15800 IF SP$ <> " " THEN 15700
  159. 15900 GOTO 12500
  160. 16000 LOCATE 1,1:PRINT"(ENTER) begins SCAN":GOSUB 18000:LOCATE 12,14                  :PRINT CHR$(26)
  161. 16100 RICH$=INKEY$:IF LEN(RICH$)<>1 THEN 16100
  162. 16200 IF RICH$=CHR$(13) THEN LF=LEN(F$(XX)):FIL$=LEFT$(F$(XX),LF-4)+".GRF"            :GOSUB 25600:GOSUB 29900:RETURN
  163. 16300 IF RICH$ = "+" THEN RETURN
  164. 16400 IF RICH$ = "-" THEN XX=XX-2:GOSUB 17600:RETURN
  165. 16500 GOTO 16100
  166. 16600 SLN = SLN+1
  167. 16700 PRTSC(0) = &H5CD
  168. 16800 PRTSC(1) = &HCB
  169. 16900 P = VARPTR(PRTSC(0))
  170. 17000 CALL P
  171. 17100 FOR LIN = 1 TO 8:LPRINT " ":NEXT LIN
  172. 17200 FX$=RIGHT$(F$(XX),12)
  173. 17300 IF LABL$ = "Y" THEN LPRINT  "             Slide Number ";SLN                    ;"   File name - ";FX$
  174. 17400 LPRINT CHR$(12)
  175. 17500 RETURN
  176. 17600 IF XX =-1 THEN XX=0
  177. 17700 RETURN
  178. 17800 REM PRINT TEMPLATE ROUTINE ******************
  179. 17900 LINE(159,99)-(319,99),1
  180. 18000 LINE (159,0)-(319,0),1:LINE (159,0)-(159,199),1                                   :LINE (159,199)-(319,199),1
  181. 18100 LINE(2,83)-(55,100),1,BF:LINE(2,83)-(55,100),2,B
  182. 18200 LINE (98,83)-(115,100),2,B
  183. 18300 RETURN
  184. 18400 REM PRINT DATA FILE TO SCREEN ***************
  185. 18500 CLOSE
  186. 18600 COLOR 7,0:CLS
  187. 18700 PRINT FIL$:PRINT:PRINT
  188. 18800 OPEN FIL$ FOR INPUT AS 1
  189. 18900 FOR FILEPRINT=1 TO 3
  190. 19000 LINE INPUT#1,A1$
  191. 19100 FOR T=1 TO LEN(A1$)
  192. 19200 PRINT MID$(A1$,T,1);
  193. 19300 NEXT T
  194. 19400 PRINT
  195. 19500 NEXT FILEPRINT
  196. 19600 END
  197. 19700 REM DETERMINE DIRECTION ROUTINE *************
  198. 19800 IF X=0 AND Y<0 THEN DIRECTION$=UP$
  199. 19900 IF X>0 AND Y<0 THEN DIRECTION$=UP$
  200. 20000 IF X>0 AND Y=0 THEN DIRECTION$=RT$
  201. 20100 IF X>0 AND Y>0 THEN DIRECTION$=RT$
  202. 20200 IF X=0 AND Y>0 THEN DIRECTION$=DN$
  203. 20300 IF X<0 AND Y>0 THEN DIRECTION$=DN$
  204. 20400 IF X<0 AND Y=0 THEN DIRECTION$=LT$
  205. 20500 IF X<0 AND Y<0 THEN DIRECTION$=LT$
  206. 20600 GOSUB 26800
  207. 20700 GOSUB 28900
  208. 20800 RETURN
  209. 20900 REM ESTABLISH VERT AND HORIZ MIN/MAX ********
  210. 21000 HX=HORIZ+X:VY=VERT+Y
  211. 21100 IF HX>HMAX THEN HMAX=HX
  212. 21200 IF HX<HMIN THEN HMIN=HX
  213. 21300 IF VY>VMAX THEN VMAX=VY
  214. 21400 IF VY<VMIN THEN VMIN=VY
  215. 21500 RETURN
  216. 21600 REM LOAD DIRECTION$ DATA ********************
  217. 21700 UP1$="3424"+"454354"
  218. 21800 UP2$="35335553"+"464264"
  219. 21900 UP3$="25233632"+"56526563"+"47417414"
  220. 22000 UP4$="262266621513373157517573"
  221. 22100 UP5$="1612272167617672"
  222. 22200 UP6$="17117771"
  223. 22300 UP$=UP1$+UP2$+UP3$+UP4$+UP5$+UP6$
  224. 22400 RT1$="4546"+"543443"
  225. 22500 RT2$="55355333"+"642442"
  226. 22600 RT3$="56366525"+"63235232"+"74144147"
  227. 22700 RT4$="662662225737751573135131"
  228. 22800 RT5$="6727761672126121"
  229. 22900 RT6$="77177111"
  230. 23000 RT$=RT1$+RT2$+RT3$+RT4$+RT5$+RT6$
  231. 23100 DN1$="5464"+"434534"
  232. 23200 DN2$="53553335"+"424624"
  233. 23300 DN3$="63655256"+"32362325"+"41471474"
  234. 23400 DN4$="737562665157313722261315"
  235. 23500 DN5$="7276616721271216"
  236. 23600 DN6$="71771117"
  237. 23700 DN$=DN1$+DN2$+DN3$+DN4$+DN5$+DN6$
  238. 23800 LT1$="4342"+"345445"
  239. 23900 LT2$="33533555"+"246446"
  240. 24000 LT3$="32522363"+"25653656"+"14744741"
  241. 24100 LT4$="315122621373157526663757"
  242. 24200 LT5$="2161127216762767"
  243. 24300 LT6$="11711777"
  244. 24400 LT$=LT1$+LT2$+LT3$+LT4$+LT5$+LT6$
  245. 24500 RETURN
  246. 24600 REM SCAN MATRIX DATA ************************
  247. 24700 DATA -3,-3,-2,-3,-1,-3,0,-3,1,-3,2,-3,3,-3
  248. 24800 DATA -3,-2,-2,-2,-1,-2,0,-2,1,-2,2,-2,3,-2
  249. 24900 DATA -3,-1,-2,-1,-1,-1,0,-1,1,-1,2,-1,3,-1
  250. 25000 DATA -3,0,-2,0,-1,0,0,0,1,0,2,0,3,0
  251. 25100 DATA -3,1,-2,1,-1,1,0,1,1,1,2,1,3,1
  252. 25200 DATA -3,2,-2,2,-1,2,0,2,1,2,2,2,3,2
  253. 25300 DATA -3,3,-2,3,-1,3,0,3,1,3,2,3,3,3
  254. 25400 END
  255. 25500 REM ERROR TRAP AND FILE OPEN ****************
  256. 25600 ON ERROR GOTO 26000
  257. 25700 KILL FIL$
  258. 25800 OPEN FIL$ AS #2 LEN=70:FIELD #2,70 AS FIRST$:LSET FIRST$="XXX"                  :PUT #2,1:CLOSE:OPEN FIL$ FOR APPEND AS #2:PRINT #2,""
  259. 25900 RETURN
  260. 26000 IF ERR=53 THEN RESUME 25800
  261. 26100 PRINT "ERROR>";ERR;" AT LINE>";ERL:STOP
  262. 26200 REM AUTO/MANUAL MODE SELECT *****************
  263. 26300 COLOR 10,1:LOCATE 22,20:PRINT"MODE= (A)uto-select or (M)anual select?"
  264. 26400 RD$=INKEY$:IF RD$=""THEN 26400
  265. 26500 IF RD$="A" THEN DIRECTION$=RT$:RETURN
  266. 26600 IF RD$="M" THEN DIRECTION$=UP$:SELECT=1:RETURN
  267. 26700 GOTO 26400
  268. 26800 REM MANUAL DIRECTION SELECTOR ***************
  269. 26900 SELECT$=INKEY$
  270. 27000 IF SELECT$="S"THEN HALT=1
  271. 27100 IF SELECT$=CHR$(0)+"H" THEN DIRECTION$=UP$:REF$=UP$
  272. 27200 IF SELECT$=CHR$(0)+"P" THEN DIRECTION$=DN$:REF$=DN$
  273. 27300 IF SELECT$=CHR$(0)+"K" THEN DIRECTION$=LT$:REF$=LT$
  274. 27400 IF SELECT$=CHR$(0)+"M" THEN DIRECTION$=RT$:REF$=RT$
  275. 27500 IF SELECT$="S"THEN HALT=1
  276. 27600 IF SELECT$="G"THEN HALT=0:BRIDGE=0
  277. 27700 IF SELECT$="B" THEN BRIDGE=1:GOTO 28300
  278. 27800 IF SELECT$="q" THEN 5400
  279. 27900 GOSUB 28900
  280. 28000 IF SELECT=0 AND HALT=0 THEN RETURN
  281. 28100 IF HALT=0 AND REF$=DIRECTION$ THEN RETURN
  282. 28200 GOTO 26900
  283. 28300 REM BRIDGE ROUTINE **************************
  284. 28400 IF DIRECTION$=UP$ THEN DUM=1:FOR UP=1 TO 3:PSET(HORIZ+X,VERT+Y-UP+1),3          :NEXT UP
  285. 28500 IF DIRECTION$=DN$ THEN DUM=1:FOR DN=1 TO 3:PSET(HORIZ+X,VERT+Y+DN-1),3          :NEXT DN
  286. 28600 IF DIRECTION$=RT$ THEN DUM=1:FOR RT=1 TO 3:PSET(HORIZ+X+RT-1,VERT+Y),3          :NEXT RT
  287. 28700 IF DIRECTION$=LT$ THEN DUM=1:FOR LT=1 TO 3:PSET(HORIZ+X-LT+1,VERT+Y),3          :NEXT LT
  288. 28800 GOTO 26900
  289. 28900 REM ARROW ROUTINE ***************************
  290. 29000 IF DIRECTION$=UP$ THEN ARROW=24
  291. 29100 IF DIRECTION$=DN$ THEN ARROW=25
  292. 29200 IF DIRECTION$=RT$ THEN ARROW=26
  293. 29300 IF DIRECTION$=LT$ THEN ARROW=27
  294. 29400 LOCATE 12,14:PRINT CHR$(ARROW)
  295. 29500 IF HALT=1 THEN S$="S" ELSE S$=" "
  296. 29600 IF BRIDGE=1 THEN B$="B" ELSE B$=" "
  297. 29700 LOCATE 12,12:PRINT S$:LOCATE 12,16:PRINT B$
  298. 29800 RETURN
  299. 29900 REM INSTRUCTIONS BOX ************************
  300. 30000 LOCATE 1,1:PRINT SPACE$(19)
  301. 30100 LOCATE 2,1:PRINT"<CUR>=DIRECTION    "
  302. 30200 PRINT"  <S>=STOP         "
  303. 30300 PRINT"  <G>=GO           "
  304. 30400 PRINT"  <B>=BRIDGE       "
  305. 30500 PRINT"  <q>=QUIT         "
  306. 30600 LINE(1,1)-(125,1):LINE(125,1)-(125,55):LINE(125,55)-(1,55)
  307. 30700 LOCATE 14,1:PRINT CHR$(34)+"M"+CHR$(34)+"count"
  308. 30800 LOCATE 14,12:PRINT "<CUR>"
  309. 30900 RETURN
  310. 31000 REM OPERATOR INSTRUCTIONS *******************
  311. 31100 LOCATE 22,23:PRINT"Do you want Instructions.... Y/N?"
  312. 31200 RD$=INKEY$:IF RD$="" THEN 31200
  313. 31300 IF RD$="Y" THEN GOTO 33300
  314. 31400 IF RD$="N" THEN RETURN
  315. 31500 GOTO 31200
  316. 31600 REM PRESENTATION SCREEN **********************
  317. 31700 SCREEN 0,1,0,0:CLS
  318. 31800 SCREEN 0,1,1,0
  319. 31900 COLOR 11,1:CLS
  320. 32000 LOCATE 2,1,0:PRINT CHR$(201);
  321. 32100 FOR PLOT=1 TO 78:PRINT CHR$(205);:NEXT PLOT:PRINT CHR$(187);
  322. 32200 FOR PLOT=1 TO 20
  323. 32300 PRINT CHR$(186)+SPACE$(78)+CHR$(186);
  324. 32400 NEXT PLOT
  325. 32500 PRINT CHR$(200);
  326. 32600 FOR PLOT=1 TO 78:PRINT CHR$(205);:NEXT PLOT:PRINT CHR$(188);
  327. 32700 LOCATE 17,30:COLOR 23,1:PRINT"* PUT CAPS KEY ON *":COLOR 15,1
  328. 32800 LOCATE 3,5:PRINT"Written by:":LOCATE 3,18:PRINT"Stephen M. Frisby"              :LOCATE 4,18:PRINT"1021 College  APT.2045":LOCATE 5,18                          :PRINT"Texarkana, TX.  75503":LOCATE 6,18:PRINT"PH. 1-214-793-4013"
  329. 32900 LOCATE 3,58:PRINT"September 21, 1985"
  330. 33000 GOSUB 34100
  331. 33100 COLOR 7,1:SCREEN 0,1,1,1
  332. 33200 RETURN
  333. 33300 REM PRINT INSTRUCTIONS ***********************
  334. 33400 FOR LINES=0 TO 16
  335. 33500 LOCATE LINES+3,4:PRINT "  "+T$(LINES)+"      "
  336. 33600 NEXT LINES
  337. 33700 LOCATE 19,65:COLOR 10,0:PRINT CHR$(228)+" "+CHR$(236)+" "+CHR$(238)             :COLOR 7,1
  338. 33800 LOCATE 22,23:COLOR 14,1:PRINT"       Any Key to continue       "                :COLOR 7,1
  339. 33900 RD$=INKEY$:IF RD$="" THEN 33900
  340. 34000 RETURN
  341. 34100 REM LOGO *************************************
  342. 34200 COLOR 13,0
  343. 34300 LOCATE 12,35:PRINT CHR$(203);
  344. 34400 FOR PLOT=1 TO 7:PRINT CHR$(205);:NEXT PLOT:PRINT CHR$(203)
  345. 34500 LOCATE 13,35:PRINT CHR$(186):COLOR 10,0:LOCATE 13,36                            :PRINT " "+CHR$(228)+" "+CHR$(236)+" "+CHR$(238)+" ";                           :COLOR 13,0:PRINT CHR$(186)
  346. 34600 LOCATE 14,35:PRINT CHR$(202);
  347. 34700 FOR PLOT=1 TO 7:PRINT CHR$(205);:NEXT PLOT:PRINT CHR$(202)
  348. 34800 RETURN
  349. 34900 REM INSTRUCTIONS TEXT ************************
  350. 35000 T$(0)="1. This program allows a user to convert a BSAVE'd graphics image "
  351. 35100 T$(1)="   to a PCPG <.GRF> file.  That file can then be used with only   "
  352. 35200 T$(2)="   minor changes, as a DRAW string in any MS-BASIC program.       "
  353. 35300 T$(3)="2. Use PCPG to create an image.  The image should be to the right "
  354. 35400 T$(4)="   of the 160 horizontal point, and the width less than 160 pix's."
  355. 35500 T$(5)="   BSAVE the file with an extension of (.CNV), e.g. `BUG.CNV'.    "
  356. 35600 T$(6)="3. <A>uto allows program to make all direction change decisions.  "
  357. 35700 T$(7)="   However, user input <CUR> cursor keying will override program. "
  358. 35800 T$(8)="4. <M>anual allows user to make all direction change decisions.   "
  359. 35900 T$(9)="5. <C>ircle allows the choice of a simple practice routine.       "
  360. 36000 T$(10)="   <S>aves loads a PCPG BSAVE'd image for graphics conversion.   "
  361. 36100 T$(11)="6. <CUR>, <S>, <G>, & <q) are self explanitory.  <B>ridge allows "
  362. 36200 T$(12)="   the user, once <S> has been invoked, to choose a direction and"
  363. 36300 T$(13)="   to bridge a gap or to undo a bad direction decision.  The step"
  364. 36400 T$(14)="   sequence would be: <S>-<CUR>-<B>-<G>-`quick'<S>- repeat...    "
  365. 36500 T$(15)="7. The mechanics of this program can be mastered with a little   "
  366. 36600 T$(16)="   practice and should prove to be as fun as it is useful."
  367. 36700 RETURN
  368. 36800 REM ********************* AT LAST THE END ******************************
  369.  to be as fun as it is useful."
  370. 36700 RETURN
  371. 36800 REM ********