; Deeph - 2007 ; ; deeph@hotmail.fr ; http://www.yaronet.com/forum.php?s=493 .nolist #include "ion.inc" #define Var1 Saferam1 #define CoorX Saferam1+1 #define CoorY Saferam1+2 #define NPoint Saferam1+3 #define PosX Saferam1+4 #define PosY Saferam1+5 #define Tamp Saferam1+6 #define Temps Saferam1+7 ;Groupe1 : 0feh kDown .equ 254 kLeft .equ 253 kRight .equ 251 kUp .equ 247 ;Groupe2 : 0fdh kEnter .equ 254 kClear .equ 191 ;Groupe7 : 0bfh k2nd .equ 223 .list #ifdef TI83P .org ProgStart-2 .db $bb,$6d #else .org ProgStart #endif ret jr nc,Start .db "PacMog - Deeph",0 Start: call Deeph_Aff Menu: bcall(_clrLCDFull) bcall(_homeUp) ld hl,Textes+18 bcall(_puts) ld hl,(Score) bcall(_dispHl) getK2Cl: ld a,0fdh out (1),a in a,(1) cp kClear jp z,Fin ld a,0bfh out (1),a in a,(1) cp k2nd jr nz,getK2Cl bcall(_clrLCDFull) set textwrite, (iy+sgrflags) ld a,4 ld (Var1),a ld a,0 ld (NPoint),a ld a,48 ld (CoorX),a ld a,32 ld (CoorY),a ld a,0 ld (Tamp),a ld (Temps),a ld b,88 call ionRandom ld (PosX),a ld b,56 call ionRandom ld (PosY),a getKey: ld a,(Tamp) inc a cp 40 call z,IncTemps ld (Tamp),a call Aff ld a,0feh out (1),a in a,(1) bit 3,a push af call z,DecY pop af bit 0,a push af call z,IncY pop af bit 1,a push af call z,DecX pop af bit 2,a push af call z,IncX pop af ld a,(Temps) cp 60 jr z,CalcScore ld a,0fdh out (1),a in a,(1) cp kClear jp nz,getKey Fin: res textwrite, (iy+sgrflags) bcall(_grbufclr) bcall(_ClrScrnFull) ret CalcScore: bcall(_grbufclr) ld a,(NPoint) ld b,a ld a,(Score) sub b jp m,ScoreMax bcall(_clrLCDFull) bcall(_homeUp) ld hl,Textes+126 bcall(_puts) ld a,(NPoint) ld h,0 ld l,a bcall(_dispHl) call getK bcall(_grbufclr) jp Menu ScoreMax: ld a,(NPoint) ld (Score),a bcall(_clrLCDFull) bcall(_homeUp) ld hl,Textes+154 bcall(_puts) ld hl,(Score) bcall(_dispHl) call getK bcall(_grbufclr) jp Menu IncTemps: ld a,(Temps) inc a ld (Temps),a ld a,0 ld (Tamp),a ret DecY: ld a,(CoorY) cp 0 jp z,Ret dec a dec a ld (CoorY),a ld a,1 ld (Var1),a call Coll ret IncY: ld a,(CoorY) cp 48 jp z,Ret inc a inc a ld (CoorY),a ld a,4 ld (Var1),a call Coll ret DecX: ld a,(CoorX) cp 0 jp z,Ret dec a dec a ld (CoorX),a ld a,2 ld (Var1),a call Coll ret IncX: ld a,(CoorX) cp 80 jp z,Ret inc a inc a ld (CoorX),a ld a,3 ld (Var1),a call Coll ret Ret: ret Aff: bcall(_grbufclr) ld a,0 ld (penrow),a ld (pencol),a ld hl,Textes bcall(_vputs) ld a,(NPoint) ld h,0 ld l,a call vDispHL ld a,7 ld (penrow),a ld a,0 ld (pencol),a ld hl,Textes+9 bcall(_vputs) ld a,(Temps) ld h,0 ld l,a call vDispHL ld a,(Var1) cp 1 call z,Up cp 2 call z,Left cp 3 call z,Right cp 4 call z,Down ld a,(CoorY) ld l,a ld a,(CoorX) ld b,16 ld c,2 call ionLargeSprite ld a,(PosY) ld l,a ld a,(PosX) ld b,8 ld ix,PacGum call ionPutSprite call ionFastCopy ret Up: ld ix,Mog_up ret Down: ld ix,Mog_down ret Left: ld ix,Mog_left ret Right: ld ix,Mog_right ret Coll: ld a,(PosY) ld b,a ld a,(CoorY) push bc call inca12 pop bc sub b cp 16 call c,Coll2 ret Coll2: ld a,(PosX) ld b,a ld a,(CoorX) push bc call inca12 pop bc sub b cp 16 call c,Collision ret inca12: ld b,12 Boucle: inc a djnz Boucle ret Collision: ld a,(NPoint) inc a ld (NPoint),a ld b,88 call ionRandom ld (PosX),a ld b,56 call ionRandom ld (PosY),a ld a,(PosY) ld l,a ld a,(PosX) ld b,8 ld ix,PacGum call ionPutSprite ret vDispHL: push de push hl ld de,op1+5 xor a ld (de),a vdhlRepeat: bcall(_divhlby10) add a,'0' dec de ld (de),a ld a,h or l jr nz,vdhlRepeat ex de,hl bcall(_vputs) pop hl pop de ret #include "Deeph.z80" Textes: .db "Score : ",0 .db "Temps : ",0 .db " PacMog " .db "par Deeph (2007)" .db " " .db "2nd : Commencer " .db "Clear : Quitter " .db " " .db "Score Max :",0 .db "Perdu ! Tu as " .db "fait : ",0 .db "Bravo ! Tu as " .db "fait un nouveau " .db "Score : ",0 Score: .dw 0 Mog_down: .db %01110111,%11101110 .db %10001000,%00010001 .db %10100000,%00000101 .db %10001100,%00110001 .db %01001100,%00110010 .db %10000000,%00000001 .db %10000011,%11000001 .db %10001110,%01110001 .db %10011001,%10011001 .db %10110111,%11101101 .db %10110111,%11101101 .db %11011111,%11111011 .db %01011100,%00111010 .db %00100111,%11100100 .db %00011000,%00011000 .db %00000111,%11100000 Mog_up: .db %01110111,%11101110 .db %10001000,%00010001 .db %10000000,%00000001 .db %10000000,%00000001 .db %01000000,%00000010 .db %10000000,%00000001 .db %10000000,%00000001 .db %10000000,%00000001 .db %10000000,%00000001 .db %10000000,%00000001 .db %10000000,%00000001 .db %01000000,%00000010 .db %01000000,%00000010 .db %00100000,%00000100 .db %00011000,%00011000 .db %00000111,%11100000 Mog_left: .db %00000111,%11101110 .db %00011000,%00010001 .db %00100000,%00000101 .db %01000011,%00000001 .db %01000111,%00000010 .db %00100110,%00000001 .db %00010000,%00000001 .db %00001000,%00000001 .db %00000100,%00000001 .db %00001000,%00000001 .db %00010000,%00000001 .db %00100000,%00000010 .db %01000000,%00000010 .db %00100000,%00000100 .db %00011000,%00011000 .db %00000111,%11100000 Mog_right: .db %01110111,%11100000 .db %10001000,%00011000 .db %10100000,%00000100 .db %10000000,%11000010 .db %01000000,%11100010 .db %10000000,%01100100 .db %10000000,%00001000 .db %10000000,%00010000 .db %10000000,%00100000 .db %10000000,%00010000 .db %10000000,%00001000 .db %01000000,%00000100 .db %01000000,%00000010 .db %00100000,%00000100 .db %00011000,%00011000 .db %00000111,%11100000 PacGum: .db %00111100 .db %01100110 .db %11111011 .db %11111101 .db %11111101 .db %11111111 .db %01111110 .db %00111100 .end END