tom-seddon / acorn_mos_disassembly

WIP disassembly of Acorn MOS, operating system for Acorn's 8-bit Master series

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

3.50 language copy code could be improved

tom-seddon opened this issue · comments

Timings taken on Master Turbo.

*BASIC on MOS 3.20: ~0.22 seconds
*BASIC (which, for whatever reason, skips the relocation step) on MOS 3.50: ~0.41 seconds
*FX142 12 on MOS 3.50: ~0.60 seconds

Issues with the MOS 3.50 code:

  1. it doesn't have a MOS 3.20-style fast path for the case where there's no relocation data
  2. it copies relocated ROM data to an intermediate buffer, then sends that using the Tube pagewise transfer mode. But since it's only doing 256 bytes at a time, surely it could just use the Tube pagewise transfer mode directly!
  3. the relocation code could be improved a bit if it could be copied to RAM, permitting some self-modification (there's space in page 7 if not buffering the result...), and if it could assume the language ROM definitely needs relocating

Eked out a bit more speed - much better. The non-relocating case is as fast as MOS 3.20, and the relocating case is ~0.4 seconds. Possibly a bit more to be eked out, if it ends up still annoying me.