Routines |
Prev: 83EF | Up: Map | Next: 84B3 |
|
||||
LoadGame | 8451 | PUSH IX | Stash IX and DE on the stack. | |
8453 | PUSH DE | |||
Load "flags".
|
||||
8454 | LD A,$FF | Set the load as a "data block". | ||
8456 | SCF | Set the carry flag. | ||
8457 | LD IX,$B6EB | Set the start address to; B6EB. | ||
845B | LD DE,$001D | Set the block length to; $001D bytes. | ||
845E | CALL LoadBlock | Call LoadBlock. | ||
Load "objects".
|
||||
8461 | LD A,$FF | Set the load as a "data block". | ||
8463 | SCF | Set the carry flag. | ||
8464 | LD IX,$C11B | Set the start address to; Objects. | ||
8468 | LD DE,$0615 | Set the block length to; $0615 bytes. | ||
846B | CALL LoadBlock | Call LoadBlock. | ||
Load...
|
||||
846E | LD A,$FF | Set the load as a "data block". | ||
8470 | SCF | Set the carry flag. | ||
8471 | LD IX,$CA84 | Set the start address to; CA84. | ||
8475 | LD DE,$00BF | Set the block length to; $00BF bytes. | ||
8478 | CALL LoadBlock | Call LoadBlock. | ||
Load "locations".
|
||||
847B | LD A,$FF | Set the load as a "data block". | ||
847D | SCF | Set the carry flag. | ||
847E | LD IX,$BA8A | Set the start address to; Locations. | ||
8482 | LD DE,$05D9 | Set the block length to; $05D9 bytes. | ||
8485 | CALL LoadBlock | Call LoadBlock. | ||
Success!
|
||||
8488 | DI | Disable interrupts. | ||
8489 | LD HL,$B6EB | Call ThreeByteCopy using HL=B6EB and DE=$C9E2. | ||
848C | LD DE,$C9E2 | |||
848F | CALL ThreeByteCopy | |||
8492 | POP DE | Restore DE and IX from the stack. | ||
8493 | POP IX | |||
8495 | JP $82B3 | Jump to 82B3. | ||
Load Block
|
||||
LoadBlock | 8498 | CALL $0556 | Call LD_BYTES. | |
849B | RET C | Return if the carry flag is set. | ||
849C | LD A,$01 | Write $01 to WaitCoutdown. | ||
849E | LD ($B701),A | |||
84A1 | LD HL,$B357 | HL="tape error - hit any key to restart program[0x15]" | ||
84A4 | CALL PrintMsg | Call PrintMsg. | ||
LoadBlock_Loop | 84A7 | XOR A | Read from the keyboard port. | |
84A8 | IN A,($FE) | |||
84AA | AND %00011111 | A pressed key from any line will set its respective bit; bit 0 (outer key) to bit 4 (inner key). Hence keep only bits 0-4 for the check. | ||
84AC | CP $1F | Loop back to LoadBlock_Loop until any key has been pressed. | ||
84AE | JR Z,LoadBlock_Loop | |||
84B0 | JP ReStart | Jump to ReStart. |
Prev: 83EF | Up: Map | Next: 84B3 |