The Sorbus computer

A new development! A minimal 65(C)02 system, called Sorbus designed by Sven Oliver Moll (SvOlli).

I build a RC6502 SBC

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!

post

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)

  1. 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
    
  2. Start the IDE, open pia_communicator.ino
  3. Select Arduino Nano as board
  4. Connect the Arduino (may stay onboard the RC6502, leave the optional power of the motherboard off) and select the COM port
  5. Compile and upload to the Arduino Nano
  6. Save the sketch if changed and exit Arduino IDE

For your convenience: here my archive with the files mentioned above.

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

post

Dr Dobbs

Volume 1 1976

A 6502 Disassembler from Apple Baum Wozniak
A string output routine for the 6502
Floating Point Routines for the 6502 Rankin Wozniak
Lunar Landler for the 6502 for TIM
Monitor for the 6502
Tiny Basic for the 6800 and 6502 from Tom Pittman
Breakpoint routine for 6502s
A Number game for the 6502 Steve Wozniak

Volume 2 1977

A high-speed Memory Test program for the 6502
A KIM-1 Disassembler
ASSMTED for 6502 editor and assembler
CGRS 6502 board S100
Decoding 650X opcodes
KIM-1 Breakpoint routines Plain and Fancy
MATHPAC A KIMATH supplement
Microchess
OPLEGL correction
RAP and Tiny Basic Jolt
Stringout mods
SWPT GT6144 to 6502

Dr Dobbs 1978

Memory Test for 6502
A KIM Binary Calculator
EDITHA KIM-1 editor program
High speed cassette interface for the KIM-1
Fast Cassette Interface for the KIM-1
6502 Program Exchange
LEDIP A KIM 6502 Text Editor
A curve-Fitting Program Using a Focal Interpreter on the KIM-1
PET Basic Renumber
KIM Basic Renumber adaptation of PET Renumber

Dr Dobbs 1979

Adapt Apple Disassembler for SYM-1
Add a Trap Vector for Unimplemented 6502 opcodes
An unusual Pseudoreandom Number Generator program
Common Instructions of the 6800 and the 6502
Complex Pseudorandom Sequences from Interlaced Simple Generators
EXOS A Software development kit for the 6500 Microprocessor family
OSI Basic for the KIM-1
Quick and Dirty Routines for the Sweet 16
Those all-important Extras Development toolkit

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
post

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!

How to Build a Computer-controlled Robot (with a KIM-1)
Tod Loofbourrow
Microprocessor Systems Engineering
R.C. Camp, T.A. Smay, C.J. Triska
AIM 65 System 65 parts
6502 Software Gourmet Guide and Cookbook
6502 Users Manual
AIM 65 Laboratory Manual And Study Guide
Anwendunsgbeispiele fûr den Microprozessor 6502
Microprocessor_Fundamentals KIM-1
Best of Micro Volume 1 1978
Best of Micro Volume 2 1979
Best of MICRO 3, AIM 65 SYM-1 KIM-1 part June 1979 May 1980
Compute’s Machine Language for Beginners
Compute’s The Second Book of Machine Language
Programming a Microcomputer 6502
Programmieren von Mikrocomputern CPU 6502 (Skriptum)
How to Build a Microcomputer .. and really Understand It!
Mikrocomputer ohne Ballast
Micro Principles KIM-1 user guide chapter 8
Digitaalschakelen met de KIM-1
6502 Assembly Language Programming
6502 Programmieren in ASSEMBLER
Microcomputer Experimentation with the MOS Technology KIM-1
6502 Machinetaal Subroutines
6502 Assembly Language Subroutines
Microcomputer experimentation with the AIM 65
Machine Language Programming Cookbook part 1
Machine Code for Beginners
Microcomputer Systems Principles Featuring the 6502 KIM
Beyond Games: System Software for your 6502 Personal Computer
Assembly Language Programming
Using 6502 Assembly Language
6502 Machine Code for Humans
Programming the 65816 including the 6502, 65C02 and the 65802
Programming the 65816 including the 6502, 65C02 and the 65802
Forth Programming
Programming the 65816
Programming and Interfacing the 6502 with Experiments
Synertek 1981-1982 Data Catalog
Synertek DataBook 1983
Third Book of OSI
TSC 6502 Games Package 1
TV Typewriter Cookbook
Zaks 6502 Anwendungen
6502 Games
6502 Applications
Advanced 6502 Programming
Fortgeschrittene 6502 Programmierung
Programmierung des 6502
Programming the 6502
6502 Applications book
Programmeren van de 6502
Microprocessor Interfacing Techniques
Microprocessor Concepts and Applications
Publisher: Lab-Volt
6502 Assembler-Kurs für Beginner
6502 Machine Code For Beginners
A low-lvel language for use on the MOS 6502 Microcomputer
6502 Microcomputer Programmierung
Programmieren in Maschinensprache 6502
The Giant Handbook of Computer Projects
First Book of KIM
The First Book of KIM-1 in PDF format
The First Book of KIM-1, part in text format
The First Book of KIM-1 in HTML format
Sources of The First Book of KIM-1 in source and papertape format, Jeff Tranter
First Book of KIM-1 for SYM-1
Rockwell Produktübersicht in deutsch
Rockwell Microelectronic Data Devices Catalog 1979
1981 Rockwell Electronic Devices Division Data Book
1984 Rockwell Data Book
1985 Rockwell Data Book
1987 Rockwell Controller Products Databook

Convert hex formats new version

Bug fix release of the PC utility to convert MOS papertape, Intel hex, Motorola S record, Apple 1 hex etc. Windows and Linux. Source included.

post

Apple 1 Manuals in high quality!

Apple 1 Manuals in high quality!

By Armin of Retroplace

For sale here!

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.

post

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!).

post

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.

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.

Fix by Reactive Micro

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.