Setting active ROM vs. Choosing ROM at boot with ESC
Publicado: 23 Dic 2017, 23:53
I've noticed an odd quirk.
I'm fiddling with a TR-DOS app on the Pentagon 128 ROM. I have a TRD disk with a basic "boot" loader that runs an asm menu. Picking one of the menu options makes some TR-DOS $3D13 calls - a $12 delete, a $0B save and a bunch of $0E loads. The loads run in a loop from Bank 7 with interrupts disabled throughout. After each one they call an initialialiser in the code that's just been loaded, which does a bank switch, copies it somewhere else, switches back to back 7 then carries on with the loop.
When I have Pentagon set as the active ROM in the Uno BIOS, everything works as expected.
When I have ZX Spectrum +2 set as the active ROM, then use ESC during the boot sequence to switch to the Pentagon 128 ROM, My program fails during one of the $3D13 load calls. I'm not quite sure yet what fails. It probably tries to jump to an initialiser routine that didn't get loaded. I need to find a way of debugging this further I guess.
Is there any obvious reason why using ESC during the boot sequence would cause things to behave differently?
Here for what it's worth, is the .TRD image. To reproduce: boot the image with exsDOS, wait for the animated menu to appear, then press "0". When it works, the border alternates between green and black when the progress bar reaches 100%. When it fails, it hangs without the green and black border.
Thanks! Robin
I'm fiddling with a TR-DOS app on the Pentagon 128 ROM. I have a TRD disk with a basic "boot" loader that runs an asm menu. Picking one of the menu options makes some TR-DOS $3D13 calls - a $12 delete, a $0B save and a bunch of $0E loads. The loads run in a loop from Bank 7 with interrupts disabled throughout. After each one they call an initialialiser in the code that's just been loaded, which does a bank switch, copies it somewhere else, switches back to back 7 then carries on with the loop.
When I have Pentagon set as the active ROM in the Uno BIOS, everything works as expected.
When I have ZX Spectrum +2 set as the active ROM, then use ESC during the boot sequence to switch to the Pentagon 128 ROM, My program fails during one of the $3D13 load calls. I'm not quite sure yet what fails. It probably tries to jump to an initialiser routine that didn't get loaded. I need to find a way of debugging this further I guess.
Is there any obvious reason why using ESC during the boot sequence would cause things to behave differently?
Here for what it's worth, is the .TRD image. To reproduce: boot the image with exsDOS, wait for the animated menu to appear, then press "0". When it works, the border alternates between green and black when the progress bar reaches 100%. When it fails, it hangs without the green and black border.
Thanks! Robin