In this article we look at a shield for your Arduino Mega which enables you to use a 1802 processor with your Arduino Mega
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/