Jump to content
IGNORED

The buffer (and other unsung heroic peripherals)


Keatah

Recommended Posts

As classic computer enthusiasts we all know and love the 300/1200 baud modem. At least we did back in the day. Today, perhaps not so much.

 

But I was happy and pleased to see the 300 baud Hayes MicroModem II start moving on eBay for around 40 or 50 bucks. Finally!

 

Though what I want to discuss is the printer buffer. A printer buffer does pretty much exactly what it sounds like. Takes in data from the computer as fast as it can, and then feeds it to the printer at the printer's much slower speed.

 

We don't think anything of it today, the OS performs the buffering, and there is memory within the printer too. But it wasn't always like that. In the Apple II days, the 6502 would control and manage the printer. The 6502 was intimately aware of where the head was instructed to move and what pins were supposed to fire and when. And while it was doing that it did nothing else. Not unlike the Disk II drive, which also needed 100% of the 6502's attention span. So if you had a program to list, you had to wait it out as your dot-matrix (loudly I might add) buzzed and screeched away, line by line. Printing a page could take many minutes. And large jobs like the BASIC listing for my BBS or a PrintShop banner could take an hour even!

 

God help you if you were doing any kind of letter-quality daisy-wheel or strike-ball simulation on your dot-matrix. You could potentially be advancing the paper by 1/216th of an inch for the whole page. Times that by 11 and you've got nearly 2400 swings of the head. And only 1 dot out of the 9 available vertically arranged pins typically used in early matrix printing would be used. Ohh, and did I mention the head could be moved at 1/2 or 1/4th speed for longer impact (darker ink) time? This meant hours for a 3 page school report! Double Strike mode? Double the time. This on a good quality Epson MX-80. Cheaper printers were even slower yet.

 

I strategically listed the BBS or printed signs during dinner time or before leaving for school or when going outside to play. Had to, because, the computer couldn't do anything else. And I wasn't about to sit there for an hour watching the head move, let alone put up with all that noise. The CPU had to babysit the printer. Dot by dot. And this cost me valuable game-playing time too. So being smart about printer scheduling was a necessity.

 

Sometime in 1982 I discovered something called the MicroBuffer. I didn't know what it was, but it looked cool and I had to have one. As I read about it I realized it could be a magic godsend! The literature said it would only take seconds or a minute to dump the entire printout to the buffer, and the buffer would "release" the computer and make it free to do something else. And it was true! I could dump my BBS listing very quickly and get back to playing games, all the while the MicroBuffer kept the printer busy, dot-by-dot. I could "print" a PrintShop banner in 3 minutes instead of an hour! Send to printer, pick out a game to play, reboot! First time I did this trick my buddies thought I had a second computer hidden away, cranking through signs and banners.

 

Playing Bandits and printing PrintShop AT THE SAME TIME? Blasphemy! It was black magic!

 

Now, mind you, 64K doesn't mean a 64K program. More like 50K, because there are printer control codes, especially for graphics where each pin and position is individually addressable. But never mind, there were upgrades to take it to 128K, then 192K, and a fat-ass whopping 256K. I did an upgrade and was ultimately able to hold several Hi-Res screens, 2X BBS listing, or an entire 5 meter banner.

 

Additionally there were buttons on the front panel (the whole thing looked like a 1/3rd height Disk II drive). And these buttons allowed me to make a copy, clear the memory, or pause the printout. This helped save me from the horror of running out of paper on the last page of a 25-page BASIC listing - when there were 24 sheets of fanfold left in the sheaf. I'd pause and tape in another coupla pages! Or if one of my WaReZ BuDdiEZ called, I could pause and talk without all the racket going.

 

So you see, the pause feature was indispensable.

 

The MicroBuffer was what I considered a power-peripheral. One that was genuinely useful and time-saving. Sped up operations. Added new functionality and convenience. Extended my dominance in in the computer/bed room. It was my domain. I was in command more than ever! I would swell up in size and ease the seat back. It even felt like I was sending my printouts to another space and time, and as my room caught up to the future, the printout would appear in the printer. I could even turn off the computer and the printer would still continue to work. Magic. Try that today.

 

It was positively well worth the $400 I conned out my parents.

Edited by Keatah
  • Like 4
Link to comment
Share on other sites

I remember there being several printer buffers available, but I don't remember any one specifically.
The promise of being able to print while you work!
You could buy some of them with as little as 8K of RAM and upgrade them later.
I just remember them costing $200+ and I couldn't afford one.
At least one magazine published a design to build your own if I remember right.

Once computers had enough RAM, you could use a software print spooler, but they only used whatever RAM was available on your computer, and you wouldn't be running a game while they worked.
That was one of the popular uses of the large RAM upgrades for the Apple II. 256K, 512K, etc... and it could also be used for a disk cache.
Patches were available for the Apple Language System (Apple Pascal mostly) so code modules could load quickly.

Link to comment
Share on other sites

While I agree with everything you've said re: the sheer usability bliss that an external print buffer provided, there was one downside to them:

 

The daisy-wheel printer.

 

You touched on this briefly, but something that younger readers may not understand was that dot-matrix printers were generally faster and quieter (though not by very much) than daisy-wheels. Ultimately, though, the choice was between the sustained screech of a dot-matrix or the staccato saw-wave of a daisy wheel.

 

Consider this scenario: you have two relatives in your immediate family who print 600-plus-page manuscripts. They are required to do this on a daisy-wheel, because the publisher of said manuscripts will not accept output from a dot-matrix printer - even one that was capable of near letter-quality output.

 

Do you know how long it takes to print 650 pages on a Qume daisy-wheel printer? I do. It's a very, very long time.

 

Now, imagine for a moment that without the print buffer, the computer is going to be tied up for hours and hours printing. That's fine; it's dedicated to that task, and isn't going to do much of anything else because it's an Apple ][+ or //e running WordStar under CP/M, so there's no multitasking. Even when that same computer became a 286-class-or-lower PC running WordStar under DOS, it still wasn't multitasking. You weren't going to use it for anything else, so you found something else to do while it was busy.

 

Then came that taunting little bastard, the print buffer. Someone bought and installed one, and it seemed like a good idea at the time.

 

Now the computer was free for use again a few minutes after sending the print job to it. But you were sitting with your ear six feet away from the damn daisy-wheel as it machine-gunned its way through the document at what seemed like several thousand clacking and clattering decibels, which made you not want to use the computer. But you still really wanted to use the computer. Badly. And you might, for a short while, until the noise became unbearable. You'd go away, thinking you'd just come back when it was done, but you wouldn't. You'd think that this time - this time - it wouldn't be so bad, and you'd subsequently figure out in no short order that nope, it still sucked.

 

Acoustic hoods? Load of crap. Still needed to have somewhere for the fanfold paper to be spit out from, which meant a slit in the case, which let out a different kind of muffled, annoying noise. Quieter, but still annoying. And earplugs didn't stop the vibrations, or slamming of the print head, that reverbrated through the floor and desk.

 

Oh, and for a delicious bit of irony: the publisher in question allowed writers to upload their manuscripts via modem to a BBS they had set up for that purpose. But those uploads could only be used for proofing, not publishing. All publishing required printing out the manuscript and FedExing it to them, exactly the same as if it had been banged out on a Smith-Corona. No, they would not print it out on the author's behalf and deliver it, internally, to the appropriate department for typesetting and printing; that was up to the writer.

 

There are large parts of my early life that are punctuated by the sound of a printer on the other side of the house running off a manuscript well before I went to bed, and continuing on in the morning until well after I had woken up.

 

Nostalgic and appreciative as I am of old hardware in general, the laser printer was one of the 20th Century's greatest inventions.

  • Like 2
Link to comment
Share on other sites

Okay, this is creepy.
I loaded the pdf of the Sept 1984 issue of 80 Micro completely at random and it has the design for a hardware printer buffer.
And that was the first issue I tried to load. There are 52 issues in that directory.
Creepier yet, I tried to load another issue at random.
You guessed it... software spooler for the TRS-80. December 1982 80 Micro.
I should buy a lottery ticket.

Edited by JamesD
  • Like 1
Link to comment
Share on other sites

And it only cost your parents $400 to keep you from going outside to play. :P

Really, software print spoolers only worked if you had enough free RAM, the program didn't drive the printer port directly, and if you weren't running really large print jobs.

Unless you had a software print spooler that queued the data to a disk drive and ran the printer via a separate task, you are pretty much limited to printing a handful of pages at any given time. I'm not aware of any print spoolers that used a disk drive to queue output on 8 bits. Floppy drives were too slow and didn't hold enough data for that. Maybe OS-9 had something like that, but that would be about the only system I know of capable of something like that and it would have required a hard drive.
Software print spoolers may have suited a lot of small business and personal needs, but you really need hardware buffers for the size of print jobs you required.
At least at that time.
I think you might have found a large RAM expansion more useful in the long run since it could also be used as a disk cache, but you wouldn't have been able to play anything but BASIC games while you were printing.

Link to comment
Share on other sites

Was there ever a hardware print buffer for the Coco? I do not recall seeing any advertisements for one, but it was also not something that I would have wanted/needed.

 

I do remember seeing published magazine program listings for print spoolers.

Link to comment
Share on other sites

Was there ever a hardware print buffer for the Coco? I do not recall seeing any advertisements for one, but it was also not something that I would have wanted/needed.

 

I do remember seeing published magazine program listings for print spoolers.

Well, the CoCo had 32K of unused RAM if you were running BASIC (see the above articles), so it had a larger software buffer potential to begin with... at least from BASIC.

A hardware serial printer buffer was certainly possible, and if you had a serial to parallel converter like I did, you could use the same printer buffers as any other machine.

But I don't specifically remember a hardware serial printer buffer for the beast.

I'm surprised there was never a serial to parallel converter with a built in print buffer.

That would have been fairly easy to implement with a 6803.

You probably could have sold it with no RAM for $50 and have a few sockets for SRAM on it and/or a connector for RAM expansion.

 

Link to comment
Share on other sites

I liked to print standard Apple II hi-res screens too. Like the hi-res pictures that were circulated in user's groups and demo disks. Each one cost 8192 bytes in Apple II semiconductor memory, or floppy disk space. But in the print buffer it was a different matter. a 64K buffer would hold about 85% of a hi-res screen. 128K would hold it nicely with room to spare.

 

Big buffers were important. I discovered the MicroBuffer before the RamWorks product line. So I had already gotten used to it. To be limited by software spooler would have been an annoyance. And the RamWorks would have been even more expensive anyways I think.

 

My first intro to RAMdisks was via a tiny file that when ran, would convert the 16K card to like a 60-sector disk. I was amazed and blown away. Then when I got into the //e I could have that PLUS a 212 sector drive too! I again would have considered a bigger memory card, but, cost. Instead I eventually got into a Sider 10MB. That was serious stuff.

 

RAMdisks were cool and all, but I disliked the power-off feature of erasing everything. And I didn't have a business case or a technical case to justify something like a RamKeeper or an Axalon RamDisk. And I was already getting into preservation and keeping information safe anyways. One power blip and poof! And we had dirty power for a while, so..

Link to comment
Share on other sites

Not to take away from the discussion on the usefulness on a printer buffer, but most of the printers we used back in the day with the classic 8-bit machines had enough ROM in them to send some format commands, and to print the ASCII characters. The CPU didn't have to tell the printer how to draw an A - it just sent an ASCII A to the printer and the printer knew how to print it. As time went by, some printers had multiple fonts built into them (a draft font, and maybe Courier). Once bidirectional printing came alone, most printers had at least a 1 line buffer built in and enough logic to be able to move the head back and forth. The computer wasn't sending anything other than characters.

 

What you say is absolutely true, however, when it came to printing graphics. The computer had to send all of the data to the printer for each "column" of dots to print a graphical display, and that could take a very long time. I remember printing from GeoWrite to my Panasonic dot matrix printer on my Commodore 128. That was interminable. Tell it to print and go away for a half hour.

Link to comment
Share on other sites

Yeah, printing text was no problem with a software buffer. Graphics was the real problem.
Even on the CoCo where a hi-res screen was 6K, it had to be converted to match the printer which supported a much higher res.
The software buffer would let you get back to work quicker when you were dealing with graphics, but you were still stopped in your tracks for over 15 minutes at a time.

The RAMWorks cards for the IIe were expensive, but I'm not sure they were that much more than a print buffer. I remember them being $500 at some point but what year that was I have no idea.
The use I see for the RAM disk is more of a disk cache or to hold files that are accessed a lot that aren't modified.
You still want to write anything new back to the floppy.

I used a RAM drive a lot in the Amiga days. Mostly for files for my compiler. It took a while to load it up and it was a pain whenever I had to reboot, but it sped development up a lot for me.
But it was integrated into the OS and it's floppies held more too.

Link to comment
Share on other sites

BTW, how would be a software buffer be an annoyance?

They run pretty much transparently in the background.

Yeah, they won't work with everything but I'm not sure I call that an annoyance. Inconvenience for sure...

 

Well I was a kid at the time, and switching between games often meant powering down and a restart, or a reset. Both actions would stop a software buffer. But the external in-line buffer was not affected by that.

  • Like 1
Link to comment
Share on other sites

I just recalled another important use of the in-line external buffer. The Pause Key, while I mentioned it before, I failed to mention the most important reason. Heat. After printing 2 or 3 hi-res pictures (or dense PrintShop images) it was important to give the printer a break to not let the head overheat. Especially on digitized images that had a lot of black in them. Or other high-density printing with a lot of black.

 

While one could argue to just wait in-between pictures - that meant tying up the computer again.

 

Today I got to thinking I could build a simple circuit that would sense the temperature of the head, once it reach X degrees the circuit would press the pause button. And once it fell back into range, count 2 minutes more, and press the button again, thus resuming printing.

 

This is a function that could be easily done in software, send 4K of data, wait 1 minute, send 4K more.. And if I recall there was some software that would do exactly that.

  • Like 1
Link to comment
Share on other sites

My Second Computer was an Apple ][e, which I got in NOV-1983.. My dad bought a Star Gemini 10, ( SG10 ) and I knew from High School that the Epson MX-80 would slow the computer down while printing, so I started looking for options...

 

I found the Microbuffer ][, and I "splurged" and got the one with 64K and both Parallel and Serial...

 

 

( This picture I found "On The 'Net" and looks to be just the Parallel Version )

practical-peripherals-apple-ii-compatibl

 

That made a huge difference in Printing and moving on to "other work"....

 

 

MarkO

Edited by MarkO
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...