i8080vm

intel 8080 emulator for embedded devices.

Require

    • Arduino

    • SD Cardslot module

    • SPI SRAM (23LCV512 etc.)

    • buzzer (option)

frontpanel is optional. I intend to explain it separately, but I think that it is ideal to make things that are easy to use for each person.

Wiring

    • SD CS -> 9

    • SRAM CS -> 10

    • buzzer -> 3

and SPI (MOSI,MISO and SCK)

Firmware

https://github.com/sugarflower/i8080

and put boot.bin in the SD card.

Hello 8080vm

When connected to Arduino at the serial terminal it will look like this.

8080vm first reads sd card's boot.bin. And, boot.bin is a very simple monitor program as the attached demo.

monitor v0.1 sugarFlower2017

command: r,s,+/n,-/p,g

0000 C3

let's do it.

First, press the "n" key. A new line will be displayed on the console.

It moves to memory address 0001 and it shows that the content is 0x86.

0001 86

Address move command, increment with "n" or "+", decrease with "p" or "-".

Okay.

Next let's enter a simple program.

hello world

First move the address. To move to the target address at a stretch, enter "0800r" and so on.

0800 FD

Moved to memory address 0x0800.

"r" is a command to move to the desired address.

Let's type the binary.

Type "21s".

"s" is a set. Set binary to the current address.

The whole program is presented below.

21 10 08 7e b7 ca 0f 08 cd 40 00 23 c3 03 08 c9

0d 0a 68 65 6c 6c 6f 20 77 6f 72 6c 64 21 0d 0a

00

Did you enter all of them?

Type "0800r" and return to the first address of the program.

Then type "g". "g" is "Go". That is, it runs the program.

If your input is correct, a message will be displayed on the console.

0800 21

hello world!

Congrats! The first program was executed.

Next step

I mainly learned how to use the monitor program.

8080vm is not a specific computer emulator.

Everything is the foundation for making your own computer that is free.

It covers almost all instructions of i8080 excluding some instructions.

It is also possible to modify Arduino's program and access the device natively if necessary.

You need to know about the monitoring of programs and functions provided for experimentation.

    • monitor.h - This is the address list of functions used by the monitor program.

    • demos - Learn how to access key functions. This will be updated from time to time.

*) 8080vm is an i8080 emulator, but I am using the z80 mnemonic.

Speaking of why, the 8080 development environment is cp / m.

Currently 8080vm does not make cp / m workable, so there is no assembler of 8080 (it may be there if you search)

By using the assembler of that point z80, you can also make binary of 8080!