A titre d'information voici la description de quelques variables :
l1 (valeur de départ 3) nombre de vie du defence craft (vaisseau en forme de Y à l'envers)
h1 position horizontale du defence craft, valeur minimale 1, valeur maximale 20
l2 (valeur de départ 3) nombre de vie du repair craft (vaisseau ressemblant à un sous-marin)
h2 position horizontale du repair craft, valeur minimale 1, valeur maximale 20
en (valeur de départ 99) quantité d'énergie du laser
Si l1 ou l2 ou en est à 0 la partie est finie.
sc pour le score
skl pour skill level, valeur de départ 1, valeur maximum 10
spl pour speed level
ki nombre d'ennemi tué. Si ki=25 Alors ki=0, skl=skl+1, spl=spl-1, l1=3, l2=3, en=10
k1 code touche gauche du defence craft
k2 code touche droite du defence craft
k3 code touche tir du defence craft
k4 code touche gauche du repair craft
k5 code touche droite du repair craft
k6 code touche réparation du repair craft
k7 code touche du laser
Ligne 80 :
GETS CHAR - 19999 = 4e1f
4E20: DD 6E 00 LD L,(IX+#00)
4E23: DD 66 01 LD H,(IX+#01)
4E26: E5 PUSH HL
4E27: CD 60 BB CALL #BB60 ; Lit un caractere a la position courante du curseur texte
; l'accumulateur-contient le code ASCII de ce caractere
4E2A: E1 POP HL
4E2B: 77 LD (HL),A
4E2C: C9 RET
Ligne 100:
GETS KEY NO
7500: DD 6E 00 LD L,(IX+#00)
7503: DD 66 00 LD H,(IX+#01)
7506: E5 PUSH HL
7507: 3E 00 LD A,#00
7509: F5 PUSH AF
750A: CD 1E BB CALL #BB1E ; Teste si une touche est pressee. (permet aussi de tester le joystick)
; CE: A contient le numéro de la touche qui doit etre testee.
; CS: Si la touche n’est pas pressee C=1, si elle l’est C=0, A et HL sont modifies.
; C contient l’etat des touches SHIFT et CONTROL.
750D: 20 08 JR NZ,#7517
750F: F1 POP AF
7510: 3C INC A
7511: FE 50 CP #50
7513: 20 F4 JR NZ,#7509
7515: 18 F0 JR #7507
7517: F1 POP AF
7518: E1 POP HL
7519: 77 LD (HL),A
751A: C9 RET
Ligne 120 :
ALLOPHONE - SPEECH CONVERTOR
7000: 01 FE FB LD BC,#FBFE
7003: DD 7E 00 LD A,(IX+#00)
7006: FE FF CP #FF
7008: 28 14 JR Z,#701E
700A: ED 79 OUT (C),A
700C: DD 23 INC IX
700E: DD 23 INC IX
7010: F5 PUSH AF
7011: 3E 00 LD A,#00
7013: 76 HALT
7014: 3C INC A
7015: FE 20 CP #20
7017: 28 02 JR Z,#701B
7019: 18 F8 JR #7013
701B: F1 POP AF
701C: 18 E5 JR #7003
701E: 3E 00 LD A,#00
7020: ED 79 OUT (C),A
7022: C9 RET
Ligne 150 :
SET PEN 15 TO ALTERNATING COLOUR
5000: 21 3A 50 LD HL,#503A
5003: 06 81 LD B,#81
5005: 11 1D 50 LD DE,#501D
5008: CD EF BC CALL #BCEF ; Initialise un bloc d'evenement de maniere a ce qu'il soit gerable par les deux vecteurs precedents
; CA: HL contient l'adresse du bloc d'evenement;
; B contient la classe de l'evenement;
; C contient l'adresse de selection de la Rom;
; DE contient l'adresse de la routine;
; CF: AF et DE sont modifies et HL contient l'adresse du bloc d'evenement augmentee de 7 octets.
500B: 21 34 50 LD HL,#5034
500E: 11 34 00 LD DE,#0034
5011: 01 34 00 LD BC,#0034
5014: C3 E9 BC JP #BCE9
5017: 21 34 50 LD HL,#5034
501A: C3 E9 BC JP #BCE9
501D: 3A 33 50 LD A,(#5033)
5020: 3C INC A
5021: FE 1A CP #1A
5023: C2 28 50 JP NZ,#5028
5026: 3E 01 LD A,#01
5028: 32 33 50 LD (#5033),A
502B: 47 LD B,A
502C: 4F LD C,A
502D: 3E 0F LD A,#0F
502F: CD 32 BC CALL #BC32 ; Installe une encre (INK)
; CA : A contient le numero de l'encre ;
; B est la premiere couleur ;
; C est la seconde couleur ;
; CF : les registres AF, BC, DE et HL sont modifies.
5032: C9 RET
5033: 01 ??
5034: 00 NOP
5035: 00 NOP
5036: 00 NOP
5037: 00 NOP
5038: 00 NOP
5039: 00 NOP
5040: 00 NOP
5041: 00 NOP
5042: 00 NOP
5043: 00 NOP
5044: 00 NOP
5045: 00 NOP
5046: 00 NOP