Author Topic: HDOS drivers for SymbiFace-II/X-MASS  (Read 13575 times)

0 Members and 1 Guest are viewing this topic.

Offline Executioner

  • Supporter
  • 6128 Plus
  • *
  • Posts: 785
  • Country: au
  • WinAPE Developer
    • WinAPE
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #50 on: 10:16, 10 April 16 »
With the differences in the emulation to the hardware, i will continue with WinAPE, however I have been assisted by audronic and it seems X-MASS does not play ball either.

The WinAPE emulation was developed to work with the SymbOS code originally. If there's something not emulated correctly that needs to be, let me know.
like
0
No reactions

Offline rpalmer

  • 6128 Plus
  • ******
  • Posts: 574
  • Country: au
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #51 on: 15:37, 10 April 16 »
Executioner,

The basic issue i have found is that the if the symbiface-II emulation matches the real hardware then the real Hardware is also faulty (as by comments stating that the real hardware does not match WinAPE developed version of software).

The protocol for PIO mode is shown on Page 260 and 264 of the previously attached ATA specification. it basically should be

Wait for current device to not be busy (BSY=0)
Select new device (master/slave)
Wait for selected device to not be busy and ready (BSY=0/RDY=1)*
Issue command parameters
Issue command
wait for 'Data Request' (BSY=0/DRQ=1)
send/receive data
check if communication error
if error then exit with error
exit with no error

* is where the interface issue appears to be (sometimes BSY = 1)

Assuming only 1 sector is requested to be processed.

The other thing i found is the command (&EC) to get device geometry appears to not work and this makes the all software reliant on the media being preformatted to have the geometry within key parts of the first sector (e.g MBR or Boot Sector).

The other thing i noticed in the wiki S/W is that writing to the device is doing 'INC B' followed by 'OUTI', yet to read its 'INI' followed by 'INC B'. Why is this so, since for write the 'INC B' no longer point to the 'Data Register' for I/O when 'OUTI" is executed.

rpalmer
like
0
No reactions

Offline rpalmer

  • 6128 Plus
  • ******
  • Posts: 574
  • Country: au
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #52 on: 15:46, 10 April 16 »
"The basic issue i have found is that the if the symbiface-II emulation matches the real hardware then the real Hardware is also faulty (as by comments stating that the real hardware does not match WinAPE developed version of software)."

I should have said

The basic issue i have found is that the if the symbiface-II emulation matches the real hardware then the real Hardware is also faulty (as by comments stating that the real hardware does not match WinAPE developed version of software according to ATA standards).

rpalmer
like
0
No reactions

Offline HAL 6128

  • 6128 Plus
  • ******
  • Posts: 548
  • Country: de
    • index.php?action=treasury
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #53 on: 16:33, 10 April 16 »
I wouldn't say faulty, more it follows a pragmatic and CPC oriented approach. Therefore a lot of ATA stuff is not necessary. Real hardware with its IDE Controller instaed yes but without necessity / usability.
What I have read in the forum is that Prodatron programed the basic drivers for SymbOS on real hardware (a Symbiface), the rest (most stuff) was written with WinApe Assembler.
« Last Edit: 16:59, 10 April 16 by HAL 6128 »
like
0
No reactions
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

Offline netmercer

  • CPC464
  • **
  • Posts: 47
  • Country: de
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #54 on: 18:46, 10 April 16 »

The other thing i noticed in the wiki S/W is that writing to the device is doing 'INC B' followed by 'OUTI', yet to read its 'INI' followed by 'INC B'. Why is this so, since for write the 'INC B' no longer point to the 'Data Register' for I/O when 'OUTI" is executed.

rpalmer

Hi,
the reason for this behavior is the microcode of the "OUTI" and "INI" instruction inside the Z80. In both cases register B is originally allotted to serve as counter, not as address register.
In the case of "OUTI" the Z80 first decrements B and puts the contents of 16Bit-register BC on the address bus afterwards. Therefore you have to increment B before "OUTI".
In the case of "INI" the Z80 first puts the contents of 16Bit-register BC on the address bus and decrements B afterwards. That's all.



like
0
No reactions

Offline rpalmer

  • 6128 Plus
  • ******
  • Posts: 574
  • Country: au
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #55 on: 23:37, 10 April 16 »
netmercer,

The OUTI microcode actually outputs data to the port first the decrements both B followed by incrementing  HL (see Z80 doco attached).

rpalmer
like
0
No reactions

Offline rpalmer

  • 6128 Plus
  • ******
  • Posts: 574
  • Country: au
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #56 on: 23:48, 10 April 16 »
netmercer,

I just found doco to support your statement, I was WRONG I assume what i posted was the correct understanding of the OUTI instruction according to symbolic description.

rpalmer
like
0
No reactions

Offline gerald

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.582
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #57 on: 08:17, 11 April 16 »
We already discussed that a while ago :
Z80 Documentation Errors
like
0
No reactions

Offline rpalmer

  • 6128 Plus
  • ******
  • Posts: 574
  • Country: au
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #58 on: 15:44, 11 April 16 »
gerald,

Yes I agree it was put to rest and yes I AGREE I GOT IT WRONG and have learn my ways on this issue.

But as for the SF2 issues between WinAPE and the real deal, it is difficult to articulate the problem(s) with out the real deal to compare against. This is why I would like as many people as possible to try the drivers and test software to see if I can make a version work in WinAPE and on the real kit.

rpalmer
like
0
No reactions

Offline Executioner

  • Supporter
  • 6128 Plus
  • *
  • Posts: 785
  • Country: au
  • WinAPE Developer
    • WinAPE
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #59 on: 01:27, 24 April 16 »
Wait for current device to not be busy (BSY=0)
Select new device (master/slave)
Wait for selected device to not be busy and ready (BSY=0/RDY=1)*
Issue command parameters
Issue command

What does "Select new device (master/slave)" entail? Sending which commands? I can't see any obvious code leaving BSY=1
like
0
No reactions

Offline rpalmer

  • 6128 Plus
  • ******
  • Posts: 574
  • Country: au
    • Awards
Re: HDOS drivers for SymbiFace-II/X-MASS
« Reply #60 on: 00:08, 25 April 16 »
executioner,

see attatched driver for SF2 (routine: SF2_SendCommand).

rpalmer
like
0
No reactions