Routines |
Prev: BACE | Up: Map | Next: BB3E |
BAD8 | LD IY,$BC67 | Set the current player buffer (B09D) to Wally. (BC67) | ||
BADC | LD ($B09D),IY | |||
Copy the initial object states. Objects 00 - 1E are held in rooms, the remainder are held by the characters.
|
||||
BAE0 | LD HL,$BB3E | Point HL at the initial collectable object states. (BB3E) | ||
BAE3 | LD DE,$BCE9 | Point DE at the start of the room object data. (BCE9) | ||
BAE6 | LD B,$1F | 1F items to initialise | ||
BAE8 | PUSH BC | Remember this value. | ||
BAE9 | LD A,(DE) | Get the next byte. | ||
BAEA | CP $FF | Is it an end marker? | ||
BAEC | JR NZ,$BAF1 | Move forward if it isn't ie: there are objects here. | ||
BAEE | INC DE | Otherwise move to the next byte and check the next room. | ||
BAEF | JR $BAE9 | |||
An object was found. Copy the template data.
|
||||
BAF1 | LDI | Copy the object ID. | ||
BAF3 | INC DE | Skip over the co-ordinates which are fixed. | ||
BAF4 | INC DE | |||
BAF5 | LDI | Copy the flags. | ||
BAF7 | POP BC | Restore the flags. | ||
BAF8 | DJNZ $BAE8 | Loop while there are more objects to initialise. | ||
Copy the initial data for the characters.
|
||||
BAFA | LD BC,$00AF | Number of bytes to copy. | ||
BAFD | LD HL,$BB7C | Copy from the initial template. (BB7C) | ||
BB00 | LD DE,$BC30 | Copy to start of main buffer. (BC30) | ||
BB03 | LDIR | Do the copy. | ||
Set initial flags;
|
||||
BB05 | XOR A | Set A to zero, which will be set for some flags. | ||
BB06 | LD ($ECF5),A | Set the next reward screen (ECF5) to 0 (morning). | ||
BB09 | LD ($ECFE),A | Set the money earned (ECFE) to £0. | ||
BB0C | LD ($ECFF),A | |||
BB0F | INC A | Set 0 letters brought to the safe. (EDC5) | ||
BB10 | LD ($EDC5),A | |||
Set up initial data on School Lane.
|
||||
BB13 | LD A,$14 | Set 14 asteroids left to hit. (F9F4) | ||
BB15 | LD ($F9F4),A | |||
BB18 | LD A,$28 | Set the lightning bolts in School Lane to cover just the pylon area, making it inaccessible. | ||
BB1A | LD ($F5BE),A | |||
BB1D | LD A,$3C | |||
BB1F | LD ($F5C2),A | |||
BB22 | LD A,$20 | |||
BB24 | LD ($F5C6),A | |||
Reset the money table.
|
||||
BB27 | LD HL,$EC5C | Point HL at the earnings buffer. | ||
BB2A | LD B,$20 | 20 entries to look at. | ||
BB2C | LD (HL),$00 | Set the ID to 0. | ||
BB2E | INC HL | Point HL at the next entry. | ||
BB2F | INC HL | |||
BB30 | INC HL | |||
BB31 | DJNZ $BB2C | Loop while there are more entries to update. | ||
BB33 | LD HL,$EC0F | Point HL at the game flags. (EC0F) | ||
BB36 | LD B,$0E | 0E entries to update. | ||
BB38 | LD (HL),$00 | Reset the flag. | ||
BB3A | INC HL | Point HL at the next one. | ||
BB3B | DJNZ $BB38 | Loop while there are more flags to reset. | ||
BB3D | RET | Return. |
Prev: BACE | Up: Map | Next: BB3E |