VOGONS


First post, by keenerb

User metadata
Rank Oldbie
Rank
Oldbie

This might not be the best place for this question...

I'm hoping to stick the floppy disabling code from nofloppy.com into ROM to see if a tandy 1000/TL could boot from an aftermarket high-density floppy controller. Normally having an aftermarket controller installed alongside the onboard FDC causes neither to work unless you boot to a hard drive and run nofloppy.com.

I opened the .com file in a hex editor and thankfully it's only 6 bytes:

NOFLOPPY.COM               0x00000000                  100%
00000000 B0 F7 E6 65 CD 20 °÷æeÍ

I looked this up in an assembly language reference and determined that B0 F7 is storing F7 into the AL register, and E6 65 is pushing the data from AL register into the port at 65h. That is precisely the end result (F7 into port 65) that was documented as the way to disable the onboard FDC for Tandy TX+ systems.

The decompiled code as I manually wrote:

MOV AL, F7
OUT AL, 65h

The CD 20 is some sort of DOS exit code so I'm ignoring that.

Does that seem correct?

Reply 1 of 18, by stamasd

User metadata
Rank l33t
Rank
l33t

Yes; here's what ndisasm has to say about nofloppy.com:

00000000  B0F7              mov al,0xf7
00000002 E665 out 0x65,al
00000004 CD20 int 0x20

If you can just add b0/f7/e6/65 somewhere in the ROM where it will be executed during POST it will probably do what you want. If you want to be anal about it, you should save/restore the previous value of ax by a "push ax" before and a "pop ax" after the above sequence.

push ax
mov al,0xf7
out 0x65,al
pop ax

...which run through the assembler give 50/b0/f7/e6/65/58

Last edited by stamasd on 2016-05-12, 14:58. Edited 2 times in total.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 2 of 18, by keenerb

User metadata
Rank Oldbie
Rank
Oldbie

Excellent. I assumed there would be a disassembler out there for things like this, but seeing as how it was only a few bytes I figured I might learn something if I did it by hand.

I'm going to stick that into my XT-IDE bios somewhere and see what happens...

Reply 3 of 18, by stamasd

User metadata
Rank l33t
Rank
l33t

Nasm/Ndisasm are your friends
http://www.nasm.us/

Please post back your results, it will be instructive.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 4 of 18, by keenerb

User metadata
Rank Oldbie
Rank
Oldbie

I'll test out disabling the floppy tonight, but I"m still waiting on my high-density floppy controller to arrive.

I'm pretty confident that it will work just peachy though...

Reply 5 of 18, by stamasd

User metadata
Rank l33t
Rank
l33t

Since you're bent towards sticking things in the XT-IDE ROM, did you know that you don't need a high-density floppy controller but rather just the BIOS from one, in conjunction with a regular ISA multi-IO card? Yes, a regular 16-bit ISA IO card will work in a 8-bit slot if you provide it with the appropriate firmware. See my post on VCF (I am jh1523 there) http://www.vcfed.org/forum/showthread.php?484 … 6253#post376253 and the remainder of the thread too.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 6 of 18, by keenerb

User metadata
Rank Oldbie
Rank
Oldbie

I have come across that thread before. I'm planning on putting together one of Sergey's combination FDC/USB 8-bit cards and loading both xt-ide and fdc bios into the XT-IDE's 32kb rom.

Reply 7 of 18, by keenerb

User metadata
Rank Oldbie
Rank
Oldbie

I'm also going to explore modifying a Tandy 1000SL I have laying around for high-density floppy support.

According to the FAQ, the 1000SL/TL has a controller capable of using 1.44mb drives but:

"In the SL and TL, the data separator is capable of running at 500k bps, but the data rate pin is hard-wired to 250k and the drive speed pin on the floppy cable is not connected."

Maybe it's as easy as jumpering a few places on the motherboard and using Sergey's floppy bios...

Reply 8 of 18, by keenerb

User metadata
Rank Oldbie
Rank
Oldbie

I have some positive results to report.

I was able to compile xt-ide firmware with the added instructions to disable the tandy fdc.

It boots, and the floppy controller is MOST CERTAINLY disabled.

Unfortunately I can't test it out until I get my high density controller in the mail Monday.

I'm still highly optimistic this will let me boot from that new controller though...

Reply 9 of 18, by keenerb

User metadata
Rank Oldbie
Rank
Oldbie

Everything worked perfectly. I can boot from a high-density floppy drive on my 1000TL (and presumably 1000SL/TX) using the high-density floppy bios, custom XT-IDE bios, and Sergey's FDC.

Reply 10 of 18, by stamasd

User metadata
Rank l33t
Rank
l33t

Good job.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 11 of 18, by Stojke

User metadata
Rank l33t
Rank
l33t

Is it possible to insert an High Density Floppy BIOS code into an XT Philips NMS9100 machine? The machine it self is an 8086@8MHz with an Single Density Floppy Controller.

Note | LLSID | "Big boobs are important!"

Reply 12 of 18, by keenerb

User metadata
Rank Oldbie
Rank
Oldbie
Stojke wrote:

Is it possible to insert an High Density Floppy BIOS code into an XT Philips NMS9100 machine? The machine it self is an 8086@8MHz with an Single Density Floppy Controller.

If you can disable the existing floppy controller it might be possible to add an aftermarket floppy controller like Sergey's card.

Reply 13 of 18, by bjt

User metadata
Rank Oldbie
Rank
Oldbie
keenerb wrote:

Everything worked perfectly. I can boot from a high-density floppy drive on my 1000TL (and presumably 1000SL/TX) using the high-density floppy bios, custom XT-IDE bios, and Sergey's FDC.

Very cool. Would like to do this for my TL/2 but unfortunately I don't have a free slot for the floppy controller.

Reply 14 of 18, by keenerb

User metadata
Rank Oldbie
Rank
Oldbie
bjt wrote:
keenerb wrote:

Everything worked perfectly. I can boot from a high-density floppy drive on my 1000TL (and presumably 1000SL/TX) using the high-density floppy bios, custom XT-IDE bios, and Sergey's FDC.

Very cool. Would like to do this for my TL/2 but unfortunately I don't have a free slot for the floppy controller.

TL/2 only has four ISA slots, doesn't it?

That is rather limiting.

Reply 15 of 18, by Stojke

User metadata
Rank l33t
Rank
l33t
keenerb wrote:
Stojke wrote:

Is it possible to insert an High Density Floppy BIOS code into an XT Philips NMS9100 machine? The machine it self is an 8086@8MHz with an Single Density Floppy Controller.

If you can disable the existing floppy controller it might be possible to add an aftermarket floppy controller like Sergey's card.

Dipswitches only define hard disk controllers, but I heard that an FDC bios can be updated for DD disks.

Note | LLSID | "Big boobs are important!"

Reply 16 of 18, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

Yep it loses a slot for the (useless) built-in IDE controller.
My slots are used up by a XT-IDE, SB16, EGA card and 2MB EMS.

Reply 17 of 18, by keenerb

User metadata
Rank Oldbie
Rank
Oldbie
bjt wrote:

Yep it loses a slot for the (useless) built-in IDE controller.
My slots are used up by a XT-IDE, SB16, EGA card and 2MB EMS.

I picked up a passive isa backplane on ebay for pretty cheap. I am going to see if I can use it as a bus expander for me 1000to.

Reply 18 of 18, by carlostex

User metadata
Rank l33t
Rank
l33t

Bringing this thread back from the dead just to say i have successfully tested a different approach to this.

If you have a socketed floppy controller on your 1000SL or TL you just simply lift it up from its socket. From that moment on there's no longer anything hogging the resources at the standard floppy ports and you can just add a high density floppy controller without any issues. Make sure you disable the extra COM and parallel ports you won't need.

Of course this also requires that you add floppy BIOS extensions, just like with keenerb's approach.