Home Hardware An 1802 RetroShield for the Arduino Mega

An 1802 RetroShield for the Arduino Mega

by shedboy71

In this article we look at a shield for your Arduino Mega which enables you to use a 1802 processor with your Arduino Mega

1802 retroshield

1802 retroshield

This was a processor that I had never heard of unlike the Z80 and 6502 processors, lets look at the 1802

A number of early microcomputers that I personally have never heard of were based on the 1802, including the COSMAC ELF, Netronics ELF II, Quest SuperELF, COSMAC VIP, Comx-35, Finnish Telmac 1800, Telmac TMC-600 and Oscom Nano, Yugoslav Pecom 32 and 64, and the Cybervision systems sold through Montgomery Ward in the late 1970s, as well as the RCA Studio II video game console.

The Edukit single-board computer trainer system was offered by Modus Systems Ltd. in Britain in the early 1980s.

Lets now take a look at the shield

Hardware Details

  • The Arduino Mega is used to emulate system hardware such as ROM, RAM, I/O devices.
  • The 6502 microprocessor executes code.
  • Clock speed is about 115kHz
  • 200KB ROM space available in Arduino.
  • 6K RAM available in Arduino which can be expanded using an SPI ram chip
  • Any existing Arduino shields (LCD, SDCard, etc.) can be used to add new features as these Arduino Mega pins are not used.

I purchased the kit with the smt parts already soldered. I then soldered the IC socket, header and LED.

The processor was then fitted carefully to the socket after straightening the pins a little bit. Always observe ESD protection when handling the 1802 processor

Parts

Arduino Mega Aliexpress link
LCD Keypad shield Aliexpress link

Software

The gitlab link has sketches for the following

  • MembershipCard Super Monitor Program
  • Tiny Basic
  • RCA Basic Level 3 v1.1

The process for uploading a sketch is as follows

Disconnect the RetroShield from Arduino Mega.
Program Arduino Mega with your desired sketch
Disconnect Arduino Mega from computer and plug in the RetroShield 1802.
Connect Arduino Mega to computer.
Open the Serial Monitor
Select `115200` for Baud and `Carriage Return` for line endings and you should text in the serial monitor depending on which sketch you loaded

Testing

I tried enabling the LCD keypad shield but sadly the k1802_MCSMP20A_Basic3 sketch would not compile, I disabled the LCD keypad by setting back to the default like this.

#define USE_LCD_KEYPAD 0

No issue the sketch compiled OK this time, I will need to try and debug and see what went wrong but lets continue without the LCD keypad shield

Now as stated earlier unplug the usb cable from the Mega, plug in the Retroshield 6502 and then plug the usb cable back in

Open the serial monitor and you should see something like this

Configuration:
==============
Debug: 0
LCD-DISP: 0
SPI-RAM: 0 Bytes
SRAM Size: 6144 Bytes
SRAM_START: 0x8000
SRAM_END: 0x97FF

=======================================================
> RCA Basic Level 3 v1.1 by Ron Cenker, Copyrighted 1981
> Tiny Basic by Tom Pittman Copyright 1982
> Membership Card Serial Monitor Program 
by Charles J, Yakym Copyright 2015
> The 1802 Membership Card Kit by Lee Hart, 
Copyrighted 2006
> The Membership Card Kit can be purchased at
http://www.sunrise-ev.com/membershipcard.htm
=======================================================

==> Soft-UART {Q, EF3#}, Baud Rate: 300 cpu cycles/bit
==> Hit ENTER to start monitor code.

Lets type in enter in the serial port monitor and see what happens

Membership Card's Serial Monitor Program Ver. 2.0A
Enter "H" for Help.
>H
Commands
M reads
W write
S save user program
L load user program
T transfer
R run program
V view the 1802'S registers upon entry
D Disassembler
B RCA Basic Level 3 v1.1
H view this help text

Formats
Maaaa bbbb<CR> Display memory from aaaa for bbbb bytes
Waaaa dd<CR> or Waaaa dd dd.. keep writing until <CR>
Taaaa bbbb cccc<CR> M(aaaa) -> M(bbbb) for cccc bytes
Raaaa<CR> Jump to aaaa with PC=0 X=0
Daaaa bbbb<CR> Disassemble Opcodes from Address aaaa to bbbb
B Start RCA's Basic 3 V1.1
Saaaa bbbb<CR> Saves program starting at aaaa for bbbb bytes
L Loads I8HEX Program File
NOTE - The SAVE and LOAD commands are in I8HEX format only

Lets try some simple basic examples

The first line is the command, the second is the output. PR is short for print

:PR CHR$ (65)
A

:PR ABS (-10*2)
20

:PR SQR (9)
3

Links

https://www.tindie.com/products/8bitforce/retroshield-1802-for-arduino-mega/

Gitlab link

Share

You may also like

Leave a Comment