Code : Tout sélectionner
10 ORG 0100H
20GRAPH EQU 093CBH
30PRINT EQU 0BFF1H
40 JR START
50SC: DB 0,0,0,0
60X: DB 0
70Y: DB 0
80OX: DB 0
90OY: DB 0
100RX: DB 0
110RY: DB 0
120PROV:DB 0,0
130TXT1:DB 'SCORE:'
140START:CALL CLS
150 LD B,6
160 LD DE,0000H
170 LD HL,TXT1
180 CALL PRINT
190 LD HL,59
200 LD DE,0
210 LD IX,135
220 LD IY,30
230 LD A,1
240 LD B,1
250 CALL LINE
260 LD HL,60
270 LD DE,0
280 LD IX,134
290 LD IY,3
300 LD A,1
310 LD B,2
320 CALL LINE
330 LD HL,60
340 LD DE,6
350 LD IX,134
360 LD IY,9
370 LD A,1
380 LD B,2
390 CALL LINE
400 LD A,0
410 LD (SC),A
420 LD A,48
430 LD (SC+1),A
440 LD (SC+2),A
450 LD (SC+3),A
460 LD A,99
470 LD (X),A
480 LD (OX),A
490 LD A,10
500 LD (Y),A
510 LD (OY),A
520 LD A,-3
530 LD (RX),A
540 LD A,2
550 LD (RY),A
560REP: LD A,(RY)
570 LD B,A
580 LD A,(Y)
590 ADD A,B
600 LD (Y),A
610 LD A,(RX)
620 LD B,A
630 LD A,(X)
640 ADD A,B
650 LD (X),A
660 CP 60
670 JR C,OK1
680 CP 133
690 JR C,SU1
700OK1: LD A,(RX)
710 NEG
720 LD (RX),A
730 ADD A,A
740 LD B,A
750 LD A,(X)
760 ADD A,B
770 LD (X),A
780SU1: LD A,(Y)
790 CP 30
800 JR NC,OK2
810 CP -2
820 JR NZ,SU2
830OK2: LD A,(RY)
840 NEG
850 LD (RY),A
860 LD B,A
870 LD A,(OY)
880 ADD A,B
890 LD (Y),A
900SU2: LD A,(X)
910 LD E,A
920 LD A,(Y)
930 LD D,A
940 CALL POI
950 CP 1
960 JR NZ,SU3
970 LD A,(SC)
980 ADD A,5
990 LD (SC),A
1000 CALL SCOR
1010 LD B,3
1020 LD DE,0006H
1030 LD HL,SC+1
1040 CALL PRINT
1050 LD A,(X)
1060 LD H,0
1070 LD L,A
1080 ADD A,2
1090 LD (PROV),A
1100 LD IX,(PROV)
1110 LD A,(Y)
1120 LD D,0
1130 LD E,A
1140 ADD A,1
1150 LD (PROV),A
1160 LD IY,(PROV)
1170 LD A,0
1180 LD B,1
1190 CALL LINE
1200 LD A,(RY)
1210 LD B,A
1220 LD A,(Y)
1230 SUB B
1240 LD (Y),A
1250 LD A,(RY)
1260 NEG
1270 LD (RY),A
1280SU3:LD A,(X)
1290 LD H,0
1300 LD L,A
1310 ADD A,2
1320 LD (PROV),A
1330 LD IX,(PROV)
1340 LD A,(Y)
1350 LD D,0
1360 LD E,A
1370 ADD A,1
1380 LD (PROV),A
1390 LD IY,(PROV)
1400 LD A,1
1410 LD B,1
1420 CALL LINE
1430 LD A,(OX)
1440 LD H,0
1450 LD L,A
1460 ADD A,2
1470 LD (PROV),A
1480 LD IX,(PROV)
1490 LD A,(OY)
1500 LD D,0
1510 LD E,A
1520 ADD A,1
1530 LD (PROV),A
1540 LD IY,(PROV)
1550 LD A,0
1560 LD B,1
1570 CALL LINE
1580 LD A,(X)
1590 LD (OX),A
1600 LD A,(Y)
1610 LD (OY),A
1620 LD A,(SC)
1630 CP 205
1640 JP C,REP
1650 RET
1660CLS: LD A,020H
1670 LD B,144
1680 LD DE,0
1690 CALL 0BFEEH
1700 RET
1710POI: LD H,0
1720 LD L,E
1730 LD E,D
1740 LD D,0
1750 CALL PNT
1760 AND C
1770 RET Z
1780 LD A,1
1790 RET
1800PNT: CALL GRAPH
1810 DB 0EH
1820 DW 0CA08H
1830PSET:LD H,0
1840 LD L,E
1850 LD E,D
1860 LD D,0
1870 LD (7967H),HL
1880 LD (7969H),DE
1890 LD IX,0FFFFH
1900 LD (777DH),IX
1910 LD (777FH),A
1920 CALL GRAPH
1930 DB 0DH
1940 DW 0C595H
1950 RET
1960LINE:LD (7967H),IX
1970 LD (7969H),IY
1980 LD IX,0FFFFH
1990 LD (777DH),IX
2000 LD (777FH),A
2010 LD A,B
2020 CP 1
2030 JR C,LIN
2040 JR Z,BOX
2050FBOX:CALL GRAPH
2060 DB 0DH
2070 DW 0C4CBH
2080 RET
2090LIN: CALL GRAPH
2100 DB 0DH
2110 DW 0C595H
2120 RET
2130BOX: CALL GRAPH
2140 DB 0DH
2150 DW 0C442H
2160 RET
2170SCOR:LD A,(SC+3)
2180 CP 48
2190 JR Z,SCO1
2200 LD A,(SC+2)
2210 CP 57
2220 JR Z,SCO2
2230 INC A
2240 LD (SC+2),A
2250 LD A,48
2260 LD (SC+3),A
2270 RET
2280SCO1:LD A,53
2290 LD (SC+3),A
2300 RET
2310SCO2:LD A,48
2320 LD (SC+2),A
2330 LD (SC+3),A
2340 LD A,(SC+1)
2350 INC A
2360 LD (SC+1),A
2370 RET