Z80 Monitor Type Operating System and SBC

by mkpeker in Circuits > Microcontrollers

13204 Views, 44 Favorites, 0 Comments

Z80 Monitor Type Operating System and SBC

unnamed.jpg
IMG_0546.JPG

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

HARDWARE TO RUN EfexMonV4

EFEXV4-SCHEMATIC.jpg

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

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

USAGE:

IMG_0554.JPG

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)

Source Code

Please don't hesitate to contact me for any questions

Source code is not under GNU licence. It cannot be use for commercial purposes!

For using commercial purpose of code, you need my permission.

You may freely use, modify or share it by my name

Thank you for your respect to hard work and time spend on this code

Dr. Mustafa Kemal PEKER (MD)

Downloads

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

SOURCES

IMG_0549.JPG
IMG_0556.JPG

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/projects/simon6809/

4) Grant Searle's works (inspired) https://www.heinpragt.nl/?p=699

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