TEMPS: equ &4100 PJ_PX: equ &4201 PJ_PY: equ &4202 org &4000 ; ============ ; -- MODE 1 -- ; ============ LD a,0 CALL &BC0E ; =============== ; -- initation -- ; =============== LD B,0 LD C,0 CALL &BC38 LD A,0 LD B,0 LD C,0 CALL &BC32 LD A,1 LD B,10 LD C,10 CALL &BC32 ; -- initier la position du joueur -- LD A,5 LD (PJ_PX),A LD A,2 LD (PJ_PY),A ; ===================================== ; -- Modifier la position du curseur -- ; ===================================== ; -- Haut de la MAP LD H,1 LD L,1 PUSH HL CALL &BB75 LD HL,MAPA CALL DRAW_LIGNE ; -- milieu de map -- LD B,7 BOUCLE_MAP: LD A,B LD (TEMPS),A POP HL inc L PUSH HL CALL &BB75 LD HL,MAPB CALL DRAW_LIGNE LD A,(TEMPS) LD B,A djnz BOUCLE_MAP POP HL ; -- bas de la MAP LD H,1 LD L,9 CALL &BB75 LD HL,MAPA CALL DRAW_LIGNE; ; - Draw player - Call DRAW_PLAYER ; - end - LD H,1 LD L,10 CALL &BB75 ; ========================= ; -- Boucle du programme -- ; ========================= GAMES_LOOPS: ; -- Test touche FIN -- LD A,66 CALL &BB1E JP NZ,FIN ; -- Tester touche droite -- LD A,1 CALL &BB1E CALL NZ,DEP_DROITE ; ------- CALL &BB00 JP GAMES_LOOPS FIN: ; ===================== ; -- retour au basic -- ; ===================== ret ; --------------------- ; -- Afficher le sol -- ; --------------------- ERASE_PLAYER: LD A,(PJ_PX) LD H,A LD A,(PJ_PY) LD L,A CALL &BB75 ; -- Afficher le caractère -- LD A,207 CALL &BB5A RET ; ------------------------ ; -- Afficher le joueur -- ; ------------------------ DRAW_PLAYER: LD A,(PJ_PX) LD H,A LD A,(PJ_PY) LD L,A CALL &BB75 LD A,248 CALL &BB5A ret ; ------------------------- ; -- Déplacement droite -- ; ------------------------- DEP_DROITE: CALL ERASE_PLAYER LD A,(PJ_PX) inc A LD (PJ_PX),A JP DRAW_PLAYER RET ;------------ ; -------------------------------- ; -- Afficher une ligne de cara -- ; -------------------------------- DRAW_LIGNE: LD B,11 ; Taille d'une ligne BOUCLE: LD A,(HL) CALL &BB5A inc HL ; HL=HL+1 djnz BOUCLE ret ; ========== ; -- DATA -- ; ========== MAPA DB 143,143,143,143,143,143,143,143,143,143,143 MAPB DB 143,207,207,207,207,207,207,207,207,207,143