Routines |
Prev: 6F8E | Up: Map | Next: 6FE2 |
|
||||||||
6F99 | LD L,$62 | Byte 0x62 of the puncher's buffer holds his x-coordinate | ||||||
6F9B | LD A,(HL) | Pick this up in A | ||||||
6F9C | DEC L | L=0x61 | ||||||
6F9D | LD D,(HL) | Pick up the puncher's y-coordinate in D | ||||||
6F9E | DEC L | L=0x60 | ||||||
6F9F | LD C,(HL) | Pick up the puncher's animatory state in C | ||||||
6FA0 | SUB $02 | A=x-coordinate of the location two spaces in front of the puncher | ||||||
6FA2 | BIT 7,(HL) | |||||||
6FA4 | JR Z,$6FA8 | |||||||
6FA6 | ADD A,$04 | |||||||
6FA8 | LD E,A | Store the potential victim's x-coordinate in E | ||||||
6FA9 | LD A,($7FFB) | Collect ERIC's status flags from 7FFB | ||||||
6FAC | AND A | Is ERIC doing the punching? | ||||||
6FAD | JR NZ,$6FBE | Jump if so | ||||||
6FAF | LD H,$AC | 0xAC=ERIC | ||||||
6FB1 | CALL $6F00 | Was ERIC punched? | ||||||
6FB4 | JR NC,$6FBE | Jump if not | ||||||
6FB6 | LD DE,$7FFB | 7FFB holds ERIC's status flags | ||||||
6FB9 | EX DE,HL | |||||||
6FBA | SET 4,(HL) | Signal: ERIC was hit | ||||||
6FBC | EX DE,HL | |||||||
6FBD | RET | |||||||
Now we check whether anyone was punched. We start with the three main kids.
|
||||||||
6FBE | LD B,$03 | There are three main kids | ||||||
6FC0 | LD H,$A9 | 0xA9=EINSTEIN | ||||||
6FC2 | CALL $6F00 | Was this main kid punched? | ||||||
6FC5 | JR NC,$6FD2 | Jump if not | ||||||
6FC7 | LD L,$6F | Place the address of the uninterruptible subcommand routine at 6A46 into bytes 0x6F and 0x70 of the victim's character buffer | ||||||
6FC9 | LD (HL),$46 | |||||||
6FCB | INC L | |||||||
6FCC | LD (HL),$6A | |||||||
6FCE | INC L | Initialise the parameter determining how long the character will stay down (in byte 0x71) | ||||||
6FCF | LD (HL),$14 | |||||||
6FD1 | RET | |||||||
6FD2 | DEC H | Next main kid | ||||||
6FD3 | DJNZ $6FC2 | Jump back until three main kids have been considered | ||||||
None of the main kids was hit. What about the little boys?
|
||||||||
6FD5 | LD H,$98 | 0x98=character number of little boy no. 1 | ||||||
6FD7 | LD B,$0B | There are 11 little boys | ||||||
6FD9 | CALL $6F00 | Was this little boy hit? | ||||||
6FDC | JR C,$6FC7 | Knock him over if so | ||||||
6FDE | INC H | Next little boy | ||||||
6FDF | DJNZ $6FD9 | Jump back until all 11 little boys have been considered | ||||||
6FE1 | RET |
Prev: 6F8E | Up: Map | Next: 6FE2 |