VOGONS


First post, by Psquare75

User metadata
Rank Newbie
Rank
Newbie

So I rescued this 6 or 7 years ago
(see here 'New' 386 build CMOS battery help?)

and I'm finally doing something with it.

AMD 386DX 40
4mb ram
Trident 9000 VGA card

So far I've done the following to get it going

- Removed USR Speedster modem
- Removed CDROM controller card (I'm going to reuse my old soundblaster pro - Creative drive)
- Reseated the VGA card (prior to this it would not boot... 2 long beeps + 8 short beeps.. saw the solution here on Vogons elsewhere)
- installed a 5.25" floppy drive I had hanging around. I've had limited success booting from it. DISK BOOT FAILURES. My copy of JET 'half' booted and a booter of Pinball wouldn't do anything.
- found the HDD settings online for the originally installed Seagate drive. The computer booted. It was an old travel kiosk for a local pharmacy (since closed)
- Added a CF - IDE adapter with a 2gb card. For now I used the 2GB card I use successfully in my Tandy 1000 with an XT-IDE card, loaded with MS-DOS 6.22

I'm having trouble with that last one. The bios has USER 47 settings where I can enter my own. I sorta winged my own settings to get 2000MB.
The CF card however would not boot.

So it's good that the BIOS can to 2000MB, right? theoretically, this should work?

Attachments

Insert Witty Sig Here.
Tandy 1000SX - #XTIDElife

386DX-40mhz in progress

Reply 1 of 6, by GigAHerZ

User metadata
Rank Oldbie
Rank
Oldbie

Even if you can set up drives with their correct size in bios, that doesn't mean it's going to work. Probably you hit the ~500MB hdd support limit.

Either set it to ~500MB drive in bios (CF cards are generally fine with that) or use any kind of bios helpers: XT-IDE (1kB conv. mem consumption), EzDrive (5kB) or OnTrack (10kB).

"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!

Reply 2 of 6, by Intel486dx33

User metadata
Rank l33t
Rank
l33t

Hey, that case looks like my first computer but it was a 486dx-33 with a Sony 2x CDROM drive and controller . Yours looks like a Panasonic 2x CDROM drive.

My original build from 1993 was:
ISA motherboard
Intel 486dx-33
64kb cache
Oaktech SVGA card
Sony 2x CD-ROM drive with controller.
4mb ram
120mb hard drive
Sound blaster 16
And same case and floppy drives as yours.

And it costs $2200

Reply 3 of 6, by Jo22

User metadata
Rank l33t++
Rank
l33t++
GigAHerZ wrote on 2020-10-08, 07:06:

Even if you can set up drives with their correct size in bios, that doesn't mean it's going to work. Probably you hit the ~500MB hdd support limit.

Either set it to ~500MB drive in bios (CF cards are generally fine with that) or use any kind of bios helpers: XT-IDE (1kB conv. mem consumption), EzDrive (5kB) or OnTrack (10kB).

I second this.

BIOS consists of two parts. The BIOS itself and the CMOS Setup Utility.
That Setup is just a helper utility, a menu.
Even it is able to detect/accept everything, it doesn't mean that the BIOS does the same.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 4 of 6, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
Psquare75 wrote on 2020-10-08, 05:46:

I'm having trouble with that last one. The bios has USER 47 settings where I can enter my own. I sorta winged my own settings to get 2000MB.
The CF card however would not boot.

So it's good that the BIOS can to 2000MB, right? theoretically, this should work?

So the issue is, the IDE standard can do 16384 cylinders, 16 heads, and 63 sectors.
And the interface between DOS and the BIOS can do 1024 cylinders, 256 heads, and 63 sectors.
See the problem? When you combine the two limits you get only 1024 cylinders, 16 heads, and 63 sectors which is 528MB/504MiB.

When you enter those values as type 47 they get entered into the Fixed Disk Parameter Table, but DOS has no way of accessing more than 1024 cylinders. I believe the only reason the BIOS allows oversized values is that other OSes like SCO Unix were smart enough to bypass the BIOS and access drives directly, but it still read the information from the FDPT.

Now, later BIOSes have translation where they essentially turn cylinders into heads, allowing plain old DOS to access a drive of up to 8.4GB. But a 386 BIOS is likely way too old to support that translation. I'd just enter: 1024 cylinders, 16 heads, 63 sectors and be done with it. You can add translation software like EZ-Drive or Ontrack Disk Manager if you want (but those steal conventional memory), or if you want to be really adventurous, you can look into sticking an XT-IDE ROM on an ethernet card, which puts modern IDE disk access interrupts into memory at runtime, essentially tricking your BIOS to access disks as if they were on a SCSI card.

Reply 5 of 6, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie

Also, as I reread your post, it looks like you're trying to boot a CF card that was formatted on another machine. That's unlikely to work unless you're super careful to attach it to a virtual machine, configured with the exact same geometry as what the destination machine will be using to access it. It would be better fdisk and format it while it's in the 386, although it sounds like you're having floppy problems.

If you haven't discovered AMISETUP, look into that too, to access hidden options in your BIOS.

Reply 6 of 6, by Jo22

User metadata
Rank l33t++
Rank
l33t++

I think the same.

I've written an overview in an older thread, also, which has a table:
How to know which hard drive limit my BIOS has?

Also, some values are interpreted differently by different BIOSes (heads start with head 0 instead of head 1).

"CHS addressing with 28 bits (EIDE and ATA-2) permits eight bits for sectors still starting at 1, i.e., sectors 1...255, four bits for heads 0...15, and sixteen bits for cylinders 0...65535"

Edit: "The CHS addressing supported in IBM-PC compatible BIOSes code used eight bits for - theoretically up to 256 heads counted as head 0 up to 255 (FFh).
However, a bug in all versions of Microsoft DOS/IBM PC DOS up to and including 7.10 will cause these operating systems to crash on boot when encountering volumes with 256 heads[2].Therefore, all compatible BIOSes will use mappings with up to 255 heads (00h..FEh) only, including in virtual 255×63 geometries.

This historical oddity can affect the maximum disk size in old BIOS INT 13h code as well as old PC DOS or similar operating systems"

[..]

CHS addressing starts at 0/0/1 with a maximal value 1023/255/63 for 24=10+8+6 bits, or 1023/254/63 for 24 bits limited to 255 heads.
CHS values used to specify the geometry of a disk have to count cylinder 0 and head 0 resulting in a maximum (1024/256/63 or) 1024/255/63 for 24 bits with (256 or) 255 heads.
"

Source: https://en.wikipedia.org/wiki/Cylinder-head-sector

Edit: Long story short - try to enter in Setup: 1023 cylinders / 15 heads / 63 sectors as well as Precomp 65535 (that's none) and for Landing Zone, use the last cylinder (1022 or 1023 ?)
If this works, you can try to do again and enter, and say, "16" for heads etc.

Unfortunately, most 386 BIOSes predate EIDE/ATA-2 even. They only know WD1003 controller language or plain IDE. Or ATA-1, at best. Or are SCSI aware (rarely; workstations/servers).
Unless it is a newer 386/486 BIOS for mainboards which do support 486DLCs/SXLs or optionally support a 486DX installed in an upgrade socket (am386-40 soldered) .

Edit: Table added.

Attachments

  • limits.gif
    Filename
    limits.gif
    File size
    17.36 KiB
    Views
    517 views
    File comment
    drawn by myself
    File license
    Public domain

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//