Technician Ted | Routines |
Prev: 5F29 | Up: Map | Next: 5F93 |
Used by the routine at 5F15.
|
||||
5F38 | LD HL,$5FAB | Fill memory with hashes from 5FAB up to the top of RAM | ||
5F3B | LD BC,$A059 | |||
5F3E | LD SP,$5C00 | Put the stack somewhere safe | ||
5F41 | LD A,($5FA8) | Get the next hash byte | ||
5F44 | LD D,A | |||
5F45 | LD E,$0B | |||
5F47 | LD A,D | |||
5F48 | ADD A,A | Shift left 4 times | ||
5F49 | ADD A,A | |||
5F4A | ADD A,A | |||
5F4B | ADD A,A | |||
5F4C | ADD A,D | Add the other values | ||
5F4D | ADD A,E | |||
5F4E | LD D,A | Store for next iteration | ||
5F4F | LD (HL),A | Store next hash byte | ||
5F50 | INC HL | Onto the next address | ||
5F51 | DEC BC | |||
5F52 | LD A,B | All done yet? | ||
5F53 | OR C | |||
5F54 | JR NZ,$5F47 | No, loop back round again | ||
5F56 | CALL $5F93 | Get another hash byte | ||
5F59 | CALL $5D80 | Scroll the main game message across screen | ||
5F5C | LD A,($6066) | Store an address from the memory hash in HL (8000) | ||
5F5F | LD L,A | |||
5F60 | LD A,($60E6) | |||
5F63 | LD H,A | |||
5F64 | PUSH HL | Remember this | ||
5F65 | LD A,($FC4F) | Store an address from the memory hash in DE (03C3) | ||
5F68 | LD E,A | |||
5F69 | LD A,($600F) | |||
5F6C | LD D,A | |||
5F6D | POP IX | Restore $8000 into IX - start of memory block | ||
5F6F | SCF | Set LOAD, not VERIFY | ||
5F70 | LD A,$FF | Standard value for a headerless block | ||
5F72 | INC D | Reset the zero flag and swap AF | ||
5F73 | EX AF,AF' | |||
5F74 | DEC D | |||
5F75 | LD A,($6366) | Store an address from the memory hash in HL (8000) | ||
5F78 | LD L,A | |||
5F79 | LD A,($63E6) | |||
5F7C | LD H,A | |||
5F7D | PUSH HL | Remember this - this is the entry point for the next bit of the loader | ||
5F7E | IN A,($FE) | Read the EAR flag | ||
5F80 | RRA | |||
5F81 | AND $20 | |||
5F83 | OR $01 | Set the border colour to blue. This will create blue + yellow borders when loading | ||
5F85 | LD C,A | |||
5F86 | CP A | Set the zero flag | ||
5F87 | PUSH AF | Store an address from the memory hash in HL (056B) | ||
5F88 | LD A,($6587) | |||
5F8B | LD L,A | |||
5F8C | LD A,($6485) | |||
5F8F | LD H,A | |||
5F90 | POP AF | |||
5F91 | PUSH HL | Jump to 056B - this is near the start of the ROM LD-BYTES routine, but past setting the initial border (which is done above). Control returns to 8000 when the first headerless block has loaded. | ||
5F92 | RET |
Prev: 5F29 | Up: Map | Next: 5F93 |