Ian Collier wrote:
> Does the Amstrad DSK format not cover this?  (I don't actually
> know anything about it, except that it is more complicated than
> a straight dump of all the tracks on the disk.)

I've not found any official docs for it but I've flicked through the
comments in some ASM code that reads them, and it does seem to cover things
like unformatted tracks, but I didn't see anything for non-512 byte sectors.
I'll have a more thorough look for the format sometime. I'm not really up
enough on snazzy disk protection methods to understand what's needed as I
never bothered with them myself, so I'll have to have a play with some real
disk.

Can anyone recommend any demos or games that have use fairly non-standard
disk formats?


> Actually I think I just typed in what came into my head - I'm sure some of
> the flag calculations must be horribly inefficient.  Then again, there is
> no easy way to generate them unless you want to rely on the host
> cpu having similar flags which you can just copy.

I think there's at least one emulator that gets quite a speed boost from
doing just that. Unfortunately most ASM Z80 emulators can't cope with the
paged SAM memory layout without having to copy up to 32K around when the
paging ports are written to (which would probably be too slow if it was
frequent, even copying as QWORDs!). They do direct memory accesses on a
fixed 64K address range, which bypasses common (but slower) memory read and
write routines.

I was wondering whether the your current core would benefit from having the
register pairs in little endian order so HL can be accessed without shifting
and ORing the two 8-bit parts, so I might give that a try at some time - it
can conditionally be compiled as big endian for the platforms that need it.

I might experiment to see if anything else can be trimmed down, but I think
the video generation eats so much (especially when large portions of the
screen change frequently) that it's not worth spending too much time on it!

Si

Reply via email to