• Please review our updated Terms and Rules here

ADTPro for PC?

ADTPro for PC?


  • Total voters
    13

lyonadmiral

Veteran Member
Joined
Jun 3, 2009
Messages
2,430
Location
Peru, New York
I started a post in the PC & Clone Forum asking if anyone knew about a piece of software that would do something similar to ADT Pro for the IBM PC, XT, or AT (or anything else that had some kind of ROM BASIC built in).

I think this would be a boon to users to help them to build 5.25 disks for their systems, if they could simply have something like this.

I am not a programmer by day, but am willing to invest time & money into this endeavor with others if you are willing.
 
Last edited:
Seems like it would be pretty simple; all you have to do on the client side is read 512-byte chunks off the serial port and then write them as sectors to disk. That's all BIOS-call stuff, so it should be quite easy. Maybe I'll take a stab at it this afternoon.
 
I guess the objectives of PCDT (ADTPro for PC) should be to input as few commands as possible at the ROM BASIC to start booting up from the host (some flavor of DOS, or FreeDOS if it will work on PC, XT, AT) and from the PC, XT, or AT choose to copy a disk image to the host from the 5.25 or read an image from the host and write it to 5.25.
 
the rub is that you need to do INT 14 calls to read the serial data and INT 13 calls to write the sector data out to the disk.
There may be a BASIC wrapper for the INT 14 stuff, but INT 13 is ugly from within BASIC, and I believe would require basic to poke in machine language code and then call it. It's been a long time since I messed around with basic, but that's the hurdles I remember having to do when I needed some lower level access to the machine.
 
Okay, I'm confused. What's the goal here? Copying data from a serial port to a disk is easy enough, but doing it from IBM BASIC would be a bit trickier, and booting a DOS version over a serial connection is just plain impractical. And why would you even need to boot DOS from a serial port in order to copy disk images, when it can be done purely with BIOS functions?
 
I guess I was trying to mirror too closely ADT Pro which pulls down a copy of ProDOS and boots the Apple II. So mirroring the PC, trying to pull down a copy of DOS. Like you say maybe that is too impractical, but I guess the endgame would be nice to be able to write disk images without having to boot an OS in the first place. Likewise, I'm not going to be fussy, if you can get it to work in any way, so you can pull a disk image via serial port and write using the 360k or 1.2meg disk (PC, XT, or AT respectively) then we are still lightyears ahead.
 
Okay, I'm confused. What's the goal here? Copying data from a serial port to a disk is easy enough, but doing it from IBM BASIC would be a bit trickier, and booting a DOS version over a serial connection is just plain impractical. And why would you even need to boot DOS from a serial port in order to copy disk images, when it can be done purely with BIOS functions?
We're talking about creating a bootable DOS disk on a PC without using DOS, as you can do with Apples and various other systems; how would you boot DOS on a PC if you don't have any bootable disks and are too shy to ask someone to mail you one? ;-)

(Assuming of course that you have another computer with a com port, a bootable image, a null modem cable, etc.) ;-)
 
Last edited:
We're talking about creating a bootable DOS disk on a PC without using DOS, as you can do with Apples and various other systems; how would you boot DOS on a PC if you don't have any bootable disks and are too shy to ask someone to mail you one?

The end game here for the project is you can write disk images to your IBM PC, XT, or AT using its native hardware and your modern PC as a host. And I thank Commodore John for his support, and once we get something working I will definitely reward the effort with either cold beer or cold cash, or both. :)
 
If you did enough of this kind of thing, I'd think it'd be better just to create a board to do this. It'd have a small microcontroller and either a USB connector or an SD card slot on it as well as a ROM. Drop it in and boot. The biggest cost would be the bare PCB itself--the rest of the components probably wouldn't come to $10.

Instead of pushing a garden-hose of data through a soda straw, you could have your own firehose and write whatever and however much you needed.

Also note that while many PCs had serial ports, one was not part of the standard base for the early systems, such as the 5150--it was a cost-added option.

Myself, I find that keeping around a couple of older systems with 5.25" drives of both flavors is a small inconvenience. They boot Windows 98SE and have networking capabilities.
 
If you did enough of this kind of thing, I'd think it'd be better just to create a board to do this. It'd have a small microcontroller and either a USB connector or an SD card slot on it as well as a ROM. Drop it in and boot. The biggest cost would be the bare PCB itself--the rest of the components probably wouldn't come to $10.

Isn't that board called XTIDE?

The big deal with ADT Pro was that you couldn't write disk images out to physical media from most modern Macs. I would think that buying a serial cable, or USB -> serial cable, would cost about as much as buying a used floppy drive for a modern(ish) PC. I guess nowadays you're about as likely to have a serial port on your desktop as you are a floppy controller, though!

I still think this would be a neat project, and definitely worth pursuing on a hobby level. I'd probably try it out, but I can't imagine replacing my disk-writing machine with this method. Actually, the disk-writing machine sees very little use in getting software to my PC compatibles, as I have a MS-DOS 3.3 boot floppy with a few NIC packet drivers and the mTCP suite!
 
Isn't that board called XTIDE?

My idea was to take an SD card directly (no adapters) and offer the option of having it host a series of floppy images. Probably much cheaper than the XTIDE--and with the appropriate MCU, offer USB support as well (or does the XTIDE do this?), as well as other goodies if anyone wanted them (silicon is cheap). The biggest problem is what to do with all that unused space on the PCB. Memory add-on maybe?

It's more likely to find a notebook with an SD card slot or USB connector than it is to find one with serial, parallel or floppy. Any networking will probably be wireless.
 
Well, you could make a board to do it, but it honestly would be pretty easy to rig up a software solution in the meantime. Doing it in the form of a ROM BASIC program would be a bit harder, but still doable, I think.
 
It's also pretty easy to stick a 1.44M 3.5" drive in a box, even if you have to use it as 360K/720K drive.

In any case, it sounds like a dandy project to learn something new.
 
Isn't that board called XTIDE?

The big deal with ADT Pro was that you couldn't write disk images out to physical media from most modern Macs. I would think that buying a serial cable, or USB -> serial cable, would cost about as much as buying a used floppy drive for a modern(ish) PC. I guess nowadays you're about as likely to have a serial port on your desktop as you are a floppy controller, though!

I still think this would be a neat project, and definitely worth pursuing on a hobby level. I'd probably try it out, but I can't imagine replacing my disk-writing machine with this method. Actually, the disk-writing machine sees very little use in getting software to my PC compatibles, as I have a MS-DOS 3.3 boot floppy with a few NIC packet drivers and the mTCP suite!


Hi!

I think Glitch has the right idea. Get an XT-IDE and a CF adapter. Use another PC to format the CF card with operating system, disk images, image writing utilities, etc. Install XT-IDE with CF and presto! you can make all the disk images you want.

Don't have CF? Use an old IDE hard drive or even a SATA drive with SATA-parallel adapter.

I don't see the need for a new board development when this capability already exists. Booting over serial port is also possible but you'll need to write a new BIOS ROM. Install the new BIOS ROM in your XT-IDE board or network adapter with network boot BIOS ROM. You'll need another PC or laptop to stream the data to the host computer. I think XT-IDE would be much easier.

Thanks and have a nice day!

Andrew Lynch

PS, I did the above with an ancient PC. Formatted an old IDE drive/XT-IDE on a PII machine and then moved the board and IDE drive to the old PC and booted it without a hitch. No problems at all.
 
Someone recreating the SVD project I think would be useful. Use common cheap parts today and maybe a very cheap board to create virtual floppy disks via whatever media (sd or usb stick) and offer it to the system as a floppy disk.

Not sure, I think yes I get tired of trying to recreate disks for systems and currently my translation PC is suffering from a current case of death. Having a nice easy and maybe plug and play solution (honestly though I'd be quite happy with the same typing a few commands into basic on a system and having it load via null modem cable) would make life much easier. The more we can do it on the better though.. systems that lots of folks are stuck on (non-x86 standard systems), Kaypro, Osborne, etc. Interesting project here (google searching and saw a member here blogging about it).
 
Last edited:
I appreciate all the feedback, but I'm not looking to build a card, buy an XT-IDE, do any conversions of stepping down at all. I want to duplicate what the Apple II fans do, take their host machine, hook it up via serial, or hell even parallel for that matter, to their vintage machine and be able to make disks on their vintage machine with their modern host driving it.

I do know that I am looking forward to Commodore Johns first concepts.

I was going to send a PM to Mike Chamber's asking him to chime in, I am very impressed with his work too, but his PM box is full.
 
I'm not familiar with the different cassette formats, but the original IBM PC (5150) you might be able to write something in cassette basic to load things via tape drive, then continue loading the file via serial (similar to one adaptation of ADTPro). Yes Mike wrote a similar drive backup program (I think in Qbasic.. I don't recall if it was his own protocol or used ftp to transfer the image) so he may have some good comments or existing tips on reading raw data from a drive via QB.
 
A code only solution using the BASIC interpreter is going to be pretty ugly. It can be done, but I'd be fairly concerned about typing errors in the code.

If I had to do this I'd be thinking about the following:

  • Running the serial port at 2400 or 4800 bps at most; interpreted BASIC is slow and it would be very easy to overrun the 8250 UART.
  • Using Xmodem with 128 byte packets; this is the lowest common denominator, and it has rudimentary checksumming support for the transmited data. As a side benefit the ACKs coming back serve as a kind of flow control.
  • Having the program 'checksum' itself in memory to try to spot typing errors.

And then on top of all of this the user has to be savvy enough to use a null modem and to have another machine with appropriate software (hopefully just a terminal emulator with Xmodem).

For a newbie it's just going to make a lot more sense to have somebody send diskettes in the mail. (And I'm presuming the non-newbies don't have a need for this.)
 
I'm not familiar with the different cassette formats, but the original IBM PC (5150) you might be able to write something in cassette basic to load things via tape drive, then continue loading the file via serial (similar to one adaptation of ADTPro). Yes Mike wrote a similar drive backup program (I think in Qbasic.. I don't recall if it was his own protocol or used ftp to transfer the image) so he may have some good comments or existing tips on reading raw data from a drive via QB.

Now there is an idea ...

A Cassette BASIC program distributed as an MP3 that can load enough code to transfer a diskette over the serial port. That takes care of the typo problem.

The downside to this approach is the cords for the cassette port and that only the PC and PCjr have a cassette port.
 
For a newbie it's just going to make a lot more sense to have somebody send diskettes in the mail. (And I'm presuming the non-newbies don't have a need for this.)
For once I agree with ya ;-)

Does the ROM BASIC even have comm instructions? I was under the impression that it does not, which would make this an even greater challenge...

Regarding typos in a BASIC loader: Probably not relevant in this case, but many versions of MS BASIC allow you to merely type "RUN COM: xxx" which will read in a BASIC program over the serial port and execute it when it hits the EOF.
 
Back
Top