| Chase H.Q. | Routines |
| Prev: AD51 | Up: Map | Next: B045 |
|
This includes all cars, barriers, tumbleweeds, etc.
|
||||||||
| draw_hazards | ADA0 | XOR A | var_a222 = 0 | |||||
| ADA1 | LD ($A222),A | |||||||
| ADA4 | LD IYh,$E3 | IY = $E3xx | ||||||
| ADA7 | LD IX,$A188 | IX = &hazards[0] | ||||||
| ADAB | LD DE,$0014 | Stride of hazards entry in bytes | ||||||
| ADAE | LD B,$06 | 6 iterations | ||||||
| dh_loop | ADB0 | RLC (IX+$00) | Set carry if the hazard is active | |||||
| ADB4 | EXX | Bank | ||||||
| ADB5 | CALL C,dh_draw_one_hazard | Call dh_draw_one_hazard if hazard active | ||||||
| ADB8 | EXX | Unbank | ||||||
| ADB9 | ADD IX,DE | Advance to next hazard | ||||||
| ADBB | DJNZ dh_loop | Loop while iterations remain -- B > 0 | ||||||
| ADBD | RET | Return | ||||||
| dh_draw_one_hazard | ADBE | LD C,(IX+$0E) | C = IX[14] -- top byte of horz position? | |||||
| ADC1 | LD A,(IX+$04) | IX[4] -= IX[13] -- (TBD -= (bottom byte of horz position?)) | ||||||
| ADC4 | SUB (IX+$0D) | |||||||
| ADC7 | LD (IX+$04),A | |||||||
| ADCA | JR NC,draw_hazards_0 | If IX[4] was < IX[13] Then C++ | ||||||
| ADCC | INC C | |||||||
| draw_hazards_0 | ADCD | LD A,(IX+$01) | C += IX[1] -- distance related? | |||||
| ADD0 | ADD A,C | |||||||
| ADD1 | LD C,A | |||||||
| ADD2 | LD A,(IX+$0F) | A = IX[15] + 1 -- counter? | ||||||
| ADD5 | INC A | |||||||
| ADD6 | JR NZ,dh_adf0 | Jump to dh_adf0 if non-zero | ||||||
| ADD8 | LD A,(IX+$11) | A = IX[17] -- byte that indexes table_acdb | ||||||
| ADDB | JR NC,draw_hazards_2 | Jump if no carry (from earlier) | ||||||
| ADDD | INC A | Jump if ++A < 4 | ||||||
| ADDE | CP $04 | |||||||
| ADE0 | JR C,draw_hazards_1 | |||||||
| ADE2 | DEC A | A-- | ||||||
| ADE3 | LD C,$FF | C = $FF -- gets put in distance related field | ||||||
| draw_hazards_1 | ADE5 | LD (IX+$11),A | IX[17] = A | |||||
| draw_hazards_2 | ADE8 | AND A | Set flags | |||||
| ADE9 | LD A,C | A = C | ||||||
| ADEA | JR Z,draw_hazards_3 | Jump if zero | ||||||
| ADEC | LD (IX+$01),A | IX[1] = A -- update distance? | ||||||
| ADEF | RET | Return | ||||||
| dh_adf0 | ADF0 | LD A,C | A = C | |||||
| ADF1 | CP $17 | Jump if A < 23 -- still visible? | ||||||
| ADF3 | JR C,draw_hazards_3 | |||||||
|
Wipe the hazard because it's gone?
|
||||||||
| ADF5 | LD (IX+$00),$00 | IX[0] = 0 -- hazard slot now spare | ||||||
| just_ret | ADF9 | RET | Return | |||||
| draw_hazards_3 | ADFA | LD (IX+$01),A | IX[1] = A -- distance related | |||||
| ADFD | CP $14 | Return if A >= 20 | ||||||
| ADFF | RET NC | |||||||
| AE00 | DEC A | A-- | ||||||
| AE01 | JR NZ,draw_hazards_6 | Jump if non-zero | ||||||
| AE03 | LD A,($A23F) | A = ~(fast_counter & $E0) | ||||||
| AE06 | AND $E0 | |||||||
| AE08 | CPL | |||||||
| AE09 | CP (IX+$04) | Jump if A >= IX[4] | ||||||
| AE0C | JR NC,draw_hazards_5 | |||||||
| AE0E | LD B,(IX+$0F) | B = IX[15] + 1 | ||||||
| AE11 | INC B | |||||||
| AE12 | JR Z,draw_hazards_4 | Jump if zero | ||||||
|
Wipe the hazard because car overtaken?
|
||||||||
| AE14 | LD (IX+$00),$00 | IX[0] = 0 -- hazard slot now spare | ||||||
| AE18 | RL B | |||||||
| AE1A | RET NC | Return if no carry | ||||||
| AE1B | LD HL,$A22B | Increment allow_overtake_bonus | ||||||
| AE1E | INC (HL) | |||||||
| AE1F | RET | Return | ||||||
| draw_hazards_4 | AE20 | LD (IX+$04),A | IX[4] = A | |||||
| draw_hazards_5 | AE23 | XOR A | A = 0 | |||||
| draw_hazards_6 | AE24 | ADD A,$4E | A += $4E | |||||
|
$E300..$E316 is regularly accessed. $E300 is always $60, $E316 is always $A0
|
||||||||
| AE26 | LD IYl,A | IY.low = A -- i.e. $E300 | A | ||||||
| AE28 | LD A,(IY+$01) | A = IY[1] | ||||||
| AE2B | LD C,A | C = A | ||||||
| AE2C | SUB (IY+$00) | A -= IY[0] -- A is now the delta between adjacent elements | ||||||
|
Multiplier. DE = multiplier. A = multiplicand. HL = result.
|
||||||||
| AE2F | LD D,$00 | DE = A; HL = 0 | ||||||
| AE31 | LD H,D | |||||||
| AE32 | LD L,D | |||||||
| AE33 | LD E,A | |||||||
| AE34 | LD A,(IX+$04) | A = IX[4] | ||||||
| AE37 | LD B,$08 | B = 8 -- iterations of multiply loop | ||||||
| draw_hazards_7 | AE39 | RLA | Test top bit | |||||
| AE3A | JR NC,draw_hazards_8 | If it carried out then add | ||||||
| AE3C | ADD HL,DE | |||||||
| draw_hazards_8 | AE3D | ADD HL,HL | Double | |||||
| AE3E | DJNZ draw_hazards_7 | Loop | ||||||
| AE40 | LD A,H | A = H -- high part of result | ||||||
| AE41 | RRA | |||||||
| AE42 | LD (IX+$06),A | IX[6] = A | ||||||
| AE45 | NEG | A = ~((C - A) << 1) | ||||||
| AE47 | ADD A,C | |||||||
| AE48 | ADD A,A | |||||||
| AE49 | CPL | |||||||
| AE4A | LD L,A | HL = $E800 + A | ||||||
| AE4B | LD H,$E8 | |||||||
| AE4D | LD D,(HL) | D = *HL | ||||||
| AE4E | DEC L | HL-- | ||||||
| AE4F | LD E,(HL) | E = *HL | ||||||
| AE50 | LD H,$EC | H = $EC | ||||||
| AE52 | LD A,(HL) | A = *HL | ||||||
| AE53 | INC L | L++ | ||||||
| AE54 | LD H,(HL) | H = *HL | ||||||
| AE55 | LD L,A | L = A | ||||||
| AE56 | AND A | Set flags | ||||||
| AE57 | LD ($AE71),DE | Self modify 'LD HL,xxxx' @ AE70 | ||||||
| AE5B | SBC HL,DE | HL -= DE | ||||||
| AE5D | EX DE,HL | Swap | ||||||
| AE5E | LD HL,$0000 | HL = 0 | ||||||
| AE61 | LD A,(IX+$05) | A = IX[5] | ||||||
|
Another multiplier.
|
||||||||
| AE64 | LD B,$08 | B = 8 | ||||||
| draw_hazards_9 | AE66 | RLA | A <<= 1 | |||||
| AE67 | JR NC,draw_hazards_10 | If it carried out then add | ||||||
| AE69 | ADD HL,DE | |||||||
| draw_hazards_10 | AE6A | ADD HL,HL | Double | |||||
| AE6B | DJNZ draw_hazards_9 | Loop | ||||||
| AE6D | LD A,H | A = H | ||||||
| AE6E | RRA | |||||||
| AE6F | LD C,A | C = A | ||||||
| AE70 | LD HL,$0000 | HL = <self modified> + BC | ||||||
| AE73 | ADD HL,BC | |||||||
| AE74 | LD (IX+$02),L | wordat(IX + 2) = HL | ||||||
| AE77 | LD (IX+$03),H | |||||||
| AE7A | CALL sub_ad51 | Call sub_ad51 | ||||||
| AE7D | LD D,(IX+$01) | D = IX[1] | ||||||
| AE80 | LD E,(IX+$04) | E = IX[4] | ||||||
| AE83 | LD HL,$A222 | HL = &var_a222 | ||||||
| AE86 | LD A,(HL) | A = *HL | ||||||
| AE87 | INC (HL) | (*HL)++ | ||||||
| AE88 | LD HL,$E900 | HL -> table | ||||||
| AE8B | AND A | Set flags | ||||||
| AE8C | JR Z,draw_hazards_13 | Jump if zero | ||||||
| AE8E | LD B,A | Iterations | ||||||
|
Loop starts
|
||||||||
| draw_hazards_11 | AE8F | LD A,D | A = D | |||||
| AE90 | CP (HL) | Compare to *HL | ||||||
| AE91 | INC L | L++ | ||||||
| AE92 | JR C,draw_hazards_12 | Jump if A < *HL | ||||||
| AE94 | JR NZ,draw_hazards_14 | Jump if A != *HL | ||||||
| AE96 | LD A,E | A = E | ||||||
| AE97 | CP (HL) | Compare to *HL | ||||||
| AE98 | JR C,draw_hazards_14 | Jump if A < *HL | ||||||
| draw_hazards_12 | AE9A | INC L | L += 3 | |||||
| AE9B | INC L | |||||||
| AE9C | INC L | |||||||
| AE9D | DJNZ draw_hazards_11 | Loop | ||||||
| draw_hazards_13 | AE9F | LD (HL),D | wordat(HL) = DE; HL += 2 | |||||
| AEA0 | INC L | |||||||
| AEA1 | LD (HL),E | |||||||
| AEA2 | INC L | |||||||
| AEA3 | PUSH IX | DE = IX | ||||||
| AEA5 | POP DE | |||||||
| AEA6 | LD (HL),E | wordat(HL) = DE; HL++ | ||||||
| AEA7 | INC L | |||||||
| AEA8 | LD (HL),D | |||||||
| AEA9 | JR draw_hazards_15 | Jump | ||||||
| draw_hazards_14 | AEAB | PUSH DE | Preserve DE | |||||
| AEAC | LD A,B | A = B * 4 | ||||||
| AEAD | ADD A,A | |||||||
| AEAE | ADD A,A | |||||||
| AEAF | LD C,A | BC = A | ||||||
| AEB0 | LD B,$00 | |||||||
| AEB2 | ADD A,$02 | A += 2 + L | ||||||
| AEB4 | ADD A,L | |||||||
| AEB5 | LD E,A | E = A | ||||||
| AEB6 | SUB $04 | A -= 4 | ||||||
| AEB8 | LD L,A | L = A | ||||||
| AEB9 | LD D,H | D = H | ||||||
| AEBA | LDDR | Do *HL-- = *DE-- until BC == 0 | ||||||
| AEBC | EX DE,HL | |||||||
| AEBD | PUSH IX | DE = IX | ||||||
| AEBF | POP DE | |||||||
| AEC0 | LD (HL),D | wordat(HL) = DE; HL -= 2 | ||||||
| AEC1 | DEC L | |||||||
| AEC2 | LD (HL),E | |||||||
| AEC3 | DEC L | |||||||
| AEC4 | POP DE | Restore DE | ||||||
| AEC5 | LD (HL),E | *HL = E | ||||||
| AEC6 | DEC L | L-- | ||||||
| AEC7 | LD (HL),D | *HL = D | ||||||
| draw_hazards_15 | AEC8 | LD L,(IX+$0B) | HL = wordat(IX + 11) | |||||
| AECB | LD H,(IX+$0C) | |||||||
| AECE | JP (HL) | Jump there | ||||||
|
This entry point is used by the routine at main_loop_23.
|
||||||||
| draw_hazards_16 | AECF | LD HL,$0000 | HL = <self modified> | |||||
| AED2 | LD A,B | A = B | ||||||
| AED3 | CP (HL) | Return if A != *HL | ||||||
| AED4 | RET NZ | |||||||
| AED5 | DEC A | A-- | ||||||
| AED6 | CP $0B | Jump if A < 11 | ||||||
| AED8 | JR C,draw_hazards_17 | |||||||
| AEDA | LD A,$0A | A = 10 | ||||||
| draw_hazards_17 | AEDC | SRL A | A >>= 1 | |||||
| AEDE | LD ($AFFC),A | Self modify 'LD A,x' @ AFFB | ||||||
| AEE1 | LD E,A | E = A | ||||||
| AEE2 | RLCA | A <<= 3 | ||||||
| AEE3 | RLCA | |||||||
| AEE4 | RLCA | |||||||
| AEE5 | SUB E | A -= E | ||||||
| AEE6 | LD E,A | DE = A | ||||||
| AEE7 | LD D,$00 | |||||||
| draw_hazards_18 | AEE9 | INC L | L += 2 | |||||
| AEEA | INC L | |||||||
| AEEB | LD A,(HL) | IX = wordat(HL); HL += 2 | ||||||
| AEEC | LD IXl,A | |||||||
| AEEE | INC L | |||||||
| AEEF | LD A,(HL) | |||||||
| AEF0 | LD IXh,A | |||||||
| AEF2 | INC L | |||||||
| AEF3 | PUSH HL | Preserve HL, BC, DE | ||||||
| AEF4 | PUSH BC | |||||||
| AEF5 | PUSH DE | |||||||
| AEF6 | LD H,(IX+$0A) | HL = wordat(IX + 9) | ||||||
| AEF9 | LD L,(IX+$09) | |||||||
| AEFC | ADD HL,DE | HL += DE | ||||||
| AEFD | LD E,(HL) | E = *HL | ||||||
| AEFE | RLC E | E <<= 3 ? | ||||||
| AF00 | RLC E | |||||||
| AF02 | RLC E | |||||||
| AF04 | LD A,(IX+$06) | A = IX[6] - IX[16] | ||||||
| AF07 | SUB (IX+$10) | |||||||
| AF0A | LD ($933E),A | Self modify 'LD D,x' @ draw_object_right_8 to load A | ||||||
| AF0D | LD A,(IX+$13) | A = IX[19] | ||||||
| AF10 | LD ($93C1),A | Self modify 'LD A,x' @ 93C0 to load A | ||||||
| AF13 | LD A,(IX+$0F) | A = IX[15] + 1 | ||||||
| AF16 | INC A | |||||||
| AF17 | JR Z,draw_hazards_23 | Jump if zero | ||||||
| AF19 | LD A,(IX+$03) | A = IX[3] | ||||||
| AF1C | AND A | Set flags | ||||||
| AF1D | LD A,(IX+$02) | A = IX[2] | ||||||
| AF20 | JP M,draw_hazards_19 | Jump if negative | ||||||
| AF23 | JP NZ,draw_hazards_22 | Jump if non-zero | ||||||
| AF26 | CP $80 | Jump if A >= 128 | ||||||
| AF28 | JP NC,draw_hazards_21 | |||||||
| AF2B | ADD A,E | A += E | ||||||
| AF2C | JP draw_hazards_20 | Jump | ||||||
| draw_hazards_19 | AF2F | ADD A,E | A += E | |||||
| AF30 | JR NC,draw_hazards_22 | Jump if no carry | ||||||
| draw_hazards_20 | AF32 | CALL draw_object_left_1 | ||||||
| AF35 | JP draw_hazards_22 | |||||||
| draw_hazards_21 | AF38 | CALL draw_object_right_3 | ||||||
| draw_hazards_22 | AF3B | POP DE | ||||||
| AF3C | POP BC | |||||||
| AF3D | XOR A | Self modify 'LD A,x' @ 93C0 to load 0 | ||||||
| AF3E | LD ($93C1),A | |||||||
| AF41 | LD HL,$A222 | HL = &var_a222 | ||||||
| AF44 | DEC (HL) | (*HL)-- | ||||||
| AF45 | POP HL | Restore HL | ||||||
| AF46 | RET Z | Return if zero | ||||||
| AF47 | LD A,(HL) | A = *HL | ||||||
| AF48 | CP B | Jump if A == B | ||||||
| AF49 | JP Z,draw_hazards_18 | |||||||
| AF4C | LD ($AED0),HL | Self modify 'LD HL' @ draw_hazards_16 to load HL | ||||||
| AF4F | RET | Return | ||||||
| draw_hazards_23 | AF50 | LD A,(IX+$03) | A = IX[3] | |||||
| AF53 | LD ($B02A),A | Self modify 'LD A,x' @ B029 to load A | ||||||
| AF56 | AND A | Set flags | ||||||
| AF57 | LD A,(IX+$02) | A = IX[2] | ||||||
| AF5A | LD ($B02D),A | Self modify 'LD A,x' @ B02C to load A | ||||||
| AF5D | JP M,draw_hazards_24 | Jump if negative | ||||||
| AF60 | JP NZ,draw_hazards_22 | Jump if non-zero | ||||||
| AF63 | CP $80 | Jump if A >= 128 | ||||||
| AF65 | JP NC,draw_hazards_26 | |||||||
| AF68 | ADD A,E | A = E | ||||||
| AF69 | JP draw_hazards_25 | Jump | ||||||
| draw_hazards_24 | AF6C | ADD A,E | A = E | |||||
| AF6D | JR NC,draw_hazards_22 | -- checking result of test at AF56? | ||||||
| draw_hazards_25 | AF6F | CALL draw_object_left_1 | ||||||
| AF72 | JP draw_hazards_27 | Jump | ||||||
| draw_hazards_26 | AF75 | CALL draw_object_right_3 | ||||||
| draw_hazards_27 | AF78 | LD A,($933E) | Read A from 'LD D,x' @ draw_object_right_8 | |||||
| AF7B | LD ($B024),A | Self modify 'LD A,x' @ B023 | ||||||
| AF7E | LD A,($A232) | Get smash_factor | ||||||
| AF81 | CP $05 | Jump if A >= 5 | ||||||
| AF83 | JR NC,draw_hazards_28 | |||||||
| AF85 | LD A,($AFFC) | A = x in 'LD A,x' @ AFFB | ||||||
| AF88 | CP $04 | Jump if A >= 4 | ||||||
| AF8A | JP NC,draw_hazards_28 | |||||||
| AF8D | ADD A,A | Double A | ||||||
| AF8E | LD C,A | BC = A | ||||||
| AF8F | LD B,$00 | |||||||
| AF91 | LD HL,$CDEC | HL = table_cdec + BC | ||||||
| AF94 | ADD HL,BC | |||||||
|
I see this getting hit only when in smash mode.
|
||||||||
| AF95 | LD B,(HL) | BC = wordat(HL) | ||||||
| AF96 | INC HL | |||||||
| AF97 | LD C,(HL) | |||||||
| AF98 | LD HL,$E1D8 | |||||||
| AF9B | CALL draw_hazards_35 | |||||||
| draw_hazards_28 | AF9E | LD A,($A232) | Get smash_factor | |||||
| AFA1 | CP $04 | Jump if it's < 4 | ||||||
| AFA3 | JR C,draw_hazards_29 | |||||||
| AFA5 | SUB $04 | A = (A - 4) * 4 ? | ||||||
| AFA7 | RLCA | |||||||
| AFA8 | RLCA | |||||||
| AFA9 | EX AF,AF' | Bank | ||||||
| AFAA | LD A,($AFFC) | A = x in 'LD A,x' @ AFFB | ||||||
| AFAD | RLCA | *= 2 | ||||||
| AFAE | LD E,A | DE = A | ||||||
| AFAF | LD D,$00 | |||||||
| AFB1 | LD HL,$CE00 | HL = table_ce00 + DE -- table? | ||||||
| AFB4 | ADD HL,DE | |||||||
| AFB5 | LD B,(HL) | BC = wordat(HL); HL++ | ||||||
| AFB6 | INC HL | |||||||
| AFB7 | LD C,(HL) | |||||||
| AFB8 | EX AF,AF' | Unbank | ||||||
| AFB9 | LD E,A | E = A | ||||||
| AFBA | LD HL,$CDF4 | another table? | ||||||
| AFBD | LD A,($A236) | Load counter_C AND 1 | ||||||
| AFC0 | AND $01 | |||||||
| AFC2 | RLCA | A <<= 1? | ||||||
| AFC3 | ADD A,E | A += E | ||||||
| AFC4 | LD E,A | E = A | ||||||
| AFC5 | ADD HL,DE | HL += DE | ||||||
| AFC6 | LD A,(HL) | HL = wordat(HL) | ||||||
| AFC7 | INC HL | |||||||
| AFC8 | LD H,(HL) | |||||||
| AFC9 | LD L,A | |||||||
| AFCA | POP DE | Retrieve DE from stack | ||||||
| AFCB | PUSH DE | |||||||
| AFCC | CALL draw_hazards_34 | |||||||
| draw_hazards_29 | AFCF | LD A,($A232) | Get smash_factor | |||||
| AFD2 | AND A | Jump if zero | ||||||
| AFD3 | JP Z,draw_hazards_22 | |||||||
| AFD6 | DEC A | A-- | ||||||
| AFD7 | JR Z,draw_hazards_31 | Jump if zero | ||||||
| AFD9 | DEC A | A-- | ||||||
| AFDA | JR Z,draw_hazards_30 | Jump if zero | ||||||
| AFDC | LD HL,$CE26 | table? | ||||||
| AFDF | CALL draw_hazards_32 | Call aff1 | ||||||
| draw_hazards_30 | AFE2 | LD HL,$CE0C | ||||||
| AFE5 | CALL draw_hazards_32 | Call aff1 | ||||||
| draw_hazards_31 | AFE8 | LD HL,$CE19 | ||||||
| AFEB | CALL draw_hazards_32 | Call aff1 | ||||||
| AFEE | JP draw_hazards_22 | |||||||
| draw_hazards_32 | AFF1 | LD A,(HL) | A = *HL - 1 | |||||
| AFF2 | DEC A | |||||||
| AFF3 | JP P,draw_hazards_33 | Jump if +ve | ||||||
| AFF6 | LD A,$05 | A = 5 -- it became zero, reset to 5 | ||||||
| draw_hazards_33 | AFF8 | LD (HL),A | *HL = A | |||||
| AFF9 | LD E,A | E = A | ||||||
| AFFA | INC HL | HL++ | ||||||
| AFFB | LD A,$00 | A = <self modified> | ||||||
| AFFD | LD C,A | C = A | ||||||
| AFFE | LD D,A | D = A | ||||||
| AFFF | ADD A,E | A += E | ||||||
| B000 | CP $06 | Return if A >= 6 | ||||||
| B002 | RET NC | |||||||
| B003 | LD E,A | E = A | ||||||
| B004 | SUB D | A -= D | ||||||
| B005 | LD D,A | D = A | ||||||
| B006 | SLA C | C <<= 1 | ||||||
| B008 | LD B,$00 | B = 0 | ||||||
| B00A | ADD HL,BC | HL += BC | ||||||
| B00B | LD A,(HL) | A = *HL | ||||||
| B00C | SUB D | A -= D | ||||||
| B00D | LD B,A | B = A | ||||||
| B00E | INC HL | HL++ | ||||||
| B00F | LD C,(HL) | C = *HL | ||||||
|
E = smoke animation index Select the frame.
|
||||||||
| B010 | LD A,E | DE = E * 7 | ||||||
| B011 | ADD A,A | |||||||
| B012 | ADD A,A | |||||||
| B013 | ADD A,A | |||||||
| B014 | SUB E | |||||||
| B015 | LD E,A | |||||||
| B016 | LD D,$00 | |||||||
| B018 | LD HL,$E1AE | Point HL at smoke_defns | ||||||
|
Similar code to $AA19.
|
||||||||
| draw_hazards_34 | B01B | ADD HL,DE | HL += DE | |||||
| draw_hazards_35 | B01C | LD E,(HL) | E = *HL * 8 -- turn byte width to pixel width | |||||
| B01D | RLC E | |||||||
| B01F | RLC E | |||||||
| B021 | RLC E | |||||||
| B023 | LD A,$00 | A = <self modified> + B | ||||||
| B025 | ADD A,B | |||||||
| B026 | LD ($933E),A | Self modify 'LD D,x' @ draw_object_right_8 to load A | ||||||
| B029 | LD A,$00 | A = <self modified> | ||||||
| B02B | AND A | Set flags | ||||||
| B02C | LD A,$00 | A = <self modified> | ||||||
| B02E | JP M,draw_hazards_37 | Jump to draw_hazards_37 if negative | ||||||
| B031 | RET NZ | Return if non-zero | ||||||
| B032 | ADD A,C | A += C | ||||||
| B033 | RET C | Return if carry | ||||||
| B034 | CP $80 | Jump to draw_object_right_3 if A >= 128 | ||||||
| B036 | JP NC,draw_object_right_3 | |||||||
| draw_hazards_36 | B039 | ADD A,E | A += E -- pixel width | |||||
| B03A | JP draw_object_left_1 | Jump to draw_object_left_1 | ||||||
| draw_hazards_37 | B03D | ADD A,C | A += C | |||||
| B03E | JR C,draw_hazards_36 | Loop? if carry | ||||||
| B040 | ADD A,E | A += E -- pixel width | ||||||
| B041 | JP C,draw_object_left_1 | Jump to draw_object_left_1 if carry | ||||||
| B044 | RET | Return | ||||||
| Prev: AD51 | Up: Map | Next: B045 |