• Please review our updated Terms and Rules here

ISA USB board

Ah, they did get garbled!

Ok, I think I've got good v87 and v94 roms both burned to 8k Eproms,

build2.jpg

With both of these, I don't get the ROM ERROR on the 5160, however after the memory count nothing gets printed on screen except a flashing cursor, then after about 10 seconds it drops into IBM Basic.

I tried them in my 286 and I get a bit further with both roms, but it just locks up after printing the ROMSEG. Any ideas?

boot2.jpg

The original rom seems to work fine, although I still have the issue with the CHS values,

orig2.jpg

Roms and asm files attached..
 

Attachments

  • v87_v94_Ok.zip
    38 KB · Views: 15
Success!

There seems to be an issue in the CPU detection code that my 286 doesn't like, so just hardcoded it to the 186 code path and...

94b2.jpg

Speed seems good!

disktest.jpg

There was a second problem, which is my CF/USB adapter doesn't get on with this board and I had to switched to an SD card adapter. Even the original bios now boots with the 504mb image (CHS 1023/16/63).

old.jpg


Will build a hard-coded 8088 version of the rom, and compare speeds 88/286 to the v22 FreddyV drivers and report back...
 
I'm intrigued as to what about the detection code could cause a lock/branch to nowhere/etc. It's definitely a "I haven't seen it before" error, but I don't really have a great way to test on a bigger machine. I hacked up my card with a ROM socket, and I don't know exactly how much Varta damage my old 286 mainboard took before I snipped it off.

It does two tests: checking if multiplying sets the zero flag (for the V20) and checking if writing a word to offset FFFF wraps around to 0000 (for the 186). The first test is register-only, and the second one writes to segment 0x2000/2001, so it should be in the range 128k-192k, which I'd expect to be safely above critical resources in the bottom 64k. I wonder if your BIOS happens to place some scratch-pad value there that gets clobbered (i. e. if it happened to leave the stack segment at 0x2000 during the POST process)

Maybe try changing the "0x2000" and "0x2001" stuff in the GET_VECTOR_FOR_CPU code block
 
Last edited:
To have the Driver working on a 286, I had to add a delay for all the command returning a value (To let the time for the CH375 to answer)
I am not sure I have seen it in the new BIOS, so be carefull on a 286.
I suppose that yes, the BIOS was not heavily tested on 286 and more.

My driver work on 386/486 (the "2863 version with the delay)
 
I played around with different memory locations 0x2001, 0x3001 etc, but any write into memory causes a lockup. I found an alternate code snippet to detect an 8086 and this seems to work fine, so the following correctly selects 86/186 paths on my 8088 and 286 accordingly.

Code:
GET_VECTOR_FOR_CPU:
; V20/30/40 will not set the zero flag on multiply.  Treat as 186
    XOR AL, AL
    MOV AL, 0x40
    MUL AL
    JZ .HAS_186

    MOV CX,0x0121             ; If CH can be shifted by 21h,
    SHL CH,CL                 ; then it's an 8086, because
    JNE .HAS_186              ; a 186+ limits shift counts.

    MOV DX, INT13_8086      ; Worst case, assume 8086
    JMP .CPU_DECIDED
.HAS_186:
    MOV DX, INT13
    JMP .CPU_DECIDED
.CPU_DECIDED:
    RET

I thought some Disktest comparisons might be interesting. These were all with the same 16mb compact flash card (only this card works with the built-in IDE/BIOS on the 286).

286.JPG

Then same CF card but on my IBM 5160,

88.JPG
 
Last edited:
Strange that the BIOS is so low compared to my driver, it is supposed to be the same code, so you may not have the latest BIOS.

There are still stuff I need to add in the driver, as it Show the full Disk to the system whatever DOS is there.
i planned to detect the file system and do a warning or refuse to load if not correct (Like FAT16 on DOS 2 or 3, FAT16>400Mb on DOS 3.31)
also enter the partition number to load (1st one, 2nd...)
 
There are still stuff I need to add in the driver, as it Show the full Disk to the system whatever DOS is there.
i planned to detect the file system and do a warning or refuse to load if not correct (Like FAT16 on DOS 2 or 3, FAT16>400Mb on DOS 3.31)
also enter the partition number to load (1st one, 2nd...)
Excellent :)
 
@th3bar0n: I swapped in detection code similar to your suggestion. Seems to be able to differentiate 8088 from V40, at least. :) Otherwise, nothing much to blog home about.
 
Strange that the BIOS is so low compared to my driver, it is supposed to be the same code, so you may not have the latest BIOS.
If the BIOS code is running from an 8-bit ROM, without shadowing etc., this could explain some difference.
 
Just a reorganization, no meaningful code changes: I've set up a separate repository for the CH375/6 BIOS with dedicated build directions and documentation, to make it a little more accessible for people who don't want a random XT clone BIOS with it. https://gitlab.com/hakfoo1/ch37x-bios. The canned image is still configured for the peculiarities of the Homebrew8088 board by default.
 
Just a reorganization, no meaningful code changes: I've set up a separate repository for the CH375/6 BIOS with dedicated build directions and documentation, to make it a little more accessible for people who don't want a random XT clone BIOS with it. https://gitlab.com/hakfoo1/ch37x-bios. The canned image is still configured for the peculiarities of the Homebrew8088 board by default.
Cool
 
Is anyone working on a new ISA - USB controller PCB ??, This seem's to have stalled again :-(
 
Is anyone working on a new ISA - USB controller PCB ??, This seem's to have stalled again :-(
I have some PCB, but did not even solder them.
I work on my PicoMEM Board that is supposed to be much better, so I focus on it :)

 
I have some PCB, but did not even solder them.
I work on my PicoMEM Board that is supposed to be much better, so I focus on it :)
I started wiring one up using proto board a long time ago, I will have to find it and finish it and see if it works, I want 3 or 4 for my other IBM's.
 
@Malc - I've done two - an updated version of my single-port small card and a 'full feature' dual-port card. Both are based on the '376.

There is quite a lot of logic on the dual-port "twincharger" card which makes it relatively expensive (maybe USD 100). It's in discrete logic as I'm always concerned about programmable logic designs eternally playing catch up to the market changing (as happened with the Xilinx stuff some years ago). Plus, I just like making them that way. I need to run a short batch to test the market.

1670230088640.png

I also have a designed a 'zero-slot' USB adapter for AT class machines.

As always, life gets in the way of these things but I do want to get these to short-run stage very soon.
 
Oh eck, $100 is out of my price range, Way out if they are only available from the US, What's the estimate on the single port card ?
 
@Malc - I've done two - an updated version of my single-port small card and a 'full feature' dual-port card. Both are based on the '376.

There is quite a lot of logic on the dual-port "twincharger" card which makes it relatively expensive (maybe USD 100). It's in discrete logic as I'm always concerned about programmable logic designs eternally playing catch up to the market changing (as happened with the Xilinx stuff some years ago). Plus, I just like making them that way. I need to run a short batch to test the market.

View attachment 1249588

I also have a designed a 'zero-slot' USB adapter for AT class machines.

As always, life gets in the way of these things but I do want to get these to short-run stage very soon.
Hi,

Even if not supported by "my driver", It can be nice to use the CH376.
I don't see the ROM slot, it is not planned ?
Have you seen what I posted regarded myPicoMEM Project on twiter ?
 
Looks good @FreddyV - considerably more oomph on the storage board than the system it’s serving I’m sure!

@Malc Ive not costed up the single slot but it will be about the same as the first one. The challenge still comes back to the bracket.

The ROM I have moved to a PLCC btw.
 
Ive not costed up the single slot but it will be about the same as the first one. The challenge still comes back to the bracket.
The single port card needs a bracket, The insertion and removal of flash drives multiple times can result in the card working it's way out of the ISA slot, I use a USB extension cable with mine and just plug the drive into the cable, This also helps with less wear to the USB port and the weight of the Flash drive is not hanging off the USB port.
 
Back
Top