home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib38a.dsk
/
JUNE.1990
/
FONT.CONVERT.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
9KB
|
177 lines
10 REM *****************************
20 REM * FONT.CONVERT *
30 REM * BY RUDY A. GUY *
40 REM * COPYRIGHT(C) 1990 *
50 REM * MINDCRAFT PUBL. CORP. *
60 REM * CONCORD, MA 01742 *
70 REM *****************************
80 ONERR GOTO 1600
90 DIM FT$(125),PF$(55)
100 D$ = CHR$(4):EC = 1
110 FOR I = 1 TO 7: READ S(I),D(I): NEXT
120 PRINT D$"PREFIX": INPUT P1$
130 PRINT D$"PR#3"
140 HOME : PRINT : VTAB 1:EC = 0
150 A$ = "Font Conversion Utility": GOSUB 1580
160 A$ = "By: Rudy A. Guy": GOSUB 1580
170 A$ = "---------------": GOSUB 1580
180 A$ = "Copyright 1990 By MindCraft Publ. Corp.": GOSUB 1580
190 VTAB 8:A$ = "Options": GOSUB 1580
200 A$ = "-------": GOSUB 1580
210 VTAB 11: POKE 1403,20: PRINT "1. Set Source/Destination Prefix"
220 POKE 1403,20: PRINT "2. Catalog Source Disk";: IF LEN(P3$) = 0 THEN PRINT : GOTO 240
230 PRINT "/Destination Disk"
240 POKE 1403,20: PRINT "3. Change Publish It Font to System Font"
250 POKE 1403,20: PRINT "4. Change System Font to Publish It Font"
260 POKE 1403,20: PRINT "5. Exit to BASIC"
270 VTAB 17: POKE 1403,20: PRINT "Please choose:"
280 POKE -16368,0:S = 1: GOSUB 390
290 X = PEEK( -16384): IF X = 141 THEN GOSUB 420: GOTO 440
300 IF X = 138 OR X = 149 THEN GOSUB 340: GOTO 290
310 IF X = 136 OR X = 139 THEN GOSUB 360: GOTO 290
320 IF X >176 AND X <182 THEN GOSUB 380: GOTO 290
330 GOTO 290
340 GOSUB 420: IF S = 5 THEN S = 1: GOSUB 390: RETURN
350 S = S +1: GOSUB 390: RETURN
360 GOSUB 420: IF S = 1 THEN S = 5: GOSUB 390: RETURN
370 S = S -1: GOSUB 390: RETURN
380 GOSUB 420:S = X -176: GOSUB 390: RETURN
390 S$ = STR$(S) +".": INVERSE : VTAB 10 +S: POKE 1403,20
400 INVERSE : PRINT S$: NORMAL
410 VTAB 17: POKE 1403,34: PRINT S: RETURN
420 POKE -16368,0:S$ = STR$(S) +".": VTAB 10 +S: POKE 1403,20: PRINT S$: RETURN
430 VTAB 17: POKE 1403,34: PRINT S -1: RETURN
440 IF S = 5 THEN GOTO 1550
450 ON S GOTO 470,940,1040,1070
460 GOTO 140
470 HOME :A$ = "Set Source Prefix": VTAB 1: GOSUB 1580
480 EC = 2:TT = 1: GOTO 880
490 GOSUB 680:TP$ = PF$(VT -4): IF TP$ = "ABORT" THEN PRINT D$"PREFIX"P1$: GOTO 140
500 VTAB 3: PRINT "Source Prefix:"TP$
510 VTAB 5: CALL -958: GOSUB 800: IF K >0 THEN GOSUB 680:TP$ = PF$(VT -4)
520 IF TP$ = "ABORT" THEN PRINT D$"PREFIX"P1$: GOTO 140
530 IF LEFT$(TP$,2) = "AC" OR K = 0 THEN PRINT D$"PREFIX": INPUT P2$: GOTO 550
540 IF K >0 THEN 510
550 HOME :A$ = "Set Destination Prefix": VTAB 1: GOSUB 1580
560 TT = 2: GOTO 880
570 GOSUB 680:TP$ = PF$(VT -4): IF TP$ = "ABORT" THEN PRINT D$"PREFIX"P1$:P2$ = "": GOTO 140
580 VTAB 3: PRINT "Destination Prefix:"PF$
590 VTAB 5: CALL -958: GOSUB 800: IF K >0 THEN GOSUB 680:TP$ = PF$(VT -4)
600 IF TP$ = "ABORT" THEN PRINT D$"PREFIX"P1$: GOTO 140
610 IF LEFT$(TP$,2) = "AC" OR K = 0 THEN PRINT D$"PREFIX": INPUT P3$: GOTO 630
620 IF K >0 THEN 590
630 HOME : VTAB 5: INVERSE : PRINT "Source Drive:": NORMAL : PRINT : PRINT P2$
640 VTAB 10: INVERSE : PRINT "Destination Drive:": NORMAL : PRINT : PRINT P3$
650 VTAB 22: INPUT "Are these correct?";YN$: IF LEFT$(YN$,1) = "y" OR LEFT$(YN$,1) = "Y" THEN GOTO 140
660 IF LEFT$(YN$,1) = "n" OR LEFT$(YN$,1) = "N" THEN 470
670 PRINT CHR$(7): GOTO 630
680 VTAB 5: CALL -958: FOR I = 1 TO K: POKE 1403,20: PRINT PF$(I): NEXT
690 VT = 5:HT = 20: INVERSE : VTAB VT: POKE 1403,HT: PRINT PF$(VT -4): NORMAL
700 X = PEEK( -16384): IF X = 141 THEN POKE -16368,0: RETURN
710 IF X = 138 OR X = 149 THEN POKE -16368,0: VTAB VT: POKE 1403,HT: PRINT PF$(VT -4): GOTO 740
720 IF X = 136 OR X = 139 THEN POKE -16368,0: VTAB VT: POKE 1403,HT: PRINT PF$(VT -4): GOTO 770
730 GOTO 700
740 IF VT = K +4 THEN VT = 5: GOTO 760
750 VT = VT +1
760 INVERSE : VTAB VT: POKE 1403,HT: PRINT PF$(VT -4): NORMAL : GOTO 700
770 IF VT = 5 THEN VT = K +4: GOTO 790
780 VT = VT -1
790 INVERSE : VTAB VT: POKE 1403,HT: PRINT PF$(VT -4): NORMAL : GOTO 700
800 K = 0: PRINT D$"PREFIX"TP$: PRINT D$"PREFIX": INPUT TP$: ON TT GOTO 810,820
810 VTAB 3: PRINT "Source Prefix:"TP$: GOTO 830
820 VTAB 3: PRINT "Destination Prefix:"TP$
830 PRINT D$"OPEN "TP$",TDIR": PRINT D$"READ "TP$
840 INPUT T$: IF MID$ (T$,18,3) = "DIR" THEN K = K +1:PF$(K) = MID$ (T$,2,16): GOTO 840
850 IF LEFT$(T$,2) < >"BL" THEN 840
860 PRINT D$"CLOSE": IF K = 0 THEN RETURN
870 PF$(K +1) = "ACCEPT CURRENT PREFIX":PF$(K +2) = "ABORT":K = K +2: RETURN
880 K = 0:I = 0
890 I = I +1
900 PRINT D$"PREFIX,S"S(I)",D"D(I):K = K +1: PRINT D$"PREFIX": INPUT PF$(K)
910 IF I <7 THEN 890
920 K = K +1:PF$(K) = "ABORT"
930 ON TT GOTO 490,570
940 EC = 3: HOME : IF LEN(P3$) = 0 THEN PRINT D$"CATALOG": GOTO 1000
950 VTAB 12: PRINT "(S)ource or (D)estination drive ?"
960 X = PEEK( -16384): IF X = 155 THEN POKE -16368,0: RETURN
970 IF X = 211 OR X = 243 THEN POKE -16368,0: PRINT D$"CATALOG"P2$: GOTO 1000
980 IF X = 196 OR X = 228 THEN POKE -16368,0: PRINT D$"CATALOG"P3$: GOTO 1000
990 GOTO 960
1000 POKE -16368,0
1010 VTAB 24: PRINT "Press RETURN for the menu.";
1020 X = PEEK( -16384): IF X = 141 THEN POKE -16368,0: GOTO 140
1030 GOTO 1020
1040 FL = 0:CTR = 0:CVR = 1
1050 GOSUB 1150: GOSUB 1210: GOSUB 1360
1060 GOTO 140
1070 FL = 0:CTR = 0:CVR = 2
1080 GOSUB 1150: GOSUB 1210: GOSUB 1360
1090 GOTO 140
1100 HOME : VTAB 12:A$ = "No " +M2$ +" fonts found.": GOSUB 1580
1110 VTAB 23: PRINT "Press any key for the menu."
1120 POKE -16368,0
1130 X = PEEK( -16384): IF X >127 THEN POKE -16368,0: GOTO 140
1140 GOTO 1130
1150 ON CVR GOSUB 1170,1190
1160 RETURN
1170 T1$ = "$F7":T2$ = "$C8":F1$ = "GS.FONTS":F2$ = "PI.FONTS":M1$ = "System":M2$ = "Publish.It"
1180 RETURN
1190 T1$ = "$C8":T2$ = "$F7":F1$ = "PI.FONTS":F2$ = "GS.FONTS":M1$ = "Publish.It":M2$ = "System"
1200 RETURN
1210 IF LEN(P2$) = 0 THEN P2$ = P1$
1220 IF LEN(P3$) = 0 THEN P3$ = P2$
1230 HOME : VTAB 12:A$ = "Please wait. Reading directory.": GOSUB 1580
1240 PRINT D$"OPEN "P2$",TDIR": PRINT D$"READ "P2$
1250 INPUT A$
1260 IF MID$ (A$,18,3) = T1$ THEN CTR = CTR +1:FT$(CTR) = A$
1270 IF LEFT$(A$,1) = "B" THEN 1290
1280 GOTO 1250
1290 PRINT D$"CLOSE"
1300 PRINT D$"OPEN "P3$",TDIR": PRINT D$"READ "P3$
1310 INPUT A$: IF MID$ (A$,2,8) = F1$ THEN F1 = 1
1320 IF LEFT$(A$,1) = "B" THEN 1340
1330 GOTO 1310
1340 PRINT D$"CLOSE"
1350 RETURN
1360 HOME
1370 IF CTR = 0 THEN POP : GOTO 1100
1380 FOR I = 1 TO CTR: VTAB 12: PRINT "Convert ";: INVERSE : PRINT MID$ (FT$(I),2,16);: NORMAL : PRINT " to a "M1$" font?"
1390 VTAB 23: PRINT "<ESC> for menu, <SPACE> to skip, <RETURN> to convert."
1400 GOSUB 1430
1410 NEXT I
1420 PRINT D$"PREFIX"P2$: RETURN
1430 POKE -16368,0
1440 X = PEEK( -16384)
1450 IF X = 155 THEN POKE -16368,0:I = CTR: RETURN
1460 IF X = 160 THEN POKE -16368,0: RETURN
1470 IF X = 141 THEN POKE -16368,0: GOTO 1490
1480 GOTO 1440
1490 IF F1 = 1 THEN 1510
1500 PRINT D$"CREATE "P3$;F1$:F1 = 1
1510 PRINT D$"BLOAD "P2$; MID$ (FT$(I),2,16)",T"T1$",A$2200"
1520 PRINT D$"CREATE "P3$;F1$"/" MID$ (FT$(I),2,16)",T"T2$
1530 PRINT D$"BSAVE "P3$;F1$"/" MID$ (FT$(I),2,16)",T"T2$",A$2200,L" MID$ (FT$(I),67,5)
1540 HOME : RETURN
1550 HOME : VTAB 12: INPUT "Are you sure you want to quit?";YN$
1560 IF LEFT$(YN$,1) = "y" OR LEFT$(YN$,1) = "Y" THEN PRINT D$"PREFIX"P1$: TEXT : HOME : END
1570 HOME : GOTO 140
1580 HT = 40 - LEN(A$)/2: POKE 1403,HT: PRINT A$: RETURN
1590 DATA 2,1,5,1,5,2,6,1,6,2,7,1,7,2
1600 ER = PEEK(222):EL = PEEK(218) + PEEK(219) *256
1610 IF (ER = 8 OR ER = 3) AND EC = 2 THEN I = I +1: RESUME
1620 IF ER = 2 AND EC = 2 THEN 910
1630 HOME : VTAB 12
1640 IF (ER = 8 OR ER = 3) AND EC = 3 THEN 1730
1650 IF EC = 1 AND ER = 8 THEN PRINT "Please close your drive door.": VTAB 23: PRINT "Press a key to continue.": GOTO 1710
1660 IF EC = 2 AND ER = 6 THEN PRINT "Please place ";: INVERSE : PRINT P1$;: NORMAL : PRINT " in any drive.": GOTO 1710
1670 PRINT "An error has occurred in line "EL"."
1680 PRINT "The error code is "ER"."
1690 PRINT "Please refer to your ProDOS and Applesoft manual."
1700 VTAB 23: PRINT "Press a key for the main menu."
1710 X = PEEK( -16384): IF X >127 THEN POKE -16368,0: PRINT D$"Prefix"P1$: RUN
1720 GOTO 1710
1730 PRINT "Please check your drive door and make sure that the correct disks are inserted in your drives."
1740 VTAB 23: PRINT "Press <ESC> for menu. Press any other key to try again."
1750 X = PEEK( -16384): IF X = 151 THEN POKE -16368,0: PRINT D$"PREFIX"P1$: RUN
1760 IF X >127 THEN POKE -16368,0: GOTO 940
1770 GOTO 1750