![]() |
Routines |
Prev: 925F | Up: Map |
Used by the routine at 923A.
|
||||||||
927F | LD A,($8068) | Pick up Willy's pixel 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 |