Introduction: Z80 Monitor Type Operating System and SBC

Picture of Z80 Monitor Type Operating System and SBC

EfexV4 is a monitor ROM with inline assembler and disassembler and

basic utilities to write, run and debug your z80 programs in real hardware

EfexMon do not needs CP/M, N8VEM or other complicated hardware. You need only standard Z80 architecture SBC and one UART with terminal

Step 1: HARDWARE TO RUN EfexMonV4

Picture of HARDWARE TO RUN EfexMonV4

MEMORY MAP

XTAL = 4 MHZ

USE ATTACHED CLOCK CIRCUIT

ROM START: 0000H TOTAL LENGHT 8KB

RAM START: 8000H RAM END : FFFFH

STACK: F800H

SYSTEM VARIABLES: F900H-F910H FF00-FFFFH

UART 8251 PORT ADRESS: 00H, BAUDRATE: 19200 KBS 8-n-1

PIO 8255 PORT ADRESS: 08H : CONNECT 8255 CS TO IC 74LS139'S PIN 5

Step 2: SOFTWARE

As described in previous page, Efexmon needs 32Kb of ram (62256 SRAM is good), and 8 Kb of ROM (28c64 may be)

stack and system variables sits top of ram, so, after 8000H there is tons of free bytes

Step 3: USAGE:

Picture of USAGE:

You must use a Terminal emulator program to reach EfexV4

System starts with greeting message and version info

command promt comes then

C:\> this is an irony to DOS promt :)

all input must be UPPERCASE CHARACTERS! dont forget to press caps lock one time.

Pres H for help, press U for useful routines

(S) mean subroutine must be called

(R) mean routine must be jumped

ASSEMBLER:

Aseembler is full powered and rocksolid, only (IX+*) and (IY+*) bit maniplation commands excluded

except this, Efex assembler accepts all official z80 commands.

During mnemonic input, backspace is welcome till # or $ characters. do not backspace after this chars.

(Full backspace function disabled to fit ROM in 8k)

Some parts of this ROM written on itself! with its own assembler.

DISASSEMBLER:

Disassembler can recognise all z80 code and it can recognise non-command bytes

and points them with '***' sign

INPUT:

Efex Hexadecimal inputs can recognise nonhex chars and ignores them.

Once input started, you must fill all areas till end;

#: mean 1 byte input (two hex char)

$:mean 2 byte input (four hex char)

Step 4: WHATS NEXT?

-USB KEYBOARD SUPPORT (TEST IMPLEMENTATION COMPLETE)

-LCD ON BOARD WIDE SCREEN 128X64 GRAPH LCD IN TEXT MODE(TEST IMPLEMENTATION COMPLETE)

-BASIC INTERPRETER (TEST IMPLEMENTATION COMPLETE)

--SD CARD SUPPORT

THIS FOUR IMPLEMENTATION WILL MAKE EFEXV4 A STANDALONE COMPUTER

Step 5: SOURCES

Picture of SOURCES

1) z80 instruction table http://clrhome.org/table/

2) TASM assembler code tables: http://www.filewatcher.com/m/tasm301.zip.144656-0.html

3) Grandmaster Erturk KOCALAR's 6809 monitor (inspired) http://www.8bitforce.com/simon6809/

4) Grandmaster Grant Searle's works http://searle.hostei.com/grant/

5) Integrated circuits and microprocessors. R C HOLLAND 1986 book

6) Z80SimulatorIde http://www.oshonsoft.com/z80.html

7) Leventhall Z80 assembly routines book

8) Brian M. Phelps's 6502 works http://mypeoplepc.com/members/spacebacker/symon/index.html

9) Zilog z80 catalogs and chip descriptions

10) z80 info website http://www.z80.info/

11) Project based on :https://www.instructables.com/id/Build-your-own-z80-microcomputer/

12) My followers opinions and talks

Comments

Jesper K.P (author)2017-04-11

i have absolutely No use for this... but I just have to make a z80 CPU based SBC to bring me down memory lane. my first computer was the marathon 32K computer... basically a zx81 with 2kb memory instead of the zx81's 1kb RAM

Tominaz (author)2017-04-10

wow z80. I still have one of those in my parts cabinet. great job thanks for sharing

mkpeker (author)2017-04-10

This project is entered 2017 DIY microcontroller contest in instructables.com. Please vote if you like this project.


Thankyou

TheThinker (author)2017-04-09

Cool! Reminds my of my youthful computer.

About This Instructable

2,739views

31favorites

License:

Bio: Orthopaedic Surgeon, Paragliding, Skiing, Digital electronics, Microcomputer lover.
More by mkpeker:MP-4  Simplest 4 Bit TTL CPUZ80 Monitor Type Operating System and SBCSimple FM radio (sure works!)
Add instructable to: