Emulate 8-bit computers w Arduino

I wonder if it's possible to emulate 70's and 80's microcomputers, such as the TI-58/59, or COSMAC ELF with Arduino? I want to learn assembly language! I'm aware of the emulators for PC and mobile but I wonder if there's anything for Arduino.

I doubt that the Arduino has the resources to emulate a full system like that - even a basic one.

If you want to learn assembly, what's to stop you learning AVR assembly and programming the AVR chip direct?

Well given that they are the same power then no. Also the ATMEGA chip is a micro controller not a micro processor. It has Harvard architecture meaning that the program space and data space are separate. The old computers use Princeton architecture meaning that the program space and data space are the same thing. Add that to the lack of memory of an arduino compared to an old school computer and the no gets louder.

Thanks for the explanation!

I can imagine fitting an emulator in C into program memory, using RAM for processor registers and scratchpad, and emulated device program and data memory into what little of the RAM remains. However, to emulate the instructions, you'd need to be pretty familiar with the instruction set of the emulated processor in the first place.

I have been tinkering with writing a Z80 emulator for the PIC32, but I certainly wouldn't even begin to think about doing it on something as (comparatively) weedy as a '328...

If you are willing to invest a bit, get an arduino mega and buy a MEGARAM shield with 128KB of ram:

https://shop.ruggedcircuits.com/index.php?main_page=product_info&cPath=4&products_id=41&zenid=097ac19469013b84fa14437d7ab07019

There's also 256KB ram shield if you need. You will solve the RAM problem. Then, you will need standard I/O, i.e. a keyboard and a display.

you could use an external storage device as RAM too... might be a bit slow ... :)

robtillaart: you could use an external storage device as RAM too... might be a bit slow ... :)

Rugged Circuits' megaRAM claims to be transparent to the processor so you can do all you're used to do, define variables objects malloc etc.

alkopop79: I wonder if it's possible to emulate 70's and 80's microcomputers, ... I want to learn assembly language! I'm aware of the emulators for PC and mobile but I wonder if there's anything for Arduino.

I don't understand how these are connected.

The great thing about emulators is they let you examine bits of the hardware that you can't in the real world. Want to toggle bits in a register and see it immediately? Use an emulator.

If you just want to learn assembly, you can program an Arduino (ATmega328) with just assembly. Of course, you'll quickly wish you were running an emulator on your PC, so you could see what was happening.

majenko: I have been tinkering with writing a Z80 emulator for the PIC32, but I certainly wouldn't even begin to think about doing it on something as (comparatively) weedy as a '328...

actually this is already done http://www.olimex.com/dev/duinomite-mega.html Z80 simulator with tons of old floppy disks copied to SD card :) you can even run old TURBO PASCAL on it

Lee Hart's 'Membership Card' is the winner! It's a Cosmac Elf clone that fits in an Altoid Box:

http://www.retrotechnology.com/memship/memkit.html

In the meantime I'm learning the programming of the thing with the TinyELF emulator for Mac OS X.

I also found 'Fignition', a British Cosmac Elf Clone and Briel Computer's Apple I and II clones.

Thanks for all the help!