Nº127 (11/2000)
Download :
|
Si vous recevez ce mag avec du retard, la faute en est à Fabrice et à son jeu
diabolique. Annoncé dans le Courrier Oricien d'octobre et présenté dans la disquette
trimestrielle (format PC), Rush Hour est un jeu carrément addictif. Et allez donc farfouiller
dans le programme, vous apprendrez beaucoup de choses. Par contre, si vous trouvez des
coquilles dans ce CEO-MAG, alors là c'est de ma faute. Espérons que celui de novembre en
contiendra moins que celui d'Octobre. En espérant qu'il vous plaira quand même. A.
|
|
Dominique Pessan se déchaîne : La Saga des 8 Bits : Les micros Thomson Shoot Again : Scuba Dive & Invaders Aurélie et les Bonbons Musique Maestro Blue War Et vous navez pas encore tout vu ! Divertissements : Exprimez-vous sur «La Solution au prochain numéro». Proposez-nous des «solutions informatiques». Rapport sur la ltp4 ! Une occasion de sentir ce qui se passe dans les meetings branchés. La verve de Jérôme en plus !
|
|
|
|
|
|
sommaire
|
Adresses CEO / Sommaire / Editorial |
|
Page |
Courrier Oricien / Petites annonces |
|
Page |
La Libairie Oric (18) |
|
Page |
Divertissements Mathématiques et Logiques |
|
Page |
Aurélie et les Bonbons |
|
Page |
Coin Jasmin : Caractères Accentués |
|
Page |
Le Projet Y : BLUE War (3) |
|
Page |
Nostalgie... Nostalgie... |
|
Page |
La Saga des 8 bits (1) THOMSON |
|
Page |
Shoot Again (33) «Scuba Dive» & «Invaders» |
|
Page |
Musique Maestro ! (6) : La ROM V1.2g |
|
Page |
Réponses (9) Code Machine |
|
Page |
Abonnements, Anciens numéros, Anciennes disquettes |
|
Page |
|
Dans Shoot..Again n°14, nous avons transféré SCUBADIVE sur disquette, en oubliant de le doter de la possibilité d'être utilisé avec un Joystick. Aujourd'hui, réparons cet oubli ! Nous allons repartir de la version disquette pour réaliser cette adaptation.
Etat des lieux
La gestion du clavier est située dans le fichiers SCUBA2.COM (#500 - #351B). Elle est relativement rustique puisqu'il s'agit du test de la case mémoire $208, située en $1A88.
1A88 AD 08 02 LDA $0208 A contient le contenu de $208
1A8B C9 38 CMP #$38 si c'est 38, on a appuyé sur rien
1A8D F0 03 BEQ $1A92 on sort sans rien faire
1A8F 8D 20 14 STA $1420 sinon on met le code de la touche
1A92 60 RTS en $1420 avant de sortir.
1C30 20 93 1A JSR $1A93 A partir d'ici on teste la case $1420
1A93 A9 38 LDA #$38 Ici ,si $1420 contient autre chose
1A95 CD 20 14 CMP $1420 que 38 , on place ce contenu
1A98 F0 06 BEQ $1AA0 dans le registre X
1A9A AE 20 14 LDX $1420
1A9D 8D 20 14 STA $1420 et 38 dans A
1AA0 20 91 1C JSR $1C91
1C91 A9 01 LDA #$01
1C93 8D 19 14 STA $1419
1C96 60 RTS
1AA3 8A TXA le contenu initial de $1420 est dans A
1AA4 60 RTS retour de SP
1C33 C9 38 CMP #$38 Si A ne contient pas 38
1C35 D0 09 BNE $1C40 on va en $1C40 voir ce que c'est
1C37 A9 01 LDA #$01
1C39 8D 17 14 STA $1417
1C3C 20 0B 1C JSR $1C0B
1C3F 60 RTS
1C40 C9 BC CMP #$BC si c'est #BC, test " vers la droite "
1C42 F0 17 BEQ $1C5B
1C44 C9 AC CMP #$AC si c'est #$AC, test " vers la gauche "
1C46 F0 10 BEQ $1C58
1C48 C9 B4 CMP #$B4 si c'est #$B4, test " vers le bas "
1C4A F0 09 BEQ $1C55
1C4C C9 9C CMP #$9C si c'est #$9C, test " vers le haut "
1C4E F0 02 BEQ $1C52
1C50 D0 E5 BNE $1C37
1C52 EE 19 14 INC $1419
1C55 EE 19 14 INC $1419
1C58 EE 19 14 INC $1419
1C5B EE 19 14 INC $1419
Explications
Nous allons remplacer le LDA$208 en $1A88 par un JSR$351B, vers notre routine de gestion du JS
351B AD 01 03 LDA $0301
351E 48 PHA
351F AD 03 03 LDA $0303
3522 48 PHA
3523 98 TYA
3524 48 PHA
3525 A9 C0 LDA #$C0
3527 8D 03 03 STA $0303
352A A9 40 LDA #$40
352C 8D 01 03 STA $0301
352F AD 01 03 LDA $0301
3532 A8 TAY
3533 4A LSR
3534 29 0C AND #$0C
3536 8D 3E 35 STA $353E
3539 98 TYA
353A 29 03 AND #$03
353C 18 CLC
353D 69 04 ADC #$04
353F A8 TAY
3540 B9 5C 35 LDA $355C,Y ici la routine de gestion du JS renseigne
3543 8D 20 14 STA $1420 la case mémoire testée par la routine clavier
3546 68 PLA
3547 A8 TAY
3548 68 PLA
3549 8D 03 03 STA $0303
354C 68 PLA
354D 8D 01 03 STA $0301
3550 AD 20 14 LDA $1420 Si $1420 contient 38 c'est qu'on n'a
3553 C9 38 CMP #$38 pas touché au JS
3555 F0 01 BEQ $3558 on teste alors le clavier
3557 60 RTS sinon on sort sans tester le clavier
3558 AD 08 02 LDA $0208
355B 60 RTS
355C 38 38 38 38 38 38 38 9C
3564 38 38 38 B4 38 BC AC 38
La marche à suivre.
1- Entrez le listing suivant
10 A=#351B:F=#356C:L=100:REPEAT:FOR A=A TO A+15:READ C$
20 K=VAL("#"+C$):S=S+K+65536*(S+K>65535):IF A<=F THEN POKE A,K
30 NEXT:READ D$:IF S=VAL("#"+D$) THEN L=L+5:UNTIL A>F: END
40 PING:PRINT"Erreur ligne";L
100 DATA AD,01,03,48,AD,03,03,48,98,48,A9,C0,8D,03,03,A9,0579
105 DATA 40,8D,01,03,AD,01,03,A8,4A,29,0C,8D,3E,35,98,29,09E3
110 DATA 03,18,69,04,A8,B9,5C,35,8D,20,14,68,A8,68,8D,03,0F26
115 DATA 03,68,8D,01,03,AD,20,14,C9,38,F0,01,60,AD,08,02,140C
120 DATA 60,38,38,38,38,38,38,38,9C,38,38,38,B4,38,BC,AC,198C
125 DATA 38,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,19C4
2 - RUN
3 - SCUBA2,N
4 - POKE #1B88,#20 : DOKE#1B89,#351B
5 - SAVEU "SCUBA2",A#500,E#356C,T#3501
Comme vous êtes attentifs, vous avez sûrement remarqué qu'au point 4, les POKE donnent :
1B88 20 1B 35 JSR $351B alors que plus haut dans le texte, on dit que le détournement se fait en $1A88. L'explication est simple, si vous relisez shoot-again n°14, vous verrez qu'en $3501 se trouve un appel à la routine MOVE, qui décale d'une page vers le haut tout le code compris entre $500 et$3500. Voilà comment notre $1B88 se transformera en $1A88.
C'est tout pour aujourd'hui, Ã bientôt !
Additif à Shoot...Again n° 7
Shoot Again n°7, c'était INVADERS. Là encore, la possibilité de jouer au clavier avait été supprimée. Les indications ci-dessous vont nous permettre de redresser la situation , elles s'appliquent sur la version du jeu déjà modifiée.
Pour comprendre.
A la suite de la routine de gestion du JS initiale on rajoute les quelques instructions suivantes.
3347 4C 71 33 JMP $3371 remplace LDA$335F dans la routine Js d'origine
3371 AD 5F 33 LDA $335F détection tir avec JS
3374 C9 F7 CMP #$F7
3376 F0 03 BEQ $337B si tir, on sort
3378 AD 01 03 LDA $0301 si pas tir, test clavier
337B 60 RTS
337C AD 5E 33 LDA $335E test si action JS
337F D0 03 BNE $3384 si pas 0, on a touché le JS
3381 AD 01 03 LDA $0301 si 0, on teste le clavier
3384 60 RTS retour SP
Le code du jeu lui même est modifié comme suit :
2E52 : 20 7C 33 JSR$337C
2E76 : 20 7C 33 JSR$337C
La marche à suivre.
1- Entrez le listing suivant
10 A=#3371:F=#3384:L=100:REPEAT:FOR A=A TO A+15:READ C$
20 K=VAL("#"+C$):S=S+K+65536*(S+K>65535):IF A<=F THEN POKE A,K
30 NEXT:READ D$:IF S=VAL("#"+D$) THEN L=L+5:UNTIL A>F:END
40 PING:PRINT"Erreur ligne";L
100 DATA AD,5F,33,C9,F7,F0,03,AD,01,03,60,AD,5E,33,D0,03,0714
105 DATA AD,01,03,60,00,00,00,00,00,00,00,00,00,00,00,00,0825
2- RUN
3- INVADERS,N
4- POKE#2E52,#20 :DOKE#2E53,#337C
5- POKE#2E76,#20 :DOKE#3E77,#337C
6- POKE#3347,#4C :DOKE#3348,#3371
7- DOKE#9C,#3384
8- SAVEU " INVADERS ",AUTO
|
|
|
|
|
BROWSE
NUMEROS
[128] - [127] - [126] - [125] - [123] - [122] - [121] - [119] - [118] - [117] - [116]
YEAR
2013 - 2012 - 2011 - 2010 - 2009 - 2008 - 2007 - 2006 - 2005 - 2004 - 2003 - 2002 - 2001 - 2000 - 1999 - 1998 - 1997 - 1996 - 1995 - 1994 - 1993 - 1992 - 1991 - 1990
|