Listings Atari d'Hebdogiciel

du 400 au 130 xe

Modérateur : Politburo

Avatar du membre
Marsupilami
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 231
Enregistré le : 16 oct. 2008 01:03
Localisation : Jamais très loin d'un Atari 800 XL
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Marsupilami »

En fait le problème des polices sous windows c'est qu'elles n'affichent pas certains caractères dits "non imprimables" sur PC mais qui sont imprimables sur l'Atari.
Quand on tape des listings avec ce genre de caractères, le mieux est de le faire directement dans l'emulateur (à mon avis).
Petit rappel des raccourcis claviers:
Image
https://www.atarinside.com : Atari 800 XL - Référence Atari France/UK/Benelux/Allemagne - Photos HD de cartes mères 800XL - Atari 800 XL revue de presse.
OUESSAN
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 33
Enregistré le : 16 juin 2006 10:55
Localisation : Le HAVRE sur le port ....
Contact :

Re: Listings Atari d'Hebdogiciel

Message par OUESSAN »

Sous C64 Program Generator il y a une fonction très pratique pour les caractères ascii inconnus de Windows, elle s’appelle SCREEN CODES.

Tu peux le télécharger ici :
http://www.hebdogiciel.fr/ocrc64

Image
Image
Avatar du membre
Marsupilami
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 231
Enregistré le : 16 oct. 2008 01:03
Localisation : Jamais très loin d'un Atari 800 XL
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Marsupilami »

Hello,
j'ai regardé mais le charset C64 n'est pas celui d'Atari du tout. J'ai même l'impression qu'il y a plus de caractères sur l'Atari, il manques certains codes Hexa dans l'éditeur..
Donc ma méthode pour l'instant: scan, ocr, corrections notepad, transformation atascii, txt2atr, puis dans l'emulateur ajout des codes qui manquent, sauvegarde sur disquette et atr2txt....
C'est pas de tout repos, c'est long à taper comme dans le temps mais quand il n'y a pas de bugs dans le programme d'origine ça fonctionne ! :-)
https://www.atarinside.com : Atari 800 XL - Référence Atari France/UK/Benelux/Allemagne - Photos HD de cartes mères 800XL - Atari 800 XL revue de presse.
Xavier
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 684
Enregistré le : 10 mars 2006 15:48
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Xavier »

Salut,
"txt2atr" le : "ATR convertor"?
Pas la Peine de refaire l'extraction un seconde fois...
Tu peux directement mêtre le code ascii dans le fichier texte !
Les codes ce trouvent dans le répertoire des fichiers textes...
ou dans le BMP dans "DATAs"
...
Enfin, si ça va plus vite avec l'émule...
Avatar du membre
Marsupilami
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 231
Enregistré le : 16 oct. 2008 01:03
Localisation : Jamais très loin d'un Atari 800 XL
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Marsupilami »

Oui en fait l'ideal serait d'avoir un truc comme celui ci-dessous mais:
- Avec l'ensemble des caractères ATARI
- Qui génèrerait des codes utilisables pour "A800 TEXT Converter"
- Sans ascenseur (c'est pénible d'avoir à tout faire défiler pour trouver un caractère), genre la seconde image ci-dessous mais version cliquable.
- Sans les boutons "home", red, green etc...qui servent à rien :-)
- Qui montrerait aussi le résultat en affichant dans l'interface les un après les autres des petits bitmaps histoire de vérifier en même temps avec le listing papier qu'on s'est pas planté. (c'est forcément des bitmaps vu que windows ne sait pas afficher les 256 caractères possibles, même avec une police adaptée).
- Avec un bouton "COPIER" pour copier les codes générés dans le presse-papier de ouindoz.

Tu veux pas nous faire un petit dev' dans ce genre Xavier ? :lol: :wink:

Image 1
Image

Image 2
Image
https://www.atarinside.com : Atari 800 XL - Référence Atari France/UK/Benelux/Allemagne - Photos HD de cartes mères 800XL - Atari 800 XL revue de presse.
Xavier
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 684
Enregistré le : 10 mars 2006 15:48
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Xavier »

Tu veux pas nous faire un petit dev' dans ce genre Xavier ? :lol: :wink:
Déjà fait sur ZxBasic...
Mais, c'est un mauvais souvenir !
Il y des problèmes avec les codes ascii affichables... il faut trop bricoler pour avoir quelque chose de corrécte sous win.
Nota: ZxBasic ne fonctionne que sur mon micro !
8-((

Pour sortir du Dos, je fais "F5" ...
Avatar du membre
Marsupilami
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 231
Enregistré le : 16 oct. 2008 01:03
Localisation : Jamais très loin d'un Atari 800 XL
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Marsupilami »

Ça me semble compliqué si on utilise les polices de caractère Windows je suis daccord.
Mais...Si on ne les utilise pas ? Si c'est juste des images sur lesquelles on clique et hop ca donne le code correspondant pour A800 TEXT Converter ?
https://www.atarinside.com : Atari 800 XL - Référence Atari France/UK/Benelux/Allemagne - Photos HD de cartes mères 800XL - Atari 800 XL revue de presse.
Xavier
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 684
Enregistré le : 10 mars 2006 15:48
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Xavier »

Salut,

En fait, c'est pareil que reprogrammer le "bloc-note" avec une police de caractère différente.
Donc... aucun intêret.
On ouvre "Charmap.exe" .... Copier ... Coller... et c'est bon !

Donc ZxBasic est un projet mort !
rhod
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4718
Enregistré le : 01 juil. 2002 11:27
Localisation : Orléans
Contact :

Re: Listings Atari d'Hebdogiciel

Message par rhod »

http://www.rhod.fr
Blog : http://rhodblog.wordpress.com/
Twitter : https://twitter.com/#!/rhodblog
Mes recherches ATARI 8 BIT
Temple of Apshai Trilogy CPC et C64 DISK version d3m, boite plastique carrée
ATARI PC-1 / Moniteur CBM 1084DS2 noir
JC
Xavier
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 684
Enregistré le : 10 mars 2006 15:48
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Xavier »

Salut Rhod,

Ton message est mal passé...
Seul un lien est visible !!!
Avatar du membre
Marsupilami
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 231
Enregistré le : 16 oct. 2008 01:03
Localisation : Jamais très loin d'un Atari 800 XL
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Marsupilami »

https://www.atarinside.com : Atari 800 XL - Référence Atari France/UK/Benelux/Allemagne - Photos HD de cartes mères 800XL - Atari 800 XL revue de presse.
Xavier
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 684
Enregistré le : 10 mars 2006 15:48
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Xavier »

Effectivement,
ça rigole pas chez les Atarïstes.
;-)
Avatar du membre
Marsupilami
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 231
Enregistré le : 16 oct. 2008 01:03
Localisation : Jamais très loin d'un Atari 800 XL
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Marsupilami »

Bonjour à tous,

Oui je sais c'est un vieux topic tout çaaaaa :)

Voici deux programmes Hebdogiciel que je viens de retranscrire :

1 - Space invaders (http://download.abandonware.org/magazin ... 042/39.jpg)
Il est complètement fonctionnel 8)

Code : Tout sélectionner

20 I=0:J=0:HI=5000:CT=0:AT=0:GOSUB 280:GOTO 140
30 Y=PEEK(53248):IF Y>O THEN GOSUB 210
40 IF PR=1 THEN SP=SP-4:M$(SP)=SH$:POKE 53278,81:IF SP-4*K<10 THEN M$(SP,SP+4)=BL$:PR=0
50 Y=PEEK(53248):IF Y>O THEN GOSUB 210
60 IF BR=1 THEN BP=BP+3:M$(BP)=BOM$:IF BP>102 THEN M$(BP,BP+5)=BL$:BR=0:BP=20
70 IF PEEK(53259)=1 THEN 250
80 IF BR=O AND CT>AT AND K<16 THEN BR=1:POKE 53255,PH+3:BP=14+4*K:CT=0
90 PH=PH+4*(STICK(0)=7)-4*(STICK(0)=11):POKE 53248,PH
100 IF STRIG(0)=0 AND PR=0 THEN PR=1:MPH=PH+2:POKE 53252,MPH:SP=94:M$(SP)=SH$:POKE 77,0
110 CT=CT+1:RETURN
120 FOR X=0 TO 500:NEXT X:IF SC>HI THEN HI=SC:SOUND 0,0,0,0:GOTO 241
121 POSITION 4,12:? #6;"HISCORE ";HI
122 POKE 656,1:POKE 657,1:? "APPUYEZ SUR LE BOUTON ROUGE POUR JOUER";:CHN=0:SCR= 0
123 POSITION 5,10:? #6;"GAME OVER"
124 FOR A=0 TO 70:NEXT A
130 POKE 656,1:POKE 657,1:? "                                      ";:POKE 704,PEEK(710):SOUND 0,0,0,0
134 FOR X=0 TO 500:IF STRIG(0)=1 THEN 122
135 POSITION 4,12:? #6;"                      "
136 POSITION 5,10:? #6;"            "
140 POKE 656,3:POKE 657,2:? "SCORE  ";:SC=0:GOSUB 240
142 POKE 705,38:POKE 706,38:AT=80:TGH=0:TGHR=0
150 POKE 704,196:M$=BL$:PR=0:BR=0:POKE 53278,1:FOR I=1 TO 3:FOR J=80 TO 150:SOUND 0,J,10,6:NEXT J:NEXT I:CT=80
160 POKE 77,0:AT=AT-SCR*10:IF SCR>2 THEN TGH=30:IF SCR>3 THEN TGHR=60
170 FOR K=1 TO 20:D=-D:FOR I=0 TO 8:L=PEEK(DL)-D-20*(I=8):H=PEEK(DH)-(L<O)+(L>255):L=L+256*(L<O)-256*(L>255)
180 GOSUB 30:POKE DH,H:POKE DL,L:GOSUB 30:POKE 756,RT+4+2*(PEEK(756)=RT+4):GOSUB 30+TGH
190 SOUND 0,255,12,15:GOSUB 30+TGHR:SOUND 0,0,0,0:NEXT I:NEXT K
200 GOSUB 420:M$=BL$:PR=0:BR=0:POKE 53278,1:GOTO 120
210 FOR A=8 TO 14:SOUND 0,13,A,A:NEXT A:SOUND 0,0,0,0
211  X=MPH+8*I*(-D)-64*(D<O)-48:X=2*(INT(X/16)):Y=(Y=2)+3*(Y=1)+5*(Y=8)+7*(Y=4)-1
220 SC=SC+10*(10-Y):HT=HT+1:IF HT=24 THEN POP :M$=BL$:SCR=SCR+1:GOSUB 420:GOTO 150
230 POSITION X,Y:? #6;"  "
240 POKE 656,3:POKE 657,8:? SC;"         ";:M$(SP,SP+2)=BL$:PR=0:POKE 53278,1:IF SC>HI THEN GOTO 120
241 RETURN
250 POKE 706-CHN,O:POKE 704,PEEK(710):M$=BL$
251 FOR K=80 TO 15 STEP -1:SOUND 0,240,8,K/5:POKE 704,K:NEXT K:GOSUB 420
260 CHN=CHN+1:IF CHN=3 THEN CHN=0:SC=0:GOTO 120
270 GOTO 150
280 RT=PEEK(106):IF RT/2=(INT(RT/2)) THEN RT=RT-8
290 POKE 89,RT:POKE 88,0:? CHR$(125):POKE 89,RT+3:? CHR$(125):POKE 106,RT:GRAPHICS 18:POKE 756,(RT+4)
295 ? #6:? #6;"   & space &"
300 ? #6:? #6;"         ' INVADERS '":? #6:? #6:? #6:? #6;"   BY a. renders "
310 FOR I=8 TO 39:READ X:POKE (RT+4)*256+I+32,X:SOUND 0,I,10,6:NEXT I
320 FOR I=40 TO 71:READ X:POKE (RT+6)*256+I,X:SOUND 0,I,10,6:NEXT I
330 FOR I=72 TO 87:POKE (RT+6)*256+I-72,0:SOUND 0,I,10,10:NEXT I
340 FOR I=88 TO 511:J=PEEK(57344+I):POKE (RT+6)*256+I,J:POKE (RT+4)*256+I,J:SOUND 0,I,10,6:NEXT I
342 SOUND 0,0,0,0
343 FOR A=0 TO 500:NEXT A
344 PRINT chr$(125):GRAPHICS 18
345 POSITION 5,0:? #6;"INVADERS"
346 ? #6:? #6;" sortez de votre"
347 ? #6;" cachette a gauche"
348 ? #6;" de l'ecran pour"
349 ? #6;" aller combatre les":? #6:? #6;"  ENVAHISSEURS!"
350 SOUND 0,0,0,0:? #6:? #6:? #6;" appuyez sur start"
352 FOR B=0 TO 15:SOUND 1,89,B,B:NEXT B
353 IF PEEK(53279)=6 THEN 355
354 GOTO 352
355 SOUND 0,0,0,0
356 GRAPHICS 1:POKE 559,0:DH=PEEK(560)+PEEK(561)*256+5:DL=DH-1
360 POKE 89,RT+2:POKE 88,128:POKE 752,1:? " ":POKE DH+25,6:POKE 708,52:POKE 709,132:POKE 710,8:POKE 711,84
370 DIM BL$(128), D$(1), F$((INT(ADR(D$)/1024)+1)*1024-ADR(D$)-1),PM$(384),M$(128),P$(128), P1$(128), P2$(128)
380 DIM BOM$(6),SH$(6):BL$=CHR$(0):BL$(128)=CHR$(0):BL$(2)=BL$:P$=BL$:M$=BL$:SP=88
390 FOR I=1 TO 6:READ K,Y,D:P$(97+I,97+I)=CHR$(K):SH$(I,I)=CHR$(Y):BOM$(I,I)=CHR$(D):NEXT I
395 SOUND 0,15,15,150
400 P1$=BL$:P2$=BL$:P1$(12)=P$:P2$=P1$:POKE 53249,170:POKE 53250,156:POKE 704,196:POKE 707,76
410 BP=10:POKE 53254,100:HP=128:POKE 53248,PH:POKE 54279,ADR(PM$)/256:POKE 623,1:POKE 53277,3
420 POKE DH,PEEK(89):POKE DL,128:POKE 559,46:BR=1:HT=0:D=-1:POKE 756,RT+4
430 ? #6;CHR$(125):FOR J=0 TO 3:POSITION 0,J*2:FOR I=1 TO 6:? #6;CHR$(5+32*J+J+64*(J>1));" ";:NEXT I:NEXT J:RETURN
440 DATA 60,126,255,165,255,126,0,0,60,126,215,215,126,255,129,102,24,60,126,235,255,255,65,0
445 DATA 195,126,255,153,221,255,65,65,0,0,0,90,0,0,0,0,60,126,86,126,60,62,34,54
450 DATA 24,60,126,215,255,255,130,0,195,66,126,255,153,187,255,65
460 DATA 24,1,0,24,1,0,24,0,0,60,0,0,126,0,192,255,0,192
2 - Help City (http://download.abandonware.org/magazin ... 042/37.jpg)
Pour celui-là en revanche j'ai besoin d'aide :roll:
Si quelqu'un veut s'y coller, moi ça fait 10 fois que je repasse dessus sans trouver d'erreur.
A mon avis le programme publié est incomplet (y a t'il eu un erratum dans d'autres numéros ?).
Par exemple les lignes 4300 et suivantes ne sont jamais appelées :-/
Il semble aussi manquer les lignes 300 et 310.

Code : Tout sélectionner

1 REM HELP CITY
10 GRAPHICS 2+16
15 ? #6;"DES METEORES ATTAQU-ENT VOTRE VILLE                      "
20 ? #6;"VOTRE MISSION EST DE LES ARRETER AVANT QU'ILS NE TRANSPERCENT LE MUR PROTECTEUR ET NE DETRUISENT LA VILLE"
25 IF PEEK(53279)=6 THEN 30
27 GOTO 25
30 GRAPHICS 5+16
33 REM *******************************
37 GOSUB 4000
40 COLOR 1
45 PLOT 0,40:DRAWTO 79,40
47 COLOR 2
50 PLOT 0,41:DRAWTO 79,41
53 COLOR 3
55 PLOT 0,42:DRAWTO 79,42
65 REM *******************************
67 SC=0:P=0:A=0:B1=0:B2=0
70 Q0=RND(0)*79:W0=1
80 IF A>=1 THEN 260
90 A=A+1
100 Q1=RND(0)*79:W1=1
110 IF A>=2 THEN 200
120 A=A+1
130 Q2=RND(0)*79:W2=1
140 GOSUB 4110
145 B2=B2+1
150 IF B2<30 THEN 200
160 COLOR 1:PLOT Q2,W2
170 COLOR 0:PLOT Q2,W2-1
180 W2=W2+1
185 LOCATE Q2,W2,V
190 IF V<>0 THEN COLOR 0:PLOT Q2,W2-1:PLOT Q2,W2:SOUND 1,72,10,8:FOR ZX=0 TO 10:NEXT ZX:SOUND 1,0,0,0:GOTO 130
193 IF PEEK(53252)<>0 AND W2>=35 AND W2<=39 THEN 196
194 GOTO 199
196 COLOR 0:PLOT Q2,W2-1:POKE 53278,0:SOUND 1,72,12,8:FOR ZX=0 TO 10:NEXT ZX:SOUND 1,0,0,0:SC=SC+25:P=P+1
198 GOTO 130
199 IF W2=46 THEN 1900
200 B=B+1
210 IF B1<15 THEN 260
220 COLOR 1:PLOT Q1,W1
230 COLOR 0:PLOT Q1,W1-1
240 W1=W1+1
245 LOCATE Q1,W1,S
250 IF S<>0 THEN COLOR 0:PLOT Q1,W1-1:PLOT Q1,W1:SOUND 1,72,10,8:FOR ZX=0 TO 10:NEXT ZX:SOUND 1,0,0,0:GOTO 100
253 IF PEEK(53252)<>0 AND W1>=35 AND W1<=39 THEN 256
254 GOTO 259
256 COLOR 0:PLOT Q1,W1-1:POKE 53278,0:SOUND 1,72,12,8:FOR ZX=0 TO 10:NEXT ZX:SOUND 1,0,0,0:SC=SC+25:P=P+1
258 GOTO 100
259 IF W1=46 THEN 1900
260 COLOR 1:PLOT Q0,W0
270 COLOR 0:PLOT Q0,W0-1
280 W0=W0+1
285 LOCATE Q0,W0,X
290 IF X<>0 THEN COLOR 0:PLOT Q0,W0-1:PLOT Q0,W0:SOUND 1,72,10,8:FOR ZX=0 TO 10:NEXT ZX:SOUND 1,0,0,0:GOTO 70
293 IF PEEK(53252)<>0 AND W0>=35 AND W0<=39 THEN 295
294 GOTO 298
295 COLOR 0:PLOT Q0,W0-1:POKE 53278,0:SOUND 1,72,12,8:FOR ZX=0 TO 10:NEXT ZX:SOUND 1,0,0,0:SC=SC+25:P=P+1
297 GOTO 70
298 IF W0=64 THEN 1900
320 IF P>30 THEN 360
330 IF P=30 THEN 350
340 GOTO 140
350 BN=RND(0)*41+19:W=1:H=255
360 SOUND 1,96,10,4
370 COLOR 2:PLOT BN,W
380 COLOR 0:PLOT BN,W-1
390 COLOR 2:PLOT BN,W+1
400 COLOR 0:PLOT BN,W
410 IF PEEK(53252)<>0 AND W>=34 AND W<=40 THEN 430
420 GOTO 450
430 COLOR 0:PLOT BN,W+0:PLOT BN,W+1:POKE 53278,0
435 SOUND 1,0,0,0
440 SOUND 1,121,4,8:SC=SC+100:P=0:GOTO 140
450 IF W>=45 THEN 1900
460 W=W+2:H=H-1:P=P+1
470 GOTO 140
1900 POKE 54279,0
1910 POKE 559,0
1920 POKE 53277,0
1930 POKE 53248,0
1970 POKE 704,0
2000 FOR X=15 TO 0 STEP -1
2005 GRAPHICS 11
2007 SETCOLOR 4,1,0
2010 SOUND 1,29,8,X
2015 SETCOLOR 4,X,0
2020 FOR Y=0 TO 20:NEXT Y
2035 NEXT X
2040 GRAPHICS 4+16
2049 FOR Z=0 TO 150:NEXT Z
2060 GRAPHICS 2+16
2070 ? #6;"   "
2080 ? #6;"    "
2090 ? #6;"      game over"
3000 ? #6;""
3005 ? #6;""
3007 ? #6;""
3010 ? #6;"   SCORE: ";SC
3011 IF SC>=RE THEN RE=SC
3012  ? #6;""
3013 ? #6;"    record: ";RE
3015 IF PEEK(53279)=6 THEN RESTORE :GOTO 30
3017 GOTO 3015
3020 REM *******************************
4000 B=PEEK(106)-40
4005 Z=120
4010 POKE 559,62
4020 POKE 54779,B
4025 POKE 704,54
4030 POKE 53277,3
4040 POKE 53248,Z
4050 I=B*256+1024
4055 FOR X=175 TO 190
4060 READ T
4070 POKE I+X,T
4080 NEXT X
4090 DATA 129,129,255,153,153,90,60,24,24,24,60,102,66,66,66,66
4110 C=STICK(0)
4190 IF C<>11 THEN 4220
4195 SOUND 1,72,5,8:SOUND 1,0,0,0
4200 Z=Z-5
4210 POKE 53248,Z
4215 IF Z<=33 THEN Z=220
4220 IF C<>7 THEN 4250
4225 SOUND 1,72,5,8:SOUND 1,0,0,0
4230 Z=Z+5
4240 POKE 53248,Z
4245 IF Z>=220 THEN Z=30
4250 RETURN
4300 REM *******************************
5000 GRAPHICS 2+16
5010 ? #6; "********************"
5020 ? #6; "*                  *"
5030 ? #6; "*    help-city     *"
5040 ? #6; "*                  *"
5050 ? #6; "* laurent poulain  *"
5060 ? #6; "********************"
5140 FOR ZX=0 TO 200:NEXT ZX
5150 GOTO 10
A suivre...

PS pour tester : Emuler avec http://www.virtualdub.org/altirra.html, booter en Basic, Copier le listing, clic droit + coller dans l'interface basic, attendre un peu, taper RUN.
https://www.atarinside.com : Atari 800 XL - Référence Atari France/UK/Benelux/Allemagne - Photos HD de cartes mères 800XL - Atari 800 XL revue de presse.
Avatar du membre
Marsupilami
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 231
Enregistré le : 16 oct. 2008 01:03
Localisation : Jamais très loin d'un Atari 800 XL
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Marsupilami »

Et un troisième : Flag Game (fonctionnel) - http://download.abandonware.org/magazin ... 066/20.jpg

Code : Tout sélectionner

5 REM FLAG GAME
6 REM PATRICK PHILIPERT-ATARI 600XL
10 DIM P$(15),C$(15),V$(15)
20 GOSUB 3000
100 IF PEEK(53279)=6 THEN S=0:GOTO 200
105 IF S=2 THEN 4000
110 IF PEEK(53279)=3 THEN 4000
120 IF PEEK(53279)=5 THEN GOSUB 3500
130 GOTO 100
200 GRAPHICS 15:COLOR 1
206 H=4*L:H3=H/3:HT=H/13:L2=2*L:L3=3*L:X=50:Y=30
207 IF S<>0 THEN POKE 752,1:GOSUB 1500+10*N:? :? P$;" CAPITALE: ";C$:GOTO 100
300 N=INT(RND(0)*18):RESTORE 5000
310 FOR I=0 TO N:READ P$,C$:NEXT I
320 GOSUB 1500+10*N:POKE 764,255
330 POKE 656,0:POKE 657,2:? "PAYS:";:INPUT V$
340 IF V$="" THEN 400
350 IF V$=P$ THEN 380
360 GOSUB 2400
370 GOTO 330
380 GOSUB 2300
390 FOR J=1 TO 150:NEXT J:POKE 656,1:POKE 657,30:? "      "
400 POKE 856,2:POKE 657,2:? "CAPITALE:";:INPUT V$
410 IF V$="" THEN ? " ";:? P$,C$:FOR I=1 TO 600:NEXT I:RUN
420 IF V$=C$ THEN GOSUB 2300:GOTO 100
430 GOSUB 2400:GOTO 400
1500 A=3:B=1:C=2:GOSUB 2200
1501 GOSUB 2000
1502 PLOT X+L,Y:DRAWTO X+L,Y+H:PLOT X+L2,Y:DRAWTO X+L2,Y+H
1503 PLOT X,Y:POSITION X,Y+H:POKE 765,A:GOSUB 2100
1504 PLOT X+L,Y:POSITION X+L,Y+H:POKE 765,B:GOSUB 2100
1505 PLOT X+L2,Y:POSITION X+L2,Y+H:POKE 765,C:GOSUB 2100:RETURN
1510 A=2:B=1:C=3 
1511 GOSUB 2200
1512 GOSUB 2000
1513 PLOT X,Y:POSITION X,Y+H3:POKE 765,A:GOSUB 2100
1514 PLOT X,Y+H3:POSITION X,Y+2*H3:POKE 765,B:GOSUB 2100
1515 PLOT X,Y+2*H3:POSITION X,Y+H:POKE 765,C:GOSUB 2100:RETURN
1520 A=3:B=1:C=2:GOTO 1511
1530 A=2:B=1:C=2:GOTO 1511
1540 A=0:B=2:C=1:GOSUB 2500:GOTO 1512
1550 A=1:B=3:C=2:POKE 709,51:POKE 710,12:POKE 708,196:POKE 712,2:GOTO 1512
1560 A=2:B=1:C=0:POKE 708,12:POKE 710,6:POKE 709,48:GOTO 1512
1570 A=3:B=1:C=2:POKE 708,11:POKE 709,49:POKE 710,197
1571 POKE 712,5:GOTO 1501
1580 A=3:B=1:C=2:POKE 708,12:POKE 709,245:POKE 710,201:POKE 712,147:GOTO 1501
1590 A=2:B=1
1591 POKE 708,12:POKE 709,52:POKE 710,218:POKE 712,146:GOSUB 2000
1592 PLOT X,Y:POSITION X,Y+H/2:POKE 765,A:GOSUB 2100
1593 PLOT X,Y+H/2:POSITION X,Y+H:POKE 765,B:GOSUB 2100:RETURN
1600 A=3:B=1:C=2:GOSUB 2200:DY=0:GOSUB 2000
1601 PLOT X+1.2*L,Y:DRAWTO X+1.2*L,Y+HT*7:DRAWTO X,Y+HT*7
1602 PLOT X,Y:POSITION X,Y+HT*7:POKE 765,A:GOSUB 2100
1603 FOR I=0 TO 5:DX=0:IF I<4 THEN DX=1.2*L
1604 PLOT X+DX,Y+DY:POSITION X+DX,Y+DY+HT:POKE 765,0:GOSUB 2100
1605 IF I=3 THEN DX=0
1006 PLOT X+DX,Y+DY+HT:POSITION X+DX,Y+DY+2*HT:POKE 765,B:GOSUB 2100:DY=DY+HT*2: NEXT I
1607 PLOT X,Y+12*HT:POSITION X,Y+H:POKE 765,C:GOSUB 2100
1608 DY=H/11:FOR I=1 TO 5:DX=L/10:FOR J=1 TO 6:PLOT X+DX,Y+DY:DX=DX+L/5:NEXT J:DY=DY+H/11:NEXT I
1609 DY=H/7:FOR I=1 TO 4:DX=L/5:FOR J=1 TO 5:PLOT X+DX,Y+DY:DX=DX+L/5:NEXT J:DY=DY+H/11.4:NEXT I:RETURN
1610 A=0:B=1:C=2:GOSUB 2500:GOTO 1501
1620 A=2:B=1:C=3:POKE 708,12:POKE 709,48:POKE 710,196:POKE 712,2:GOTO 1512
1630 A=3:B=1:C=3:GOTO 1511
1640 A=2:B=1:C=0:GOTO 1511
1650 A=1:B=2:GOTO 1591
1660 A=3:B=1:C=2:GOSUB 2200
1661 GOSUB 2000:PLOT X,Y:DRAWTO X+L3/2,Y+H/2:DRAWTO X,Y+H:PLOT X+L3/2,Y+H/2:DRAWTO X+L3,Y+H/2
1662 PLOT X,Y:POSITION X,Y+H:POKE 765,A:GOSUB 2100:PLOT X,Y:POSITION X+L3/2,Y+H/2:POKE 765,B:GOSUB 2100
1663 PLOT X,Y+H:POSITION X+L3/2,Y+H/2:POKE 765,C:GOSUB 2100:RETURN
1670 A=2:B=3:C=1:POKE 709,50:POKE 708,195:POKE 710,230:POKE 712,3:GOTO 1512
2000 PLOT X,Y:DRAWTO X+L3,Y:DRAWTO X+L3,Y+H:DRAWTO X,Y+H:DRAWTO X,Y:RETURN
2100 XIO 18,#6,0,0,"S:":RETURN
2200 POKE 708,12:POKE 709,48:POKE 710,132:POKE 712,0:RETURN
2300 POKE 656,1:POKE 657,30:? "BRAVO";:RETURN
2400 POKE 656,1:POKE 657,30:? "FAUX";:RETURN
2500 POKE 708,228:POKE 709,51:POKE 710,6:POKE 712,0:RETURN
3000 GRAPHICS 18
3040 POSITION 0,2:? #6;"      FLAG GAME"
3070 FOR I=1 TO 350:NEXT I
3120 GRAPHICS 2
3130 POKE 710,0
3170 ? #6:? #6;"POUR JOUER  : START"
3180 ? #6;"CONSULTATION: SELECT";
3190 ? #6;"ANIMATION   : OPTION"
3200 N=-1:L=20:RETURN
3500 GRAPHICS 2
3520 POKE 710,4:POKE 712,160:POKE 708,51:POKE 764,255
3525 POSITION 4,4:? #6;"CONSULTATION"
3530 ? " ":? "QUEL PAYS:";:INPUT V$:IF V$="" THEN RUN
3535 RESTORE 5000
3540 S=1:FOR N=0 TO 17:READ P$,C$:IF V$=P$ THEN 200
3550 NEXT N
3560 ? " ":? "PAYS INCONNU"
3570 FOR I=1 TO 250:NEXT I:GOTO 3530
4000 S=2:N=N+1:IF N=0 THEN RESTORE 5000
4010 FOR K=1 TO 300:NEXT K
4020 IF N>17 THEN RUN
4035 READ P$,C$:GOTO 200
5000 DATA FRANCE,PARIS,HOLLANDE,AMSTERDAM,YOUGOSLAVIE,BELGRADE,AUTRICHE,VIENNE,ALLEMAGNE,BERLIN
5001 DATA IRAN,TEHERAN,IRAK,BAGDAD,ITALIE,ROME,IRLANDE,DUBLIN,POLOGNE,VARSOVIE,USA,WASHINGTON
5002 DATA BELGIQUE,BRUXELLES,HONGRIE,BUDAPEST,ARGENTINE,BUENOS AIRES,LIBYE,TRIPOLI,MONACO,MONACO
5003 DATA TCHECOSLOVAQUIE,PRAGUE,BOLIVIE LA PAZ
https://www.atarinside.com : Atari 800 XL - Référence Atari France/UK/Benelux/Allemagne - Photos HD de cartes mères 800XL - Atari 800 XL revue de presse.
Avatar du membre
Marsupilami
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 231
Enregistré le : 16 oct. 2008 01:03
Localisation : Jamais très loin d'un Atari 800 XL
Contact :

Re: Listings Atari d'Hebdogiciel

Message par Marsupilami »

Et un de plus : Hangman (fonctionnel)

Code : Tout sélectionner

1 REM ***************************
2 REM * HANGMAN BY PICCO MICHEL *
3 REM * --- SUR ATARI XL--      *
4 REM ***************************
5 DIM A$(11),B$(11),R$(26),V$(100)
8 Z=176
9 REM ******* PRESENTATION *******
10 GRAPHICS 1+16
20 POSITION 6,2:? #6;"_______":POSITION 6,3:? #6;"hangman":POSITION 6,4:?#6;"_______"
25 POSITION 0,7:? #6;"      by picco m."
27 FOR I=1 TO 50:NEXT I
30 POSITION 0,12:? #6;"FOR 2 PLAYERS,SELECT"
40 POSITION 0,15:? #6;"FOR PLAY,PRESS START"
50 IF PEEK(53279)=5 AND NI=1 THEN POSITION 4,12:? #6;"2":NI=0:GOTO 70
55 IF PEEK(53279)=6 AND NI=1 THEN 200
60 IF PEEK(53279)=6 AND NI=0 THEN 100
65 IF PEEK(53279)=5 AND NI=0 THEN POSITION 4,12:? #6;"1":NI=1
70 FOR I=1 TO 70:NEXT I:GOTO 50
99 REM
100 REM ***** 1 PLAYER ************
105 POKE 764,28
110 HS=INT(RND(1)*100):IF HS=0 THEN 110
115 FOR J=1 TO HS-1:READ V$:NEXT J
120 READ A$:P=1:GOSUB 199:GOTO 300
130 DATA ABDOMINAUX,ACACIA,ACCALMIE,ADHESIF,AGATE,AINESSE,ALAMBIC,ALCHIMISTE,AMNISTIE,AMPHORE,AMYGDALE,ANTHOLOGIE
140 DATA AQUARELLE,ASPHYXIE,ASTRAKAN,BAZOOKA,BELVEDERE,BLASPHEME,BLIZZARD,CACHEMIRE,CALUMET,CANDELABRE,CANICULE
150 DATA CARQUOIS,CHEPTEL,CLIPPER,CORMORAN,CLOPORTE,CYTISE,DESSEIN,DEXTERITE,DIALECTE,DIARRHEE,DILUVIEN,DORYPHORE
160 DATA ENLUMINURE,ESTUAIRE,ETAMINES,ETHNIES,EXHALER,EXONERER,FAKIR,FALSIFIER,FESTOYER,FUTAIE,GALINACES,GLAIEUL
170 DATA HECATOMBE,HERESIE,ICEBERG,IDYLLE,INOXYDABLE,INTERVIEW,KIRSCH,KIDNAPPER,LACRYMOGENE,LUZERNE,MAJORDOME
180 DATA MAPPEMONDE,MARSUPIAUX,MASTODONTE,MEGALITHE,MORPHOLOGIE,MYRIADES,NOCTAMBULE,NONAGENAIRE,NOTORIETE,OKAPI
190 DATA ORIFLAMME,OLYMPE,VASSAL,VEHEMENCE,VODKA,WALKYRIES,XENOPHOBE,ZENITH,RHIZOME,RHUBARBE,SAINDOUX,SATYRE,THYM
195 DATA SCAPHANDRE,SCHAMPOOING,SOPORIFIQUE,SQUALE,STRATAGEME,THEOREME,TRAMWAY,PACHYDERME,PATCHOULI,PHENIX,QUARTZ
198 DATA PHOSPHATE,PHYLLOXERA,QUASIMODO,RETHORIQUE,TRAJECTOIRE,JUNGLE
199 GRAPHICS 1+16:SETCOLOR 4,0,0:? #6;"":POSITION 6,11:? #6;"PLAYER ";P:GOSUB 4200:RETURN
200 REM
201 REM ***** 2 PLAYER ************
202 P=2
210 GRAPHICS 0:SETCOLOR 2,12,0:POSITION 13,4:? "  HANGMAN   ":POKE 752,1
220 POSITION 1,8:? "  UN JOUEUR ENTRE LE MOT EN MEMOIRE , ":? :? " ET LE SECOND ESSAYE DE LE TROUVER . "
230 ? :? :? "     QUE LE SECOND SE RETOURNE ..":? :? "     PUIS , APPUIEZ SUR OPTION "
235 POKE 53279,0:POKE 764,28
240 IF PEEK(53279)=3 THEN 250
245 GOTO 240
250 ? :? :? :? "  TAPEZ LE MOT CHOISI >>";:INPUT A$:GOSUB 199:GOTO 300
299 REM
300 REM ***** DECOR DU JEU ********
310 GRAPHICS 2:SETCOLOR 4,8,2:SETCOLOR 0,12,12:SETCOLOR 2,8,2:POKE 752,1:SETCOLOR 1,2,14
320 A=LEN(A$):IF A>11 THEN 200
330 POSITION 1,1:? #6;"hangman ->"
340 FOR X=1 TO A
350 POSITION X,6:? #6;"-";
360 NEXT X
365 ? CHR$(125),CHR$(253):? :? " SI VOUS AVEZ LA REPONSE , TAPEZ 'RE'"
370 ? :? " QUELLE LETTRE";:INPUT R$
380 IF R$="RE" THEN ? CHR$(125),CHR$(253):? :? "  QUE PROPOSEZ-VOUS >>";:INPUT B$
390 IF B$=A$ THEN 500
399 REM
400 REM ******* ANALYSE LETTRES *****
410 FOR D=1 TO A
420 B$=A$(D,D):IF B$=R$ THEN V=1:POSITION D,5:? #6;B$
450 NEXT D
460 GOSUB 600:GOTO 365
499 REM
500 REM ******** VICTOIRE **********
510 POSITION 1,3:? #6;"bravo !":? CHR$(125):? :? "  VOUS ETES UN HABITUE ?? ":POSITION 1,8:? #6;A$:GOSUB 4200
530 GOSUB 4100:GOTO 800
599 REM
600 REM ****** PHASES DEFAITE *******
610 IF V=1 THEN V=0:RETURN
620 IF T=0 THEN POSITION 10,9:? #6;"______"
630 IF T=1 THEN FOR Y=1 TO 9:POSITION 12,Y:? #6;"!":NEXT Y
640 IF T=2 THEN POSITION 12,1:? #6;"_____ "
650 IF T=3 THEN POSITION 14,2:? #6;"/":POSITION 13,3:? #6;"/"
660 IF T=4 THEN POSITION 16,2:? #6;"!":POSITION 16,3:? #6;"!"
670 IF T=5 THEN Z=176:GOSUB 4000
680 IF T=6 THEN POSITION 16,5:? #6;"#":POSITION 16,6:? #6;"#"
690 IF T=7 THEN POSITION 15,5:? #6;"/":POSITION 17,5:? #6;"\"
700 IF T=8 THEN POSITION 15,7:? #6;"/":POSITION 17,7:? #6;"\":GOSUB 750
710 T=T+1:RETURN
719 REM
720 REM ****** MOUV.DES BRAS ********
722 FOR N=1 TO 6
724 FOR I=1 TO 150:NEXT I
725 IF N=I THEN POKE 704,120
726 IF N=1 OR N=3 OR N=5 THEN GOSUB 4270:POS.15,5:? #6;" ":POS.17,5:? #6;" ":POS.15,4:? #6;"\":POS.17,4:? #6;"/"
727 IF N=2 THEN POKE 704,220
728 IF N=1 OR N=3 OR N=5 THEN GOSUB 4280:POS.15,7:? #6;" ":POS.17,7:? #6;" ":POS.15,6:? #6;"_":POS.17,6:? #6;"_"
729 IF N=3 THEN POKE 704,200
730 IF N=2 OR N=4 OR N=6 THEN GOSUB 4270:POS.15,5:? #6;"/":POS.17,5:? #6;"\":POS.15,4:? #6;" ":POS.17,4:? #6;" "
731 IF N=4 THEN POKE 704,56
732 IF N=2 OR N=4 OR N=6 THEN GOSUB 4280:POS.15,7:? #6;"/":POS.17,7:? #6;"\":POS.15,6:? #6;" ":POS.17,6:? #6;" "
733 IF N=5 THEN POKE 704,105
735 NEXT N
740 RETURN
749 REM
750 REM ******* DEFAITE *************
755 ? CHR$(125):? :? " C'ETAIT VRAIMENT DIFFICILE ??? "
760 POSITION 1,3:? #6;"perdu !":POSITION 1,7:? #6;A$:GOSUB 720:GOSUB 4200
770 GOSUB 4100:GOTO 800
799 REM
800 REM ******* REJOUER ? ***********
805 Z=230:GOSUB 4100
810 ? #6;CHR$(125):POSITION 3,2:? #6;"POUR REJOUER..":POSITION 5,7:? #6;"pressez start"
820 IF PEEK(53279)=6 THEN CLR :POKE 53248,230:RUN
830 GOTO 820
3999 REM ****** TETE ****************
4000 B=PEEK(106)-40
4010 POKE 559,62
4020 POKE 54279,B
4025 POKE 704,45
4030 POKE 53277,3
4040 POKE 53248,Z
4050 K=B*256+1024
4055 POKE K+94,60
4056 POKE K+95,126
4057 POKE K+96,0
4058 POKE K+97,126
4059 POKE K+98,153
4060 POKE K+99,153
4061 POKE K+100,126
4062 POKE K+101,126
4063 POKE K+102,126
4064 POKE K+103,219
4065 POKE K+104,102
4066 POKE K+105,126
4067 POKE K+106,66
4068 POKE K+107,68
4069 POKE K+108,126
4070 POKE K+109,60
4071 POKE K+110,24
4090 RETURN
4099 REM
4100 REM ***** EFFACE TETE ***********
4155 POKE K+94,0
4156 POKE K+95,0
4157 POKE K+96,0
4158 POKE K+97,0
4159 POKE K+98,0
4160 POKE K+99,0
4161 POKE K+100,0
4162 POKE K+101,0
4163 POKE K+102,0
4164 POKE K+103,0
4165 POKE K+104,0
4166 POKE K+105,0
4167 POKE K+106,0
4168 POKE K+107,0
4169 POKE K+108,0
4170 POKE K+109,0
4171 POKE K+110,0
4190 RETURN
4200 REM ***** ATTENTE ***********
4210 FOR G=1 TO 105
4220 SON=INT(RND(0)*57)
4230 SOUND 0,SON,14,4
4240 NEXT G
4250 SOUND 0,0,14,0
4260 RETURN
4270 FOR I=1 TO 6:SOUND 0,255,14,15:NEXT I:SOUND 0,0,0,0:RETURN
4280 FOR I=1 TO 6:SOUND 0,6,14,15:NEXT I :SOUND 0,0,0,0:RETURN
https://www.atarinside.com : Atari 800 XL - Référence Atari France/UK/Benelux/Allemagne - Photos HD de cartes mères 800XL - Atari 800 XL revue de presse.
Répondre

Retourner vers « Atari 8bits »