Skip to content

Commit

Permalink
New port: emulators/z80pack Z80 emulator with CP/M-80
Browse files Browse the repository at this point in the history
This port builds only the generic Z80 emulator and installs various
CP/M-80 disk images. The images can be copied into user directories
and updated from within the emulation of with the cpmtools programs.

The emulation covers CP-NET and MP/M-80 and addition to CP/M-1.4,
CP/M-2.2, and CP/M-3.0.

The port could be extended to install the full hardware emulation of
some classic S-100 bus computers from ALTAIR, IMSAI, and Cromemco
(including working emulation of the front panels).
  • Loading branch information
stesser committed Apr 11, 2021
1 parent a2fa050 commit c9f346c
Show file tree
Hide file tree
Showing 6 changed files with 124 additions and 0 deletions.
32 changes: 32 additions & 0 deletions emulators/z80pack/Makefile
@@ -0,0 +1,32 @@
# $FreeBSD$

PORTNAME= z80pack
DISTVERSION= 1.37
CATEGORIES= emulators
MASTER_SITES= https://www.autometer.de/unix4fun/z80pack/ftp/
EXTRACT_SUFX= tgz

MAINTAINER= se@FreeBSD.org
COMMENT= Complete CP/M-80 emulator

LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE

OPTIONS_DEFINE= DOCS

do-build:
${MAKE} -C ${WRKSRC}/cpmsim/srcsim -f Makefile.bsd OPTFLAGS="${CFLAGS}" PREFIX=${PREFIX} all clean
${MAKE} -C ${WRKSRC}/cpmsim/srctools CC="${CC}" CFLAGS="${CFLAGS}"

do-install:
.for file in mkdskimg bin2hex send receive ptp2bin
${INSTALL_PROGRAM} ${WRKSRC}/cpmsim/srctools/${file} ${STAGEDIR}${PREFIX}/bin
.endfor
${INSTALL_PROGRAM} ${WRKSRC}/cpmsim/cpmsim ${STAGEDIR}${PREFIX}/bin
cd ${WRKSRC}/cpmsim/conf && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}
cd ${WRKSRC}/cpmsim/disks/library && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/disks

do-install-DOCS-on:
cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}

.include <bsd.port.mk>
3 changes: 3 additions & 0 deletions emulators/z80pack/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1618153489
SHA256 (z80pack-1.37tgz) = 0a4d199c822546e28fb9d8e055b4bf7ca4c1b984b2f707f99d39f00b80c59d2a
SIZE (z80pack-1.37tgz) = 15674455
23 changes: 23 additions & 0 deletions emulators/z80pack/files/patch-cpmsim_srcsim_Makefile.bsd
@@ -0,0 +1,23 @@
--- cpmsim/srcsim/Makefile.bsd.orig 2021-01-06 16:07:39 UTC
+++ cpmsim/srcsim/Makefile.bsd
@@ -1,8 +1,8 @@
# system wide location for machines configuration files
-CONF=/usr/local/share/cpmsim/conf
+CONF=${PREFIX}/share/z80pack/conf

# system wide location for disk images
-DISKS=/usr/local/share/cpmsim/disks
+DISKS=${PREFIX}/share/z80pack/disks

CC = cc

@@ -10,7 +10,8 @@ CC = cc
#CFLAGS = -O3 -c -Wall -Wextra -Wno-self-assign -fstack-protector-all -D_FORTIFY_SOURCE=2 -DCONFDIR=\"${CONF}\" -DDISKSDIR=\"${DISKS}\"

# Production
-CFLAGS = -O3 -c -Wall -Wextra -Wno-self-assign -U_FORTIFY_SOURCE -DCONFDIR=\"${CONF}\" -DDISKSDIR=\"${DISKS}\"
+#CFLAGS = -O3 -c -Wall -Wextra -Wno-self-assign -U_FORTIFY_SOURCE -DCONFDIR=\"${CONF}\" -DDISKSDIR=\"${DISKS}\"
+CFLAGS = ${OPTFLAGS} -c -Wall -Wextra -Wno-self-assign -U_FORTIFY_SOURCE -DCONFDIR=\"${CONF}\" -DDISKSDIR=\"${DISKS}\"

LFLAGS =

30 changes: 30 additions & 0 deletions emulators/z80pack/files/patch-cpmsim_srctools_Makefile
@@ -0,0 +1,30 @@
--- cpmsim/srctools/Makefile.orig 2021-01-06 16:07:39 UTC
+++ cpmsim/srctools/Makefile
@@ -1,19 +1,19 @@
#
# some places where the tools usually are installed
#
-INSTALLDIR=${HOME}/bin
+#INSTALLDIR=${HOME}/bin
#INSTALLDIR=/usr/local/bin

#CC = cc
-CC = gcc
+#CC = gcc

-CFLAGS= -O3 -Wall
+#CFLAGS= -O3 -Wall

-all: test mkdskimg bin2hex send receive ptp2bin
- @echo
- @echo "Done."
- @echo "Now run make install"
- @echo
+all: mkdskimg bin2hex send receive ptp2bin
+# @echo
+# @echo "Done."
+# @echo "Now run make install"
+# @echo

test:
@test -d ${INSTALLDIR} || (echo "${INSTALLDIR} doesn't exist, fix INSTALLDIR"; exit 1)
6 changes: 6 additions & 0 deletions emulators/z80pack/pkg-descr
@@ -0,0 +1,6 @@
z80pack emulates an 8080 or Z80 CPU and provides CP/M-80 and UCSD-Pascal
environments. Besides emulation of a generic CP/M system, support for
full emulation of typical ALTAIR or IMSAI systems and their specific
hardware is possible, including a graphical front-panel.

WWW: https://www.autometer.de/unix4fun/z80pack/
30 changes: 30 additions & 0 deletions emulators/z80pack/pkg-plist
@@ -0,0 +1,30 @@
bin/bin2hex
bin/cpmsim
bin/mkdskimg
bin/ptp2bin
bin/receive
bin/send
%%PORTDOCS%%%%DOCSDIR%%/CREDITS
%%PORTDOCS%%%%DOCSDIR%%/FrontPanel_User_Manual_2.0.pdf
%%PORTDOCS%%%%DOCSDIR%%/README-asm.txt
%%PORTDOCS%%%%DOCSDIR%%/README-cpm.txt
%%PORTDOCS%%%%DOCSDIR%%/README-frontpanel.txt
%%PORTDOCS%%%%DOCSDIR%%/z80-documented.pdf
%%DATADIR%%/disks/cpm13.dsk
%%DATADIR%%/disks/cpm14.dsk
%%DATADIR%%/disks/cpm1975.dsk
%%DATADIR%%/disks/cpm2-1.dsk
%%DATADIR%%/disks/cpm2-2.dsk
%%DATADIR%%/disks/cpm2-62khd.dsk
%%DATADIR%%/disks/cpm3-1.dsk
%%DATADIR%%/disks/cpm3-2.dsk
%%DATADIR%%/disks/cpm3-8080-1.dsk
%%DATADIR%%/disks/cpm3-8080-2.dsk
%%DATADIR%%/disks/hd-tools.dsk
%%DATADIR%%/disks/hd-toolsrc.dsk
%%DATADIR%%/disks/i8080tests.dsk
%%DATADIR%%/disks/mpm-1.dsk
%%DATADIR%%/disks/mpm-2.dsk
%%DATADIR%%/disks/z80tests.dsk
%%DATADIR%%/net_client.conf.example
%%DATADIR%%/net_server.conf.example

0 comments on commit c9f346c

Please sign in to comment.