VOGONS


Working XTA (IDE on XT) setup on GLaBIOS

Topic actions

Reply 40 of 61, by weedeewee

User metadata
Rank l33t
Rank
l33t

nerdlypleasures blog has a nice piece of advice/warning

One word of caution cannot be emphasized enough when dealing with these drives. Do NOT use a low-level formatting program unless that program is specific to your manufacturer and drive. DOS formats at a high level, and you should use that. While the Seagate drives use 17 sectors per cylinder, the WD and MS drives use 27 or 28.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 41 of 61, by mkarcher

User metadata
Rank l33t
Rank
l33t
weedeewee wrote on 2024-04-26, 08:36:

It is pretty weird though, displaying it works, yet writing to file doesn't. I admit I don't know too much about the workings of debug.

When you are writing to a drive using DMA (floppy drive on any kind of computer, hard drive on XTs), you rely on the source memory being addressable by DMA. Possibly that's not the case for ISA ROMs on this mainboard. That's what people tried to work around using the "M" command by first copying the ROM to standard RAM (using the CPU instead of DMA) and then writing the data from RAM. While I am surprised to see this behaviour on an ISA expansion ROM, it is common on PC/XT-type mainboards for the system BIOS.

Reply 42 of 61, by weedeewee

User metadata
Rank l33t
Rank
l33t

640KB, you've looked at the bios code. Is there any usage of DMA hardware in there ?

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 43 of 61, by GloriousCow

User metadata
Rank Member
Rank
Member
mkarcher wrote on 2024-04-27, 06:25:

When you are writing to a drive using DMA (floppy drive on any kind of computer, hard drive on XTs), you rely on the source memory being addressable by DMA. Possibly that's not the case for ISA ROMs on this mainboard. That's what people tried to work around using the "M" command by first copying the ROM to standard RAM (using the CPU instead of DMA) and then writing the data from RAM. While I am surprised to see this behaviour on an ISA expansion ROM, it is common on PC/XT-type mainboards for the system BIOS.

We can reproduce this on hardware, but why would this be? I took a look at the schematic for the 5150 and 5160 and it looks like all addresses are tied to the DMA controller + page register on a shared bus between CPU and ISA bus. In my emulator we can dump the ROMs just fine, so there's something going on with the motherboard logic.

mkarcher wrote on 2024-04-27, 06:25:

(floppy drive on any kind of computer, hard drive on XTs)

I'll put on my pedant hat and say, except PCJr and unexpanded Tandy1000 machines.

MartyPC: A cycle-accurate IBM PC/XT emulator | https://github.com/dbalsom/martypc

Reply 44 of 61, by highvoltage

User metadata
Rank Newbie
Rank
Newbie
640KB wrote on 2024-04-26, 15:16:
If you look in the ROM at file offset 025B you can see what would appear to be drive type tables with five built in drive types. […]
Show full quote

If you look in the ROM at file offset 025B you can see what would appear to be drive type tables with five built in drive types.

                                                              ; #  Cyl  H  RWC  WPC  EC  Step  SPT  Size  FMT
0000025b 67 02 04 67 02 67 02 0b 05 00 00 00 00 00 11 00 ; 0: 615 4 615 615 11 5 ... 17 20MB MFM
0000026b 25 03 02 25 03 25 03 0b 05 00 00 00 00 00 1a 00 ; 1: 805 2 805 805 11 5 ... 26 20MB RLL
0000027b 25 03 04 25 03 25 03 0b 05 00 00 00 00 00 1a 00 ; 2: 805 4 805 805 11 5 ... 26 40MB RLL
0000028b 25 03 04 25 03 25 03 0b 05 00 00 00 00 00 11 00 ; 3: 805 4 805 805 11 5 ... 17 28MB MFM
0000029b 34 01 04 34 01 34 01 0b 05 00 00 00 00 00 11 00 ; 4: 308 4 308 308 11 5 ... 17 10MB MFM

So yours would appear to be none of those, in theory you could replace one of the built-in types with this:

0000025b    34 03 06 34 03 34 03 0b 05 00 00 00 00 00 11 00   ; 0: 820  6  820  820  11  5 ... 17   40MB  MFM

It works! Full 40MB available! I could've just resized the partition (it was still valid but didn't boot anymore, I think a sys: would've fixed it) but all the data is available on a second disk so I just reformatted it and copied its system back. Thanks a lot!

I've been working quite a bit on this XT, driving around getting more parts for it. It now has 640KB RAM (it's like you!) and an FPU which it didn't before. I also noticed today that the turbo button jumper was unplugged all along so I didn't even notice my XT has been running at 4mhz instead of 8mhz all along (could GLaBIOS also show turbo status, seems like it might be handy for some to avoid this issue).

I also added XT-IDE with a SATA adapter and an 8GB SATA SSD. It's really convenient for copying files over because I can just plug that into a USB adaptor on a new computer.

Last night I also found this really nice multi-io RTC card. But it had a varta battery on board that was already spewing acid all over the place. Card doesn't detect at the moment, but I'm going to fix it up more so that I can get more GLaBIOS output on the screen more than anything else. I'm borrowing a friend's eprom writer at the moment (he wrote me GLaBIOS in December and I only got to actually try it out a when I started playing with this XT now) and I want to write the newer version so that I can get that pretty 2024 date on my archaic hardware.

Thanks to everyone who has helped with this so far!

Attachments

  • iocard.jpg
    Filename
    iocard.jpg
    File size
    529.28 KiB
    Views
    331 views
    File license
    Public domain
  • xt-full.jpg
    Filename
    xt-full.jpg
    File size
    363.98 KiB
    Views
    331 views
    File license
    Public domain

Reply 45 of 61, by weedeewee

User metadata
Rank l33t
Rank
l33t

If it had just been a change in amount of cylinders the drive would've still booted, but, the amount of heads changed so the layout changed too much.

then there's also the weirdness where the bios sees this CHS layout, you boot dos from floppy and somehow it's able to read the hard disk even when it was partitioned with a totally different CHS layout.

any chance of getting a photo of your XT mainboard?

it wouldn't surprise me if Glabios also supports a hotkey to switch between turbo & normal, though it might no longer work when a keyboard driver gets loaded.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 46 of 61, by mkarcher

User metadata
Rank l33t
Rank
l33t
GloriousCow wrote on 2024-04-27, 17:29:
mkarcher wrote on 2024-04-27, 06:25:

When you are writing to a drive using DMA (floppy drive on any kind of computer, hard drive on XTs), you rely on the source memory being addressable by DMA. Possibly that's not the case for ISA ROMs on this mainboard. That's what people tried to work around using the "M" command by first copying the ROM to standard RAM (using the CPU instead of DMA) and then writing the data from RAM. While I am surprised to see this behaviour on an ISA expansion ROM, it is common on PC/XT-type mainboards for the system BIOS.

We can reproduce this on hardware, but why would this be? I took a look at the schematic for the 5150 and 5160 and it looks like all addresses are tied to the DMA controller + page register on a shared bus between CPU and ISA bus.

Regarding the system BIOS: To reduce load on the ISA data lines, on-board components like the PIC, the PIT, the DMA controller, the keyboard interface and the ROM BIOS are on the "X-Bus" with data lines XD0..XD7, which is separate from the system bus (ISA bus) with data lines SD0..SD7. The decoding logic to steer the transceivers interconnecting the CPU data lines, the X-Bus data lines and the system bus data lines is unable to handle DMA cycles to the ROM BIOS correctly. Probably IBM didn't care about DMA access to the X-Bus.

Reply 47 of 61, by 640KB

User metadata
Rank Newbie
Rank
Newbie
highvoltage wrote on 2024-04-27, 19:28:

It works! Full 40MB available! I could've just resized the partition (it was still valid but didn't boot anymore, I think a sys: would've fixed it) but all the data is available on a second disk so I just reformatted it and copied its system back. Thanks a lot!

Awesome! That's so cool to that the XTA drive is back in action!

weedeewee wrote on 2024-04-27, 20:25:

it wouldn't surprise me if Glabios also supports a hotkey to switch between turbo & normal, though it might no longer work when a keyboard driver gets loaded.

Yep, it's the classic Ctrl-Alt-Plus hotkey to switch between speeds.

highvoltage wrote on 2024-04-27, 19:28:

I've been working quite a bit on this XT, driving around getting more parts for it. It now has 640KB RAM (it's like you!) and an FPU which it didn't before. I also noticed today that the turbo button jumper was unplugged all along so I didn't even notice my XT has been running at 4mhz instead of 8mhz all along (could GLaBIOS also show turbo status, seems like it might be handy for some to avoid this issue).

Short answer: wherever possible, if GLaBIOS knows the hardware is in low speed you *should* see a big blocky cursor instead of the regular one. Loads of caveats tho.

TL;DR warning... turbo switch babble ahead...

It can be a bit hardware dependent because different types of boards had various different ways to handle software turbo speed control (one reason why there's multiple builds of GLaBIOS). The lowest tech way was that they just repurposed bit 3 of PPI channel B to control a flip/flop for the clock frequency. Of course, there was no consensus for whether bit 3 = high meant turbo speed or low speed and BIOS vendors just customized their versions to each board (this is what the TURBO_REV build option does in GLaBIOS), so your particular board is wired the other way you'd ideally want the other build option. That and different boards had different jumper / switch options, where some have a jumper that inverts the hardware/software switch so that it starts in low instead of high speed but the hardware button still works, others there's a jumper that totally disables hardware/software switching and forces it into low or high speed always. And while you (the BIOS) can read the state of the PPI bit, you (again the BIOS) wouldn't really have a way of knowing for certain whether or not the speed is high or low, or if that's been inverted or overridden by the hardware.

Other chipsets it's a mixed bag - some you can change the speed but you can't read it. Some you can only toggle the speed, but can't determine or specify a speed, and others you can only set the speed but not toggle it. Others have overly complicated methods to deal with the "3 way light switch" effect of having both a hardware and a software way to control the speed.

Now that you are booting into high speed with the turbo button/jumper, if you do a Ctrl-Alt-Plus does it beep, switch speeds and change your cursor shape? If not, you may need the build that has the reversed turbo bit.

Reply 48 of 61, by 640KB

User metadata
Rank Newbie
Rank
Newbie
highvoltage wrote on 2024-04-27, 19:28:

Last night I also found this really nice multi-io RTC card. But it had a varta battery on board that was already spewing acid all over the place. Card doesn't detect at the moment, but I'm going to fix it up more so that I can get more GLaBIOS output on the screen more than anything else. I'm borrowing a friend's eprom writer at the moment (he wrote me GLaBIOS in December and I only got to actually try it out a when I started playing with this XT now) and I want to write the newer version so that I can get that pretty 2024 date on my archaic hardware.

The battery area on that board does look a bit worse for the wear. I can see the crystal typically used for a RTC clock but don't see a discrete clock chip so I assume it's part of the ASIC package? I can't tell from the markings exactly what it is. Do you have any docs on it?

Reply 49 of 61, by weedeewee

User metadata
Rank l33t
Rank
l33t
640KB wrote on 2024-04-28, 00:32:

Now that you are booting into high speed with the turbo button/jumper, if you do a Ctrl-Alt-Plus does it beep, switch speeds and change your cursor shape? If not, you may need the build that has the reversed turbo bit.

Fun fact is that the bios turbo routines tend to get disabled/overwritten by the keyboard driver in use, thus negating the possibility of changing the speed using the keyboard.

also wrt the XTA bios, does it use dma for data transfers ?

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 50 of 61, by myne

User metadata
Rank Member
Rank
Member
highvoltage wrote on 2024-04-27, 19:28:

It works! Full 40MB available!

Personally, I'd run Scandisk on it to make sure all 40mb is readable

Things I built:
Mechwarrior 2 installer for Windows 10/11 Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11 auto-install iso template (for vmware)

Reply 51 of 61, by highvoltage

User metadata
Rank Newbie
Rank
Newbie
myne wrote on 2024-04-28, 11:34:
highvoltage wrote on 2024-04-27, 19:28:

It works! Full 40MB available!

Personally, I'd run Scandisk on it to make sure all 40mb is readable

Norton disk doctor gives it an OK! I'm quite surprised that it completes a surface scan in under 3 minutes being on such an archaic interface!

Attachments

  • ndd2.jpg
    Filename
    ndd2.jpg
    File size
    243.07 KiB
    Views
    204 views
    File license
    Public domain
  • ndd1.jpg
    Filename
    ndd1.jpg
    File size
    362.51 KiB
    Views
    204 views
    File license
    Public domain

Reply 52 of 61, by weedeewee

User metadata
Rank l33t
Rank
l33t

If you do some math...

40 Megabytes divided by 3 minutes =
227,5 Kilobytes/s

Seems about right for that archaic interface 😀
maybe a bit slow, I think RLL & MFM were faster

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 53 of 61, by highvoltage

User metadata
Rank Newbie
Rank
Newbie
weedeewee wrote on 2024-04-28, 12:17:
If you do some math... […]
Show full quote

If you do some math...

40 Megabytes divided by 3 minutes =
227,5 Kilobytes/s

Seems about right for that archaic interface 😀
maybe a bit slow, I think RLL & MFM were faster

That's 3/4 of a 360kb floppy per second, that's plenty fast enough! 😜

Reply 54 of 61, by highvoltage

User metadata
Rank Newbie
Rank
Newbie

So, regarding the turbo button. When the turbo jumper was out yesterday morning, I tried ctrl+alt++, and it did change the cursor to the block but didn't change the speed.

With the jumper pinned, it also changed the cursor but the speed stayed the same, so I'll try the alternative BIOS image that might fix that on this board.

I'm attaching some pictures of this build so far. It still needs a lot of work, lots of old parts were exposed in my garage so there's some reckless paint droplets that I'll get off along with a good scrubbing.

The red LED on the front is power, blue is turbo, the green one is the Seagate's built-in activity LED, and there's a yellow one I had on the XT-IDE for the SSD, although for some reason it didn't flicker, might need some jumper adjustments I still haven't had time to really look at that.

I went with a 1.44MB floppy drive since my 5'1/4" drives seem to all be dying, and it makes interoperability between all my ATs a bit easier (even though I can just format then as 720k in the XT, still plenty for a boot disk). Would be nice if there was a 1.44 BIOS extention available. I'm going to try to get it fitted a bit better with a 3D printed frame so that it looks a bit better.

Also, that floppy drive was a batch of 10 new old stock that I bought last year (R14 is less than a euro, so this was totally worth it). For some reasons the black drives are 5x the price, but I'll order one of these so that my XT facade at least looks a little bit more consistant. Oh yes we call 1.44MB floppy drives "stiffy drives" in South Africa. Just deal with it. 😎

https://www.geewiz.co.za/hard-disk-drives-ssd … rive-beige.html
https://www.geewiz.co.za/hard-disk-drives-ssd … iffy-drive.html

Attachments

  • obm-inside.jpg
    Filename
    obm-inside.jpg
    File size
    565.43 KiB
    Views
    189 views
    File license
    Public domain
  • obm.jpg
    Filename
    obm.jpg
    File size
    233.04 KiB
    Views
    189 views
    File license
    Public domain

Reply 55 of 61, by weedeewee

User metadata
Rank l33t
Rank
l33t

Here's some reading for getting HD FDD support on an XT What's the best way to get high-density floppy support in an old XT-class machine?

a nice full clean photo of only your mainboard would be great to identify perhaps chipset or brand model or which bios would be best.

I can almost see the chipset underneath the sata adapter&cables.

Can you change the turbo whenever you want using the button/jumper or do you have to reset it after changing the button/jumper ?

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 56 of 61, by 640KB

User metadata
Rank Newbie
Rank
Newbie
highvoltage wrote on 2024-04-28, 12:30:

So, regarding the turbo button. When the turbo jumper was out yesterday morning, I tried ctrl+alt++, and it did change the cursor to the block but didn't change the speed.

With the jumper pinned, it also changed the cursor but the speed stayed the same, so I'll try the alternative BIOS image that might fix that on this board.

That's curious, from what I can see that looks like a fairly standard board, but perhaps not. Curious, which GLaBIOS version/build are you running now?

weedeewee wrote on 2024-04-28, 12:35:

a nice full clean photo of only your mainboard would be great to identify perhaps chipset or brand model or which bios would be best.

+1! 😀

Reply 57 of 61, by 640KB

User metadata
Rank Newbie
Rank
Newbie
weedeewee wrote on 2024-04-28, 06:33:

also wrt the XTA bios, does it use dma for data transfers ?

I'll take a look later and see. I'd be fairly surprised if it didn't use DMA though. The only XT controller that I'm aware of that doesn't is XUB/XT-IDE.

Reply 58 of 61, by 640KB

User metadata
Rank Newbie
Rank
Newbie
mkarcher wrote on 2024-04-27, 22:28:

Regarding the system BIOS: To reduce load on the ISA data lines, on-board components like the PIC, the PIT, the DMA controller, the keyboard interface and the ROM BIOS are on the "X-Bus" with data lines XD0..XD7, which is separate from the system bus (ISA bus) with data lines SD0..SD7. The decoding logic to steer the transceivers interconnecting the CPU data lines, the X-Bus data lines and the system bus data lines is unable to handle DMA cycles to the ROM BIOS correctly. Probably IBM didn't care about DMA access to the X-Bus.

That makes total sense. Do you know if IBM ever documented this formally?

It doesn't entirely explain though why @highvoltage can't dump the ROM from that ISA card.

@highvoltage, what happens if you try now to dump that rom using DOS 5 debug to a drive on your XTIDE card? That typically uses PIO for transfers so would remove DMA from the equation.

Reply 59 of 61, by mkarcher

User metadata
Rank l33t
Rank
l33t
640KB wrote on 2024-04-28, 16:41:

That makes total sense. Do you know if IBM ever documented this formally?

Sorry, I don't know of any formal documentation. Just as I don't know why the ISA bus pinout looks like someone accidentally swapped /DACK2 and IRQ2. There are a lot of weird things in the IBM PC/XT architecture.

640KB wrote on 2024-04-28, 16:41:

It doesn't entirely explain though why @highvoltage can't dump the ROM from that ISA card.

Indeed. Read cycles generated by the DMA controller should be visible on the ISA bus (otherwise, you couldn't DMA from/to conventional memory extension boards), and the data generated by that read cycle should be picked up by the XTA drive. Possibly this is a timing issue, with the XTA drive sampling the ISA bus before the (slow?) ROM started outputting the data.