Prev: 28965 Up: Map Next: 29210
28976: New Actor
Input
IX Item object
NewActor 28976 LD HL,24089 Increment RandomNumber by one.
28979 INC (HL)
28980 LD DE,8 Set offset.
28983 ADD IX,DE Set IX to next group of bytes.
28985 PUSH IX Copy IX to HL using the stack.
28987 POP HL
The self-modifying code routines change the address here to be either;
Altering Routine Alteration
ResetModifiedCode 24300
28988 LD BC,24300 BC=24300.
28991 AND A Clear the carry flag
28992 SBC HL,BC
28994 JP C,MainLoop
Holding "SHIFT" pauses the game.
Pause_Loop 28997 LD A,254 Read from the keyboard;
Port Number Bit
0 1 2 3 4
254 SHIFT Z X C V
28999 OUT (253),A
29001 IN A,(254)
29003 BIT 0,A Has the "SHIFT" key been pressed?
29005 JR Z,Pause_Loop If it has then jump to Pause_Loop.
29007 LD HL,(24087) HL=see 28958.
29010 INC HL
29011 LD (24087),HL
29014 LD H,0
29016 LD A,R
29018 LD C,A
29019 LD A,(24089)
29022 ADD A,(HL)
29023 ADD A,C
29024 LD (24089),A
29027 EX AF,AF'
29028 LD A,(24086)
29031 CP 3
29033 JR C,NewActor_0
29035 LD A,(24119)
29038 CP 6
29040 JR NC,NewActor_0
29042 EX AF,AF'
29043 AND 31
29045 JR NZ,NewActor_3
29047 LD A,(24086)
29050 CP 6
29052 JR NC,NewActor_3
NewActor_0 29054 LD A,(24098)
29057 AND A
29058 JR NZ,NewActor_3
29060 LD A,(24087)
29063 AND 15
29065 CP 10
29067 JR NC,NewActor_3
29069 LD C,A
29070 LD B,0
29072 LD HL,24099
29075 ADD HL,BC
29076 LD A,(HL)
29077 AND A
29078 JR NZ,NewActor_3
29080 LD A,(24204)
29083 CP 19
29085 JR Z,NewActor_3
29087 LD A,C
29088 LD (24083),A
29091 LD A,(24172)
29094 AND 63
29096 DEC A
29097 JR Z,NewActor_1
29099 DEC A
29100 JR NZ,NewActor_3
NewActor_1 29102 LD HL,24244
29105 LD B,6
29107 LD DE,8
NewActor_2 29110 LD A,(HL)
29111 AND A
29112 JP Z,29282
29115 ADD HL,DE
29116 DJNZ NewActor_2
This entry point is used by the routine at 29282.
NewActor_3 29118 LD A,(24124)
29121 AND A
29122 JP NZ,29210
29125 LD A,(24089)
29128 AND A
29129 JP NZ,Message_SprayBugs_0
29132 LD A,(24087)
29135 AND 15
29137 CP 10
29139 JP NC,Message_SprayBugs_0
29142 LD C,A
29143 LD B,0
29145 LD HL,24099
29148 ADD HL,BC
29149 LD A,(HL)
29150 AND A
29151 JP NZ,Message_SprayBugs_0
29154 LD (HL),255
29156 LD IX,24124
29160 LD A,C
29161 CP 5
29163 JR NC,29274
29165 LD (IX+1),8
This entry point is used by the routine at 29257.
NewActor_4 29169 RRCA
29170 RRCA
29171 RRCA
29172 AND 224
29174 ADD A,55
29176 LD (IX+2),A
29179 LD A,R
29181 AND 3
29183 CP 3
29185 JR NZ,NewActor_5
29187 XOR A
NewActor_5 29188 ADD A,11
29190 LD (IX+4),255
29194 LD (IX+0),A
29197 LD (IX+3),67
29201 LD (IX+5),C
This entry point is used by the routine at 29257.
NewActor_6 29204 CALL 25831
29207 JP Message_SprayBugs_0
Prev: 28965 Up: Map Next: 29210