10 '-----------------------------
20 ' PROGRAMME D'ECRITURE 30 ' EN 40 ' DIMENSIONS DOUBLES 50 ' (EN MODE 2) 60 '----------------------------- 70 ON BREAK GOSUB 1100 80 MODE 2 90 INK 0,0:INK 1,6 100 PEN 0: PAPER 1 110 CLS 120 SYMBOL AFTER 160 130 DIM TABLE(20) 140 LOCATE 17,1:PRINT "CARACTERES EN DOUBLE HAUTEUR ET DOUBLE LARGEUR" 150 LOCATE 17,2:PRINT "----------------------------------------------" 160 LOCATE 10,5:PRINT "Vous pouvez definir un alphabet comportant" 170 LOCATE 8,6:PRINT "jusqu'a 20 caracteres." 180 LOCATE 10,7:PRINT "Pour cela,il suffit d'entrer les caracteres au clavier" 190 LOCATE 8,8:PRINT "et de presser la touche";" pour terminer." 200 LOCATE 10,9:PRINT"La barre d'espace vous permet d'effectuer des corrections" 210 LOCATE 8,10:PRINT "et presser la touche";" deux fois,"; 220 PRINT" vous fera quitter le programme." 230 WINDOW #0,1,80,1,12 240 PEN #1,0:PAPER #1,1 250 WINDOW #1,1,80,13,25 260 PEN #0,0:PAPER #0,1 270 LOCATE 1,11:PRINT STRING$(80,95) 280 LOCATE #1,30,1:PRINT#1,"ENTREE DE L ALPHABET" 290 LOCATE #1,30,2:PRINT#1,"--------------------" 300 LOCATE #1,10,4:PRINT #1,"Caracteres entres:" 310 LOCATE #1,10,5:PRINT #1,"------------------" 320 CAR=0 330 A$=INKEY$ 340 IF A$="" THEN 330 350 IF ASC(A$)=13 THEN 470 360 IF A$<>" " THEN 420 370 LOCATE #1,4+2*CAR,7:PRINT #1,A$; 380 CAR=CAR-1 390 IF CAR<0 THEN CAR=0 400 LOCATE #1,29,4:PRINT #1,CAR 410 GOTO 330 420 CAR=CAR+1 430 IF CAR=21 THEN CAR=20 440 LOCATE #1,4+2*CAR,7:PRINT #1,A$; 450 LOCATE #1,29,4:PRINT #1,CAR 460 TABLE(CAR)=ASC(A$):GOTO 330 470 CLS #1:LOCATE #1,33,1:PRINT#1,"VISUALISATION" 480 LOCATE #1,33,2:PRINT #1,"-------------" 490 FOR INDEX=1 TO CAR 500 A$=CHR$(TABLE(INDEX)) 510 CODE=156+4*INDEX 520 LOCATE 1,1:PRINT A$ 530 FOR i=0 TO 7 540 x$(i)=BIN$(PEEK (49152+i*2048),8) 550 NEXT i 560 FOR i=0 TO 7 570 FOR j=1 TO 4 580 A(I)=A(I)+2^(8-2*J+1)*VAL(MID$(X$(I),J,1))+2^(8-2*J)*VAL(MID$(X$(I),J,1)) 590 NEXT J 600 FOR K=5 TO 8 610 B(I)=B(I)+2^(16-2*K+1)*VAL(MID$(X$(I),K,1))+2^(16-2*K)*VAL(MID$(X$(I),K,1)) 620 NEXT K 630 NEXT I 640 SYMBOL CODE,A(0),A(0),A(1),A(1),A(2),A(2),A(3),A(3) 650 SYMBOL CODE+1,A(4),A(4),A(5),A(5),A(6),A(6),A(7),A(7) 660 SYMBOL CODE+2,B(0),B(0),B(1),B(1),B(2),B(2),B(3),B(3) 670 SYMBOL CODE+3,B(4),B(4),B(5),B(5),B(6),B(6),B(7),B(7) 680 LOCATE #1,0+INDEX*3,6:PRINT #1,CHR$(CODE);CHR$(CODE+2) 690 LOCATE #1,0+INDEX*3,7:PRINT #1,CHR$(CODE+1);CHR$(CODE+3) 700 FOR L=0 TO 7:A(L)=0:B(L)=0:NEXT L 710 LOCATE 1,1:PRINT " " 720 NEXT INDEX 730 CLS:LOCATE 33,1:PRINT "DEMONSTRATION" 740 LOCATE 33,2:PRINT "-------------" 750 LOCATE 10,4:PRINT "Vous pouvez maintenant utiliser votre alphabet de grands" 760 LOCATE 8,5:PRINT "caracteres." 770 LOCATE 10,6:PRINT "Vous disposez pour cela de la partie superieure de " 780 LOCATE 8,7:PRINT "l'ecran organisee en deux lignes de 20 caracteres. DEL ";" vous permet d'effacer." 800 LOCATE 26,9:PRINT "(Barre d'espace pour continuer)" 810 LOCATE 1,11:PRINT STRING$(80,95) 820 R$=INKEY$ 830 IF R$="" THEN 820 840 IF R$<>" " THEN 820 850 CLS:LOCATE 33,1:PRINT "DEMONSTRATION" 860 LOCATE 33,2:PRINT "-------------" 870 LOCATE 1,11:PRINT STRING$(80,95) 880 X=1:Y=5 890 LOCATE 1,5:PRINT "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --" 900 LOCATE 1,9:PRINT "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --" 910 R$=INKEY$ 920 IF R$="" THEN 910 930 IF ASC(R$)=127 THEN 850 940 IF R$=" " THEN 1040 950 Z=ASC(R$):I=1 960 IF Z=TABLE(20) THEN I=20:GOTO 1010 970 WHILE Z<>TABLE(I) 980 I=I+1 990 IF I=21 THEN I=1:GOTO 910 1000 WEND 1010 CODE=160+4*(I-1) 1020 LOCATE X,Y-1:PRINT CHR$(CODE);CHR$(CODE+2) 1030 LOCATE X,Y:PRINT CHR$(CODE+1);CHR$(CODE+3):GOTO 1060 1040 LOCATE X,Y-1:PRINT " " 1050 LOCATE X,Y:PRINT " " 1060 X=X+4 1070 IF X>77 AND Y=5 THEN X=1:Y=9:GOTO 910 1080 IF X>77 AND Y=9 THEN X=77:Y=9 1090 GOTO 910 1100 MODE 0 1110 LOCATE 6,6:PRINT "AU REVOIR ET .... " 1120 LOCATE 8,15:PRINT ".... A BIENTOT !!!" 1130 FOR I=1 TO 2000:NEXT I 1140 MODE 2 1150 END |