Hacker News new | ask | show | jobs
by wmitty 1534 days ago
Laplink had a really neat feature for when you didn't have your laplink install disk with you (or had the wrong size laplink install disk).

You could connect the two computers with a RS232 null modem cable, then type something like the following on the target computer:

mode COM1:2400,n,8,1,p

ctty COM1

This redirected the input/output for the terminal to the serial port.

Laplink on the source computer would then 'type' a series of console commands to create a simple transfer program on the target computer. It would use this simple transfer program to transfer the full laplink.

IIRC it used the msdos DEBUG.COM to build the transfer program on the target computer (but this is an old memory, so could easily be a reconstruction).

Composing this message is bringing back lots of weird memories about how we used to compute before the internet.

3 comments

A few years ago I revived my xt clone. It was pretty much in the original state from the 80s, but since I got a nice isa 10mbit nic, I thought i should get this sucker online.

But how to get the drivers on there? Copy via netw- oh wait. 5.25" floppy? Doesn't seem my laptop has a matching drive for that. I had a core2duo running as my home server which actually had a serial port, so win? Not so much, I had no success getting Linux to talk to the xt clone in any way. No idea if the port was bad, or the controller, or linux, or minicom/screen. So I dug out a Pentium 200 from the basement which had nt40 on it and visual basic 6. So I googled how to set up the serial port with it, wrote a simple sending tool, then googled some more to figure out how to write the receiving counterpart in gwbasic. At first the received file got corrupted since I didn't immediately grasp the whole flow control crap and just ignored it. But that lead to dropped data when the receive buffer filled up while the xt clone flushed the data to its massive 20mb drive. So I lowered the baud rate further and further until the clone could finally keep up. After transferring the driver plus htget sucessfully, I could finally download and upload everything else directly. All in all, that was a fun little exercise for a rainy Saturday, plus a few more weekends trying stuff out on the xt clone, like 8088mph which just hit the webs, and might have been what inspired me to go on this journey in the first place.

Glad you succeeded in getting your clone working. Here's some speculation/information that might have been helpful.

1) The old XT clones used 8250 UARTs which had no internal FIFO buffer and triggered an interrupt each time received data became available (RDA). (That is, assuming your software used interrupt-driven queues vs. polling.) Either way, the maximum usable baud rate was determined by the inter-character timing vs. the system latency + ISR/polling timing. Assuming the 8250 is socket-ed, replacing it with a 16550 series UART would greatly improve your ability to operate at higher baud rates.

2) You mentioned flow control, but there are many variants of that in both hardware and software (such as ENQ/ACK, XON/XOFF, RTS/CTS). A common problem when dealing with serial ports is that hardware handshaking is enabled by default so the OS will not send/receive data without asserting CD/RTS/CTS/DTR/DSR to the proper levels. So you can either use a cable that correctly connects the hardware handshake signals at each end (assuming the OS on each end properly uses them), or disable hardware handshaking (via software).

For the Apple II, there's Apple Disk Transfer ProDOS[1] to transfer disk images from a Java program on a modern computer to a disk on the Apple; there's a similar bootstrapping process which is fun to watch. There's a video tutorial which shows the sequence: https://youtu.be/1xworYThmMI?t=157

[1] https://www.adtpro.com/

I did something like that a few years back when I wanted to transfer a bunch of old floppies from my Apple ][ to a PC emulator. Eventually I worked my way to a IIGS with appletalk connected to a 68K mac with both appletalk and ethernet which FTP'ed things to my PC.

These days a far easier way to do this is to pick up one of the apple floppy->SD emulators. Replace one of the actual floppy drives with the emulator hardware and use Copy II+/etc to copy the floppy images to SD, which can then be plugged into your PC with them all stored as nice little disk images.

That's actually really impressive.
It’s pretty common to need this kind of bootstrap in the embedded world, and a similar technique is known there as the “three-instruction Forth”[1]. There is no actual Forth on the target, just a serial monitor with peek, poke, and jump, small enough that you can hand-assemble it in a pinch, but given a good dynamic interactive environment on the host you can build yourself a pretty comfy exploratory setup on top of that in a matter of days (hours, I imagine, for an embedded programmer who actually knows what they’re doing).

[1] https://pygmy.utoh.org/3ins4th.html