FDD Support Based on ao486 Implementation
-
- Top Contributor
- Posts: 401
- Joined: Wed May 18, 2022 11:20 am
- Has thanked: 127 times
- Been thanked: 412 times
- spark2k06
- Core Developer
- Posts: 872
- Joined: Sat Jun 06, 2020 9:05 am
- Has thanked: 409 times
- Been thanked: 963 times
Re: FDD Support Based on ao486 Implementation
As kitune-san says, the last microcode change that solves the problem of the state of the carry flag in NOT instructions, makes the loading of some floppies fail, in any BIOS... curiously the loading of operating systems fails, but only in the floppy version and also, curiously, it can load floppies of PC Booter type games... let's see if we can find out the cause:MicroCoreLabs wrote:
https://github.com/MiSTer-devel/PCXT_Mi ... 7f311765b2
- spark2k06
- Core Developer
- Posts: 872
- Joined: Sat Jun 06, 2020 9:05 am
- Has thanked: 409 times
- Been thanked: 963 times
Re: FDD Support Based on ao486 Implementation
With this microcode change, what has happened is that TEST_FX.COM now fails:spark2k06 wrote: ↑Sun Oct 30, 2022 2:15 pmAs kitune-san says, the last microcode change that solves the problem of the state of the carry flag in NOT instructions, makes the loading of some floppies fail, in any BIOS... curiously the loading of operating systems fails, but only in the floppy version and also, curiously, it can load floppies of PC Booter type games... let's see if we can find out the cause:MicroCoreLabs wrote:
https://github.com/MiSTer-devel/PCXT_Mi ... 7f311765b2
-
- Top Contributor
- Posts: 401
- Joined: Wed May 18, 2022 11:20 am
- Has thanked: 127 times
- Been thanked: 412 times
Re: FDD Support Based on ao486 Implementation
- Attachments
-
- PCXT.zip
- (1.21 MiB) Downloaded 223 times
- spark2k06
- Core Developer
- Posts: 872
- Joined: Sat Jun 06, 2020 9:05 am
- Has thanked: 409 times
- Been thanked: 963 times
Re: FDD Support Based on ao486 Implementation
FDD problem solved and passes all MCL86 tests, KEYB fails again
-
- Top Contributor
- Posts: 401
- Joined: Wed May 18, 2022 11:20 am
- Has thanked: 127 times
- Been thanked: 412 times
Re: FDD Support Based on ao486 Implementation
Really? Maybe I sent the wrong one?
-
- Top Contributor
- Posts: 401
- Joined: Wed May 18, 2022 11:20 am
- Has thanked: 127 times
- Been thanked: 412 times
Re: FDD Support Based on ao486 Implementation
https://github.com/kitune-san/PCXT_MiST ... 461649593b
The OF CF is cleared immediately before the DIV / IDIV / MUL /IMUL instruction.
- spark2k06
- Core Developer
- Posts: 872
- Joined: Sat Jun 06, 2020 9:05 am
- Has thanked: 409 times
- Been thanked: 963 times
Re: FDD Support Based on ao486 Implementation
Sorry, it's all right now.kitune-san wrote: ↑Sun Oct 30, 2022 3:30 pm Changes are as follows:
https://github.com/kitune-san/PCXT_MiST ... 461649593b
The OF CF is cleared immediately before the DIV / IDIV / MUL /IMUL instruction.
I had tried with a KEYB that I modified to make it fail... nothing, forget it. Make me a pull request
-
- Top Contributor
- Posts: 401
- Joined: Wed May 18, 2022 11:20 am
- Has thanked: 127 times
- Been thanked: 412 times
- spark2k06
- Core Developer
- Posts: 872
- Joined: Sat Jun 06, 2020 9:05 am
- Has thanked: 409 times
- Been thanked: 963 times
-
- Core Developer
- Posts: 96
- Joined: Sun Jun 05, 2022 6:12 pm
- Location: California
- Has thanked: 6 times
- Been thanked: 86 times
- Contact:
Re: FDD Support Based on ao486 Implementation
I will update the microcode ASAP. IDIV is easy because the first microcode instruction is currently a NOP which can easily be changed to the CF/OV clear instruction. DIV will be a bit harder are there are no gaps to insert the CF/OV flag clearing microcode.
- spark2k06
- Core Developer
- Posts: 872
- Joined: Sat Jun 06, 2020 9:05 am
- Has thanked: 409 times
- Been thanked: 963 times
Re: FDD Support Based on ao486 Implementation
Ok, I will wait for your solution before sending the release update.MicroCoreLabs wrote: ↑Sun Oct 30, 2022 6:26 pm I now see that the CF/OV flags are used by iDIV and DIV so need to be cleared. IMUL and MUL clears these flags in the microcode so no changes are needed.
I will update the microcode ASAP. IDIV is easy because the first microcode instruction is currently a NOP which can easily be changed to the CF/OV clear instruction. DIV will be a bit harder are there are no gaps to insert the CF/OV flag clearing microcode.
-
- Core Developer
- Posts: 96
- Joined: Sun Jun 05, 2022 6:12 pm
- Location: California
- Has thanked: 6 times
- Been thanked: 86 times
- Contact:
Re: FDD Support Based on ao486 Implementation
- spark2k06
- Core Developer
- Posts: 872
- Joined: Sat Jun 06, 2020 9:05 am
- Has thanked: 409 times
- Been thanked: 963 times
Re: FDD Support Based on ao486 Implementation
It works properly, thank you! I have already sent an update to everyone.MicroCoreLabs wrote: ↑Sun Oct 30, 2022 9:00 pm The updated microcode has been uploaded to my GitHub repository. Please let me know how it works!
-
- Top Contributor
- Posts: 401
- Joined: Wed May 18, 2022 11:20 am
- Has thanked: 127 times
- Been thanked: 412 times
Re: FDD Support Based on ao486 Implementation
https://forum.vcfed.org/index.php?threa ... ions.9694/
According to this information, 740k and 1.2M FDDs are supported from a certain version of BIOS or later.
I only have the '82 BIOS (T1501512).
However, if anyone has an '86 BIOS, that might be worth a try.
-
- Top Contributor
- Posts: 1911
- Joined: Wed May 27, 2020 1:59 pm
- Has thanked: 145 times
- Been thanked: 454 times
Re: FDD Support Based on ao486 Implementation
Here are various version, including the 86 version, but in source code. You have to build them.
https://github.com/Gawlas/IBM-PC-BIOS
-
- Top Contributor
- Posts: 1911
- Joined: Wed May 27, 2020 1:59 pm
- Has thanked: 145 times
- Been thanked: 454 times
Re: FDD Support Based on ao486 Implementation
I found the 86 version, it comes in U18 and U19 BIN files. I got the 09 MAY 86 version as it corrects some bugs, including the handling of the extended KB. First I did a binary copy of U18+U19 but I had my suspicions.
I looked into the repo to see how the IBM BIOS was built and I had 2 surprises:
It comes from the same site where I found mine (https://www.minuszerodegrees.net/bios/bios.htm)
The binary copy has to be U19+U18.
I will test it during lunch time.
-
- Top Contributor
- Posts: 1911
- Joined: Wed May 27, 2020 1:59 pm
- Has thanked: 145 times
- Been thanked: 454 times
Re: FDD Support Based on ao486 Implementation
IBM BIOS MAY 86 quick and dirty first impressions:
It supports the extended KB.
It reads 360K and 720K floppies.
It does not like 1.2M floppies: Scandisk fails.
-
- Top Contributor
- Posts: 468
- Joined: Sun May 24, 2020 7:17 pm
- Has thanked: 35 times
- Been thanked: 99 times
Re: FDD Support Based on ao486 Implementation
checkit 3 return a 720ko 3"1/2 floppy with 86 bios
-
- Posts: 8
- Joined: Sun May 24, 2020 7:21 pm
- Been thanked: 1 time
Re: FDD Support Based on ao486 Implementation
hello chaps
im finding that loading any good image as drive b: doesnt appear instead when i select drive b at the dos prompt it tells me to insert disc for drive b and press enter.
doing so gives me the B prompt but a dir actually still lists drive a:
drive b just doesnt seem to be accessible
-
- Top Contributor
- Posts: 1911
- Joined: Wed May 27, 2020 1:59 pm
- Has thanked: 145 times
- Been thanked: 454 times
Re: FDD Support Based on ao486 Implementation
You are right: 1 floppy in A, 1 floppy in B. DIR B: asks to place a floppy in B and list the floppy in A.
I unmounted the floppy in A and DIR B: fails with drive B not ready.
-
- Top Contributor
- Posts: 1911
- Joined: Wed May 27, 2020 1:59 pm
- Has thanked: 145 times
- Been thanked: 454 times
Re: FDD Support Based on ao486 Implementation
I remember that on AO486 under Win95 the B drive did not work but worked on MSDOS. I just tested it under MSDOS and it works. I could not try on Win95: I did not use AO486 in a very, very long time and my WinXX VHDs do not boot any longer.
Edit: I found a Win98 VHD: A and B work properly.
EDIT2: I managed to start Win95: Safe Mode, Scandisk, restart and now it is OK. Drive A and B are OK. The problem with drive B was a long time ago and I did not remember that it had been fixed.
- spark2k06
- Core Developer
- Posts: 872
- Joined: Sat Jun 06, 2020 9:05 am
- Has thanked: 409 times
- Been thanked: 963 times
Re: FDD Support Based on ao486 Implementation
It seems to depend on the way the controller is implemented (which, remember, is inherited from ao486), and its compatibility with the BIOS used. From the checks I have been able to make:
-
With the BIOS JukoST, micro8088... as well as Tandy 1000, the two floppy drives are recognised and you can work with them without problems.
-
With the original BIOS by IBM, GlaBios, as well as pcxt31 by Ya`akov Miles, only one unit is recognised, and therefore, if you try to use B:, you actually use the only unit that is recognised. Moreover, with the latter (pcxt31), not even a DIR works.
In short, the way the controller is implemented, the recognition of the two units and its proper functioning or compatibility with different storage capacities depends on the BIOS used.
-
- Top Contributor
- Posts: 1911
- Joined: Wed May 27, 2020 1:59 pm
- Has thanked: 145 times
- Been thanked: 454 times
Re: FDD Support Based on ao486 Implementation
WARNING WARNING!
Following the post by @spark2k06 I decided to make some test and discovered by chance a problem with BIOSes "supporting" different floppy sizes:
micro8088 supports 1.44M floppies, it can also read/write 720K floppies and 360K floppies It can only format 1.44M floppies.
IBM-5160-V3 should support 360K and 1.2M floppies, in reality can only read/write 360K and 720K floppies. It can only format 720K floppies.
The floppy controller inherited from ao486 is indeed a strange beast.
-
- Posts: 8
- Joined: Sun May 24, 2020 7:21 pm
- Been thanked: 1 time
Re: FDD Support Based on ao486 Implementation
spark2k06 wrote: ↑Sat Dec 17, 2022 7:38 amIt seems to depend on the way the controller is implemented (which, remember, is inherited from ao486), and its compatibility with the BIOS used. From the checks I have been able to make:
With the BIOS JukoST, micro8088... as well as Tandy 1000, the two floppy drives are recognised and you can work with them without problems.
With the original BIOS by IBM, GlaBios, as well as pcxt31 by Ya`akov Miles, only one unit is recognised, and therefore, if you try to use B:, you actually use the only unit that is recognised. Moreover, with the latter (pcxt31), not even a DIR works.
In short, the way the controller is implemented, the recognition of the two units and its proper functioning or compatibility with different storage capacities depends on the BIOS used.
Thanks for the explanation, I feel however that as the core is based on the PC XT and Tandy 1000 that it would be nice to stick with the original BIOS files to get both both drives working.. there is a lot of software out there spread over 2 floppy images.
Thanks BTW for all your hard work with this core, its actually one of my favourites on the Mister
- Newsdee
- Top Contributor
- Posts: 870
- Joined: Mon May 25, 2020 1:07 am
- Has thanked: 103 times
- Been thanked: 239 times
Re: FDD Support Based on ao486 Implementation
TheCorfiot wrote: ↑Mon Dec 26, 2022 10:33 amit would be nice to stick with the original BIOS files to get both both drives working.. there is a lot of software out there spread over 2 floppy images.
Is there any game that requires 2 floppies to work?
Some BIOS limitations are due to the original hardware they were designed for; not an issue of the core per se.
When I'm not sure, I mount a vhd in ao486 to perform any installations, then switch back to PCXT to play.
in Tandy mode.
-
- Top Contributor
- Posts: 552
- Joined: Sun May 24, 2020 8:07 pm
- Has thanked: 185 times
- Been thanked: 310 times
- Contact:
Re: FDD Support Based on ao486 Implementation
you could always include the second floppy in the vhd in a folder like flppy2 and then in the autoexec put "SUBST B: C:\FLPPY2". That should work 99% of the time.
- spark2k06
- Core Developer
- Posts: 872
- Joined: Sat Jun 06, 2020 9:05 am
- Has thanked: 409 times
- Been thanked: 963 times
Re: FDD Support Based on ao486 Implementation
I noticed that in the GlaBIOS repository someone has requested support for 1.44Mb drive, as it currently works on micro8088:
https://github.com/640-KB/GLaBIOS/issue ... 1367689560
As suggested at the moment, you can also use XBIOS to have that support in any other BIOS:
-
- Top Contributor
- Posts: 401
- Joined: Wed May 18, 2022 11:20 am
- Has thanked: 127 times
- Been thanked: 412 times
Re: FDD Support Based on ao486 Implementation
FDD does not work properly when using 8086bios with PCXT_20230120.rbf or later release versions.
The point of change from PCXT_20230114 to PCXT_20230120 should be investigated.
UPDATE:
This issue seems to have occurred since commit c063a5635c7137a9b495f2f54237e53b31093ef1.
https://github.com/MiSTer-devel/PCXT_Mi ... 3b31093ef1
-
- Top Contributor
- Posts: 401
- Joined: Wed May 18, 2022 11:20 am
- Has thanked: 127 times
- Been thanked: 412 times
Re: FDD Support Based on ao486 Implementation
kitune-san wrote: ↑Sun Apr 30, 2023 12:46 pmFDD does not work properly when using 8086bios with PCXT_20230120.rbf or later release versions.
The point of change from PCXT_20230114 to PCXT_20230120 should be investigated.UPDATE:
This issue seems to have occurred since commit c063a5635c7137a9b495f2f54237e53b31093ef1.
https://github.com/MiSTer-devel/PCXT_Mi ... 3b31093ef1
I am not sure why, but I set Hercules Graphics to "No" and it (DOS setup) works now.