10 ms·
File transfers via the parallel port on DOS using LapLink
- jgrahamc 4y agoWe've got so used to WiFi, GSM and Bluetooth that people forget how robust wired connections are.
- jacquesm 4y agoBluetooth is anything but robust.
- jgrahamc 4y agoThat was kind of my point. People have got used to Bluetooth being flaky, WiFi having dead spots, WiFi performance not being that great, etc. They've forgotten how good wired connections are. In my house I have a nice WiFi set up and performance from the Apple TV was awful. I discovered that someone had put in some Cat 5 in the walls and managed to test it, splice a few cables and get Ethernet working. End of trouble.
- jacquesm 4y agoI use cable where I can and wireless only when I absolutely have to.
- mmastrac 4y agoSame here. I specifically wired everything in my new house, including Chromecasts. There's enough going wrong with random software that adding a wireless link into the mix doesn't help.
- bombcar 4y agoAnd amusingly enough the more wired you use the better the remaining wireless connections are (as they don’t have to compete).
- anotherevan 4y agoYep! Ran CAT5 throughout my house while it was being built. Proved very handy.
- b_m_x 4y agoRan Coax throughout my house, always running out of T.
- unixhero 4y agoLaplink was so great and always worked. The only thing was the lack of possibility to play games over parralell link, only serial was possible. That is not laplinks' fault but rather the technology. Naturally parallell 25 pin cables had a much higher throughoutput rate than serial 9pin links had.
- tokamak-teapot 4y agoI used to play multiplayer DOOM over parallel port in 1994. https://www.doomworld.com/files/file/836-parallel-link-driver-for-doom/ https://www.doomworld.com/files/file/836-parallel-link-drive...
- MisterTea 4y agoWhat games did Laplink enabled serial multiplayer for? Back then game devs had to roll their own. And likely they chose to avoid parallel because early ports were not intended for communication but rather a primitive extension of the CPU bus to an external device, originally printers. It allowed you to send bytes to a device and then read back a few GPIO like signals the device would set to indicate things like acknowledged, error, paper jam and so on. It was only later on they added functionality and smarts in the form of ECP/EPP with two way data transfers, buffers, IRQ and DMA. On top of all that, a parallel bus over cable is severely limited to something like 4-5 meters or 15 feet. Serial from the get-go was designed for device-device coms and with the right cable, RS232 can extend up to 100m. Of course you can change the electrical interface of serial to a differential, current or fiber interface and extend serial to reach many km.
- unixhero 4y agoThanks for the deep dive! No games, and I didn't say that either. Although the post itself was a bit unstructured I can see how you thought that.
- MisterTea 4y agoIt did read as if laplink was part of serial gaming and wondered if there was some alternate functionality or API/TSR it offered which I was ignorant of.
- mwexler 4y agoI loved the kit: easy to use software with a hydra cable that linked to everything available at the time (which was basically serial and parallel printer ports). Did many migrations with this thing. I remember one friend asked me to bring over "your computer jumper cables" to help migrate.
- anilakar 4y agoThe version I had came with a thin blue serial cable with DE9 and DB25 serial connectors on both ends. The thick yellow parallel cable had to be purchased separately.
- bcrl 4y agoThe first x86 system I had was a hand me down 286. The parallel port on the motherboard was only unidirectional, so I modified it to be bidirectional by soldering a bodge wire between the output enable signal on one of the 74LS374 (I think) and the other control register. Ah, old systems were so hackable in the 1980s prior to the mass migration to large scale SoCs.
- jacquesm 4y agoYou can even do IP: https://docs.freebsd.org/doc/7.4-RELEASE/usr/share/doc/handbook/network-plip.html https://docs.freebsd.org/doc/7.4-RELEASE/usr/share/doc/handb...
- wdrw 4y agoThe parallel port was wonderfully hackable. Having your PC control an LED light, or even a motor (with some effort), didn't take a whole lot of electronics knowledge. Or 8 LEDs, one per pin. And controlling it was as easy as sending text to a printer. We lost this in the age of USB... When I was a kid my dad helped me hook up a pin to a motor. And not just any motor, but one inside a cassette tape player. I could then make little games in BASIC that had real voice! Of course it had to be linear, it basically played chunks of voice recording and stopped at the right times.
- madaxe_again 4y agoYeah, I remember banging together a very simple ADC to take readings from various sensors straight into the parallel port - and being amazed at how easy it was to build something that could talk directly to PC hardware.
- bluedino 4y agoParallel ports were very popular for connecting joysticks to MAME cabinets The Covox speech thing was a nice hack as well https://en.wikipedia.org/wiki/Covox_Speech_Thing https://en.wikipedia.org/wiki/Covox_Speech_Thing
- mobilio 4y agoand ModPlay: https://awe.com/mark/dev/modplay.html https://awe.com/mark/dev/modplay.html Amazing software for that time.
- kotaKat 4y agoAnd homebrew SNES controller adapters! Good ol' "SNES controller on lpt1" in zsnes got me many hours of emulation fun back in the day. https://www.raphnet.net/electronique/snes_adaptor/images/snes_interface.png https://www.raphnet.net/electronique/snes_adaptor/images/sne...
- bluedino 4y agoI remember learning about this by some company that made DOS shareware clones of PacMan and Galaga but can't remember the name. Ring a bell?
- danrl 4y agoNostalgic! I used LapLink a lot back in the days. When Ethernet became affordable I was baffled by the speed of data transfer. Lightning fast! Written from a mobile phone with 5G. Tell me about exponential growth.
- mmastrac 4y agoI started out with 10mbps links and those were gloriously fast. I even had a 3com card in a 386 that was running linux.
- fortran77 4y agoLaPlink (as we called it) was such a useful utility back before wireless and even before ethernet. And they're still in business: https://web.laplink.com/ https://web.laplink.com/
- fatnoah 4y agoWow, this takes me back to my freshman year of college in 1993 and trying to connect computers in different dorm rooms with lengthy serial cables. We eventually got it to work, but I remember it took a couple days of tinkering. In the summer after that year, the school networked all of the on campus housing via ethernet, so connecting things the following year was much easier.
- bluedino 4y agoHad some fun one time making a boot floppy to install Linux from a parallel port CD-ROM or Zip drive https://tldp.org/LDP/Mobile-Guide/html/mobile-guide-p1c3s4-installation-methods.html#mobile-guide-p1c3s10-from-a-parallel-port-zip-drive https://tldp.org/LDP/Mobile-Guide/html/mobile-guide-p1c3s4-i... Worked great in the days when networking equipment was still expensive
- andix 4y agoI always used INTERLNK, which was included with MS-DOS 6.22. I think you could even just copy the exe to older DOS versions and it would just work.
- micheljansen 4y agoOh this takes me back! I spent an afternoon soldering my own null modem cable so I could transfer large files without the hassle of spreading them across multiple diskettes (and play games, of course!)
- littlecranky67 4y agoI also remember INTERLNK but IIRC it was using a null-modem cable on the serial port, not parallel port.
- andix 4y agoIt could do both I think. I only used it with the parallel cable. And I still used it with Windows 95 in DOS mode. Back then most pcs still didn’t have NICs.
- pjmlp 4y agoNow that is a travel to my teenage years
- Starwatcher2001 4y agoGood old laplink. I've still got a "hydra" cable in my desk drawer. Back in the 90s I used the parallel port to interface a PC to a TRS-80 to allow me to store games on the PC. As another commenter has mentioned, the parallel cable isn't fully bidirectional so I used the printer ready, paper out and other signals as imput lines and wrote a nybble (half a byte) based protocol between the two. Fun times.
- raffraffraff 4y agoJesus, HN has been a nostalgia machine recently. That's another thing I didn't realise I had forgotten.
- jon_adler 4y agoHas MFM vs RLL encoding of hard disks been brought up recently? Hopefully I was able to remind you of another thing you thought you had forgotten.
- bombcar 4y agoProcomm Plus was brought to mind, when you not only needed the phone number (remember to use the local one!) but also the baud and parity settings.
- hed 4y agoMy best use of LapLink was as a teen helping migrate a library off an old system. I think it was using NetWare 2.x with some DOS emulation for a library card catalog. Couldn't get it to talk IPX to the existing NetWare stuff (5.x) we were migrating to. But the DOS emulation was complete enough for us to install LapLink and bring over the files for the program! I still have the yellow parallel cable and blue serial cables at my parents' house. Also pretty sure I used the blue cable to do Command & Conquer over null modem to the next room at home before I figured out how to install IPX/SPX and get the machines to talk over the 10Base2 that was between them.
- hilbert42 4y ago"I still have the yellow parallel cable and blue serial cables at my parents' house" I still have both cables and they reside in my miscellaneous computer cables box (as opposed to the box of regularly used cables). I still consider LapLink (the software I also have) as a viable maintenance tool for when I have to occasionally maintain old DOS or Win 3.1 machines (surprisingly there are still some about including several that I own). Recently, I came close to chucking them out but stopped short of doing that after I had to find some old files still stored on floppies and for doing that the quickest method was to use the DOS machine. (Logic dictated that if I still used a machine then it made sense to keep its maintenance tools.)
- ThinkingGuy 4y agoAt my first desktop support job, we used to back up users' laptops over the parallel port to a blank drive on another computer. One time, I got the command line parameters wrong, and accidentally ran the copy in the opposite direction, overwriting a senior manager's disk drive with a blank disk image. It was the first "big mistake" of my IT career.
- chasd00 4y agoRemember AT power supplies? i wired a power switch backwards once, turned it on, it exploded and started a literal fire in the office at a client. That was nice.
- geocrasher 4y agoI did a working interview at a pc shop in the late 90's, and the other guy doing the same interview swapped those on a customer's computer and smoked the new motherboard and the PSU. I knew there was an issue when they hired me... and him. Worst job ever.
- bombcar 4y agoThey used to have a physical 220/110 voltage switch on them, and you could cause fun by playing with it.
- toast0 4y agoI think these were way more fun to play with if your line voltage was 220, than if your line voltage was 110; I only remember it as a thing to check if stuff isn't working, not a source of magic smoke or sparks.
- dmeybohm 4y agoI wrote a utility to copy small files from Linux -> DOS over a LapLink cable. https://github.com/dmeybohm/ppcopy https://github.com/dmeybohm/ppcopy I used it to fix a Windows 98 laptop that wasn't booting all the way to Windows. The would boot to a DOS prompt only, there was no CD-ROM driver, and I only had a Windows 98 install CD. So, there was no to re-install Windows to fix it. So I wrote the assembly copier for the parallel port. I think it was about 200-500 bytes. Then I used dos DEBUG.EXE to write the hexadecimal code for the program into memory and then write the .COM program to disk. Surprisingly, I didn't make any mistakes (or any that mattered...) and it worked the first time. I had also done a checksum in the copy program in case I screwed it up. But it took about an hour to write the program into DOS debug.exe.
- ronsor 4y agoEven in DOS, I think copy LPT1 output.bin would have worked at the time. Anyway, was there a chance you posted that story to Reddit or somewhere else previously? I'm sure I've read it before.
- dmeybohm 4y agoThanks - I don't know if I ever tried that. I'm curious if that works, sadly I don't have any hardware to check anymore. It seems unlikely to me though that that would work on DOS without special software because it's such a pauper's OS. To implement the read-side, the DOS kernel or COPY program would have to have a way to pretend to be a printer and then clock the data in according to some protocol. And given DOS is so resource constrained, seems unlikely Microsoft would add code in those fundamental pieces for such a use case, unless it were as simple as switching a few instructions. There is also the INTERLNK and INTERSVR programs that are built-in to either MS-DOS 6 or 6.22 that could help with that use case. Yeah, I've probably posted about it before - maybe even here.
- bombcar 4y agoCopying from a COM port could work because the MODE command could set the various settings - but input from LPT1 or PRN wouldn’t work by default in DOS.
- FullyFunctional 4y agoLinux support IP over the same cable, it's known as PLIP, parallel-port Internet. It was the only way to access the outside world on my Toshiba T1800 laptop. However it wasn't fast (23 kB/s IIRC) and it completely bogged down the host (no hardware acceleration there). There were experimental work on "8-bit PLIP", but the hardware wasn't very standard and in my testing it wasn't actually faster in practice. There was also some kind of DMA standard for the parallel port, but I don't think anyone succeeded in exploiting it for PLIP. The who PLIP experience gave me a new appreciation for IBM's hardware accelerated "channels" concept - something we never got with x86 given its origin.
- gattilorenz 4y ago> It was the only way to access the outside world on my Toshiba T1800 laptop Didn't it have a serial port?
- cogman10 4y agoWhat was wild to me is learning that serial communication is almost always faster than parallel communication. Turns out, synchronizing arriving signals is hard.
- StillBored 4y ago" serial communication is almost always faster than parallel communication." Its a bit more complex than that. The PC serial port's top speed from the PC->printer/etc was significantly faster than serial at the time. Its only in the reverse direction that there were problems (note comment above about using the control lines for device->PC). And that is by design, the ISA/PCI/RAM/etc buses were parallel, and despite many of them becoming "serial" are still technically parallel (ex: PCIe) because its far easier to gang a bunch of serial data lines together and deal with said synchronization (which is frequently fixed by the hw design/trace length/etc) than attempt ever higher serial frequencies. And that is fundamentally the problem with trying to use serial as a high speed peripheral interconnect (see HDMI vs displayport for an nice example of hitting walls). Eventually one runs out of bandwidth and the solution ends up being ganging a pile of them together into a... parallel bus. Its why thunderbolt will perpetually be a loser when it comes to GPU attach/etc. A serdes at N Ghz+PAM can just be put on a motherboard x16, and each line is synchronized at a higher level instead of each bit. Ex: PCIe 6. Same with RAM buses, the latency and bandwidth advantages have basically kept them parallel buses (using per line serdes kinds of tech), despite various serial memory standards. Another example is ethernet where QSFP's are just x4 serial lines.. aka in parallel. SAS x4, etc. So, these days like RISC/CISC its hard to be 100% correct calling some of these technologies pure serial or parallel.
- awiesenhofer 4y agoOh what a blast from the past - copying files with blazingly fast 1MB/s! If you prefer a Windows GUI to this, Total Commander has full support for Laplink (still) built in: https://www.ghisler.com/efaqport.htm https://www.ghisler.com/efaqport.htm
- bombcar 4y ago1MB/s is pretty fast all things considered - a gig every 17 minutes.
- sponaugle 4y agoThere was a lot you could do with the parallel port. I was a coauthor on a paper about using parallel ports to interconnect computers to provide barrier synchronization for large parallel computing projects. It was a surprisingly fast way of getting a bunch of single bit synchronizations across a bunch of machines. This was back in the early 90s. link - https://ieeexplore.ieee.org/document/4115699 https://ieeexplore.ieee.org/document/4115699
- mcshaner1 4y agoThat interconnect was 3 or 4 orders of magnitude faster than Ethernet at the time for things like barrier synchronization and the hardware was fairly simple. [1] http://aggregate.org/AFN/ http://aggregate.org/AFN/ has more, including hardware designs. [1] http://aggregate.org/TechPub/spdp96a.pdf http://aggregate.org/TechPub/spdp96a.pdf
- a9h74j 4y agoGood links there. At a slightly higher level, I've sometimes wondered whether RTOSs and OS schedulers could make use of special-function hardware registers for keeping track of priority logic, etc.
- sponaugle 4y agoVery cool. It all started because we had a bunch of gateway PCs that had parallel ports and we wanted something to synchronized across them. It was fun trying out different parallel cards made with different 374 latches. We even made a few custom ISA cards to play around with other ideas. Hard to believe it has been 30 years since I was at Purdue!
- raintrees 4y agoI still have my custom-made 20' cable for laplink over parallel ports... Those were the days.
- deelowe 4y agoEarly in my career, I spent an extraordinary amount of time as a co-op in a factory running around backing up logs and various other items using LapLink. If we ignore the manual labor part of it, it was a fairly decent system for weekly cold backups (our warm back-up solution was network based).
- 1970-01-01 4y agoLapLink was a great idea and solved a very real problem: You could not copy large files (anything larger than 1.44MB) around without this, tape, or modem (and when it worked you felt it was finally time to build that Ethernet network).
- ridgered4 4y agoI remember using pkzip's spanning feature to transport MP3 files home from school with a few floppies. I certainly would have preferred using something more like laplink in that case. There was a very weird period of time there where floppy drives stopped advancing in capacity but the average file size had continued to outgrown them for years. I remember the iomega zip disks, despite their faults, actually showing up in a lot computer labs before flash drives finally buried them.
- tommieb 4y agoLHZ / ARJ archive anyone? :)
- JoeAltmaier 4y agoI tried to make a high-speed bus between a pair of computers using the parallel port once. But I couldn't get any appreciable bandwidth out of it. Turns out the hardware I was using (CTOS/BTOS workstation) had a capacitor on a critical line. To reduce noise the hardware guy said. But it severely limited the maximum transfer rate. On the widest connector available at the time! Printers don't need to go that fast, he said. Anyway it still seems like a lost opportunity, years later.
- wmitty 4y agoLaplink 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.
- kingcharles 4y agoThat's actually really impressive.
- mananaysiempre 4y agoIt’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 https://pygmy.utoh.org/3ins4th.html
- iforgotpassword 4y agoA 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.
- api 4y agoI migrated data off a dying PC once onto a new one in a pinch by using two paperclips to cross the TX/RX pins of both computers' serial ports while they were back to back. Then I used PC Anywhere (another fine bit of software) to do the file transfer. Took about 24 hours but moved everything fine. Year was 1997 I think.
- phendrenad2 4y agoParallel port was great. It's super annoying that USB-to-Parallel adapters cut corners and only transmit the bare minimum signals to print to an inkjet printer. There was a rich ecosystem of parallel port devices out there, including MIDI and SCSI adapters, even ethernet ports. But none of them work through USB adapters.
- wolrah 4y ago> It's super annoying that USB-to-Parallel adapters cut corners and only transmit the bare minimum signals to print to an inkjet printer. That's because they weren't USB-to-Parallel adapters, they were USB printer adapters. A parallel port was effectively a GPIO port to which most people happened to attach a printer. There is no standard USB device class for arbitrary GPIO devices. The USB printer class is defined to make sense for native USB printers, so USB printer adapters present the same to the host and then convert this to a parallel format. This is a lot more efficient than having a device that actually implements arbitrary GPIO and then bitbanging those lines to speak to the printer. You might similarly note that a USB gameport adapter won't work with some higher end devices that "hacked" the port to offer force feedback and/or more than the expected amount of buttons, because the USB HID game controller class is designed to efficiently handle native devices rather than to support all possible weird ways one could use a port in the days of raw hardware access.
- tristor 4y agoOh wow, this brought back memories. I remember using LapLink to transfer files from our family desktop to a used Toshiba 286 laptop that my parents found for me over a parallel cable so I could mirror the setup. I ended up using this tool multiple times over the years, and even well into the Win2k / Win98 days, it was still a more reliable method for transferring files between computers on WinTel systems vs other methods. Sometime in the Win2k days I transitioned to using a crossover Ethernet cable and setting up an FTP server on the origin system.
- systems_glitch 4y agoThis works with Microsoft's INTERLNK/INTERSVR as well. As others have mentioned, this was our first form of networking at home! Even had a special DB25 punchout wall plate to make the non-basement end more presentable.
- malkia 4y agoI used this few times, when I was a kid in one of our local PC computer clubs. It was magic to me. There were some alternatives, and friend of mine was using something "kermit"-based (protocol?). That was years before internet really came to my city for real.
- jon_adler 4y agoKermit, xmodem, ymodem and zmodem were all file transfer protocols, often used to transfer files on bulletin board systems (BBS).
- deleted 4y ago[deleted]
- akudlacek 4y agoNot as convenient for transfering from a modern Windows 10 to MS-DOS. I ran into this problem and used Kermit and teraterm. Teraterm has ability to transfer over a couple different protocols.
- bane 4y agooh man, this brings back some memories. In the early-mid 90s I worked at a mom-n-pop computer repair store and LapLink at some point became sort of a standard tool for all sorts of system setup and configuration stuff. Keep in mind that other data transfer options were generally disks of some sort that held less than 1.5MB of data and were very slow to write/read. It wasn't too important at the beginning as most systems with hard drives were generally only a few MB anyways. But storage moves fast and software bloats quick and it wasn't too long before we were shuffling a couple dozen disks worth of stuff onto new system builds or worse, between systems as people migrated. Optical wasn't really an option for lots of reasons, most notably very expensive and at the time generally SCSI and tended to be exotic WORM drives. Almost nobody in the consume market had SCSI in the IBM-PC compatibles, and the disks were $30-40 each if you managed to write one successfully. LapLink filled the gap for a couple of years instead. Connect the cable, boot to a couple of prepared floppies and start transferring. Really quite reliable even if it was slow. Eventually it became so slow, and we realized "hey we work in a shop where we can take the hardware apart anyways" and just started mounting the harddrives with the data to transfer from into the system with the new volume and using xcopy or eventually a clone tool. I think even that finally fell out of favor once rewritable IDE CDs became common, plus zip/jazz etc. drives, and eventually windows started shipping with a network stack, but I was long out of that business by then.
- jaimex2 4y agoRemote install on Laplink was the bomb.
- chrisstanchak 4y agoAh, the days of hauling my massive tower over to friend's houses and sharing programs we downloaded on BBSs via Laplink. Good times.
- outside1234 4y agoHoly cow - totally forgot about this. Thanks for the memory lane.
- hestefisk 4y agoOh man the nostalgia. Took me right back to my childhood.
- anotherevan 4y agoI have vague memories of doing this. For my final year project in university I made a signal generator that was controlled via the parallel port. Would create the desired waveform in a GUI DOS program, then download via the parallel port. Would also start/stop the signal generator via computer.
- scurraorbis 4y agoI really like the UX/UI of the transfer tool. The dialog meant for literate people that explains in clear terms what the problem is and what can be done about it is a breath of fresh air coming from our world where "the user is stupid" toy-like UIs dominate.