Attachment | Size |
---|---|
KeyboardSerialTerminalSchematics.pdf | 231.12 KB |
Hello everybody,
I worked on a couple of projects lately.
One of these is a convenient and quick way of loading software into the Apple-1 (or Apple ][). Sometimes the ACI is a little cumbersome.
Based on the ASCII to PS/2 Keyboard Adapter from Mike Willegal (see https://www.willegal.net/appleii/appleii-kb-int.htm), and of course after his approval, I designed the Keyboard Serial Terminal. See the attached renders.
On the backside the footprints are misleading, the idea is to use a 16 pin male-male IC adapter to 'select' the plugin connection for an Apple-1 or Apple ][. The adapter sits on top of the Apple-1 or Apple ][ motherboard on the keyboard socket. You can connect an RS232 cable (also works with a USB to RS232 adapter) to your more modern computer. Using for example minicom you can 'copy-paste' software, like memory tests, BASIC, games or whatever, directly to the Apple-1 or Apple ][.
I am currently finishing testing and will be offering kits soon. Also working on a next ASCII Keyboard Tester, more on that later.
Kind regards from Holland,
Bobby
This looks really cool! I'll be looking forward to the final version.
I'm excited to see this come to fruition! It would be interesting to have a passthrough so you could use the serial connection and/or an actual keyboard at the same time or easily switch with a toggle
Yes I have been thinking about that, but I have been playing around with my first prototype and you can (of course) just keep typing in the terminal program after a program is executed on the Apple-1. Also you could disattach the adapter and insert a keyboard while the Apple-1 is running, the improvements with some extra resistors that UncleBernie suggested are pretty handy in that case.
Some real pictures below. I got the 30th anniversary running and also Basic (Huston). I tried to load Star Trek, it loads but when I do a LIST it hangs when trying to display the second occurance of a double quote. I typed in the row manually, same thing. Some terminal settings maybe, or is the Star Trek game only compatible with certain Basic variants?
DSC01568_downsize.jpg
DSC01572_downsize.jpg
Making some progress. Able to play Lunar Lander (love that game) and Chess!
Had some problems with the MAX232 (only the ones by Maxim) running hot, found a solution in changing polarity of a condensator by looking at the datasheet more closely.
The second PCB attempt was electrically correct, but I messed up the RS232 connection physically, the board was too long haha...
Let's try again...
F306A97B-9271-4445-A5EC-8C747D3E95FF.jpeg
B7C668A1-1A6E-4DAA-8420-E6067278EFC8.jpeg
D9042660-9D83-4172-BEB0-1E6D22973473.jpeg
Hi Bobby -
great project ! Seems you have found a way to provide upload / download functions to the Apple-1 like my keyboard emulator cable via RS232 port, which may be less hard to find nowadays than the parallel printer port needed by my keyboard emulator cable, the last software revision found here:
https://www.applefritter.com/content/teaching-keyboard-emulator-cable-new-tricks
As a suggestion, I think it would be beneficial if you tried to provide some software and user interface level compatibility with my keyboard emulator cable. So that users find the same functionality and routine. I don't know if you could do the TUR ("turbo") file download via RS232 because its data rate is very high. But you could try, if you want. It would make your project much more versatile.
If you have any questions, send me a PM.
- Uncle Bernie
Hi all,
I have also made a couple of projects some time ago, both to connect a modern USB keyboard and to have a complete Fast Terminal:
https://p-l4b.github.io/USBKEY/
This allows to use a standard USB keyboard, with the possibility to send files to the Apple-1 via the Arduino serial USB.
Also, it includes the ASCII test program plus the Willegal Memory Test. They can be loaded with Function Keys.
I think this feature is useful for testing boards without perturbing the buses with additional cards.
https://p-l4b.github.io/terminal/
This project allows you to fully operate your Apple-1 Original, Full-Size Replica or Briel Computers Replica-1 Plus via a USB serial terminal.
You will be able to operate your computer without the need for an external keyboard or monitor as the computer's output will be replicated on the terminal.
The board also adds other interesting features such as the management of ANSI escape codes and much more.
Both projects are released under a Creative Commons BY 4.0 license, all the information needed to build and use them are included in the repositories mentioned above.
Enjoy! :-)
Claudio - P-LAB
There is a modification for the Briel Replica-1 that makes it possible to download programs at 115,200 bps over the serial port.
The key is the use of the 64-byte buffer inside the Propeller MCU and the handshake lines (CA1, CA2) in the 6821 PIA.
Hi Bernie, I did not come across your emulator cable project yet. Interesting, I will take a look at it more closely thanks.
The TUR files have some kind of machine code payload that "bypasses" the WOZMON terminal/display functionality in order to speed up the transfer? So the code is not "typed" on screen but stored in memory only?
I will try some of your files, see how it goes.
In post #9, 'njissen' wrote:
" The TUR files have some kind of machine code payload that "bypasses" the WOZMON terminal/display functionality in order to speed up the transfer? So the code is not "typed" on screen but stored in memory only ?"
Uncle Bernie answers:
Yes. Actually, there are several phases in the process. IIRC (has been a while) the first step is a loader which is sent to the Apple-1 in the 'traditional' way by emulating keystrokes und using WOZMON command line syntax. Once the loader is there, the system switches to 'turbotype' mode in which the whole actual software to be loaded is pumped into the Apple-1 at the highest possible speed. You can see the mass of data on the computer screen just blazing by. After that, IIRC, a checksum is calculated and if its right the program is started. But I'm not sure.
I have a similar tricked out "turbo" loader for the Gen2 improved ACI. It can load BASIC (4 kBytes) in a short audio burst of 2 seconds or so:
https://www.applefritter.com/content/can-improved-aci-load-4kbyte-apple-basic-2-seconds
Alas, much more time is lost due to the inevitable 'header tone' of the recording. And it must come from a PC or notebook audio card able to get the speed and fidelity. A cassette recoder can't do this (I probably could do it, almost as fast, with a cassette recorder when using a huge DSP and special modulation and error correcting codes, the whole bag of tricks of a communications IC designer, but then the digital processing power in that contraption would be 1000 x of what the Apple-1 can do, and more 21st Century type "magic" --- I think it's pointless to try such tricks involving an Apple-1 --- I have the same objections against Apple-1 WiFi cards which use a 21st Century WiFi module. IMHO, it's just not the right thing to do. Same with any Apple II plug-ins involving a Raspberry Pi ... the Raspberry Pi could easily emulate the whole Apple II, so why make such a plug-in at all and not replace the whole system with a Raspberry Pi only ? --- But this is my way of thinking about "period correctness". (Even I need to "cheat" sometimes))
If you want to further explore this, and want my source code for the turbo loader, please send me a PM. I have so much stuff to publish / make open source but I lack the time to bring everything I want to publish into a publishable, nice, high quality tarball. I have a whole automated toolchain for the Apple-1 running under Linux but the coding is so haphazard and "rapid prototyping" style that it's just terrible, I can't publish that, otherwise people would say I flew to the moon with a spaceship made from duct tape, baling wire, old oil barrels, chewing gum and some gunpowder ;-)
My unpublished body of work - spanning near half a century now - is really that terrible. It would take man-years to get that stuff into a polished, nice shape, which people would not immediatly puke on when they see the rotten code. And I don't have any slaves available like a University professor has. Except academia calls their slaves "assistant professors". What a scam. When I finished my Master's Thesis with Magna Cum Laude I was offered such a position. I politely declined as I was already raking in a fortune from selling the ATVG and simulation software I had written to make that Master's Thesis happen (it was a systolic data transport array fit for wafer scale integration, but they did not have any CAD tools to tackle that, so I wrote the tools to design it myself). I have so many projects which I probably can't finish before my lifespan runs out. So I can't spend any time on polishing up anything for publication.
- Uncle Bernie
In the meantime I tried loading the .TUR files with my prototype. The bootstrap code before the “T”-character I have to load with a newline delay of 200ms and character delay of 20ms.
But the main part between T and X loads blazing fast with 0-second delays at 9600 baud (which is fast enough for 4-8K). Also the checksum code seems to work fine, great.
I have to find some scripting method to change the delay during send, maybe with the ‘cu’ linux command. I discovered I can load other TUR files without transferring the bootstrap code again, it is kept in memory on the Apple-1 of course.
@NowlasWolf; I will also be incorporating the keyboard passthrough in the final version, I agree with you this is very handy. Will use a switch and two 74LS244 buffers for this, work in progress.