Prev: 46780 Up: Map Next: 47119
47017: Routine at B7A9
Used by the routine at Handler_Madrid.
47017 LD IX,29272 IX=29272.
47021 CALL 38871 Call 38871.
47024 LD A,H A=H.
47025 OR L Set the bits from L.
47026 LD HL,29184 HL=29184.
47029 RES 7,(HL) Reset bit 7 of *HL.
47031 CP 8 Compare A with 8.
47033 JR NC,47042 Jump to 47042 if A is higher.
47035 SET 7,(HL) Set bit 7 of *HL.
47037 LD HL,61439 HL=61439.
47040 SET 2,(HL) Set bit 2 of *HL.
47042 CALL 38425 Call 38425.
47045 LD A,(39333) A=*39333.
47048 AND %11111110 Keep only bits 1-7.
47050 CP 191 Compare A with 191.
47052 JR NC,47042 Jump to 47042 if A is higher.
47054 LD L,A L=A.
47055 LD H,0 H=0.
47057 LD E,L E=L.
47058 LD D,0 D=0.
47060 ADD HL,HL HL+=HL.
47061 ADD HL,DE HL+=DE.
47062 PUSH DE Stash DE on the stack.
47063 LD DE,25154 DE=25154.
47066 ADD HL,DE HL+=DE.
47067 PUSH HL Stash HL on the stack.
47068 LD A,(HL) A=*HL.
47069 INC HL Increment HL by one.
47070 LD H,(HL) H=*HL.
47071 LD DE,46274 DE=46274.
47074 LD L,A L=A.
47075 SBC HL,DE HL-=DE (with carry).
47077 LD A,L A=L.
47078 CP 32 Compare A with 32.
47080 JR C,47085 Jump to 47085 if A is lower.
47082 POP HL Restore HL and HL from the stack.
47083 POP HL
47084 RET Return.
47085 LD HL,29184 HL=29184.
47088 OR %00010000 Set bit 4.
47090 BIT 7,(HL) Test bit 7 of *HL.
47092 JR NZ,47096 Jump to 47096 if A is not zero.
47094 XOR %00010000 Flip bit 4.
47096 LD E,A E=A.
47097 LD D,0 D=0.
47099 LD HL,46274 HL=46274.
47102 ADD HL,DE HL+=DE.
47103 POP IX Restore IX from the stack.
47105 LD (IX+0),L Write L to *IX+0.
47108 LD (IX+1),H Write H to *IX+1.
47111 POP HL Restore HL from the stack.
47112 LD DE,30912 HL+=30912.
47115 ADD HL,DE
47116 JP 39188 Jump to 39188.
Prev: 46780 Up: Map Next: 47119