• Please review our updated Terms and Rules here

Assistance with assembly code for 5160 ROM

Yes, you can. GLaBIOS doesn't natively have high-density drive support (not really practical in an 8K BIOS ROM), however there are several options involving option ROMs or TSRs.

It will also require a high-density capable floppy controller as the standard IBM PC/XT Diskette adapter isn't capable of supporting HD drives and media. Controllers such as ISA FDC or Quad-Flop come with the option ROMs installed to enable support for HD floppy, GOTEK, etc.
The floppy drive controller I would use is the Tex Elec quad floppy controller. Two sets of sockets occupy the controller: an IDE pair and an edge connector similar to the IBM floppy controller included with the machine. There is a set of switches on the controller to set up addressing, along with an interrupt for the controller, connections, etc. There is a hidden ROM menu list within the controller system, which I have displayed below. The menu is not complicated except for the IPL. I don’t know how IPL is related to the system and the controller in general. When I use this controller with the GLaBIOS ROM, the ROM doesn’t see the floppy. FDC is 0, and I get error 1000. If I remove the Tex Elec Controller and introduce the IBM floppy controller with just one floppy switched into SW1, then the FDC does see the 360 kB floppy and boots to DOS. So, I think there is a conflict between the Tex Elec controller ROM and the GLaBIOS ROM. My guess.

1785443675523.png

What you see from the picture above, is the Tex Elec Quad Floppy controller ROM menu selections to configure the drives that a user might select. The FDC is using address 03F0h, which, according to Retro Web, is the address for floppy communication. In addition, IRQ 6 and DRQ 2. The IPL is set for system BIOS IPL. I showed that I had selected the 360 kB floppy as the A drive and the 1.44 MB as the B drive. Upon reboot following the setup of the floppy controller, the GLaBIOS FDC showed 0 and error 1000. I knew the error represented the floppy controller.

I just saw a YouTube video of Adrian Black where he is using GLaBIOS to measure the speed at boot up. In the video, he said that the on-board floppy controls in the GLaBIOS can be cut off by flipping SW1 position 1 on. Would that allow the Tex Elec FDC ROM to see the configuration I have or not? However, isn’t SW1 position 1 a diagnostic that would reboot the machine over and over?
 
The floppy drive controller I would use is the Tex Elec quad floppy controller.
Great! That'll work nicely!

When I use this controller with the GLaBIOS ROM, the ROM doesn’t see the floppy. FDC is 0, and I get error 1000. If I remove the Tex Elec Controller and introduce the IBM floppy controller with just one floppy switched into SW1, then the FDC does see the 360 kB floppy and boots to DOS. So, I think there is a conflict between the Tex Elec controller ROM and the GLaBIOS ROM. My guess.
I have that exact controller myself and have used it with the Multi-Floppy BIOS and can confirm it should work fine. We'll figure this out!

View attachment 1326377

What you see from the picture above, is the Tex Elec Quad Floppy controller ROM menu selections to configure the drives that a user might select. The FDC is using address 03F0h, which, according to Retro Web, is the address for floppy communication. In addition, IRQ 6 and DRQ 2. The IPL is set for system BIOS IPL. I showed that I had selected the 360 kB floppy as the A drive and the 1.44 MB as the B drive. Upon reboot following the setup of the floppy controller, the GLaBIOS FDC showed 0 and error 1000. I knew the error represented the floppy controller.

I just saw a YouTube video of Adrian Black where he is using GLaBIOS to measure the speed at boot up. In the video, he said that the on-board floppy controls in the GLaBIOS can be cut off by flipping SW1 position 1 on. Would that allow the Tex Elec FDC ROM to see the configuration I have or not? However, isn’t SW1 position 1 a diagnostic that would reboot the machine over and over?

The SW1 is a little bit poorly defined, as it has meant different things over the years. On the IBM 5150, it meant there are no floppy drives installed, then on the 5160 it meant test mode, and then on later high-density floppy adapter BIOSes it again meant no floppy drives installed. I assume you have the 0.4.2 PC XT (8X) version of GLaBIOS? I believe on that, SW1 will affect skipping the built-in floppy drive seek test, you can try flipping it just to see what happens.

With the Multi-Floppy ROM installed, it takes everything over that's disk-related so the system BIOS isn't really involved any more. Even so, it should still pass the floppy controller and drive POST test, and error 1000 is telling us that the controller hardware test failed. The question is: are you getting the POST error but the floppy drives work perfectly fine (read/write/boot)?

You could also try changing the IPL type on the Multi-Floppy set up to the other one (though I don't think that'll make any difference). The I/O, IRQ, DRQ, etc set on the ROM all look correct, can you post a pic of the switches on the controller itself?

I'm sure it's something simple... this is certainly a very normal setup!
 
Last edited:
The Quad-Flop has HD support in ROM, so no need for DR DOS in OP's case. But it is a low cost option if someone is using a 16-bit multi I/O card in an XT.
 
The Quad-Flop has HD support in ROM, so no need for DR DOS in OP's case. But it is a low cost option if someone is using a 16-bit multi I/O card in an XT.
The quad floppy controller card is an 8-bit IDE. Sample is found here. I'll have to see if the IPL change will work, and I'll get back to you.
 
Sorry for the delay. I still have a problem with communication between the GLaBIOS and the Tex Elect multi-floppy controller. Below is a picture of the startup of my 5160, with the floppy controller configured for a 360 KB A drive and a 1.44 MB GoTek floppy drive. Since the 640KB message earlier stated that my I/O address is correct, as well as the IRQ and DRQ. The IPL was set to Floppy BIOS IPL.

IMG_6152.jpeg

Below are the ROM address selections, with the one in red shown as my selection. I assume the ROM address selections refer to the floppy ROM and not necessarily the GLaBIOS ROM. So, how does the GLaBIOS learn that the FDD has two floppies tied to it? Do I have the wrong ROM address?


DIP Position 2-4 – ROM Address Selection
DIP Position – 2 3 4

0xC000-0xC7FF – ON ON ON

0xC800-0xCFFF – ON ON OFF

0xD000-0xD7FF – ON OFF ON

0xD800-0xDFFF – ON OFF OFF

0xE000-0xE7FF – OFF ON ON

0xE800-0xEFFF – OFF ON OFF

0xF000-0xF7FF – OFF OFF ON

0xF800-0xFFFF – OFF OFF OFF
 
Below are the ROM address selections, with the one in red shown as my selection. I assume the ROM address selections refer to the floppy ROM and not necessarily the GLaBIOS ROM. So, how does the GLaBIOS learn that the FDD has two floppies tied to it? Do I have the wrong ROM address?
That's a little bit odd. If you just disable the ROM (SW1-7 I believe), does it show 2 FDs? Technically what happens is it does an INT 13h controller reset (AH=0) and if that returns an error, it'll do what you see. I've used Multi-Floppy 2.7 a lot with GLaBIOS and never seen this issue though.

Could you try this GLaBIOS ROM and see if it makes a difference? This disables the FDC test entirely, which you won't necessarily need with a floppy disk ROM.

640KB
 
That's a little bit odd. If you just disable the ROM (SW1-7 I believe), does it show 2 FDs? Technically what happens is it does an INT 13h controller reset (AH=0) and if that returns an error, it'll do what you see. I've used Multi-Floppy 2.7 a lot with GLaBIOS and never seen this issue though.

Could you try this GLaBIOS ROM and see if it makes a difference? This disables the FDC test entirely, which you won't necessarily need with a floppy disk ROM.

640KB
SW1 position 7 is off already. Ok thanks for the upgrade on GLaBIOS. I'll let you know what happens.
 
SW1 position 7 is off already. Ok thanks for the upgrade on GLaBIOS. I'll let you know what happens.
Great! Just to clarify, I meant SW1 position 7 on the TexElec floppy controller (not the motherboard). Just wondering if the behavior changes without the Multi-Floppy ROM loaded or not.
 
Great! Just to clarify, I meant SW1 position 7 on the TexElec floppy controller (not the motherboard). Just wondering if the behavior changes without the Multi-Floppy ROM loaded or not.
Okay on the Tex Elect SW1.

I ran into a problem with the .ROM file. My EPROM reader gives me an error during verify. Something about no end of file seen. Can you please make the file a .bin and zip it and send that here. Thank you. My reader/writer is a GQ-4x4 with version 7.41 software.
 
640KB, sorry. There seems to be an error in the ROM file you gave me to correct the elimination of the floppy check procedure. I have included two pictures with this post. The first, labeled IMG_6158.jpeg, shows an address error at address 0x000006. The loader shows this during the verify phase after my load to the D27C256 chip. The second picture, labeled IMG_5161.jpeg, shows the buffer with what appears to be white space after the GLaBIOS logo at that address. I don’t know whether the white space is supposed to be there or if there is another symbol that my reader cannot identify at that address. I did try the BIOS, and nothing happened after flicking the switch.

I did readjust the SW1 position 7 to off on the quad controller.

IMG_6158.jpeg

IMG_6161.jpeg

Suggestions?
 
640KB, sorry. There seems to be an error in the ROM file you gave me to correct the elimination of the floppy check procedure. I have included two pictures with this post. The first, labeled IMG_6158.jpeg, shows an address error at address 0x000006. The loader shows this during the verify phase after my load to the D27C256 chip. The second picture, labeled IMG_5161.jpeg, shows the buffer with what appears to be white space after the GLaBIOS logo at that address. I don’t know whether the white space is supposed to be there or if there is another symbol that my reader cannot identify at that address. I did try the BIOS, and nothing happened after flicking the switch.
The problem is most likely something to do with the GQ-4x4 or the D27C256.

[Data file] ---> [Imported into the buffer of the GQ-4x4 software] ----> [programmed into the D27C256]

The error message is indicating that at address 6, the data of 4F from the buffer was programmed (well, the programming action done) into the D27C256, but EF was read back.

( There may be other 'bad' bytes as well, but the GQ-4x4 software will have stopped at the first 'bad' byte found. )

• Faulty D27C256 ?
• D27C256 was not erased long enough ?
• GQ-4x4 needs to be powered via a (suitable) external power supply ?
 
The problem is most likely something to do with the GQ-4x4 or the D27C256.

[Data file] ---> [Imported into the buffer of the GQ-4x4 software] ----> [programmed into the D27C256]

The error message is indicating that at address 6, the data of 4F from the buffer was programmed (well, the programming action done) into the D27C256, but EF was read back.

( There may be other 'bad' bytes as well, but the GQ-4x4 software will have stopped at the first 'bad' byte found. )

• Faulty D27C256 ?
• D27C256 was not erased long enough ?
• GQ-4x4 needs to be powered via a (suitable) external power supply ?
On the first bullet, it's possible.
On the second. I did 30 minutes; however, I could push it for an hour for a complete flush.
Lastly, I could power the GQ 4x4.

Thanks, I will see what happens.
 
I recommend selecting "Blank Check" on the right side under Auto Mode, in addition to Write and Verify. If the EPROM doesn't pass the blank check before programming, it hasn't been fully erased (or is damaged).
 
The error message is indicating that at address 6, the data of 4F from the buffer was programmed (well, the programming action done) into the D27C256, but EF was read back.
When an EPROM is blank, all bytes should be filled with FF. When writing 4F and EF is read back, bits b6 and b7 have not been programmed. So IMHO you need the external power supply or your EPROM is bad.
 
When an EPROM is blank, all bytes should be filled with FF. When writing 4F and EF is read back, bits b6 and b7 have not been programmed. So IMHO you need the external power supply or your EPROM is bad.
I do get all FFs when I pull the PROM from the UV cleaner. I believe the PROM is still usable; however, I have another that can be used. Yes, I can power up the GQ 4x4 to load the binary. If it fails again, I'll try another PROM.
 
Back
Top