I build a RC6502 SBC and a backplane. A kit is available at Hein Pragt’s webshop.
Nice build, work fine. I now have a real Apple 1 (replica), the A-One and Briel Replica 1 and this Apple 1 clone!
My experiences here!
Category Archives: apple1
RC6502, an Apple 1 clone
On this page my experiences with an Apple 1 clone, my third! Build as kit, a nice experience and another 6502 system in the house.
I start with describing building the kit and getting it to work, last running some Apple 1 programs.
RC6502 Apple 1 SBC
My third Apple 1 clone! A-One, Replica 1 are the other two. Same principle: the computer part is identicl tot the Apple 1 (with modern RAM and ROM), the videopart is eplaced with a processor, this time the Arduino Nano.
The RC6502 SBC shown here is a part of the RC6502 system. First it was a variant of the RC2014 design for the 6502 instead of the Z80: a simple backplane and small single purpose cards such as CPU, RAM/ROM etc. Cheap, easy to build and debug.
Blog here, archive on github here.
The last card developed is an SBC which can be used standalone, but also with the backplane enhanced with other cards in the RC6502 system.
I built this card with the backplane with the (long term) plan to develop my own 6502 bus based system.
I bought a kit from my Dutch retro friend Hein Pragt. He has a webshop with rare retro parts, such as required for the RC6502.
The kit has all you need, The EEPROM is already programmed.
Quite a lot of solderpoints, the backplane is made up of 5 39 pin connectors, the SBC itself with IC sockets.
A good PCB and BOM and an excellent documented github website helps you to do a nice job to put it together.
You can see ath the photos above it has many jumpers to deactivate on board resources such as RAM or ROM. The correct setting is shown in the photo, the documentation describes the settings but lacks pictures.
Program the Arduino Nano
The Arduino Nano comes without the RC6502 sketch, But the source is available on the github.
I compiled the RC6502 sketch for the Nano with the Arduino IDE, instructions below for the Windows version 2.3.2. Any version since 1.8 will do afaik.
You need the sketch pia_communicator from the RC6502 github software and the Majenko MCP32S17 library.
I made a small change to the sketch (allow lowercase to be entered, so you must use CAPS Lock on your terminal emulator, to use it in 6502 code write your own Get Character routine, in map_to_ascii commented out)
- Unpack the archive and place pia_communicator.ino and MCP23S17 Majenko library in {Documents}/arduino and get at least
C:\Users\hanso\Documents\Arduino\libraries C:\Users\hanso\Documents\Arduino\pia_communicator C:\Users\hanso\Documents\Arduino\t.txt C:\Users\hanso\Documents\Arduino\libraries\MCP23S17 C:\Users\hanso\Documents\Arduino\libraries\MCP23S17.cpp C:\Users\hanso\Documents\Arduino\libraries\MCP23S17.h C:\Users\hanso\Documents\Arduino\libraries\MCP23S17\src\MCP23S17.cpp C:\Users\hanso\Documents\Arduino\libraries\MCP23S17\src\MCP23S17.h C:\Users\hanso\Documents\Arduino\pia_communicator\pia_communicator.ino
- Start the IDE, open pia_communicator.ino
- Select Arduino Nano as board
- Connect the Arduino (may stay onboard the RC6502, leave the optional power of the motherboard off) and select the COM port
- Compile and upload to the Arduino Nano
- Save the sketch if changed and exit Arduino IDE
Run with Tera Term
I use Tera Term on Windows and Minicom on Linux to talk to SBC’s like the RC6502.
The RC6502 (the Arduino Nano) uses serial communication, the Nano appears as COM/TYY port. 115200 baud, 8 bit, one stop bit. no parity.
To upload programs (in ‘woz’ format) one needs to give the slow 6502 some time to deal with the incoming data.
That is done with character and line delay. What works for me is shown in the next figure.
First run: WOZ monitor, Apple 1 Basic, Ken Wessen’s Krusader as present int eh EEPROM.
Conway’s Life
A small program to test the RC6502. Contributed by Hein Pragt in the examples of his Apple 1 Emulator
Needs to set the Retro Term to 40×24 screen!
EHBASIC
To give the board a good test I selected a large program, a descendent of Microsoft 6502 Basic: EHBASIC by Lee Davison.
Chris Hill played around with Jeff Tranters EhBasic source for the Replica 1 and got it to load on the RC6502, He generated a woz file to load it over the serial terminal.
It takes some time to load with the required delays in character and line routines (see Tera Term section) but it works!
Memory test
A memory test from here, archive with code and source here.
Hello World
280:A2 C BD 8B 2 20 EF FF CA D0 F7 60 8D C4 CC D2 CF D7 A0 CF CC CC C5 C8
See also:
Elektor Junior ASSM/TED
KIM-1 Macro Assembler Editor
MAE ASSM/TED CW Moser
SYM-1 RAE
Dr Dobbs
Volume 1 1976
Volume 2 1977
Dr Dobbs 1978
Dr Dobbs 1979
Dr Dobbs 1980
A Note on 6502 Indirect Addresssing | |
Thoughts on Small Systems and Monitors SYM-1 | |
ZX65 Simulating a Micro |
Dr Dobbs 1981
Analysis of the Use of the 6502’s Opcodes |
Dr Dobbs 1982
Interfacing the 68000 to an AIM 65 | |
Improvement upon a Division Program by Leventhal |
183 1987
6502_hacks | |
ACTxx_Cross Assemblers | |
Decoding Efficiency and Speed Pros and Cons of Table Loo-up | |
Saving And Restoring Registers | |
SBC TSX TXS Instructions 6800 6502 | |
Use of NOP Codes as Labels |
See also:
RC6502, an Apple 1 clone
Elektor Junior ASSM/TED
KIM-1 Macro Assembler Editor
MAE ASSM/TED CW Moser
Books for the 6502: KIM-1 and more
KIM-1, AIM-65, SYM-1 and other 6502/65C02/65C816 related books.
A mix of English, German and Dutch books.
On my bookshelf I have quite a collection of books on the 6502 family.
Note that manuals and books that come with systems are shown on the pages of the corresponding system!
See also:
2532 to 2732 EPROM adapter
RC6502, an Apple 1 clone
Elektor Junior ASSM/TED
KIM-1 Macro Assembler Editor
Convert hex formats new version
See also:
Focal-65 V3D for TIM and KIM-1
John Bell Engineering catalogs
New KIM-1 info and more
KIM-1 Simulator simple demo
Apple 1 Manuals in high quality!
Apple 1 Manuals in high quality!
Of course, you know about the Apple-1 computer. There have been replicas around for quite some time ,there are also reprints of the original manuals available. Most of them are just printed out copies on cheap laser printer paper, so Armin made a version on my own using a proper print job on high quality laminated paper and with binding to have it done properly.
But although the results really do look amazing, the quality is limited due to the fact that they are done using scans which are kinda okay but far from being perfect.
And then Armin did what a man has to do: In some painstaking, incredible painstaking weeks of work, Armin totally recreated the “Apple-1 Operation Manual” (incl. the schematics!) and the “Preliminary Basic User Manual” from scratch using the scans as the blue print. To understand this in full: This is a proper typeset job (Adobe Indesign) that is super “true” to the original.
1. Armin researched the typefaces that had been used in the original (including one that resembles the IBM “Electric” Typewriter that had been used for the main copy of one of the manuals – that was incredible hard to find)
2. Every single characters has been manually placed, so its position on the page resembles its original location down to the fraction of an inch
Have a look at this video (time-lapse) to see this process in action:
And here are pictures of the finished products, for sale here or on ebay.
Operation manual. Basic Manual, Cassette Manual, Advertising page.
PS: All of those recreations are 100 percent legal! This is due to US law: Material published before 1977 that does not feature a copyright notice is public domain under US law (see https://en.wikipedia.org/wiki/Public_domain_in_the_United_States ). All manuals have been published in 1976 and none of them features a copyright notice.
Convert to Papertape V2.2
On the Utilities page I have two programs to convert to MOS Technology papertape format: KIMpaper, a command line utility, and ConvertHexFormat, a GUI app.
All in Freepascal/Lazarus source format, and tested on Linux (Raspberry PI OS) and Windows 10 64 bit. So the programs will run everywhere Lazarus is available (MS DOS, WIndows, Linux Mac OS).
KIMPAPER is written at the time the Micro-KIM appeared. CLI utility. Supports Binary to/from Papertape. Still runs fine on all platforms supported by Freepascal (Windows, MS DOS, Linux etc) after a recompilation, source available.
ConvertHexFormat is a more recent GUI utilitilty with many more 8 bit hex formats as input and output.
There were some bugs of course in older versions. V2 added the ability for multipart hex formats, records having a non-consecutive load address. That seems to wok fine since V2.1
In 2.2 a bug in MOS Papertape format for bigger files is fixed, the end-of-file record (record type 00, total line count) had a bug in the checksum calculation. KIMPAPER is and was correct in the calculation.
But in ConvertHexFormat it was wrong (as it still is in the well known srec utility in the Unix world!).
See also:
Focal-65 V3D for TIM and KIM-1
John Bell Engineering catalogs
New KIM-1 info and more
KIM-1 Simulator simple demo
PC utilities updated
The PC utilities page has seen an update of th4 Conversion hex formats utility.
Programs to manipulate the binary and hex formatted files of interest for SBC owners. Intel hex, MOS papertape, Motorola S-record, binary, hex conversion fort eh 8 bit world.
Runs on Windows, Linux, Mac due to Lazarus and Freepascal. Source included.
See also:
Focal-65 V3D for TIM and KIM-1
John Bell Engineering catalogs
Cosmicos donation
New KIM-1 info and more
Noise fix for Replica Ten
and perhaps other Replica’s with the Propeller IC. Report by Didier.
Didier has 2 replica, the Red one Ten, the older one green, both With a propelle which had the same problem but it occurred rarely
in fact apparently all the Replica 1 with the Propeller IC ten are affected more or less by this problem.
Issue
Users have reported every few seconds a “/” appears on their screen followed by a linefeed. This renders any data entry impossible.
The Replica 1 seems to act like an antenna, moving hands above the Replica can trigger it.
The problem is reported by Reactive Micro as Screen Noise Issue.
Try adding a 100k resistor to the USB module as pictured below. And if there is still noise then add a .1uF cap (100nF) to Pin28 of the Propelelr to either Ground or +5v.
As little as 10k can be used for +3.3v pullup, but anything smaller risks damage to the FTDI module. 100k is much safer in all regards. This helps hold the data line high. It seems the RX line is held high by default. And both lines are held high when connected to a USB data port, which is why the noise issue is not seen when connected to a PC. You can connect the resistor most simply to the USB module. Or to the rear of the PCB to pin 39 (Tx) and pin 12 or 32 (+3.3v) of the Propeller.
Fix by Didier
The Reactive Micro fix dows only reduce the noise but does not stop it completely.
But adding two 2 resistors definitively fix the problem.
The real problem is the floating lines STROBE and DA of the Propeller.
To really understand this noise bug you need to check at the same time:
the circuit diagram, the Wozmon initialization, and the Propeller code
the other modification are for a change from a PIA to a PIAT for my 6502 monitor
PIAT (6524) = PIA 6250 + TIMER (as it is mounted with my patch the PIAT replace totally the PIA
without any software change)
2 lines CA and STROBE are input at the same time…
they are acting like an antenna and capturing noise
for example, if I pass my hand 5 cm above the propeller
I start to see:
/
/
as if the replica was resetting.
In fact, when the replica received a full buffer of junk it jumps to reset code…
The problem comes from the propeller code…
STROBE is programmed sometimes as input and sometimes as output to permit both the PS/2 and ASCII keyboard
it is possible to fix the propeller code to avoid the parasite but in that case, you lose the ASCII keyboard
To fix that on the back of the board add a resistor of 10K between the STROBE PIN and GND
The same problem occurs for the DA line but it only happens during the time the machine was powered up but not yet reset… the same way a 10K resistor between DA PIN and GND fix the problem
The fix for STROBE and DA is therefore two resistors added on the back of the PIA.
See also:
RC6502, an Apple 1 clone
Elektor Junior ASSM/TED
KIM-1 Macro Assembler Editor
MAE ASSM/TED CW Moser
Pocketerm
The PockeTerm is a 4″ X 2.5″ single board terminal that uses a VGA monitor and a PS/2 keyboard for its input and output. Dual serial ports gives the user the option of transferring data to/from a PC while still connected to the host device. This terminal was designed to work with vintage computers but is compatible with most systems including Unix and Linux systems. A low cost color choice terminal that has VT-100 compatible commands for controlling cursor and screen functions. Want to program the propeller microcontroller or install an update to the firmware? No problem, just connect the PockeTerm to your PC, run the Propeller Tools software and you can program it from your PC, no expensive Prop Plug required.
The PockeTerm has a full featured screen with Function key status at the bottom of the screen. Click on the image for a full size photograph of the screenshot.
CTRL-F1 Selects Baud Rate
CTRL-F2 Changes text color of the main display section
CTRL-F3 Turns on/off the 2nd serial port that connects to a PC.
CTRL-F4 Force incoming data to 7 bit ASCII. Strips the 8th bit, required for some systems
CTRL=F5 Change cursor type. Choose from underscore, solid block, or none. Also, choose from blinking or not.
CTRL-F6 Add line-feed to carriage returns
Documents
Pocketerm Setup and Users Manual 2009 | |
Pocketerm Setup and Users Manual V3 2009 | |
Pocketerm Circuit diagram | |
Pocketerm Bill Of Materials | |
Pocketerm Firmware | |
Pocketerm CD |
PS/2 keyboards
I have succesfully assembled the kit, the manual guided me just fine through the steps. Took me just over an hour.
The PockeTerm worked right away. Thanks to mfortuna’s tip, put jumpers in 1&2 and 5&6, and testing is independent of cables and computers to connect.
A standard keyboard with PS/2 worked. What did not work was my mini-USB keyboard (standard PC keyboard without numerical pad, and smaller size, like notebook keyboards) connected via an USB to PS/2 converter. The USB keyboard is ok, works with the PC’s and the Apple 1 kits via the USB-PS/2 dongle. I bought it because the smaller size looks better with the small computers and takes less desk space With the scope I found the PS/2 clock/data line (cant remember which one), to be open, as if nothing connected. So something is missing to make the USB device come alive. I googled around and found this: http://www.parallax.com/Portals/0/Downloads/docs/prod/edu/28060-PS2Adapter-v1.0.pdf
In it I saw a schematic how to connect a Parallax mini PS/2 keyboard, and it was different from the PockeTerm PS/2 interface. It has additional 10k pull-ups connected to the PS/2 clock and data. I soldered in the two 10k’s and the mini keyboard came alive!
Program the Propeller Notes by Vince Briel
- Go download propeller tools from parallax here: http://www.parallax.com/Portals/0/Downloads/sw/propeller/Setup-Propeller-Tool-v1.2.7-(R2).exe
- Install propeller tools
- Place the firmware directory from your PockeTerm CD onto your hard drive here:
C:\program files\parallax inc\propeller tool v1.2.7 (r2)\ - Connect your PockeTerm to the RS232 port labled PC and turn on your PockeTerm.
- Under the propeller tools program click on the section File and find the firmware directory you just copied onto your hard drive and select the file
PockeTermV.905.spin - Press F11 on your PC keyboard and the propeller tools will compile and attempt to find a Propeller chip connected to a serial port on your PC. If your
connection is good it will program the RAM first on your Propeller chip then program the EEPROM.
The PockeTerm makes a really good development board for learning how to program the Propeller chip. For more information on programming the Propeller,
please visit the Parallax forums here: http://forums.parallax.com/forums/default.aspx?f=25
The above steps will program the Propeller with the code that is now resident on the EEPROM onboard the PockeTerm. Change step 3 to the location of the program you wish to insert onto the PockeTerm.