I'm sitting at home using VPN to connect into work. I'm downloading one of the later builds of whidbey and all of our source tree. It's going to take a long time. At least I'm not doing it manually, my home computer is talking to my work machine using terminal server. Now that's an excellent application. I use it all the time. Even if we bought the technology, it still rocks. We've come a long way. I remember running a project under contract years ago to build a remoted desktop product. I designed the networking layer using an abstraction for asynchronous mailboxes. It supported using TCP/IP, IPX, shared memory and direct RS232 connections, though it was nothing compared to Terminal Server. I suppose everyone can just point at XWindows and say its all been done before, and maybe that's true. At least you don't have to re-code to widgets.
In my early days of programming, back when the optimal platform was an Atari 800 and a creaky chair in the far corner of a cold basement, I wrote a few programs for terminal emulation over a modem. The best one was a app written in the Action programming language. I like that language the best. It was a bit like a reduced set of C. It ran off a 16K cartridge, which was actually pulling double duty as 2 bank-switched 8Kcartridges. The apps written with it usually required the runtime on the ROM, but if you were frugal and wrote your own routines you could build a decent stand alone app. My brother preferred to write his little projects using BASM, a BASIC assembler. He didn't actually write basic. The product was a damn good assembly-assembler, ran fast and handled large files. It put to shame the cartridge based assembly put out by Atari.
The terminal emulator did a bit of file copy using XMODEM protocol. I'm sure it was not the best of the bunch. I never sold it or gave it away. Writing the code for me was always more fun than putting it to practical use. Let's hope I've changed.
Of course, it was not my favorite. My favorite was a tiny termanl emulation program written directly in 6502 assembly. It was 126 bytes long, handled cursoring, CRLF translation, baud, parity, and duplex settings. You see, even at a young age my brother and I were always in competition over who would write the best app. At some point we got to competing on size. Boys do that. I won. The whole program fit onto one disk sector, with room for the link-chain bytes at the end. That was one of those 90KB disks. I think I still have the IndusGT drive in the garage somewhere. I had to buy that one after the original drive burned out, the third time. They don't make'm like the used to. I hope this doesn't date me. I'd rather date a real person.
But I digress.