CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

5/09.1 - Définition de caractères multiples (3e Complément)Coding Classeurs Weka
5/9.1 Définition de caractères multiples

Grâce à ce programme, vous pourrez définir des caractères graphiques dans une grille de 6 x 10 caractères, soit 48 x 80 pixels.

Ce programme utilise les concepts manipulés par le précédent, et, en particulier les mêmes commandes.

1000 ' =======================================
1010 ' Redéfinition de caractères multiples
1020 '========================================
1030 '
1040 '-------------------
1050 'Initialisation
1060 '----------------
1070 MODE 1
1080 DIM T(48,80)
1090 X=1:Y=1 'Position de départ
1100 '------------------------------
1110 'Gestion du curseur graphique
1120 '------------------------------
1130 LOCATE INT((X - l)/2)+1,INT <(Y-1)/2)+1 1140 L$=INKEY$: IF L$="" THEN 1140
1150 L=ASC(L$)
1160 IF UPPER$(L$) = "P" THEN T ( Y , X ) = 1 : CP= 1 : GOSUB 2000: PRINT CHR$(CA) 'Plein
1170 IF L$="V" THEN T ( Y , X ) =0: CP=0: GOSUB 2000: PRINT CHR$(CA) 'Vide
1180 IF L=243 AND X1190 IF L=242 AND X>1 THEN X=X-1
1200 IF L=241 AND Y1210 IF L=240 AND Y>1 THEN Y=Y-1
1220 IF L< >243 AND L< >242 AND L < >241 AND L < >240 AND L < >80 AND L< >86 AND LOI 12 AND L < > 118 AND L < > 13 THEN PRINT CHR$(7) 'Action refusee
1230 IF L < >13 THEN 1130 'Boucle principale
1240 '------------------------
1250 'Affichage des résultats
1260 '-----------------------
1270 CLS
1280 PRINT"1) Sur écran"
1290 PRINT"2) Sur imprimante"
1300 PRINT:INPUT "Votre choix";R 1310 IF ROI AND R<>2 THEN 1300
1320 IF R=1 THEN C=1 ELSE C=8
1330 MODE 2
1340 FOR I=1 FO 6 1350 FOR J=1 TO 10
1360 PRINT#C:PRINT#C,"Ligne"I"Colonne"J":";
1370 FOR K=1 TO 8
1380 A=0
1390 FOR L=1 TO 8
1400 A=A+(2^(8—L))*T(K+(I-1)*8,L+(J-1)*8)
1410 NEXT L
1420 PRINT #C,A;
1430 NEXT K
1440 NEXT J 1450 NEXT I
1460 '

2000'
2010 'Zone des sous-programmes
2030 '
2040 '-----------------------------------------
2050 'Carre plein ou Carre vide (CP=1 OU CP=0)
2060 '-----------------------------------------
2070 S=0
2080 IF INT ( X/2) < >X/2 AND INT <Y/2) < > Y/2 THEN GOSUB 2140
2090 IF INT(X/2) = X/2 AND INT (Y/2) < > Y/2 THEN GOSUB 2220
2100 IF INT(X/2)< >X/2 AND INT (Y/2)=Y/2 THEN GOSUB 2300
2110 IF INT(X/2)=X/2 AND INT (Y/2)=Y/2 THEN GOSUB 2380 2120 CA= 128+S 'Caractere a afficher
2130 RETURN
2140 '-----------------------------------------
2150 'Caractere en haut et a gauche
2160 '-----------------------------------------
2170 IF CP=1 THEN S=S+1
2180 IF T(Y,X + 1)=1 THEN S=S+2
2190 IF T(Y+1,X)=1 THEN S=S+4
2200 IF T(Y+1,X+1)=1 THEN S=S+8
2210 RETURN
2220 ------------------------------------------
2230 'Caractere en haut et a droite
2240 '-----------------------------------------
2250 IF CP=1 THEN S=S+2
2260 IF T(Y,X—1)=1 THEN S=S+1 2270 IF T(Y+1,X—1)=1 THEN S=+4
2280 IF T(Y+1,X)=1 THEN S=S+8 2290 RETURN
2300 ------------------------------------------
2310 'Caractere en bas et a gauche
2320 '-----------------------------------------
2330 IF CP=1 THEN S=S+4
2340 IF T(Y-1,X)=1 THEN S=S+1
2350 IF T(Y-1,X+1)=1 THEN S=S+2
2360 IF T(Y,X+1)=1 THEN S=S+8
2370 RETURN
2380 '-----------------------------------------
2390 'Caractere en bas et a droite
2400 '-----------------------------------------
2410 IF CP=1 THEN S=S+8
2420 IF T(Y-1,X-1)=1 THEN S=S+1 2430 IF T(Y-1,X)=1 THEN S=S+2
2440 IF T(Y,X—1)=1 THEN S-S+4
2450 RETURN

Lignes 1000 à 1090 :

  • Initialisation

Lignes 1100 à 1230 :

  • Gestion du curseur graphique (affichage ou effacement d'un pixel sur l'écran)

Lignes 1240 à 1460 :

  • Affichage des données à programmer par SYMBOL sur écran ou imprimante

Lignes 2000 à 2450 :

  • Zone des sous-programmes.
  • Calcul du motif à afficher en fonction de la position du point courant et du contexte précédent.

Page précédente : 5/09 - Sprites : définition de caractères par l'utilisateur
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 402 millisecondes et consultée 822 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.