aboutsummaryrefslogtreecommitdiff
path: root/emulators/cpmemu
diff options
context:
space:
mode:
authorSatoshi Asami <asami@FreeBSD.org>1995-07-01 07:55:28 +0000
committerSatoshi Asami <asami@FreeBSD.org>1995-07-01 07:55:28 +0000
commite1d220846f90871f29cbd1d06c11fe5c3b8d6639 (patch)
tree24be890fc498981cbcc451496a8de7454ceb3a8d /emulators/cpmemu
parente863f371fecfd0464f355709428a6041b2f10ba1 (diff)
downloadports-e1d220846f90871f29cbd1d06c11fe5c3b8d6639.tar.gz
ports-e1d220846f90871f29cbd1d06c11fe5c3b8d6639.zip
The CP/M emulator is the first resident of the new "emulators" category.
Submitted by: "Janusz Kokot" <JKOKOT@demeter.ipan.lublin.pl>
Notes
Notes: svn path=/head/; revision=1898
Diffstat (limited to 'emulators/cpmemu')
-rw-r--r--emulators/cpmemu/Makefile12
-rw-r--r--emulators/cpmemu/distinfo1
-rw-r--r--emulators/cpmemu/pkg-comment1
-rw-r--r--emulators/cpmemu/pkg-descr106
-rw-r--r--emulators/cpmemu/pkg-plist9
5 files changed, 129 insertions, 0 deletions
diff --git a/emulators/cpmemu/Makefile b/emulators/cpmemu/Makefile
new file mode 100644
index 000000000000..f1dde3ae769f
--- /dev/null
+++ b/emulators/cpmemu/Makefile
@@ -0,0 +1,12 @@
+# New ports collection makefile for: cpm-emulator
+# Version required: 0.2
+# Date created: 28 June 1995
+# Whom: janek@gaja.ipan.lublin.pl
+#
+
+DISTNAME= cpm-0.2
+CATEGORIES+= emulation
+MASTER_SITES= ftp://ftp.icm.edu.pl/pub2/linux/distributions/slackware/source/extra-stuff/CPM-80-emulator/
+EXTRACT_SUFX= .tar.gz
+
+.include <bsd.port.mk>
diff --git a/emulators/cpmemu/distinfo b/emulators/cpmemu/distinfo
new file mode 100644
index 000000000000..2aded555c1aa
--- /dev/null
+++ b/emulators/cpmemu/distinfo
@@ -0,0 +1 @@
+MD5 (cpm-0.2.tar.gz) = b99db60568b9259989b4a90e7d851474
diff --git a/emulators/cpmemu/pkg-comment b/emulators/cpmemu/pkg-comment
new file mode 100644
index 000000000000..226e41ed3864
--- /dev/null
+++ b/emulators/cpmemu/pkg-comment
@@ -0,0 +1 @@
+Cpm emulator version 0.2
diff --git a/emulators/cpmemu/pkg-descr b/emulators/cpmemu/pkg-descr
new file mode 100644
index 000000000000..3690b53ddd15
--- /dev/null
+++ b/emulators/cpmemu/pkg-descr
@@ -0,0 +1,106 @@
+%
+% Time-stamp: <06/06/94 23:08:26 Michael Bischoff moulder>
+%
+% CP/M emulator README
+%
+
+Introduction:
+=============
+
+Type 'UNIX' at the CCP prompt to leave the emulator.
+(Or ctrl-@, followed by 'q' any time the keyboard is polled)
+
+
+WARNING! This software runs only on 386 compatible processors
+and systems which allow nonaligned word/dword memory access.
+
+WARNING! This software has no documentation. If you want to use it, you're
+probably a Real Programmer; and Real Programmers don't read documentation.
+
+WARNING! This software is supplied AS IS. There is No Warranty!
+
+The software emulates an Intel 8080 CPU (quite accurate,
+except for the halfcarry flag for a couple of instructions)
+and a lot of Zilog Z80 instructions (not the complete set).
+Unimplemented instructions are input/output commands (IN A,(nn); OUT (nn),A;
+ INI, OUTI, INIR, OTIR, IND, OUTD, INDR, OTDR, IN C,(r), OUT r,(C)), and
+interrupt mode commands (IM 0, IM 1, IM 2, RETN, RETI), and the refresh
+register doesn't count at all.
+
+A 486DX2-66 emulates a Z80 clocked at 22 MHz, a 386DX-33 simulates a 6MHz
+Z80. (approximately)
+
+
+The BDOS emulator does only provide
+- user 0
+- a single drive (A:)
+- access to lowercase-files.
+
+A CCP-lookalike command interpreter is provided and the BDOS
+is emulated. The CCP is stored in the file /usr/local/lib/cpm/cpm.sys.
+Any CP/M .COM-files may also go in the directory /usr/local/lib/cpm.
+
+If you have an original CP/M, with CCP-address e800, BDOS-address f006,
+and put it in the file /usr/local/lib/cpm/cpm.sys, you can have an
+emulator quite near to the original thing, using the -e option.
+The -e option tells the emulator to use the BDOS from cpm.sys,
+instead of catching the BDOS-calls.
+Pros:
+- a real CP/M running
+- access to CP/M-formatted floppies (you have to set the DPB correctly)
+ Try "cpm -e -i /dev/fd1" with a 800 KB CP/M floppy in B:
+ (bls = 2K, drm = 255)
+ after setting setfdprm -p /dev/fd1 800/1200 or the like.
+
+Cons:
+- no access to the Linux filesystem
+
+
+About the emulator:
+===================
+
+Type "cpm -h" for a short usage message.
+You can interrupt the emulator by typing ctrl-@. This will enter
+the debug mode, where you can disassemble z80 memory, dump memory,
+edit data, set listpoints, breakpoints, set counts for breakpoints
+and the like. Type '?' for a short summary.
+
+
+extensions:
+BDOS:
+ there is a new BDOS function (41), "change directory"
+ and a CP/M program CD.COM which calls this function.
+
+CCP:
+ ERA understands the /Q option (question!)
+ Example: ERA *.*/Q
+ TYPE understands the /W option (wait!)
+ Example: TYPE TEST.TXT/W
+ You can access files from other user numbers (image mode only)
+ Example: ERA *.BAS/2
+
+ Again: Type UNIX to leave the Emulator.
+
+
+
+TODO:
+=====
+- Improve the emulation of BDOS
+- Allow multiple drives (some as CP/M filesystem images?)
+- implement interrupt modes / signal catching to simulate NMI, INT
+- improve the accuracy of the emulator (but; after all, a Z80 isn't
+ 8080-compatible as well; the sequence
+ XOR A
+ DEC A
+ JP PO,Z80_installed
+ /* an 8080, if we are here */
+ will find out...
+- merge the code with xtrs-80, to play GALAXY again!
+
+
+BUGS:
+=====
+
+Surely there are LOTS of bugs. Please send fixes to mbi@mo.math.nat.tu-bs.de
+Bug reports (without fixes) are also accepted, but it would be nice if you
+could track down the bad opcode. \ No newline at end of file
diff --git a/emulators/cpmemu/pkg-plist b/emulators/cpmemu/pkg-plist
new file mode 100644
index 000000000000..d572a2c62ce9
--- /dev/null
+++ b/emulators/cpmemu/pkg-plist
@@ -0,0 +1,9 @@
+@mode 755
+@owner bin
+@group bin
+bin/cpm
+@mode 644
+lib/cpm/cpm.sys
+lib/cpm/cd.com
+lib/cpm/link.com
+lib/cpm/xccp.com