Routines |
Prev: EA9C | Up: Map | Next: EC8A |
|
||||||||||||||||||||
EAF6 | CALL Controls | Call Controls. | ||||||||||||||||||
EAF9 | CP $08 | Jump to EB2F if A is not equal to 08. | ||||||||||||||||||
EAFB | JP NZ,$EB2F | |||||||||||||||||||
EAFE | LD A,($D244) | Jump to EB2F if *JumpTable_Pointer is equal to 1C. | ||||||||||||||||||
EB01 | CP $1C | |||||||||||||||||||
EB03 | JP Z,$EB2F | |||||||||||||||||||
EB06 | LD A,($D24E) | Jump to EB2F if *Active_MonsterYPosition is higher than 11. | ||||||||||||||||||
EB09 | CP $11 | |||||||||||||||||||
EB0B | JR NC,$EB2F | |||||||||||||||||||
EB0D | LD A,($D24D) | Jump to EB18 if *Active_MonsterXPosition is equal to FF. | ||||||||||||||||||
EB10 | CP $FF | |||||||||||||||||||
EB12 | JR Z,$EB18 | |||||||||||||||||||
EB14 | CP $1D | Jump to EB2F if *Active_MonsterXPosition is higher than 1D. | ||||||||||||||||||
EB16 | JR NC,$EB2F | |||||||||||||||||||
EB18 | LD HL,$D247 | HL=Flag_Orientation. | ||||||||||||||||||
EB1B | LD A,(HL) | A=*HL. | ||||||||||||||||||
EB1C | XOR %00000001 | Flip bit 0. | ||||||||||||||||||
EB1E | INC HL | Increment HL by one. | ||||||||||||||||||
EB1F | AND (HL) | Merge the bits from *HL. | ||||||||||||||||||
EB20 | CALL NZ,Handler_DecreaseMonsterXPosition | Call Handler_DecreaseMonsterXPosition not zero. | ||||||||||||||||||
EB23 | LD A,($D246) | A=*Flag_MonsterClimbing. | ||||||||||||||||||
EB26 | RRCA | Rotate A right one position, setting the carry flag if bit 0 was set. | ||||||||||||||||||
EB27 | CALL C,Handler_IncrementMonsterYPosition | Call Handler_IncrementMonsterYPosition if the carry flag is set. | ||||||||||||||||||
EB2A | LD A,$08 | A=08. | ||||||||||||||||||
EB2C | JP Controls_Up | Jump to Controls_Up. | ||||||||||||||||||
This entry point is used by the routine at Handler_Controls.
|
||||||||||||||||||||
EB2F | LD A,($D246) | A=*Flag_MonsterClimbing. | ||||||||||||||||||
EB32 | RRCA | Rotate A right one position, setting the carry flag if bit 0 was set. | ||||||||||||||||||
EB33 | JR NC,$EB43 | Jump to EB43 if the carry flag is not set. | ||||||||||||||||||
EB35 | LD HL,$C896 | HL=C896. | ||||||||||||||||||
EB38 | LD A,($D247) | A=*Flag_Orientation. | ||||||||||||||||||
Moves the orientation flag into the carry flag.
|
||||||||||||||||||||
EB3B | RRCA | Rotate A right one position, setting the carry flag if bit 0 was set. | ||||||||||||||||||
EB3C | JR NC,$EB4F | Jump to EB4F if the carry flag is not set. | ||||||||||||||||||
EB3E | LD HL,$C8A9 | HL=C8A9. | ||||||||||||||||||
EB41 | JR $EB4F | Jump to EB4F. | ||||||||||||||||||
EB43 | LD HL,$C86E | HL=C86E. | ||||||||||||||||||
EB46 | LD A,($D247) | A=*Flag_Orientation. | ||||||||||||||||||
Moves the orientation flag into the carry flag.
|
||||||||||||||||||||
EB49 | RRCA | Rotate A right one position, setting the carry flag if bit 0 was set. | ||||||||||||||||||
EB4A | JR NC,$EB4F | Jump to EB4F if the carry flag is not set. | ||||||||||||||||||
EB4C | LD HL,$C882 | HL=C882. | ||||||||||||||||||
EB4F | LD BC,($D24D) | BC=*Active_MonsterXPosition/Active_MonsterYPosition. | ||||||||||||||||||
EB53 | LD A,($D24C) | Increment *D24C by one. | ||||||||||||||||||
EB56 | INC A | |||||||||||||||||||
EB57 | LD ($D24C),A | |||||||||||||||||||
This entry point is used by the routine at Handler_Projectiles.
|
||||||||||||||||||||
EB5A | LD D,$00 | D=00. | ||||||||||||||||||
EB5C | LD E,A | E=A. | ||||||||||||||||||
EB5D | ADD HL,DE | HL+=DE. | ||||||||||||||||||
EB5E | LD ($D21E),HL | Write HL to *D21E. | ||||||||||||||||||
EB61 | LD D,(HL) | D=*HL. | ||||||||||||||||||
EB62 | BIT 5,D | Jump to EB67 if bit 5 of D is not set. | ||||||||||||||||||
EB64 | JR Z,$EB67 | |||||||||||||||||||
EB66 | INC C | Increment C by one. | ||||||||||||||||||
EB67 | BIT 0,D | Jump to EB6C if bit 0 of D is not set. | ||||||||||||||||||
EB69 | JR Z,$EB6C | |||||||||||||||||||
EB6B | INC C | Increment C by one. | ||||||||||||||||||
EB6C | BIT 1,D | Jump to EB71 if bit 1 of D is not set. | ||||||||||||||||||
EB6E | JR Z,$EB71 | |||||||||||||||||||
EB70 | DEC C | Decrease C by one. | ||||||||||||||||||
EB71 | LD A,($D3FF) | Jump to EB88 if *D3FF is not zero. | ||||||||||||||||||
EB74 | AND A | |||||||||||||||||||
EB75 | JR NZ,$EB88 | |||||||||||||||||||
EB77 | LD A,($D247) | A=*Flag_Orientation. | ||||||||||||||||||
EB7A | XOR %00011111 | Flip bits 0-4. | ||||||||||||||||||
EB7C | CP C | Jump to EC6E if A is equal to C. | ||||||||||||||||||
EB7D | JP Z,$EC6E | |||||||||||||||||||
EB80 | XOR %00011110 | Flip bits 1-4. | ||||||||||||||||||
EB82 | ADD A,$FC | A+=FC. | ||||||||||||||||||
EB84 | CP C | Jump to EC6E if A is equal to C. | ||||||||||||||||||
EB85 | JP Z,$EC6E | |||||||||||||||||||
EB88 | BIT 2,D | Jump to EB8D if bit 2 of D is not set. | ||||||||||||||||||
EB8A | JR Z,$EB8D | |||||||||||||||||||
EB8C | DEC B | Decrease B by one. | ||||||||||||||||||
EB8D | LD A,D | A=D. | ||||||||||||||||||
EB8E | EX AF,AF' | Exchange the AF register with the shadow AF register. | ||||||||||||||||||
EB8F | BIT 3,D | Jump to EBDD if bit 3 of D is not set. | ||||||||||||||||||
EB91 | JR Z,$EBDD | |||||||||||||||||||
EB93 | INC B | Increment B by one. | ||||||||||||||||||
EB94 | LD A,($D3FF) | Jump to EBDD if *D3FF is not zero. | ||||||||||||||||||
EB97 | AND A | |||||||||||||||||||
EB98 | JR NZ,$EBDD | |||||||||||||||||||
EB9A | LD A,$12 | Jump to EC52 if B is equal to 12. | ||||||||||||||||||
EB9C | CP B | |||||||||||||||||||
EB9D | JP Z,$EC52 | |||||||||||||||||||
EBA0 | LD A,B | Write B to *Active_MonsterYPosition. | ||||||||||||||||||
EBA1 | LD ($D24E),A | |||||||||||||||||||
EBA4 | LD ($D21C),BC | Write BC to *D21C. | ||||||||||||||||||
EBA8 | LD BC,$0502 | BC=0502. | ||||||||||||||||||
EBAB | LD DE,$090F | DE=090F. | ||||||||||||||||||
EBAE | CALL $E0AD | Call E0AD. | ||||||||||||||||||
EBB1 | LD BC,($D21C) | BC=*D21C. | ||||||||||||||||||
EBB5 | JR Z,$EBDD | Jump to EBDD if {} is zero. | ||||||||||||||||||
EBB7 | LD A,($D244) | Jump to EBDD if *JumpTable_Pointer is equal to 1C. | ||||||||||||||||||
EBBA | CP $1C | |||||||||||||||||||
EBBC | JR Z,$EBDD | |||||||||||||||||||
EBBE | LD A,($D246) | A=*Flag_MonsterClimbing. | ||||||||||||||||||
EBC1 | RRCA | Rotate A right one position, setting the carry flag if bit 0 was set. | ||||||||||||||||||
EBC2 | JP NC,$EC52 | Jump to EC52 if the carry flag is not set. | ||||||||||||||||||
EBC5 | LD ($D21C),BC | Write BC to *D21C. | ||||||||||||||||||
EBC9 | LD B,$05 | B=05. | ||||||||||||||||||
EBCB | LD A,($D247) | C=*Flag_Orientation*04. | ||||||||||||||||||
EBCE | ADD A,A | |||||||||||||||||||
EBCF | ADD A,A | |||||||||||||||||||
EBD0 | LD C,A | |||||||||||||||||||
EBD1 | LD DE,$090F | DE=090F. | ||||||||||||||||||
EBD4 | CALL $E0AD | Call E0AD. | ||||||||||||||||||
EBD7 | LD BC,($D21C) | BC=*D21C. | ||||||||||||||||||
EBDB | JR NZ,$EC52 | Jump to EC52 if {} is not zero. | ||||||||||||||||||
EBDD | LD A,($D3FF) | Return if *D3FF is not zero. | ||||||||||||||||||
EBE0 | AND A | |||||||||||||||||||
EBE1 | RET NZ | |||||||||||||||||||
EBE2 | EX AF,AF' | Exchange the AF register with the shadow AF register. | ||||||||||||||||||
EBE3 | BIT 4,A | Jump to EC30 if bit 4 of A is not set. | ||||||||||||||||||
EBE5 | JR Z,$EC30 | |||||||||||||||||||
EBE7 | INC B | Increment B by one. | ||||||||||||||||||
EBE8 | LD A,($D3FF) | Return if *D3FF is not zero. | ||||||||||||||||||
EBEB | AND A | |||||||||||||||||||
EBEC | RET NZ | |||||||||||||||||||
EBED | LD A,$12 | Jump to EC52 if B is not equal to 12. | ||||||||||||||||||
EBEF | CP B | |||||||||||||||||||
EBF0 | JR Z,$EC52 | |||||||||||||||||||
EBF2 | LD A,B | A=B. | ||||||||||||||||||
EBF3 | LD ($D24E),A | Write A to *Active_MonsterYPosition. | ||||||||||||||||||
EBF6 | LD ($D21C),BC | Write BC to *D21C. | ||||||||||||||||||
EBFA | LD BC,$0502 | BC=0502. | ||||||||||||||||||
EBFD | LD DE,$090F | DE=090F. | ||||||||||||||||||
EC00 | CALL $E0AD | Call E0AD. | ||||||||||||||||||
EC03 | LD BC,($D21C) | BC=*D21C. | ||||||||||||||||||
EC07 | JP Z,$EC30 | Jump to EC30 if {} is zero. | ||||||||||||||||||
EC0A | LD A,($D244) | Jump to EC30 if *JumpTable_Pointer is equal to 1C. | ||||||||||||||||||
EC0D | CP $1C | |||||||||||||||||||
EC0F | JP Z,$EC30 | |||||||||||||||||||
EC12 | LD A,($D246) | A=*Flag_MonsterClimbing. | ||||||||||||||||||
EC15 | RRCA | Rotate A right one position, setting the carry flag if bit 0 was set. | ||||||||||||||||||
EC16 | JR NC,$EC52 | Jump to EC52 if the carry flag is not set. | ||||||||||||||||||
EC18 | LD ($D21C),BC | Write BC to *D21C. | ||||||||||||||||||
EC1C | LD B,$05 | B=05. | ||||||||||||||||||
EC1E | LD A,($D247) | C=*Flag_Orientation*04. | ||||||||||||||||||
EC21 | ADD A,A | |||||||||||||||||||
EC22 | ADD A,A | |||||||||||||||||||
EC23 | LD C,A | |||||||||||||||||||
EC24 | LD DE,$090F | DE=090F. | ||||||||||||||||||
EC27 | CALL $E0AD | Call E0AD. | ||||||||||||||||||
EC2A | LD BC,($D21C) | BC=*D21C. | ||||||||||||||||||
EC2E | JR NZ,$EC52 | Jump to EC52 if {} is not zero. | ||||||||||||||||||
EC30 | LD ($D24D),BC | Write BC to *Active_MonsterXPosition. | ||||||||||||||||||
EC34 | LD A,($D217) | Jump to Handler_JumpPunch if *D217 is higher than 11. | ||||||||||||||||||
EC37 | CP $11 | |||||||||||||||||||
EC39 | JP NC,Handler_JumpPunch | |||||||||||||||||||
The routine at DrawMonsterSprite handles which monster to display.
|
||||||||||||||||||||
EC3C | LD A,$09 | A=sprite ID 09.
|
||||||||||||||||||
EC3E | PUSH BC | Stash the co-ordinates on the stack. | ||||||||||||||||||
EC3F | CALL DrawMonsterSprite | Call DrawMonsterSprite. | ||||||||||||||||||
EC42 | POP BC | Restore the co-ordinates from the stack. | ||||||||||||||||||
EC43 | INC B | Increment both the X and Y positions by one to target drawing the mouth section. | ||||||||||||||||||
EC44 | INC C | |||||||||||||||||||
EC45 | LD A,($D247) | A=*Flag_Orientation. | ||||||||||||||||||
EC48 | XOR %00000001 | Flip bit 0. | ||||||||||||||||||
EC4A | ADD A,C | A+=C. | ||||||||||||||||||
EC4B | LD C,A | C=A. | ||||||||||||||||||
The routine at DrawMonsterSprite handles which monster to display.
|
||||||||||||||||||||
EC4C | LD A,$17 | A=sprite ID 17.
|
||||||||||||||||||
EC4E | CALL DrawMonsterSprite | Call DrawMonsterSprite. | ||||||||||||||||||
EC51 | RET | Return. | ||||||||||||||||||
EC52 | LD ($D24D),BC | Write BC to *Active_MonsterXPosition. | ||||||||||||||||||
EC56 | LD A,($D247) | A=*Flag_Orientation. | ||||||||||||||||||
Moves the orientation flag into the carry flag.
|
||||||||||||||||||||
EC59 | RRCA | Rotate A right one position, setting the carry flag if bit 0 was set. | ||||||||||||||||||
EC5A | CALL NC,Handler_DecreaseMonsterXPosition | Call Handler_DecreaseMonsterXPosition if the carry flag is not set. | ||||||||||||||||||
EC5D | XOR A | Write 00 to: | ||||||||||||||||||
EC5E | LD ($D24C),A | |||||||||||||||||||
EC61 | LD ($D246),A | |||||||||||||||||||
EC64 | LD ($D248),A | |||||||||||||||||||
EC67 | INC A | Increment A by one. | ||||||||||||||||||
EC68 | LD ($D24F),A | Write A to *D24F. | ||||||||||||||||||
EC6B | JP $EF86 | Jump to EF86. | ||||||||||||||||||
EC6E | XOR A | Write 00 to *D24C. | ||||||||||||||||||
EC6F | LD ($D24C),A | |||||||||||||||||||
EC72 | INC A | Increment A by one. | ||||||||||||||||||
EC73 | LD ($D244),A | Write A to *JumpTable_Pointer. | ||||||||||||||||||
EC76 | LD A,($D24E) | Jump to EF86 if *Active_MonsterYPosition is equal to 12. | ||||||||||||||||||
EC79 | CP $12 | |||||||||||||||||||
EC7B | JP Z,$EF86 | |||||||||||||||||||
EC7E | LD A,$0B | Write 0B to *JumpTable_Pointer. | ||||||||||||||||||
EC80 | LD ($D244),A | |||||||||||||||||||
EC83 | LD A,B | Write B to *Active_MonsterYPosition. | ||||||||||||||||||
EC84 | LD ($D24E),A | |||||||||||||||||||
EC87 | JP Action_JumpTable | Jump to Action_JumpTable. |
Prev: EA9C | Up: Map | Next: EC8A |