Des Mots
GW-Basic, utilisé par PC-Basic
Exemple de programmation
Programme avec Graphique et Texte
PC-BASIC
Polices modifiées
Le regretté cofondateur d'Apple Computer, Steve Jobs, a insisté pour inclure une variété de polices dans les ordinateurs Macintosh de première génération. L'intérêt de Jobs pour la typographie découle d'un cours de calligraphie qu'il a suivi par hasard à l'université.
Bien que GW-BASIC n'ait vraiment qu'une seule police avec laquelle travailler (par ÉCRAN), il existe des moyens de faire sortir différentes compositions du langage.
Exécutez W0RDS.BAS, W0RDS2.BAS et SLANTEXT.BAS pour voir les résultats.
WORDS.BAS utilise la fonction POINT pour examiner, pixel par pixel, le ou les mots saisis dans la variable chaîne I$.
Ensuite, avec ces coordonnées, à la ligne 35, l'instruction PSET est utilisée pour (en quelque sorte) agrandir l'image, selon un multiplicateur défini par la variable numérique S. L'inconvénient est que WORDS.BAS produit une police mise à l'échelle très légère, composée de petits points, plutôt que de texte plus robuste et rempli.
WORDS2.BAS corrige ce problème ; pas une simple répétition du programme précédent, W0RDS2.BAS utilise une sous-routine - des lignes 100 à 120 - pour construire une police mise à l'échelle plus sombre et plus frappante.
SLANTEXT.BAS adopte une approche légèrement différente. Au lieu de demander le texte en une seule fois, toutes les lettres que vous tapez apparaissent à l'écran en temps réel, mais elles sont inclinées.
Les deux premiers programmes (au moins) pourraient facilement être fusionnés en un seul, avec une option d'affichage de police telle que "clair" ou "sombre". De plus, plus de couleurs et de styles pourraient être gréé à l'aide de PSET et autres.
WORDS.BAS
5 REM WORDS.BAS
10 KEY
OFF:VIEW PRINT:SCREEN 9:COLOR 9,0:CLS:Y=267
15 COLOR 10:PRINT"WORDS TESTER:":PRINT:PRINT:COLOR
9
16 PRINT"INPUT ANY WORDS, OR SERIES OF WORDS, NO LARGER THAT 10-15
CHARACHERS:"
17 INPUT I$:PRINT:INPUT"Size:(l,2,3, or 4 pts)";S:
CLS:PRINT"WORDS TESTER:"
18 LOCATE 20,2:PRINT"--->"
20 LOCATE 20,10:PRINT
I$
30 FOR X=72 TO 200 STEP 1
33 KOLOR=POINT(X,Y)
35 IF KOLOR=9 THEN
PSET(X*S,(Y-160)),10
40 NEXT X
50 Y=Y+1
60 IF Y>280 THEN GOTO 80
70
GOTO 30
80 LOCATE 22,25:PRINT"Press Any Key___":I$=INKEY$:IF I$="" THEN 80
90 GOTO 10
WORDS2.BAS
5 REM WORDS2.BAS
10 KEY
OFF:VIEW PRINT:SCREEN 9:COLOR 9,0:CLS:Y=267
15 COLOR 10:PRINT"WORDS2
TESTER:":PRINT:PRINT:COLOR 9
16 PRINT"INPUT ANY WORDS, OR SERIES OF WORDS, NO
LARGER THAT 10-15 CHARACHERS:"
17 INPUT I$:PRINT:INPUT"Size:(1,2,3, or 4
pts)";S:CLS:PRINT"WORDS2 TESTER:"
18 LOCATE 20,2:PRINT"--->"
20 LOCATE
20,10:PRINT I$
30 FOR X=72 TO 200 STEP 1
33 KOLOR=POINT(X,Y)
35 IF
KOLOR=9 THEN GOSUB 100
40 NEXT X
50 Y=Y+1
60 IF Y>280 THEN GOTO 80
70 GOTO 30
80 LOCATE 22,25:PRINT"Press Any Key___":I$=INKEY$:IF I$="" THEN 80
90 GOTO 10
100
PSET((X*S),(Y-160)),10:PSET((X*S)+1,(Y-160)),10:PSET((X*S),(Y-159)),10:PSET((X*S)+1,(Y-159)),10
120 RETURN
SLANTEXT.BAS
1 REM SLANTEXT.BAS
5 KEY
OFF:SCREEN 9:COLOR 15,0
10 CLS:A=0:B=0
20 I$=INKEY$
30 IF I$="" THEN 20
35 LOCATE 1,1:PRINT I$;
40 FOR Y=0 TO 12:FOR X=10 TO 0 STEP
-1:PSET(X+A,Y+20+B),POINT(X,Y)
45 NEXT X:A=A+l:NEXT Y
50 IF A>600 THEN
B=B+15:A=0
55 FOR G=0 TO 15:FOR T=0 TO l0:PSET(G,T),0: NEXT T,G
56 IF
I$=CHR$(27) THEN END
60 GOTO 20