home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib38a.dsk / JUNE.1990 / FONT.CONVERT.bas < prev    next >
BASIC Source File  |  2023-02-26  |  9KB  |  177 lines

  1. 10  REM  *****************************
  2. 20  REM  * FONT.CONVERT              *
  3. 30  REM  * BY RUDY A. GUY            *
  4. 40  REM  * COPYRIGHT(C) 1990         *
  5. 50  REM  * MINDCRAFT PUBL. CORP.     *
  6. 60  REM  * CONCORD, MA 01742         *
  7. 70  REM  *****************************
  8. 80  ONERR  GOTO 1600
  9. 90  DIM FT$(125),PF$(55)
  10. 100 D$ =  CHR$(4):EC = 1
  11. 110  FOR I = 1 TO 7: READ S(I),D(I): NEXT 
  12. 120  PRINT D$"PREFIX": INPUT P1$
  13. 130  PRINT D$"PR#3"
  14. 140  HOME : PRINT : VTAB 1:EC = 0
  15. 150 A$ = "Font Conversion Utility": GOSUB 1580
  16. 160 A$ = "By: Rudy A. Guy": GOSUB 1580
  17. 170 A$ = "---------------": GOSUB 1580
  18. 180 A$ = "Copyright 1990 By MindCraft Publ. Corp.": GOSUB 1580
  19. 190  VTAB 8:A$ = "Options": GOSUB 1580
  20. 200 A$ = "-------": GOSUB 1580
  21. 210  VTAB 11: POKE 1403,20: PRINT "1. Set Source/Destination Prefix"
  22. 220  POKE 1403,20: PRINT "2. Catalog Source Disk";: IF  LEN(P3$) = 0  THEN  PRINT : GOTO 240
  23. 230  PRINT "/Destination Disk"
  24. 240  POKE 1403,20: PRINT "3. Change Publish It Font to System Font"
  25. 250  POKE 1403,20: PRINT "4. Change System Font to Publish It Font"
  26. 260  POKE 1403,20: PRINT "5. Exit to BASIC"
  27. 270  VTAB 17: POKE 1403,20: PRINT "Please choose:"
  28. 280  POKE  -16368,0:S = 1: GOSUB 390
  29. 290 X =  PEEK( -16384): IF X = 141  THEN  GOSUB 420: GOTO 440
  30. 300  IF X = 138  OR X = 149  THEN  GOSUB 340: GOTO 290
  31. 310  IF X = 136  OR X = 139  THEN  GOSUB 360: GOTO 290
  32. 320  IF X >176  AND X <182  THEN  GOSUB 380: GOTO 290
  33. 330  GOTO 290
  34. 340  GOSUB 420: IF S = 5  THEN S = 1: GOSUB 390: RETURN 
  35. 350 S = S +1: GOSUB 390: RETURN 
  36. 360  GOSUB 420: IF S = 1  THEN S = 5: GOSUB 390: RETURN 
  37. 370 S = S -1: GOSUB 390: RETURN 
  38. 380  GOSUB 420:S = X -176: GOSUB 390: RETURN 
  39. 390 S$ =  STR$(S) +".": INVERSE : VTAB 10 +S: POKE 1403,20
  40. 400  INVERSE : PRINT S$: NORMAL 
  41. 410  VTAB 17: POKE 1403,34: PRINT S: RETURN 
  42. 420  POKE  -16368,0:S$ =  STR$(S) +".": VTAB 10 +S: POKE 1403,20: PRINT S$: RETURN 
  43. 430  VTAB 17: POKE 1403,34: PRINT S -1: RETURN 
  44. 440  IF S = 5  THEN  GOTO 1550
  45. 450  ON S GOTO 470,940,1040,1070
  46. 460  GOTO 140
  47. 470  HOME :A$ = "Set Source Prefix": VTAB 1: GOSUB 1580
  48. 480 EC = 2:TT = 1: GOTO 880
  49. 490  GOSUB 680:TP$ = PF$(VT -4): IF TP$ = "ABORT"  THEN  PRINT D$"PREFIX"P1$: GOTO 140
  50. 500  VTAB 3: PRINT "Source Prefix:"TP$
  51. 510  VTAB 5: CALL  -958: GOSUB 800: IF K >0  THEN  GOSUB 680:TP$ = PF$(VT -4)
  52. 520  IF TP$ = "ABORT"  THEN  PRINT D$"PREFIX"P1$: GOTO 140
  53. 530  IF  LEFT$(TP$,2) = "AC"  OR K = 0  THEN  PRINT D$"PREFIX": INPUT P2$: GOTO 550
  54. 540  IF K >0  THEN 510
  55. 550  HOME :A$ = "Set Destination Prefix": VTAB 1: GOSUB 1580
  56. 560 TT = 2: GOTO 880
  57. 570  GOSUB 680:TP$ = PF$(VT -4): IF TP$ = "ABORT"  THEN  PRINT D$"PREFIX"P1$:P2$ = "": GOTO 140
  58. 580  VTAB 3: PRINT "Destination Prefix:"PF$
  59. 590  VTAB 5: CALL  -958: GOSUB 800: IF K >0  THEN  GOSUB 680:TP$ = PF$(VT -4)
  60. 600  IF TP$ = "ABORT"  THEN  PRINT D$"PREFIX"P1$: GOTO 140
  61. 610  IF  LEFT$(TP$,2) = "AC"  OR K = 0  THEN  PRINT D$"PREFIX": INPUT P3$: GOTO 630
  62. 620  IF K >0  THEN 590
  63. 630  HOME : VTAB 5: INVERSE : PRINT "Source Drive:": NORMAL : PRINT : PRINT P2$
  64. 640  VTAB 10: INVERSE : PRINT "Destination Drive:": NORMAL : PRINT : PRINT P3$
  65. 650  VTAB 22: INPUT "Are these correct?";YN$: IF  LEFT$(YN$,1) = "y"  OR  LEFT$(YN$,1) = "Y"  THEN  GOTO 140
  66. 660  IF  LEFT$(YN$,1) = "n"  OR  LEFT$(YN$,1) = "N"  THEN 470
  67. 670  PRINT  CHR$(7): GOTO 630
  68. 680  VTAB 5: CALL  -958: FOR I = 1 TO K: POKE 1403,20: PRINT PF$(I): NEXT 
  69. 690 VT = 5:HT = 20: INVERSE : VTAB VT: POKE 1403,HT: PRINT PF$(VT -4): NORMAL 
  70. 700 X =  PEEK( -16384): IF X = 141  THEN  POKE  -16368,0: RETURN 
  71. 710  IF X = 138  OR X = 149  THEN  POKE  -16368,0: VTAB VT: POKE 1403,HT: PRINT PF$(VT -4): GOTO 740
  72. 720  IF X = 136  OR X = 139  THEN  POKE  -16368,0: VTAB VT: POKE 1403,HT: PRINT PF$(VT -4): GOTO 770
  73. 730  GOTO 700
  74. 740  IF VT = K +4  THEN VT = 5: GOTO 760
  75. 750 VT = VT +1
  76. 760  INVERSE : VTAB VT: POKE 1403,HT: PRINT PF$(VT -4): NORMAL : GOTO 700
  77. 770  IF VT = 5  THEN VT = K +4: GOTO 790
  78. 780 VT = VT -1
  79. 790  INVERSE : VTAB VT: POKE 1403,HT: PRINT PF$(VT -4): NORMAL : GOTO 700
  80. 800 K = 0: PRINT D$"PREFIX"TP$: PRINT D$"PREFIX": INPUT TP$: ON TT GOTO 810,820
  81. 810  VTAB 3: PRINT "Source Prefix:"TP$: GOTO 830
  82. 820  VTAB 3: PRINT "Destination Prefix:"TP$
  83. 830  PRINT D$"OPEN "TP$",TDIR": PRINT D$"READ "TP$
  84. 840  INPUT T$: IF  MID$ (T$,18,3) = "DIR"  THEN K = K +1:PF$(K) =  MID$ (T$,2,16): GOTO 840
  85. 850  IF  LEFT$(T$,2) < >"BL"  THEN 840
  86. 860  PRINT D$"CLOSE": IF K = 0  THEN  RETURN 
  87. 870 PF$(K +1) = "ACCEPT CURRENT PREFIX":PF$(K +2) = "ABORT":K = K +2: RETURN 
  88. 880 K = 0:I = 0
  89. 890 I = I +1
  90. 900  PRINT D$"PREFIX,S"S(I)",D"D(I):K = K +1: PRINT D$"PREFIX": INPUT PF$(K)
  91. 910  IF I <7  THEN 890
  92. 920 K = K +1:PF$(K) = "ABORT"
  93. 930  ON TT GOTO 490,570
  94. 940 EC = 3: HOME : IF  LEN(P3$) = 0  THEN  PRINT D$"CATALOG": GOTO 1000
  95. 950  VTAB 12: PRINT "(S)ource or (D)estination drive ?"
  96. 960 X =  PEEK( -16384): IF X = 155  THEN  POKE  -16368,0: RETURN 
  97. 970  IF X = 211  OR X = 243  THEN  POKE  -16368,0: PRINT D$"CATALOG"P2$: GOTO 1000
  98. 980  IF X = 196  OR X = 228  THEN  POKE  -16368,0: PRINT D$"CATALOG"P3$: GOTO 1000
  99. 990  GOTO 960
  100. 1000  POKE  -16368,0
  101. 1010  VTAB 24: PRINT "Press RETURN for the menu.";
  102. 1020 X =  PEEK( -16384): IF X = 141  THEN  POKE  -16368,0: GOTO 140
  103. 1030  GOTO 1020
  104. 1040 FL = 0:CTR = 0:CVR = 1
  105. 1050  GOSUB 1150: GOSUB 1210: GOSUB 1360
  106. 1060  GOTO 140
  107. 1070 FL = 0:CTR = 0:CVR = 2
  108. 1080  GOSUB 1150: GOSUB 1210: GOSUB 1360
  109. 1090  GOTO 140
  110. 1100  HOME : VTAB 12:A$ = "No " +M2$ +" fonts found.": GOSUB 1580
  111. 1110  VTAB 23: PRINT "Press any key for the menu."
  112. 1120  POKE  -16368,0
  113. 1130 X =  PEEK( -16384): IF X >127  THEN  POKE  -16368,0: GOTO 140
  114. 1140  GOTO 1130
  115. 1150  ON CVR GOSUB 1170,1190
  116. 1160  RETURN 
  117. 1170 T1$ = "$F7":T2$ = "$C8":F1$ = "GS.FONTS":F2$ = "PI.FONTS":M1$ = "System":M2$ = "Publish.It"
  118. 1180  RETURN 
  119. 1190 T1$ = "$C8":T2$ = "$F7":F1$ = "PI.FONTS":F2$ = "GS.FONTS":M1$ = "Publish.It":M2$ = "System"
  120. 1200  RETURN 
  121. 1210  IF  LEN(P2$) = 0  THEN P2$ = P1$
  122. 1220  IF  LEN(P3$) = 0  THEN P3$ = P2$
  123. 1230  HOME : VTAB 12:A$ = "Please wait. Reading directory.": GOSUB 1580
  124. 1240  PRINT D$"OPEN "P2$",TDIR": PRINT D$"READ "P2$
  125. 1250  INPUT A$
  126. 1260  IF  MID$ (A$,18,3) = T1$  THEN CTR = CTR +1:FT$(CTR) = A$
  127. 1270  IF  LEFT$(A$,1) = "B"  THEN 1290
  128. 1280  GOTO 1250
  129. 1290  PRINT D$"CLOSE"
  130. 1300  PRINT D$"OPEN "P3$",TDIR": PRINT D$"READ "P3$
  131. 1310  INPUT A$: IF  MID$ (A$,2,8) = F1$  THEN F1 = 1
  132. 1320  IF  LEFT$(A$,1) = "B"  THEN 1340
  133. 1330  GOTO 1310
  134. 1340  PRINT D$"CLOSE"
  135. 1350  RETURN 
  136. 1360  HOME 
  137. 1370  IF CTR = 0  THEN  POP : GOTO 1100
  138. 1380  FOR I = 1 TO CTR: VTAB 12: PRINT "Convert ";: INVERSE : PRINT  MID$ (FT$(I),2,16);: NORMAL : PRINT " to a "M1$" font?"
  139. 1390  VTAB 23: PRINT "<ESC> for menu, <SPACE> to skip, <RETURN> to convert."
  140. 1400  GOSUB 1430
  141. 1410  NEXT I
  142. 1420  PRINT D$"PREFIX"P2$: RETURN 
  143. 1430  POKE  -16368,0
  144. 1440 X =  PEEK( -16384)
  145. 1450  IF X = 155  THEN  POKE  -16368,0:I = CTR: RETURN 
  146. 1460  IF X = 160  THEN  POKE  -16368,0: RETURN 
  147. 1470  IF X = 141  THEN  POKE  -16368,0: GOTO 1490
  148. 1480  GOTO 1440
  149. 1490  IF F1 = 1  THEN 1510
  150. 1500  PRINT D$"CREATE "P3$;F1$:F1 = 1
  151. 1510  PRINT D$"BLOAD "P2$; MID$ (FT$(I),2,16)",T"T1$",A$2200"
  152. 1520  PRINT D$"CREATE "P3$;F1$"/" MID$ (FT$(I),2,16)",T"T2$
  153. 1530  PRINT D$"BSAVE "P3$;F1$"/" MID$ (FT$(I),2,16)",T"T2$",A$2200,L" MID$ (FT$(I),67,5)
  154. 1540  HOME : RETURN 
  155. 1550  HOME : VTAB 12: INPUT "Are you sure you want to quit?";YN$
  156. 1560  IF  LEFT$(YN$,1) = "y"  OR  LEFT$(YN$,1) = "Y"  THEN  PRINT D$"PREFIX"P1$: TEXT : HOME : END 
  157. 1570  HOME : GOTO 140
  158. 1580 HT = 40 - LEN(A$)/2: POKE 1403,HT: PRINT A$: RETURN 
  159. 1590  DATA  2,1,5,1,5,2,6,1,6,2,7,1,7,2
  160. 1600 ER =  PEEK(222):EL =  PEEK(218) + PEEK(219) *256
  161. 1610  IF (ER = 8  OR ER = 3)  AND EC = 2  THEN I = I +1: RESUME 
  162. 1620  IF ER = 2  AND EC = 2  THEN 910
  163. 1630  HOME : VTAB 12
  164. 1640  IF (ER = 8  OR ER = 3)  AND EC = 3  THEN 1730
  165. 1650  IF EC = 1  AND ER = 8  THEN  PRINT "Please close your drive door.": VTAB 23: PRINT "Press a key to continue.": GOTO 1710
  166. 1660  IF EC = 2  AND ER = 6  THEN  PRINT "Please place ";: INVERSE : PRINT P1$;: NORMAL : PRINT " in any drive.": GOTO 1710
  167. 1670  PRINT "An error has occurred in line "EL"."
  168. 1680  PRINT "The error code is "ER"."
  169. 1690  PRINT "Please refer to your ProDOS and Applesoft manual."
  170. 1700  VTAB 23: PRINT "Press a key for the main menu."
  171. 1710 X =  PEEK( -16384): IF X >127  THEN  POKE  -16368,0: PRINT D$"Prefix"P1$: RUN 
  172. 1720  GOTO 1710
  173. 1730  PRINT "Please check your drive door and make sure that the correct disks are inserted  in your drives."
  174. 1740  VTAB 23: PRINT "Press <ESC> for menu. Press any other key to try again."
  175. 1750 X =  PEEK( -16384): IF X = 151  THEN  POKE  -16368,0: PRINT D$"PREFIX"P1$: RUN 
  176. 1760  IF X >127  THEN  POKE  -16368,0: GOTO 940
  177. 1770  GOTO 1750