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 |