post

Assemblers used in sources

You can assemble the sources with the assemblers with one of these fine assemblers:

  • TASM Telemark assembler, runs on Windows 10 and 11. My favorite.
  • A65 assembler, run in DOSBOX or VDOS.
  • ASM.80 online assembler
  • the assembler from the CC65 suite, powerfull but perhaps overkill for small programs

Other tools that may help you:

  • binary file compare (I use freeware WinMerge)
  • hex editor (plugin for Notepad++)
  • convert between different 8 bit binary files format such as MOS Papertape, Intel Hex, Motorola S-Record, hex dumps. I use my own tool for that: Convert 8bit hex formats

Note that all these assemblers have a different idea about pseudo ops.

  • Some require a ‘.’ in front of a pseudo-op like .org
  • db, dw instead of .byte, .word
  • > < to indicate upper or lower byte, TASM does not know this, use & $FF and >> 8 to mask of upper byte or move upper byte to lower byte.
  • 0X or $ to indicate hexadecimal notation

Easy to edit with a Search and Replace usually.

TASM – Notepad++ integration
Install plugin NPPEXEC

post

Junior PCBs by Werner Beukes

Text on this page and gerbers by Werner Beukes (original site disappeared late 2022)

The Junior Computer was published in the May 1980 issue of the Elektor magazine. Like many single board computers of that time, it was based on the 6502 microprocessor and the design was more or less the same as the Synertek SYM-1 and the KIM-1.

The Junior Computer was part of a bigger system and a year later in the May and June 1981 issues, the interface card was featured. This was followed by the floppy disc interface in the November 1982 issue. What is notable about this design, was that it did not use any of the exotic and hard-to-find floppy disc controllers (and expensive too).

Other cards that were published but not necessarily for use with the Junior Computer only, were the Universal Memory card (March 1983) – and Universal VDU card (September 1983).
The one thing that puts people off from building something like the Junior Computer, is the printed circuit board. It is no longer available through the Elektor’s PCB service and making one yourself from the layout in the article is just too much effort.

Well, I made building your own Junior Computer a lot easier. Using Sprint Layout 6.0, I replicated the designs for the Junior Computer, Interface board, Floppy Disc Controller, Universal Memory card and Bus board.
The Gerber files for these boards are available free for download and the printed circuit boards made from these files will result in boards which would be identical to the ones you would have received should you have ordered it from the PCB Service..


Downloads here:

  • Original Junior Computer
    This download includes all the Gerber files, the layout file
  • Modified Junior Computer
    There are 2 modifications. The crystal replaced by 1MHz crystal oscillator and 2708 EPROM replaced by 2716 or 28C16 EEPROM.
  • Interface Card
    Project published Elektor May 1981 and June 1981. This was extremely difficult to replicate as the artwork quality was very bad.
  • Floppy Interface Card
    Project published in Elektor November 1982. Design does not use exotic (and hard to find) floppy controllers like the WD1770 etc.
  • Universal Memory Card
    Article published in the Elektor of March 1983.
  • Bus Board
    Required if you want to put a full system together.
  • Mini Bus Board
    Couple Junior and Interface card.
  • VDU card with BNC

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
post

Junior Computer ][

Junior Computer ][

Written by 2021 by Joerg Walke, visit his webiste for the most actual version!
The Junior Computer ][ is an expanded version of the original Junior Computer. To make it more useful, I’ve equipped it with 32KB RAM, 8KB ROM and an onboard RS232 serial interface for connecting a terminal or a printer. For the use with a terminal, I also wrote an extended monitor program thats included in the bigger ROM. The development of the Junior Computer ][ is still in progress, so some other features will find its way to the mainboard.

On the picture above, you can see the actual rev. 2 board of the Junior Computer ][.
The new revision 3 board has arrived!


…all components assembled and soldered

…and it works fine!
Its new features are: Up to 128KB RAM chips installable. 3 DIP switches to configure three additional 8KB RAM banks. Maximum of 51712 Bytes usable with 64KB RAM chip. Auto reset at power on. A power switch (oh yeah). Usable Memory for string buffers in the address area of the ACIA.

Edit August 2022: there is now also a I/O card and a bus card!

The Computer is divided into two parts. On the left side are the main computer components. The 6502 CPU, 6532 RIOT (RAM, Input/Output and Timer), ROM (8 KB EPROM), RAM (32 KB SRAM), the 1MHz quarz cristal and some 74LSxx logic chips for address decoding and clock generation. There is also a double timer chip on the lower left corner for debouncing the Reset (R) and Stop (S) keys. On the top lies the (in the picture not populated) expansions connector. And on the bottom side there is a connector for the two 8 Bit I/O ports coming from the 6532 RIOT. A small transistor amplifier on port B0 can be used to drive a loudspeaker, to make some simple noise.
The input/output components of the Junior are on the right side of the PCB. There is the hexadecimal keyboard, for entering the program addresses and data. And there are also some control keys. Above the keyboard is the six-digit, 7-segment display for showing the addresses and the data bytes as hexadecimal coded numbers. The display can also be switched off, if not needed. Keyboard and display is controlled by the two 8-bit I/O ports of the RIOT, by alternately polling the keyboard and repeatedly writing each single digit of the data to be shown on the display. On the top of the I/O side is the 6551 ACIA (Asynchronous Communications Interface Adapter) chip and a level shifter for the RS232 serial interface signals. The little quarts aside the ACIA is for the baud rate generation, which ranges from 50 to 19200 Baud.
I built the first prototype in July 2020 on a breadboard, followed by the rev. 1 PCB in August 2021.

The rev. 2 board was necessary, because unfortunately the distances between the input keys were a little bit too narrow. Also the rev. 2 board had some issues. But it worked fine for me. After publishing the JC][ on the Classic Computing forum (www.classic-computing.de), I found some people who were interested in it. That charged me to make some further expansions and to make it a little bit more useful for others. The revision 3 board with some improvements is now on the way, as is new software.
The schematics and Gerber files for the PCB and of course the ROM images and the 6502 Assembler source code files are freely available on the download section. So feel free, to make your own Junior ][ and have some fun with 8 bits.

Programming the Junior Computer ][

Programming the Junior is quite simple:
Apply power and press the (R)eset switch. The display turns on and shows a random memory address (four digits) and its content (two digits). The Junior Computer ][ and its predecessor are both programmed in raw 6502 machine language. That is, each CPU command is entered in its numeric representation as a hexadecimal number. For example, 4c 00 F8 means: Jump (4C) to absolute location F800. 16-bit values such as memory addresses are written as the lowest byte first, so the byte representation 34 12 in memory represents the 16-bit value 1234 in hexadecimal.
To enter some data, you first have to type the address, were the data should be located. To do so, press the (AD)dress key and type in the four hexadecimal digits (16 bits) of the memory address location. Then press the (DA)ta key and type the two hexadecimal digits (8 bits) of the data. If you make a mistake, simply type in the new value. To enter data in the immediately following address, press the + Key (in my picture above, this is the down arrow key – because I just hadn’t a + keycap) and enter the new data.
To examine any address, you just have to press the (AD)dress key again and type in the address you want to visit. By pressing the + key, the direct successor address is displayed. Pressing the GO key executes the program at the currently displayed memory address. There is also a Edit mode where you can insert and delete data, and automatically calculate branch and jump addresses. To use this mode, please refer to the Junior Computer Book 2.
Another way to enter programs is, to use the extended (terminal) print monitor program. First you have to connect a VT100 compatible terminal to the RS232 interface and set it to

9600 Baud, 8 data bits, no parity, 1 stop bit

To start the monitor program, press the (AD)dress key, type in the address F800 and press GO. On the terminal display, you should now see something like this:

                                  Junior Computer ][

Print Monitor
2021 by Joerg Walke

(M)onitor  (L)oad  (S)ave  (A)ssembler  (B)asic ?

For now Monitor is the only selectable choice (but the rest will come soon, hopefully), so type M on the terminal keyboard to enter the Hex Monitor. The Display is cleared and a * prompt is shown. All input is non case sensitive, so typeing M or m is the same.
To examine the content of a single address, just type in the address as a hexadecimal number and press the Return key. The address and its current content is then shown.

*F800

F800- 4C

To view a hole block of data, enter the start-address and the end-address of the block to be shown, divided by a . (dot).

*F800.F808

F800- 4C DC F8 A4 F8 B1 F6 E6 
F808- F8

To enter new data, type in the address where the data should be written, followed by a : (colon), followed by the single data bytes.

*200: 4C 00 F8

0200- 03

Execute a program by typing the start address followed by a G

*0200G

0200- 4C

To exit the Monitor and to go back to the main screen of the monitor type

*X

and then press the Return key.
If you want to go back to the standard Junior Monitor just enter

*1C1DG

(followed by Return) which leaves the terminal screen as a Zombie without a function and enables the 7-segment display and the hex keyboard.
That’s it. If you are interested in learning more about programming the 6502 and the Junior Computer, please refer to the MOS 6502 Datasheet and the Junior Computer books.

Downloads Junior Computer ][

Downloads Junior Computer ][

Elektor Junior Paperware 3 in German!

Thanks to Martin Seine I have added the Paperware 3 in German book to the Junior book collection.

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

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.

post

VDU card for Junior with OS65D

Philippe Roehr has remade a VDU PCB as featured in the Elektor Junior articles and put it to work with his OS65D system.

post

Elektor EC65

In the Elektor Specials Elektor bus based systems were presented that could be used to build more advanced computers, based on the 6502, Z80 of 65816.

Several names were used for systems, like EC65 and Octopus and you see in these pages many references to these cards, like DOS65, Elektor articles and books

See below for the Elektor Specials with EC65 etc articles.

See also the Z80 Elektuur/Elektor pages

Download here the EC 65 Octopus ROMs, dumped from CPU cards

Elektor bus

From Martin Seine I have received the source of the EC65 ROM and the system disk of the EC65 system

Disassembled, sorted and and somehow aligned the original SAMSON EPROM. The assembler file is here. It will compile byte identical with ca65. All uppercase labels match the documentation he found. The lowercase labels are made up by Martin, because they are needed in there. There is a disassembler in the monitor rom, which he did not analyze and hence the disassembly is just strong bytes in that section.

Martin has recovered some original EC65 disks. Here the original disk#5, which is the „System Disk Loys“ as HFE image, which will run on EC65 with Gotek FlashFloppy. Martin has now a running EC65 with original system disk. The HFE is the 80-track version and a double side image, but it works as one side as well.


Elektuur Computing 1
Dutch, Octopus/Samson 6502 computer
Sonderheft German
Elektuur Computing 2
Dutch, More 6502 computer
Elektuur Computing 3
Dutch, More 6502 computer
Elektuur Computing 4
Dutch, EC65K and more

Elektuur Computing 5
Dutch, Z80 and more 6502 hardware and software
Elektor Computing 5 German