Advertisement
NovaYoshi

"Move X" z80 program

Jul 25th, 2011
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. org usermem-2
  2. db $bb,$6d
  3.  
  4. PLX equ appdata     ; Player X position
  5. PLY equ appdata+1   ; Player Y position
  6.                     ;
  7. Start:              ;
  8.   BCALL ClrLCDFull  ;
  9.   LD HL,0           ; Set the player to be in the upper left corner
  10.   LD (PLX),HL       ;
  11. Loop:               ;
  12.   BCALL GetKey      ; Read a key
  13.   PUSH AF           ; Save it
  14.  
  15.   LD A,(PLX)        ; Here we put a space where the player was
  16.   LD (CurCol),A     ;
  17.   LD A,(PLY)        ;
  18.   LD (CurRow),A     ;
  19.   LD A,$20          ; $20 = space
  20.   BCALL PutMap      ; Prints A at CurCol,CurRow
  21.  
  22.   POP AF            ; Get the key we stored
  23.   LD DE,(PLX)       ; Load PLX into E and PLY into D
  24.   CP kClear         ;
  25.   RET Z             ; Exit if Clear was pressed
  26.  
  27.   CP kUp            ;
  28.   JR NZ,NotUp       ;
  29.     DEC D           ;
  30. NotUp:              ;
  31.  
  32.   CP kDown          ;
  33.   JR NZ,NotDown     ;
  34.     INC D           ;
  35. NotDown:            ;
  36.  
  37.   CP kLeft          ;
  38.   JR NZ,NotLeft     ;
  39.     DEC E           ;
  40. NotLeft:            ;
  41.  
  42.   CP kRight         ;
  43.   JR NZ,NotRight    ;
  44.     INC E           ;
  45. NotRight:           ;
  46.  
  47.   LD A,E            ; Keep X position between 0 and 15
  48.   AND 15            ;
  49.   LD E,A            ;
  50.  
  51.   LD A,D            ; Keep Y position between 0 and 7
  52.   AND 7             ;
  53.   LD D,A            ;
  54.  
  55.   LD (PLX),DE       ; Save E into PLX and D into PLY
  56.  
  57.   LD A,(PLX)        ; Put an X where the player now is
  58.   LD (CurCol),A     ;
  59.   LD A,(PLY)        ;
  60.   LD (CurRow),A     ;
  61.   LD A,'X'          ;
  62.   BCALL PUTMAP      ;
  63.  
  64.   JP Loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement