Author: David Small (97-124-170-241.hlrn.qwest.net)
Date: 06-08-2014 03:45
I wrote a Bit-3 display driver in the early 1980's for the ATR-8000. The ATR-8000 was a big part of my workstation and one of the finest computers I've ever seen. I managed to get a review of it into Byte magazine. (Later, a couple of its creators became mentors to me.)
I think you're saying that you have a Bit-3 board in your Atari 800. You've heard that the ATR-8000 CP/M terminal emulator can enable the Bit-3. You have an ATR-8000 (yes, I'm jealous, I wish I did too!), and you have a CP/M terminal emulator program, but it needs to turn on the Bit-3 to get you CP/M in 80 columns.
Here I grow confused. It's been awhile since I CP/Mmed. Tell me more about the terminal program. Did it run in the Atari and talk to the ATR-8000 through the Atari SIO/disk drive cable? Or is it more a cable running from the ATR's serial port to an Atari serial port? Or am I completely clueless (happens a lot!)
If I'm wrong here, please let me know, I'm just trying to understand what you need.
I'm trying to recall if the display driver I did was for the 6502 Atari, or for the Z80 ATR-8000. I think it was 6502 assembly. (I did a lot of 6502 in those years.) It may be that I wrote it, well, fixed it, for the ATR-8000 people, because the Bit-3 had problems where the ATR-8000 would overrun it. That's my best guess.
I do recall that I started off with someone else's Bit-3 driver code. Their coding style was "no comments" and "everything in hex". So they didn't use well-known Atari words like "DMACTL" or "GRACTL"; it was "$F023" and such.
I had to clean up the code to even start. So imagine me in a word processor, changing every occurence of "$F023" to "GRACTL", for pretty much every well-known constant / register/ port in the Atari. At times I wanted to meet the original coder by the throat.
Once I got it to version 1.0, in effect, I started taking a look at the problems reported with it. The Bit-3 board plotted characters fairly slowly, and it was easy to overload the Bit-3, and have it drop characters. The Atari or ATR-8000 can generate a whole bunch of characters in a big hurry, and I had to store them, then feed them one by one into the Bit-3, at the speed the Bit-3 could take.
I *think* I had to do this by testing during each vertical blank interrupt (each 1/60th sec) for if a new character had come in, and if so, store it, and, if the Bit-3 could handle it, take a character out of storage and feed it to the Bit-3.
This is standard "ring buffering"/ "circular buffering", I'm not trying to imply I was clever. I did allocate a fair amount of space for that circular buffer, because, because 80 characters per line X 25 lines = 2,000 characters per Bit-3 screen.
I wanted very high performance out of the Bit-3 because I wrote so many articles using the ATR-8000 for CP/M and 8" floppies, in WordStar (true!), and I wanted to be able to scroll up and down very very fast.
This was, say, 1984, so around 30 years ago. And it's funny how a divorce can get rid of a substantial amount of computer stuff.
I have an idea which may be worth what you're paying for it (e.g., nothing).
First, tell me more about the physical interface between the Atari and the ATR-8000. How are you hooking them together?
Second, what terminal program are you using, both on the Atari and on the ATR-8000?
Third, could you tell me what it's doing, and what you want it to do? Feel free to be specific or general, I'm trying to get an idea what might be needed,
Fourth, do you have any source code to the bit-3? On what Bit-3 code you have, does it say anything about who wrote it? Or do you not have any Bit-3 code?
Fifth, could you disassemble the Bit-3 driver code? (I don't know if you're a 6502 programmer). Hopefully with real symbols?
I'm willing to take a look at it and see if anything is familiar.
I don't have an 8-bit anymore (sadly), and I'm a little uncertain how I could test this out. But it's just possible that this could be a straightforward write to a Bit-3 register, and if so, it might be doable.
I hope this helps; I sure know the feeling of a piece of hardware working, but not having the software drivers that are needed. In fact, the computer I'm writing this on has that problem...
You know, I think I wrote an article about the Bit-3. Not sure at all. But if so, there may be information in there.
Feel free to drop me an email, give me some details, and we can go from there.