![]() |
Routines |
| Prev: CD40 | Up: Map | Next: CDC4 |
|
Used by the routine at 940C.
|
||||
| CD41 | LD HL,$964D | Reset the "collected" flag on all coal. | ||
| CD44 | LD B,$40 | |||
| CD46 | RES 7,(HL) | |||
| CD48 | INC HL | |||
| CD49 | DJNZ $CD46 | |||
| CD4B | LD A,$03 | Set the miner in room 0 to invisible. | ||
| CD4D | LD ($9BBE),A | |||
| CD50 | LD ($9BD2),A | |||
| CD53 | LD A,$01 | Set A to 1 to set some flags. | ||
| CD55 | LD ($CD32),A | Set no bucket collected. | ||
| CD58 | LD ($CD35),A | Set miner's x co-ordinate to 1. | ||
| CD5B | LD HL,$4FD8 | Set Monty's position to D8 4F. | ||
| CD5E | LD ($5C7B),HL | |||
| CD61 | DI | Turn off interrupts, so a new service routine can be used. | ||
| CD62 | LD A,$C7 | Point I to the jump buffer at C700. | ||
| CD64 | LD I,A | |||
| CD66 | LD HL,$CDEF | Set the interrupt service routine to jump to CDEF. | ||
| CD69 | LD ($5B5C),HL | |||
| CD6C | LD A,$C3 | Add a 'JP' command to the first byte. | ||
| CD6E | LD ($5B5B),A | |||
| CD71 | IM 2 | Switch to interrupt mode 2 so this routine will be fired. | ||
| CD73 | LD HL,$D260 | Clear the screen buffer. | ||
| CD76 | LD DE,$D261 | |||
| CD79 | LD BC,$17FF | |||
| CD7C | LD (HL),$00 | |||
| CD7E | LDIR | |||
| CD80 | LD HL,$F14B | F14B points to the static UDGs on screen at 7C00. | ||
| CD83 | CALL $EF7E | Print the graphics. | ||
| CD86 | CALL $C62A | Copy the graphic buffer to screen. | ||
| CD89 | CALL $91E8 | Print the score. | ||
| CD8C | CALL $949E | Print number of lives. | ||
| CD8F | CALL $D254 | Copy the screen back to the buffer. | ||
| CD92 | EI | Turn interrupts on, the service routine can now be run. | ||
| CD93 | LD A,$75 | Make 75 (bright cyan on yellow) a deadly attribute. (C51B) so Monty will die if he touches the water under bridge. | ||
| CD95 | LD ($C51B),A | |||
| CD98 | CALL $FF5B | Wait for interrupts and run one frame in the room. | ||
| CD9B | CALL $9298 | Check for collision. | ||
| CD9E | CALL $82A6 | Check for player input. | ||
| CDA1 | CALL $89D4 | Update Monty's position. | ||
| CDA4 | LD A,($5C7B) | Is Monty's X co-ordinate the same as the bucket? | ||
| CDA7 | CP $40 | |||
| CDA9 | CALL Z,$CDC4 | If so, pick it up. | ||
| CDAC | LD A,($5C7B) | Has Monty reached the far right of the room? | ||
| CDAF | CP $E0 | |||
| CDB1 | JR NZ,$CD98 | Jump back if not. | ||
|
Monty has reached the far right of the room, so move into room 0.
|
||||
| CDB3 | DI | Disable interrupts as the service routine will be refreshed. | ||
| CDB4 | XOR A | Set the current room to 0. | ||
| CDB5 | LD ($9649),A | |||
| CDB8 | LD HL,$2718 | Set the current position to 18 27 ie: in front of the miner. | ||
| CDBB | LD ($5C7B),HL | |||
| CDBE | LD ($964B),HL | Make this the start position if a life is lost. | ||
| CDC1 | JP $940C | Enter the new room. | ||
| Prev: CD40 | Up: Map | Next: CDC4 |