| 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 |