Prev: BB36 Up: Map Next: BC96
BB73: Routine at BB73
Used by the routine at StartGame.
BB73 LD IX,($C277) IX=*C277.
BB77 BIT 2,(IX+$21) Call BC04 if bit 2 of *IX+21 is set.
BB7B CALL NZ,$BC04
BB7E BIT 3,(IX+$21) Call BBCE if bit 3 of *IX+21 is set.
BB82 CALL NZ,$BBCE
BB85 LD DE,$000C DE=000C.
BB88 ADD IX,DE IX+=DE.
BB8A BIT 2,(IX+$21) Call BC04 if bit 2 of *IX+21 is set.
BB8E CALL NZ,$BC04
BB91 BIT 3,(IX+$21) Call BBCE if bit 3 of *IX+21 is set.
BB95 CALL NZ,$BBCE
BB98 LD A,($C389) A=*C389.
BB9B XOR %00000010 Flip bit 1.
BB9D BIT 1,A Test bit 1 of A.
BB9F LD ($C389),A Write A to *C389.
BBA2 RET NZ Return if bit 1 of A is set.
BBA3 LD HL,$C388 HL=C388.
BBA6 DEC (HL) Decrease *HL by one.
BBA7 JR Z,$BBCB Jump to BBCB if *HL is not set.
BBA9 LD A,$01 A=01.
BBAB CP (HL) Return if A is not equal to *HL.
BBAC RET NZ
BBAD LD HL,$D811 HL=D811.
BBB0 CALL Print_BonusMessaging Call Print_BonusMessaging.
BBB3 LD IX,($C277) IX=C277.
BBB7 SET 3,(IX+$21) Set bit 3 of *IX+21.
BBBB CALL $BBCE Call BBCE.
BBBE LD DE,$000C DE=000C.
BBC1 ADD IX,DE IX+=DE.
BBC3 SET 3,(IX+$21) Set bit 3 of *IX+21.
BBC7 CALL $BBCE Call BBCE.
BBCA RET Return.
BBCB LD (HL),$01 Write 01 to *HL.
BBCD RET Return.
BBCE BIT 4,(IX+$21) Return if bit 4 of *IX+21 is not set.
BBD2 RET Z
BBD3 RES 4,(IX+$21) Reset bit 4 of *IX+21.
BBD7 RES 1,(IX+$21) Reset bit 1 of *IX+21.
BBDB LD HL,$C389 HL=C389.
BBDE RES 0,(HL) Reset bit 0 of *HL.
BBE0 LD L,(IX+$22) L=*IX+22.
BBE3 LD H,(IX+$23) H=*IX+23.
BBE6 CALL $C144 Call C144.
BBE9 INC HL Increment HL by one.
BBEA RES 3,(HL) Reset bit 3 of *HL.
BBEC LD DE,$0040 DE=0040.
BBEF ADD HL,DE HL+=DE.
BBF0 RES 3,(HL) Reset bit 3 of *HL.
BBF2 LD HL,$C386 HL=C386.
BBF5 BIT 0,(HL) Return if bit 0 of *HL is not set.
BBF7 RET Z
BBF8 LD HL,($C38A) HL=*C38A.
BBFB LD A,(HL) A=*HL.
BBFC LD ($C28F),A Write A to *C28F.
BBFF INC HL Increment HL by one.
BC00 LD ($C38A),HL Write HL to *C38A.
BC03 RET Return.
BC04 LD L,(IX+$22) L=*IX+22.
BC07 LD H,(IX+$23) H=*IX+23.
BC0A CALL $C144 Call C144.
BC0D INC HL Increment HL by one.
BC0E SET 3,(HL) Set bit 3 of *HL.
BC10 LD DE,$0040 DE=0040.
BC13 ADD HL,DE HL+=DE.
BC14 SET 3,(HL) Set bit 3 of *HL.
BC16 SET 4,(IX+$21) Set bit 4 of *IX+21.
BC1A LD A,($C386) A=*C386.
BC1D BIT 0,A Jump to BC49 if bit 0 of A is set.
BC1F JR NZ,$BC49
BC21 LD HL,$C389 HL=C389.
BC24 BIT 0,(HL) Return if bit 0 of *HL is set.
BC26 RET NZ
BC27 SET 0,(HL) Set bit 0 of *HL.
BC29 LD L,(IX+$18) L=*IX+18.
BC2C LD H,(IX+$19) H=*IX+19.
BC2F LD DE,$0240 HL+=0240.
BC32 ADD HL,DE
BC33 LD A,(HL) A=*HL.
BC34 INC HL Increment HL by one.
BC35 LD H,(HL) H=*HL.
BC36 LD L,A L=A.
BC37 LD A,($C1E5) A=*C1E5.
BC3A AND %00011000 Keep only bits 3-4.
BC3C LD D,$00 D=00.
BC3E LD E,A E=A.
BC3F ADD HL,DE HL+=DE.
BC40 CALL Handler_BonusMessaging Call Handler_BonusMessaging.
BC43 LD HL,$CC3D HL=CC3D.
BC46 SET 2,(HL) Set bit 2 of *HL.
BC48 RET Return.
BC49 RES 0,A Reset bit 0 of A.
BC4B LD ($C386),A Write A to *C386.
BC4E LD L,(IX+$18) L=*IX+18.
BC51 LD H,(IX+$19) H=*IX+19.
BC54 PUSH HL Stash HL on the stack.
BC55 LD DE,$9C34 DE=9C34.
BC58 AND A Set flags.
BC59 SBC HL,DE HL-=DE (with carry).
BC5B POP HL Restore HL from the stack.
BC5C JR Z,$BC83 Jump to BC83 if {} is zero.
BC5E LD DE,$932E DE=932E.
BC61 AND A Set flags.
BC62 SBC HL,DE HL-=DE (with carry).
BC64 JR Z,$BC70 Jump to BC70 if {} is zero.
BC66 LD HL,($C38A) HL=*C38A.
BC69 CALL $CB65 Call CB65.
BC6C CALL Handler_BonusMessaging Call Handler_BonusMessaging.
BC6F RET Return.
BC70 LD A,($C1E5) A=*C1E5.
BC73 BIT 0,A Jump to BC66 if bit 0 of A is set.
BC75 JR NZ,$BC66
BC77 LD A,$64 A=64.
BC79 LD ($C291),A Write A to *C291.
BC7C LD HL,$CF1F HL=Messaging_WolfingThatLotDown.
BC7F CALL Print_BonusMessaging Call Print_BonusMessaging.
BC82 RET Return.
BC83 LD A,($C1E5) A=*C1E5.
BC86 BIT 0,A Jump to BC66 if bit 0 of A is set.
BC88 JR NZ,$BC66
BC8A LD A,$FF Write FF to *C292.
BC8C LD ($C292),A
BC8F LD HL,$CE17 HL=Messaging_HicHic.
BC92 CALL Print_BonusMessaging Call Print_BonusMessaging.
BC95 RET Return.
Prev: BB36 Up: Map Next: BC96