![]() |
Routines |
Prev: 46759 | Up: Map | Next: 47017 |
Used by the routine at Handler_Madrid.
|
||||
See The Bull Doesn't Kill.
|
||||
Handler_Bull | 46780 | LD A,(61434) | Jump to Handler_Bull_Play if the player has not been hit by the bull. | |
46783 | CP 8 | |||
46785 | JR NZ,Handler_Bull_Play | |||
46787 | LD SP,(39342) | SP=*39342. | ||
46791 | RET | Return. | ||
The player is still alive!
|
||||
Handler_Bull_Play | 46792 | LD A,0 | Write 0 to *39338. | |
46794 | LD (39338),A | |||
46797 | LD IX,29272 | IX=29272. | ||
46801 | LD A,(29191) | Jump to Handler_Bull_0 if *29191 is equal to 1. | ||
46804 | CP 1 | |||
46806 | JR Z,Handler_Bull_0 | |||
46808 | CP 5 | Return if *29191 is not equal to 5. | ||
46810 | RET NZ | |||
Handler_Bull_0 | 46811 | DEC (IX+0) | Decrease *IX+0 by one. | |
46814 | JP NZ,Handler_Bull_8 | Jump to Handler_Bull_8 if A is not zero. | ||
46817 | LD (IX+0),1 | Write 1 to *IX+0. | ||
46821 | LD HL,29272 | HL=29272. | ||
46824 | CALL 37945 | Call 37945. | ||
46827 | BIT 5,(IX+6) | Test bit 5 of *IX+6. | ||
46831 | JR NZ,Handler_Bull_3 | Jump to Handler_Bull_3 if A is not zero. | ||
46833 | DEC (IX+7) | Decrease *IX+7 by one. | ||
46836 | JR Z,Handler_Bull_4 | Jump to Handler_Bull_4 if A is zero. | ||
46838 | LD L,(IX+1) | L=*IX+1. | ||
46841 | LD H,(IX+2) | H=*IX+2. | ||
46844 | CALL 37749 | Call 37749. | ||
46847 | AND %01000001 | Keep only bits 0 and 6. | ||
46849 | JR Z,Handler_Bull_1 | Jump to Handler_Bull_1 if A is zero. | ||
46851 | CP 1 | Jump to Handler_Bull_4 if A is equal to 1. | ||
46853 | JR Z,Handler_Bull_4 | |||
46855 | LD A,8 | Write 00001000 ("Hit By The Bull") to *GameState_1. | ||
46857 | LD (61434),A | |||
46860 | JP 39206 | Jump to 39206. | ||
Handler_Bull_1 | 46863 | LD A,122 | Jump to Handler_Bull_4 if 122 is equal to H. | |
46865 | CP H | |||
46866 | JR Z,Handler_Bull_4 | |||
46868 | LD (IX+4),L | Write L to *IX+4. | ||
46871 | LD (IX+5),H | Write H to *IX+5. | ||
46874 | SET 5,(IX+6) | Set bit 5 of *IX+6. | ||
Handler_Bull_2 | 46878 | JP 39206 | Jump to 39206. | |
Handler_Bull_3 | 46881 | RES 5,(IX+6) | Reset bit 5 of *IX+6. | |
46885 | JR Handler_Bull_2 | Jump to Handler_Bull_2. | ||
Handler_Bull_4 | 46887 | CALL 38871 | Call 38871. | |
46890 | LD A,H | Jump to Handler_Bull_5 if H is higher than L. | ||
46891 | CP L | |||
46892 | JR NC,Handler_Bull_5 | |||
46894 | LD A,C | A=C. | ||
46895 | LD C,B | C=B. | ||
46896 | LD B,A | B=A. | ||
Handler_Bull_5 | 46897 | LD A,(IX+6) | A=*IX+6. | |
46900 | AND %00011000 | Keep only bits 3-4. | ||
46902 | XOR %00010000 | Flip bit 4. | ||
46904 | CP B | Compare A with B. | ||
46905 | JR NZ,Handler_Bull_6 | Jump to Handler_Bull_6 if A is not zero. | ||
46907 | LD B,C | B=C. | ||
Handler_Bull_6 | 46908 | LD (IX+6),B | Write B to *IX+6. | |
46911 | CALL 38425 | Call 38425. | ||
46914 | LD A,(39333) | A=*39333. | ||
46917 | AND %00000011 | Keep only bits 0-1. | ||
46919 | JR Z,Handler_Bull_7 | Jump to Handler_Bull_7 if A is zero. | ||
46921 | ADD A,5 | A+=5. | ||
46923 | LD IX,29272 | IX=29272. | ||
46927 | LD (IX+7),A | Write A to *IX+7. | ||
46930 | JP Handler_Bull_2 | Jump to Handler_Bull_2. | ||
Handler_Bull_7 | 46933 | CALL 38425 | Call 38425. | |
46936 | LD A,(39333) | A=*39333. | ||
46939 | AND %00011110 | Keep only bits 1-4. | ||
46941 | ADD A,10 | A+=10. | ||
46943 | LD (29272),A | Write A to *29272. | ||
46946 | LD IX,29272 | IX=29272. | ||
46950 | LD A,(IX+6) | A=*IX+6. | ||
46953 | AND %00011000 | Keep only bits 3-4. | ||
46955 | RRCA | RRCA. | ||
46956 | LD HL,47694 | HL=47694. | ||
46959 | LD E,A | E=A. | ||
46960 | LD D,0 | D=0. | ||
46962 | ADD HL,DE | HL+=DE. | ||
46963 | LD DE,29360 | DE=29360. | ||
46966 | LD BC,4 | BC=0004. | ||
46969 | LDIR | LDIR. | ||
46971 | JP Handler_Bull_2 | Jump to Handler_Bull_2. | ||
Handler_Bull_8 | 46974 | LD A,(IX+0) | A=*IX+0. | |
46977 | AND %00000011 | Keep only bits 0-1. | ||
46979 | RET NZ | Return if {} is not zero. | ||
46980 | LD IX,(29360) | IX=*29360. | ||
46984 | LD E,(IX+0) | E=*IX+0. | ||
46987 | LD D,(IX+1) | D=*IX+1. | ||
46990 | LD HL,(29362) | HL=*29362. | ||
46993 | EX DE,HL | Exchange the DE and HL registers. | ||
46994 | LD (29362),HL | Write HL to *29362. | ||
46997 | LD (IX+0),E | Write E to *IX+0. | ||
47000 | LD (IX+1),D | Write D to *IX+1. | ||
47003 | LD IX,29272 | IX=29272. | ||
47007 | LD L,(IX+4) | L=*IX+4. | ||
47010 | LD H,(IX+5) | H=*IX+5. | ||
47013 | CALL 39188 | Call 39188. | ||
47016 | RET | Return. |
Prev: 46759 | Up: Map | Next: 47017 |