Routines |
Prev: 925F | Up: Map | Next: 92BA |
Used by the routine at 923A.
|
||||
927F | LD A,($8068) | Pick up Willy's y-coordinate from 8068 | ||
9282 | LD IXh,$83 | Point IX at the entry in the screen buffer address lookup table at 8300 that corresponds to Willy's y-coordinate | ||
9285 | LD IXl,A | |||
9287 | LD A,($806A) | Pick up Willy's direction and movement flags from 806A | ||
928A | AND $01 | Now E=0x00 if Willy is facing right, or 0x80 if he's facing left | ||
928C | RRCA | |||
928D | LD E,A | |||
928E | LD A,($8069) | Pick up Willy's animation frame (0-3) from 8069 | ||
9291 | AND $03 | Point DE at the sprite graphic data for Willy's current animation frame (see 8200) | ||
9293 | RRCA | |||
9294 | RRCA | |||
9295 | RRCA | |||
9296 | OR E | |||
9297 | LD E,A | |||
9298 | LD D,$82 | |||
929A | LD B,$10 | There are 16 rows of pixels to copy | ||
929C | LD A,($806C) | Pick up Willy's screen x-coordinate (0-31) from 806C | ||
929F | AND $1F | |||
92A1 | LD C,A | Copy it to C | ||
92A2 | LD A,(IX+$00) | Set HL to the address in the screen buffer at 6000 that corresponds to where we are going to draw the next pixel row of the sprite graphic | ||
92A5 | LD H,(IX+$01) | |||
92A8 | OR C | |||
92A9 | LD L,A | |||
92AA | LD A,(DE) | Pick up a sprite graphic byte | ||
92AB | OR (HL) | Merge it with the background | ||
92AC | LD (HL),A | Save the resultant byte to the screen buffer | ||
92AD | INC HL | Move HL along to the next cell to the right | ||
92AE | INC DE | Point DE at the next sprite graphic byte | ||
92AF | LD A,(DE) | Pick it up in A | ||
92B0 | OR (HL) | Merge it with the background | ||
92B1 | LD (HL),A | Save the resultant byte to the screen buffer | ||
92B2 | INC IX | Point IX at the next entry in the screen buffer address lookup table at 8300 | ||
92B4 | INC IX | |||
92B6 | INC DE | Point DE at the next sprite graphic byte | ||
92B7 | DJNZ $92A2 | Jump back until all 16 rows of pixels have been drawn | ||
92B9 | RET |
Prev: 925F | Up: Map | Next: 92BA |