Prev: B469 Up: Map Next: B591
B4B8: Routine at B4B8
Used by the routines at B416 and B44A.
B4B8 LD B,(IX+$0B) B=*IX+0B.
B4BB LD L,(IX+$0C) L=*IX+0C.
B4BE LD H,(IX+$0D) H=*IX+0D.
B4C1 LD DE,$0020 DE=0020.
B4C4 PUSH HL Stash HL on the stack.
B4C5 LD C,(IX+$0A) C=*IX+0A.
B4C8 DEC C Decrease C by one.
B4C9 LD A,(HL) A=*HL.
B4CA AND %01111000 Keep only bits 3-6.
B4CC OR (IX+$12) Set the bits of A with *IX+12.
B4CF LD (HL),A Write A to *DE.
B4D0 ADD HL,DE HL+=DE.
B4D1 DEC C Decrease C by one.
B4D2 JP M,$B4EE Jump to B4EE M.
B4D5 JR NZ,$B4C9 Jump to B4C9 if {} is not zero.
B4D7 LD A,(HL) A=*HL.
B4D8 CP $20 Compare A with 20.
B4DA JR Z,$B4E9 Jump to B4E9 if {} is zero.
B4DC AND %00111111 Keep only bits 0-5.
B4DE CP $28 Compare A with 28.
B4E0 JR Z,$B4E9 Jump to B4E9 if {} is zero.
B4E2 AND A Set flags.
B4E3 RL (IX+$17) Rotate *IX+17 left.
B4E7 JR $B4C9 Jump to B4C9.
B4E9 SCF Set the carry flag.
B4EA RL (IX+$17) Rotate *IX+17 left.
B4EE POP HL Restore HL from the stack.
B4EF INC L Increment L by one.
B4F0 DJNZ $B4C4 Decrease counter by one and loop back to B4C4 until counter is zero.
B4F2 LD B,(IX+$0B) B=*IX+0B.
B4F5 RRC (IX+$17) Rotate *IX+17 right (with carry).
B4F9 DJNZ $B4F5 Decrease counter by one and loop back to B4F5 until counter is zero.
B4FB RET Return.
This entry point is used by the routine at B724.
B4FC LD A,$03 A=03.
B4FE CP (IX+$07) Return if A is higher than *IX+07.
B501 RET NC
B502 LD DE,$FFE8 DE=FFE8.
B505 CALL $B64C Call B64C.
B508 LD A,($C276) A=*C276.
B50B SUB $0C A-=0C.
B50D LD ($C276),A A=C276.
B510 LD L,(IX+$10) L=*IX+10.
B513 LD H,(IX+$11) H=*IX+11.
B516 LD DE,$FE80 DE=FE80.
B519 ADD HL,DE HL+=DE.
B51A LD (IX+$10),L Write L to *IX+10.
B51D LD (IX+$11),H Write H to *IX+11.
B520 LD (IX+$13),B Write B to *IX+13.
B523 POP HL Restore HL from the stack.
B524 CALL $B8A6 Call B8A6.
B527 LD IX,$C2EE IX=C2EE.
B52B LD B,$08 B=08.
B52D LD DE,$000D DE=000D.
B530 LD A,(IX+$00) A=*IX+00.
B533 ADD A,$0C A+=0C.
B535 LD (IX+$00),A Write A to *IX+00.
B538 ADD IX,DE IX+=DE.
B53A DJNZ $B530 Decrease counter by one and loop back to B530 until counter is zero.
B53C LD IX,$C293 IX=C293.
B540 LD B,$04 B=04.
B542 LD HL,$C38C HL=C38C.
B545 LD DE,$000D DE=000D.
B548 LD A,(IX+$00) A=*IX+00.
B54B ADD A,$0C A+=0C.
B54D CP (HL) Jump to B557 if A is higher than *HL.
B54E JR NC,$B557
B550 CP $20 Jump to B557 if A is lower than 20.
B552 JR C,$B557
B554 ADD A,(HL) A+=*HL.
B555 SUB $20 A-=20.
B557 LD (IX+$00),A Write A to IX+00.
B55A ADD IX,DE IX+=DE.
B55C DJNZ $B548 Decrease counter by one and loop back to B548 until counter is zero.
B55E LD B,$03 B=03.
B560 LD A,(IX+$00) A=*IX+00.
B563 ADD A,$0C A+=0C.
B565 LD (IX+$00),A Write A to *IX+00.
B568 ADD IX,DE IX+=DE.
B56A DJNZ $B560 Decrease counter by one and loop back to B560 until counter is zero.
B56C JP $B603 Jump to B603.
This entry point is used by the routine at B591.
B56F LD IX,$C38D IX=C38D.
B573 LD DE,$000C DE=000C.
B576 LD A,($C27A) A=*C27A.
B579 LD B,A B=A.
B57A BIT 7,(IX+$21) Jump to B58B if bit 7 of *IX+21 is not set.
B57E JR Z,$B58B
B580 ADD IX,DE IX+=DE.
B582 DJNZ $B57A Decrease counter by one and loop back to B57A until counter is zero.
B584 POP HL Restore HL from the stack.
B585 LD HL,$B008 HL=B008.
B588 SET 1,(HL) Set bit 1 of *HL.
B58A RET Return.
B58B LD HL,$C1FB HL=Messaging_NotAllTheBins.
B58E JP Print_BonusMessaging Jump to Print_BonusMessaging.
Prev: B469 Up: Map Next: B591