![]() |
Routines |
| Prev: 94DD | Up: Map | Next: 9546 |
|
Used by the routine at START_GAME.
Called once, by START_GAME, on the runtime copy. H' and L' make a pointer into the ROM from TICKS and FRAMES, stepped a byte per record, and the byte there is the random number: for each sixteen-byte record from $EEE0 whose halves are both type 1 (cave door) or both type 2 (door), a byte below $70 turns both halves into $22 or $20 -- a timed cave door or door -- and marks them shut. In the first game after loading that converted 47 of the 82 doors and 21 of the 43 cave doors (measured in the simulator). The walk stops when the address carries past the top of memory.
|
||||
| CHOOSE_TIMED_DOORS | 94F5 | LD A,($5E12) | The frame counter drives it. | |
| 94F8 | LD L,A | |||
| 94F9 | LD A,($5C78) | Low bits of the frame, with bit 4 forced on. | ||
| 94FC | AND $0F | |||
| 94FE | OR $10 | |||
| 9500 | LD H,A | |||
| 9501 | EXX | |||
| 9502 | LD HL,$EEE0 | The two halves of the first door, sixteen bytes to the next pair. | ||
| 9505 | LD DE,$EEE8 | |||
| 9508 | LD BC,$0010 | |||
| CHOOSE_TIMED_DOORS_0 | 950B | EXX | ||
| 950C | LD A,(HL) | |||
| 950D | INC HL | |||
| 950E | EXX | |||
| 950F | CP $70 | |||
| 9511 | JR NC,CHOOSE_TIMED_DOORS_1 | |||
| 9513 | LD A,(DE) | |||
| 9514 | CP (HL) | |||
| 9515 | JR NZ,CHOOSE_TIMED_DOORS_1 | |||
| 9517 | CP $01 | |||
| 9519 | JR Z,CHOOSE_TIMED_DOORS_2 | |||
| 951B | CP $02 | |||
| 951D | JR Z,CHOOSE_TIMED_DOORS_4 | |||
| CHOOSE_TIMED_DOORS_1 | 951F | ADD HL,BC | ||
| 9520 | EX DE,HL | |||
| 9521 | ADD HL,BC | |||
| 9522 | RET C | |||
| 9523 | EX DE,HL | |||
| 9524 | JR CHOOSE_TIMED_DOORS_0 | |||
| CHOOSE_TIMED_DOORS_2 | 9526 | LD A,$22 | ||
| CHOOSE_TIMED_DOORS_3 | 9528 | LD (DE),A | ||
| 9529 | LD (HL),A | |||
| 952A | PUSH DE | |||
| 952B | INC DE | |||
| 952C | INC DE | |||
| 952D | INC DE | |||
| 952E | INC DE | |||
| 952F | INC DE | |||
| 9530 | LD A,(DE) | |||
| 9531 | OR $08 | |||
| 9533 | LD (DE),A | |||
| 9534 | POP DE | |||
| 9535 | PUSH HL | |||
| 9536 | INC HL | |||
| 9537 | INC HL | |||
| 9538 | INC HL | |||
| 9539 | INC HL | |||
| 953A | INC HL | |||
| 953B | LD A,(HL) | |||
| 953C | OR $08 | |||
| 953E | LD (HL),A | |||
| 953F | POP HL | |||
| 9540 | JR CHOOSE_TIMED_DOORS_1 | |||
| CHOOSE_TIMED_DOORS_4 | 9542 | LD A,$20 | ||
| 9544 | JR CHOOSE_TIMED_DOORS_3 | |||
| Prev: 94DD | Up: Map | Next: 9546 |