Prev: 27922 Up: Map Next: 28210
28019: Handler: Accelerate
Used by the routines at HandlerCanAccelerate and 27922.
Increase speed (see HandlerCanAccelerate).
HandlerAccelerate 28019 LD (24077),A Write A to Speed.
This entry point is used by the routines at HandlerCanAccelerate and 27922.
HandlerAccelerate_0 28022 LD A,(24077) A=Speed.
28025 LD HL,18914 HL=18914.
28028 CALL DrawGaugeLine Call DrawGaugeLine.
28031 LD A,(24081) A=24081.
28034 INC A Increment A by one.
28035 LD C,A Store the result in C.
28036 LD A,(24080) A=Player_Direction.
28039 RRA Shift A right three times.
28040 RRA
28041 RRA
28042 AND %00011111 Keep bits 0-4.
28044 BIT 0,C
28046 JR NZ,HandlerAccelerate_1
28048 XOR %00011111 Unset bits 0-4.
HandlerAccelerate_1 28050 LD E,A Create an offset; E=A and D=0.
28051 LD D,0
28053 PUSH DE Stash DE on the stack.
28054 LD HL,32619 HL=32619 + offset.
28057 ADD HL,DE
28058 LD A,(24077) Create an offset; E=Speed and D=0.
28061 LD E,A
28062 LD D,0
28064 PUSH DE Stash DE on the stack.
28065 LD A,(HL)
28066 CALL 28463 Call 28463.
28069 LD A,(24073) A=24073.
28072 LD DE,(24071) DE=24071.
28076 CALL 28354 Call 28354.
28079 BIT 1,C
28081 JR NZ,HandlerAccelerate_6
28083 ADD HL,DE
28084 ADC A,0
28086 CP 12
28088 JR NC,HandlerAccelerate_7
HandlerAccelerate_2 28090 LD (24073),A Store A at 24073.
28093 LD (24071),HL Store HL at 24071.
HandlerAccelerate_3 28096 POP HL
28097 POP DE
28098 PUSH HL
28099 LD HL,32650 HL=32650.
28102 AND A
28103 SBC HL,DE
28105 LD A,(HL)
28106 POP DE
28107 CALL 28463 Call 28463.
28110 LD A,(24070) A=24070.
28113 LD DE,(24068) DE=24068.
28117 CALL 28354 Call 28354.
28120 DEC C
28121 BIT 1,C
28123 JR NZ,28210
28125 ADD HL,DE
28126 ADC A,0
28128 CP 24
28130 JR NC,HandlerAccelerate_8
This entry point is used by the routine at 28210.
HandlerAccelerate_4 28132 LD (24068),HL
28135 LD (24070),A
HandlerAccelerate_5 28138 CALL 27693 Call 27693.
28141 JR 28227 Jump to 28227.
HandlerAccelerate_6 28143 EX DE,HL
28144 AND A
28145 SBC HL,DE
28147 SBC A,0
28149 JR NZ,HandlerAccelerate_2
28151 EX AF,AF'
28152 LD A,H
28153 CP 128
28155 JR C,HandlerAccelerate_7
28157 EX AF,AF'
28158 JR HandlerAccelerate_2
HandlerAccelerate_7 28160 LD A,(24081)
28163 XOR 1
28165 LD (24081),A
28168 LD A,(24080)
28171 CPL
28172 LD (24080),A
28175 LD A,5
28177 LD (24133),A
28180 CALL SoundsBounce
28183 JR HandlerAccelerate_3
This entry point is used by the routine at 28210.
HandlerAccelerate_8 28185 LD A,(24081)
28188 XOR 3
28190 LD (24081),A
28193 LD A,(24080)
28196 CPL
28197 LD (24080),A
28200 LD A,5
28202 LD (24133),A
28205 CALL SoundsBounce
28208 JR HandlerAccelerate_5
Prev: 27922 Up: Map Next: 28210