Page 1 of 5
Salora Manager Disk ROM
Posted: Sun Jan 10, 2016 5:43 pm
by @username@
Initial ROM Binary
Having entered the screenshots three times now - I am confident that is is a good image to start from.
The ROM is mapped to $1200 through $1FFF, then from $2100 through $21FF,
The attached image is linear - so it includes 256 null bytes at $2000.
I/O Ports appear to be mapped at $11xx.
Re: Salora Manager Disk ROM
Posted: Sun Jan 10, 2016 5:52 pm
by @username@
Initialisation
The ROM is called from BIOS through an indirect jump to $18E0, which is the word located at $2FFE.
Trace
$18E0 - Clear memory from $4400 to $4FFF
$191D - Copy 43 bytes from $25BC to $4C67 (Section 1)
$1928 - Write 60 bytes of $5E to $4C8D
$1932 - Copy 13 bytes from $2EB7 to $4CCD (Section 2)
$193D - Copy 6 bytes from $2ED9 to $4CD8 (Section 3)
$1948 - Store $7A to $4D01
$194D - Copy 8 bytes from $2EDF to $4D0A (Section 4)
$1958 - Copy 18 bytes from $2EE7 to $4EDA (Section 5)
$1963 - Store 2 to $4EF4
$1968 - Copy 4 bytes from $2EF9 to $4F16 (Section 6)
$1973 - Copy 19 bytes from $2F9B to $4F1B (Section 7)
$19D6 - Hook BASIC ROM at $36 and $38
$1A0B - Back to BASIC initialisation at $E23A ($19D0)
Attached is the binary image of memory, after initialisation, at $4400.
Re: Salora Manager Disk ROM
Posted: Sun Jan 10, 2016 6:00 pm
by @username@
Commented disassembly 10 January 2016
Although far from complete, this static disassembly listing has some good pointers to each command function,
Re: Salora Manager Disk ROM
Posted: Mon Jan 11, 2016 10:49 am
by Mobsie
Top
Re: Salora Manager Disk ROM
Posted: Sat Jan 23, 2016 3:27 pm
by @username@
Some progress ...
Re: Salora Manager Disk ROM
Posted: Sat Jan 23, 2016 10:20 pm
by Scouter3d
Congratulations!
Re: Salora Manager Disk ROM
Posted: Sun Jan 24, 2016 1:23 pm
by @username@
Floppy Disk Format
This is an analysis of the formatting of track 0 on the floppy disk.
Most, if not all, has been "borrowed" from Woz's Apple DOS format.
The track header consists of 128 bytes of $FF - or all bits on.
Address Header
The address header for each sector, there are 14 per track (0-13), is constructed as
D5 AA 96 V1 V2 T1 T2 S1 S2 C1 C2 DE AA EB
This uses the GCR 4:4 encoding scheme. In the tests I have done, the volume seems to default to $FE.
4:4 is simply take the intial byte, shift the odd bits 1 to the right, and OR to $AA. Then write out the original byte, also OR'd to $AA. To reconstruct, just read the first byte, ROL then AND the second.
An actual header for Volume FE, Track 0, Sector 1 is
D5 AA 96 FF FE AA AA AA AB FF FF DE AA EB
Broken down this is
D5 AA 96 - Unique address header
FF FE - Volume number - (FF ROL) AND FE == FE
AA AA - Track number - (AA ROL) AND AA == 0
AA AB - Sector number (AA ROL) AND AB == 1
FF FF - Checksum (FF ROL) AND FF == FF (Volume XOR Track XOR Sector)
DE AA EB - End of stream tail
Data Header
The data header preceeds the GCR 6:2 encoded data, which needs 343 disk bytes used to encode 256 memory bytes.
D5 AA AD - Unique data header
343 bytes of 6:2 encoded data (the 6 and 2 write translation table of 64 bytes, can be found at memory offset $1465)
DE AA EB - End of stream tail
Attached is a binary image of the track 0 format.
Re: Salora Manager Disk ROM
Posted: Mon Jan 25, 2016 8:10 am
by MADrigal
Wow that's a big leap for emulating the Disk Drive properly!
I am wondering if you have any plans to develop a software to dump the commercial SM floppy diskettes?
Our largest Finnish contributor has a bunch of original SM floppy diskettes.
If you could provide him with a PC program to dump a SM dikette through a Commodore 1541 with USB connector, I would be happy to pay for the USB interface and have it shipped to him.
Then it would be a matter of time to have all the diskettes dumped and emulated properly
Re: Salora Manager Disk ROM
Posted: Mon Jan 25, 2016 8:11 am
by MADrigal
And oh, I have just got scans of 75% of the Salora DOS manual last night!
Well it's in Finnish, but I bet that it is still of some use to you guys.
I will do my best to post-process the scans ASAP and publish them here.
Re: Salora Manager Disk ROM
Posted: Mon Jan 25, 2016 6:18 pm
by @username@
Good news on the scans! More information is always better!
I am a long way off from having anything like emulation going ... there are 7 bits involved in controlling the drive, so far I know 2
The drive "controller" is select by the address bus when $11xx is asserted. The low byte holds the key to what the drive is doing.
For example, $8D, is an 8 bit write to the data port, $8C is always read. Quite clever really how it uses just address lines to control the drive.
So I still have the basics to work out, motor on/off, phase step etc - but will get there
I know there is a device, the FC5025, which claims to be able to read most old formats using a cheap 5.25" drive. It would be relatively easy to just patch the software to accommodate the SM - as they are the same as Apple 2 disks, just a different sector count.
In fact, the directory sector and bitmap are on track 17, sector 3 - same as AppleDOS 3.2 and up.
Maybe Tom has some ideas ....