![]() |
Routines |
| Prev: D2A1 | Up: Map | Next: D469 |
|
Used by the routine at StartGame.
|
||||
| D352 | LD DE,$0780 | Write 0780 to *D88E. | ||
| D355 | LD ($D88E),DE | |||
| D359 | LD DE,$0AF0 | Write 0AF0 to *D890. | ||
| D35C | LD ($D890),DE | |||
| D360 | CALL Handler_CheckTime | Call Handler_CheckTime. | ||
| D363 | LD A,($D834) | Jump to D387 if *PlayerCursor_TileID is equal to 09. | ||
| D366 | CP $09 | |||
| D368 | JR Z,$D387 | |||
| D36A | LD A,($D835) | Jump to D387 if *PlayerCursor_Flag is not equal to 00. | ||
| D36D | CP $00 | |||
| D36F | JR NZ,$D387 | |||
| D371 | PUSH BC | Stash BC on the stack. | ||
| D372 | LD A,($D830) | Write *StorageCursor_Y_Position to *DestinationCursor_Y_Position. | ||
| D375 | LD ($D82C),A | |||
| D378 | LD A,($D831) | Write *StorageCursor_X_Position to *DestinationCursor_X_Position. | ||
| D37B | LD ($D82D),A | |||
| D37E | CALL Display_PlayerCursor | Call Display_PlayerCursor. | ||
| D381 | LD HL,$D839 | HL=D839. | ||
| D384 | RES 0,(HL) | Reset bit 0 of *HL. | ||
| D386 | POP BC | Restore BC from the stack. | ||
| D387 | BIT 4,B | Jump to StartGame_0 if bit 4 of B is not set. | ||
| D389 | JP Z,StartGame_0 | |||
| D38C | PUSH BC | Stash BC on the stack. | ||
| D38D | CALL $DABF | Call DABF. | ||
| D390 | CALL Print_Bonus | Call Print_Bonus. | ||
| D393 | LD HL,$D83A | HL=Time. | ||
| D396 | BIT 6,(HL) | Call Handler_TimeBar if bit 6 of *HL is set. | ||
| D398 | CALL NZ,Handler_TimeBar | |||
| D39B | LD HL,$D83A | HL=Time. | ||
| D39E | SET 0,(HL) | Set bit 0 of *HL. | ||
| D3A0 | POP BC | Restore BC from the stack. | ||
| D3A1 | BIT 3,B | Jump to D3C4 if bit 3 of B is not set. | ||
| D3A3 | JR Z,$D3C4 | |||
| D3A5 | CALL Handler_Bonus | Call Handler_Bonus. | ||
| D3A8 | LD A,($E75D) | A=*Tile_Horizontal_Position. | ||
| D3AB | DEC A | Decrease A by one. | ||
| D3AC | LD B,A | B=A. | ||
| D3AD | LD A,($E75E) | A=*Tile_Vertical_Position. | ||
| D3B0 | DEC A | Decrease A by one. | ||
| D3B1 | LD C,A | C=A. | ||
| D3B2 | LD DE,$D86B | DE=D86B. | ||
| D3B5 | LD A,$04 | A=04. | ||
| D3B7 | LD IX,$D83A | IX=Time. | ||
| D3BB | RES 1,(IX+$00) | Reset bit 1 of *IX+00. | ||
| D3BF | CALL Print_Numbers | Call Print_Numbers. | ||
| D3C2 | JR $D3DF | Jump to D3DF. | ||
| D3C4 | LD IX,$D83A | IX=Time. | ||
| D3C8 | BIT 2,(IX+$00) | Jump to D40D if bit 2 of *IX+00 is set. | ||
| D3CC | JR Z,$D40D | |||
| D3CE | LD DE,$0510 | Write 0510 to *D88E. | ||
| D3D1 | LD ($D88E),DE | |||
| D3D5 | LD DE,$0AB0 | Write 0AB0 to *D890. | ||
| D3D8 | LD ($D890),DE | |||
| D3DC | CALL Handler_Bonus | Call Handler_Bonus. | ||
| D3DF | LD A,$05 | A=05. | ||
| D3E1 | LD C,$82 | C=82. | ||
| D3E3 | PUSH BC | Stash BC on the stack. | ||
| D3E4 | LD D,$05 | D=05. | ||
| D3E6 | OUT ($FE),A | Set border to the colour held by A. | ||
| D3E8 | XOR %00010000 | Flip bit 4. | ||
| D3EA | LD E,C | E=C. | ||
| D3EB | DEC E | Decrease E by one. | ||
| D3EC | JR NZ,$D3EB | Jump to D3EB if E is not zero. | ||
| D3EE | DEC D | Decrease D by one. | ||
| D3EF | JR NZ,$D3E6 | Jump to D3E6 if D is not zero. | ||
| D3F1 | DEC C | Decrease C by one. | ||
| D3F2 | JR NZ,$D3E4 | Jump to D3E4 if C is not zero. | ||
| D3F4 | POP BC | Restore BC from the stack. | ||
| D3F5 | LD D,$05 | D=05. | ||
| D3F7 | LD A,$05 | A=05. | ||
| D3F9 | OUT ($FE),A | Set border to the colour held by A. | ||
| D3FB | XOR %00010000 | Flip bit 4. | ||
| D3FD | LD E,C | E=C. | ||
| D3FE | DEC E | Decrease E by one. | ||
| D3FF | JR NZ,$D3FE | Jump to D3FE if E is not zero. | ||
| D401 | DEC D | Decrease D by one. | ||
| D402 | JR NZ,$D3F9 | Jump to D3F9 if D is not zero. | ||
| D404 | INC C | Increment C by one. | ||
| D405 | LD A,$82 | Jump to D3F5 if C is not equal to 82. | ||
| D407 | CP C | |||
| D408 | JR NZ,$D3F5 | |||
| D40A | CALL $DABF | Call DABF. | ||
| D40D | LD IX,$D83A | IX=Time. | ||
| D411 | BIT 3,(IX+$00) | Jump to StartGame_0 if bit 3 of *IX+00 is not set. | ||
| D415 | JP Z,StartGame_0 | |||
| D418 | CALL $E9DA | Call E9DA. | ||
| D41B | CALL $E775 | Call E775. | ||
|
This entry point is used by the routines at Handler_CheckTime and Handler_Bombs.
|
||||
| D41E | LD A,($D82E) | Write *CurrentCursor_Y_Position to *Tile_Horizontal_Position. | ||
| D421 | LD ($E75D),A | |||
| D424 | LD A,($D82F) | Write *CurrentCursor_X_Position to *Tile_Vertical_Position. | ||
| D427 | LD ($E75E),A | |||
| D42A | LD A,($D834) | Jump to D456 if *PlayerCursor_TileID is not equal to 09. | ||
| D42D | CP $09 | |||
| D42F | JR NZ,$D456 | |||
| D431 | LD A,($E75D) | A=*Tile_Horizontal_Position. | ||
| D434 | LD ($E762),A | Write A to *E762. | ||
| D437 | INC A | Increment A by one. | ||
| D438 | LD ($E763),A | Write A to *E763. | ||
| D43B | LD A,($E75E) | A=*Tile_Vertical_Position. | ||
| D43E | LD ($E764),A | Write A to *E764. | ||
| D441 | INC A | Increment A by one. | ||
| D442 | LD ($E765),A | Write A to *E765. | ||
| D445 | CALL $E9DA | Call E9DA. | ||
| D448 | LD A,$2F | A=INK: WHITE, PAPER: CYAN . | ||
| D44A | CALL ColouriseHome | Call ColouriseHome. | ||
| D44D | CALL $E9A5 | Call E9A5. | ||
| D450 | HALT | Halt operation (suspend CPU until the next interrupt). | ||
| D451 | CALL $E7CC | Call E7CC. | ||
| D454 | JR $D45F | Jump to D45F. | ||
| D456 | CALL Remove_PlayerCursor | |||
| D459 | CALL $E9DA | |||
| D45C | CALL $E775 | |||
| D45F | LD HL,$D6FC | |||
| D462 | LD B,$08 | |||
| D464 | DI | |||
| D465 | CALL $EF4A | |||
| D468 | EI | |||
| Prev: D2A1 | Up: Map | Next: D469 |