Skip to content

Commit

Permalink
***** yaze version 1.10 of 1998/01/27 *****
Browse files Browse the repository at this point in the history
Changes since 1.06:

1998-01-27
 * simz80.pl: set the flags correctly for LD A,I/R and
   CPI/CPIR/CPD/CPDR (reported by Sean Young).
 * monitor.c (mountdir): fix fencepost error when setting cp[15],
   as reported by Richard Hirst.

1998-01-25
 * simz80.pl: change direct and indirect references to the RAM()
   macro, because it now evaluates its operand more than once if MMU
   is in use (contributed by Michael Haardt).

 * yaze.c, simz80.h: Make BIOS optional and add MMU initialisation
   (contributed by Michael Haardt).

Changes since 1.05:

1996-04-28
 * cdm.c (getblock): rename index to idx (avoids a warning about
   shadowing index()).
   (main): correct a type in the !USE_GNU_READLINE case.

1996-04-25
 * bios.c (constat, lststat): select() may modify timeval, so
   reinitialise it.
   (readsec,writesec): protect against undefined or unmounted disk.
   (bios): Add BgiiFix.
 * monitor.c (mount): use MAP_FILE flag in mmap() call (linux-ism?).
 * yaze.c (load_cpm): correctly calculate available memory if
   loadadr is specified.
 * simz80.pl (CALLC): rename symbol adr to avoid warning msg.
 * cdm.c (srchdir): ignore cpm-3 byte count.

Originated-by: yaze-1.10.tar.gz
Originated-md5: 4e2c1db0df05caa9879de5e2e09ba394
Originated-URL: ftp://ftp.ping.de/pub/misc/emulators/yaze-1.10.tar.gz

Signed-off-by: Stephan Linz <linz@li-pro.net>
  • Loading branch information
rexut committed Jan 27, 1998
0 parents commit bda7d22
Show file tree
Hide file tree
Showing 32 changed files with 14,943 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .yazerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
mount a test
go
339 changes: 339 additions & 0 deletions COPYING

Large diffs are not rendered by default.

40 changes: 40 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
1998-01-27 Frank D. Cringle <fdc@cliwe.ping.de>

* simz80.pl: set the flags correctly for LD A,I/R and
CPI/CPIR/CPD/CPDR (reported by Sean Young).

* monitor.c (mountdir): fix fencepost error when setting cp[15],
as reported by Richard Hirst.

1998-01-25 Frank D. Cringle <fdc@cliwe.ping.de>

* simz80.pl: change direct and indirect references to the RAM()
macro, because it now evaluates its operand more than once if MMU
is in use (contributed by Michael Haardt).

* yaze.c, simz80.h: Make BIOS optional and add MMU initialisation
(contributed by Michael Haardt).

Sun Apr 28 11:30:52 1996 Frank D. Cringle <fdc@cliwe.ping.de>

* cdm.c (getblock): rename index to idx (avoids a warning about
shadowing index()).
(main): correct a type in the !USE_GNU_READLINE case.

Thu Apr 25 15:32:24 1996 Frank D. Cringle <fdc@cliwe.ping.de>

* bios.c (constat, lststat): select() may modify timeval, so
reinitialise it.
(readsec,writesec): protect against undefined or unmounted disk.
(bios): Add BgiiFix.

* monitor.c (mount): use MAP_FILE flag in mmap() call (linux-ism?).

* yaze.c (load_cpm): correctly calculate available memory if
loadadr is specified.

* simz80.pl (CALLC): rename symbol adr to avoid warning msg.

* cdm.c (srchdir): ignore cpm-3 byte count.


83 changes: 83 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Makefile for yaze

# CC must be an ANSI-C compiler
CC = gcc

#where you want the binaries and manual page
BINDIR = /usr/local/bin
MANDIR = /usr/local/man/man1
LIBDIR = /usr/local/lib

# full speed or debugging to taste
OPTIMIZE = -O2
#OPTIMIZE = -g

# -DUSE_GNU_READLINE for command recall/editing and filename completion
# -DBGii_BUG works around a problem in Backgrounder II
# -DBIOS to build a CP/M bios and monitor program into the emulator
# (see also YAZE_OBJS, below)
# -DMMU compiles in support for bank-switched memory
# -DMEMSIZE <val> sets size of memory in KBytes (default 64)
# solaris2 needs -D__EXTENSIONS__
# linux needs -D_POSIX_SOURCE
OPTIONS = -DBIOS

# Link with CP/M BIOS support,
YAZE_OBJS = yaze.o simz80.o bios.o monitor.o
# or link as a naked Z80
#YAZE_OBJS = yaze.o simz80.o io.o

# -lreadline -lcurses -liberty if you defined USE_GNU_READLINE
# (you don't need -liberty on linux or BSD systems)
LIBS =

# a bsd-like install program (/usr/ucb/install on Solaris2)
INSTALL = install


###### you should not need to change anything below this line ######
CWARN = -ansi -pedantic -Wall -Wshadow \
-Wpointer-arith -Wnested-externs -Winline
CFLAGS = $(CWARN) $(OPTIMIZE) $(OPTIONS) -DLIBDIR=\"$(LIBDIR)/\"

SRCS = yaze.c simz80.c io.c bios.c monitor.c cdm.c
DOC = README README-1.10 COPYING yaze.doc yaze.1 cdm.1 ChangeLog
TEST = test/prelim.z80 test/zexlax.pl test/zexall.z80 test/zexdoc.z80 \
test/prelim.com test/zexall.com test/zexdoc.com \
test/savage.pas test/savage.com test/sys.azm test/sys.com \
test/timex.com

DISTRIB = Makefile simz80.h yaze.h bios.h \
simz80.pl .yazerc yaze.boot $(SRCS) $(DOC) $(TEST)

all: yaze cdm

yaze: $(YAZE_OBJS)
$(CC) $(CFLAGS) $(YAZE_OBJS) $(LIBS) -o $@

simz80.c: simz80.pl
rm -f simz80.c
perl -w simz80.pl >simz80.c
chmod a-w simz80.c

cdm: cdm.o
$(CC) $(CFLAGS) cdm.o $(LIBS) -o $@

install: all
$(INSTALL) -s -c -m 755 yaze $(BINDIR)
$(INSTALL) -s -c -m 755 cdm $(BINDIR)
$(INSTALL) -c -m 644 yaze.boot $(LIBDIR)
$(INSTALL) -c -m 644 yaze.1 $(MANDIR)
$(INSTALL) -c -m 644 cdm.1 $(MANDIR)

tar: $(DISTRIB)
(P=`pwd`; D=`basename $$P`; cd ..; \
for f in $(DISTRIB); do echo $$D/$$f; done \
| tar -T - -czf $$D/$$D.tar.gz)

clean:; rm -f *.o *~ core

yaze.o: yaze.c simz80.h yaze.h
bios.o: bios.c simz80.h yaze.h
simz80.o: simz80.c simz80.h

46 changes: 46 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
Yet Another Z80 Emulator
========================

Yaze is a Z80 and CP/M emulator designed to run on Unix systems.

The package consists of:

* an instruction set simulator which accurately imitates a real Z80
microprocessor,

* a CP/M-2.2 bios written in C which runs on the Unix host but
interacts with the simulated Z80,

* a monitor which loads CP/M into the simulated processor's ram and
which makes Unix directories or files look like CP/M disks, and

* a separate program (cdm) which creates and manipulates CP/M disk
images for use with yaze.

Yaze's "selling points", compared with previously available Z80
emulators, are:

* It emulates all documented and most undocumented processor-internal
instructions and all flag bits (all 8, including the undocumented
ones). A test program is included in the package which exhaustively
(well, nearly exhaustively) compares all instructions, for all
machine states before and after execution, against the results from
a real chip.

* It is independent of the host machine architecture and instruction
set. Written in ANSI standard C it is provided with full source
code under the GNU General Public License.

* It supports all CP/M disk geometries in the form of images in Unix
files or as read-only disks constructed on-the-fly from the contents
of Unix directories. These disks are indistinguishable from real
disks for even the most inquisitive, low-level CP/M programs. They
can be mounted and unmounted at will during emulation.



Frank Cringle, October 1995
fdc@cliwe.ping.de


Various trademarks are the property of various organisations.
9 changes: 9 additions & 0 deletions README-1.10
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This is the first release of yaze since version 1.06 came out about 2
years ago.

It was prompted by Michael Haardt's work on emulation of non-CP/M
Z80-Systems. He contributed the io.c file and the bank switching
memory logic, which may provide a platform for running MP/M and UZI on
the emulator.

Frank Cringle, January 1998
Loading

0 comments on commit bda7d22

Please sign in to comment.