1
0
Fork
You've already forked xtrs
0
TRS-80 Model 1/3/4/4P emulator for Unix-like host machines
  • C 80.2%
  • Roff 9.1%
  • Batchfile 6.9%
  • HTML 2.5%
  • Shell 0.5%
  • Other 0.7%
Find a file
Alan Cox 5eafc4f5a9 trs_io: add comment as pointed out by Jens Guenther
The hypermem uses the upper bits so bit 0 still affects the
sound
2018年07月27日 14:48:05 +01:00
.gitattributes Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
.gitignore Add files that did not have RCS history. Most were present in the 2018年01月01日 13:33:02 -08:00
AUTHORS Add files that did not have RCS history. Most were present in the 2018年01月01日 13:33:02 -08:00
cassette.csh pre-5.0 2008年06月26日 04:39:56 +00:00
cassette.man Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
cassette.sh Applied a fix from George Phillips: 2014年02月02日 02:01:15 +00:00
cd.ccc pre-5.0 2008年06月26日 04:39:56 +00:00
cd.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
cd6.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
ChangeLog Add files that did not have RCS history. Most were present in the 2018年01月01日 13:33:02 -08:00
cmd.c pre-5.0 2008年06月26日 04:39:56 +00:00
cmd.h pre-5.0 2008年06月26日 04:39:56 +00:00
cmddump.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
cmddump.man Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
compile_rom.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
config.h pre-5.0 2008年06月26日 04:39:56 +00:00
cpmutil.dsk Add my snapshot of Roland Gerlach's cpmutil virtual disk, 2018年01月01日 13:50:43 -08:00
cpmutil.html Add my snapshot of Roland Gerlach's cpmutil virtual disk, 2018年01月01日 13:50:43 -08:00
cpmutil.tgz Add my snapshot of Roland Gerlach's cpmutil virtual disk, 2018年01月01日 13:50:43 -08:00
crc.c pre-5.0 2008年06月26日 04:39:56 +00:00
debug.c debug: allow I/O port poking 2018年07月01日 23:15:41 +01:00
dis.c really 4.9d 2009年06月16日 00:10:39 +00:00
do6.jcl Add files that did not have RCS history. Most were present in the 2018年01月01日 13:33:02 -08:00
dskspec.html move David Keil link to point to mirror 2017年01月06日 01:41:10 +00:00
error.c pre-5.0 2008年06月26日 04:39:56 +00:00
esfrom.z80 Add files that did not have RCS history. Most were present in the 2018年01月01日 13:33:02 -08:00
expall.bas Add files that did not have RCS history. Most were present in the 2018年01月01日 13:33:02 -08:00
export.z80 Delete an excess pop. It was just luck this didn't corrupt anything. 2011年12月16日 08:03:05 +00:00
fakerom.z80 xtrs: make the fakerom message work in upper case only mode 2018年07月24日 22:56:43 +01:00
hex2cmd.c pre-5.0 2008年06月26日 04:39:56 +00:00
hex2cmd.man Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
import.z80 pre-5.0 2008年06月26日 04:39:56 +00:00
keyrepeat.c Fix keyrepeat compile error. 2018年01月01日 17:13:23 -08:00
keyrepeat.h Fix keyrepeat compile error. 2018年01月01日 17:13:23 -08:00
LICENSE Add LICENSE 2018年01月01日 17:24:27 -08:00
load_cmd.c pre-5.0 2008年06月26日 04:39:56 +00:00
load_cmd.h pre-5.0 2008年06月26日 04:39:56 +00:00
load_hex.c pre-5.0 2008年06月26日 04:39:56 +00:00
m1format.fix *** empty log message *** 1998年05月25日 01:34:15 +00:00
main.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
Makefile Make LDIR/LDDR work like it does on real CPU 2018年07月05日 20:47:48 +01:00
Makefile.local Make LDIR/LDDR work like it does on real CPU 2018年07月05日 20:47:48 +01:00
mkdisk.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
mkdisk.man Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
mount.ccc pre-5.0 2008年06月26日 04:39:56 +00:00
mount.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
mount6.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
pwd.ccc pre-5.0 2008年06月26日 04:39:56 +00:00
pwd.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
pwd6.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
README Remove my email address. Folks have put this file on the Web, sigh. 2005年05月08日 21:33:10 +00:00
reed.h Reformat comments to match the copy in mkdisk.man 2017年05月29日 01:30:11 +00:00
settime.ccc pre-5.0 2008年06月26日 04:39:56 +00:00
settime.z80 pre-5.0 2008年06月26日 04:39:56 +00:00
trs.h xtrs: hypermem base is different to Huffman 2018年07月10日 11:09:09 +01:00
trs_cassette.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_chars.c pre-5.0 2008年06月26日 04:39:56 +00:00
trs_disk.c Fix sector register behavior on the Read Address command with a 179x FDC. 2018年01月27日 18:04:26 -08:00
trs_disk.h Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_gtkinterface.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_hard.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_hard.h Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_imp_exp.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_imp_exp.h Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_interrupt.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_io.c trs_io: add comment as pointed out by Jens Guenther 2018年07月27日 14:48:05 +01:00
trs_iodefs.h tweaks for xtrs5/gtktrs 2011年06月12日 06:37:07 +00:00
trs_keyboard.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_memory.c xtrs: clean up the banking logic a bit and add supermem mapped low 2018年07月11日 22:24:28 +01:00
trs_printer.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_stringy.c Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
trs_uart.c trs_uart: abort on more failure cases 2018年07月03日 00:51:53 +01:00
trs_uart.h pre-5.0 2008年06月26日 04:39:56 +00:00
trs_xinterface.c xtrs: fix silly argument bug when adding hypermem support 2018年07月10日 11:27:24 +01:00
truedam.ccc pre-5.0 2008年06月26日 04:39:56 +00:00
truedam.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
truedam6.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
umount.ccc pre-5.0 2008年06月26日 04:39:56 +00:00
umount.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
umount6.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
unix.ccc pre-5.0 2008年06月26日 04:39:56 +00:00
unix.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
unix6.cmd Add binary cmd files. These are not really sources; they are compiled 2018年01月01日 17:14:00 -08:00
utility.dsk Add the xtrs utility disk as a binary. This disk really is not a 2018年01月01日 14:04:42 -08:00
utility.jcl 4.9b 2006年05月13日 22:57:59 +00:00
xtrs.glade Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
xtrs.man Merge changes from Branden Robinson, plus some other changes. 2018年01月01日 20:26:35 +00:00
xtrs8.z80 pre-5.0 2008年06月26日 04:39:56 +00:00
xtrsemt.ccc pre-5.0 2008年06月26日 04:39:56 +00:00
xtrsemt.h pre-5.0 2008年06月26日 04:39:56 +00:00
xtrshard.z80 pre-5.0 2008年06月26日 04:39:56 +00:00
xtrsmous.z80 pre-5.0 2008年06月26日 04:39:56 +00:00
xtrsrom4p.README oops, version number was outdated 1999年04月06日 21:23:11 +00:00
xtrsrom4p.z80 pre-5.0 2008年06月26日 04:39:56 +00:00
z80.c Make LDIR/LDDR work like it does on real CPU 2018年07月05日 20:47:48 +01:00
z80.h 4.9d 2009年06月15日 23:45:56 +00:00

xtrs README
Tim Mann
http://tim-mann.org/
1/12/98
As computer scientists, we always long for something bigger and better
than what we have now. Give us a megabyte, and we want a gigabyte.
Give us an emulated TRS-80 Model I with Level II BASIC and cassette,
and we long for the Expansion Interface and floppy disk drives. Give
us that, and we want a Model III. Give us a Model III, and we want a
Model 4!
This is a snapshot of the work I've been doing on xtrs to add these
niceties. My main additions over xtrs-1.0 have been floppy disk and
hard disk emulation, timer interrupt emulation, a kludge to import and
export data to the host system, Model III mode, Model 4 mode, a
rewrite of the keyboard handling, support for most of the undocumented
Z-80 instructions, and a bunch of bug fixes and minor improvements.
This project has been a real (48KB?) trip down memory lane for me. I
worked as a programmer for Logical Systems, the company that produced
LDOS, during 1980-81 before I went to grad school. I no longer own a
TRS-80, but I recently found a box in my storage closet containing all
my Model I hardware manuals, schematics, ROM disassemblies, and even
the assembly listing for a version of the LDOS Percom Doubler driver
that I helped write, giving me enough information to get my additions
to xtrs off the ground.
Since then I've done much more. Check out my TRS-80 Web page at
http://www.tim-mann.org/trs80.html for details!
*************************************************************************
Below is the original README file from xtrs 1.0. It is outdated, but
I've kept it for historical reasons and to credit the original authors.
				 XTRS
		 A TRS-80 Model I Emulator for X Windows
		 by David Gingold <gingold@think.com>
		 and Alec Wolman <wolman@crl.dec.com>
				Version 1.0
			 April 1, 1992
WHAT IS XTRS?
As computer scientists, we and our colleagues now and then experience a
strange yet powerful desire to write some BASIC code on the computer system
that was for many of us the first we owned or programmed: the TRS-80 Model
I. In our modern systems of networked workstations and window systems,
this capability has been strangely neglected. Xtrs is our attempt to fill
this important void in our computing environment.
Xtrs is an X Windows client which runs under Unix and emulates a TRS-80
Model I. Version 1.0 is our first release of this software; it provides a
simple yet powerful Level II BASIC environment and cassette emulation. We
expect to provide some more sophisticated functionality in future releases.
OBTAINING XTRS:
If you have Internet access, you can get a copy of the latest xtrs software
via anonymous FTP:
	Host: think.com
	Directory: /users/gingold/xtrs
	File: xtrs-1.0.tar.Z
We will also be posting the sources to alt.sources and perhaps to
comp.sources.x.
OBTAINING THE ROM:
You will need a copy of the Level II ROM software in order to use xtrs.
The Level II ROM software may be covered by copyrights; for this reason we
are not distributing it with our xtrs software. However, if you already
own the Level II ROM software, then you can make yourself a copy of this
for use with xtrs (as long as you obey the legal restrictions for its fair
use). You can get such a copy via anonymous FTP.
Please do not make illegal copies of the ROM software.
You already own a legal copy of the Level II ROM software if:
- You own a TRS-80 Model I with Level II Basic,
- You own a TRSDOS disk which has a copy of the ROM image on it, or
- You own a copy of Farvour's "Microsoft Basic Decoded" which contains the
 ROM code listing.
If you have Internet access, you can get a copy of the ROM software via
anonymous ftp:
	Host: think.com
	Directory: /users/gingold/xtrs/rom
	File: level2rom.hex
If you are obtaining the ROM software through other means (such as getting
it directly out of your TRS-80), you'll need to end up with an ASCII file
which is in what we believe to be an "Intel Hex" format -- this is a format
used with PROM programmers.
Our disclaimer: We have neither sought nor received permission from anybody
to distribute copies of the ROM software. We discourage your making
illegal copies of this or any software. Neither we nor our employers will
accept any sort of responsibility if you illegaly copy the ROM software.
We are not lawyers, and are in no position to advise you on what is legal.
(For the legally curious: the TRS-80 we own has a copyright notice on the
ROM PC board, but none on the ROMs themselves or within the software. We
don't know if Farvour had permission to publish the ROM code.)
BUILDING THE PROGRAM:
You can uncompress and extract the software from the tar file as follows:
	
	% uncompress xtrs-1.0.tar.Z
	% tar xvf xtrs-1.0.tar
You can then build the program using "make". You will probably need to
edit the file "Makefile.local" in order to compile the program properly.
Notes in that file explain how to do this.
It is possible either to compile the ROM image into the program or to keep
the rom file separate, optionally specified on the command line. The
"Makefile.local" describes how to do this.
If you would like to use the Gnu "readline" facility with the our built-in
Z-80 debugger, you can get this software via anonymous FTP:
	Host: athena-dist.mit.edu
	File: /pub/gnu/readline-1.1.tar.Z
RUNNING THE PROGRAM:
See the manual page.
DETAILS:
Xtrs is built on top of a (mostly) full Z-80 emulator, with added routines
to support keyboard and video I/O through an X Windows interface. The
hardware emulation is based on the TRS-80 Model I design.
Xtrs supports 48K of RAM. There is support for a rudimentary cassette I/O
emulation which uses files for cassette tapes. A printer is emulated by
sending its output to standard output. There is no support (yet) for a
disk or a serial port.
The speed of the emulator is pretty good. On a decent Sun-4 compiled with
gcc, it computes a little faster than the real thing. Some operations
(such as writing to the screen) will naturally be slower.
The Z-80 emulator is written to be portable to most C environments. It is
possible to build a faster emulator by sacrificing this portability (such
emulators have been built for 80x86 and 680x0 machines), but that wasn't
our goal. Memory accesses are handled through a function call interface,
allowing us to cleanly emulate memory-mapped devices.
The Z-80 emulator has a way-cool debugger called zbx. It works sort of
like dbx. If you run with the -debug switch you'll enter the debugger, and
you can type "help" for more information.
Some Z-80 things are not supported: interrupts other than the non-maskable
interrupt, other esoteric signals not used by the TRS-80, and any of the
"undocumented" Z-80 instructions. Reading the memory refresh register
gives a pseudo-random value. The execution speed of instructions bears no
relationship to actual Z-80 timings.
Special support in the emulator allows the program to block when waiting
for information from the keyboard. This will only work for programs which
get keyboard input via the standard ROM calls. We do similar tricks to
make the cassette I/O work.
BUGS:
The manual page lists a few known bugs.
If you discover bugs (or write fixes for any of these), please let us know
(you can send us mail at the above addresses). We expect to incorporate
fixes into future releases.
FUTURE ENHANCEMENTS:
Here are some features we are thinking of adding to xtrs in the future:
- A better name for the application. We're not too happy with "xtrs".
- An emulator for disk drives.
- A mechanism for digitizing cassette tapes.
- A nicer mechanism for controlling the cassette emulator.
- A cut and paste mechanism in the X window.
- An emulator for the serial port.
- A Macintosh implementation.
CREDITS:
David Gingold <gingold@think.com> wrote the Z-80 emulator, zbx, and much of
the TRS-80 emulation.
Alec Wolman <wolman@crl.dec.com> wrote the X windows interface and some of
the associated routines.
Bruce Norskog is the suspected author of a program called "zdis" which was
incorporated into the debugger to disassemble Z-80 instructions.
Rodnay Zach's "Programming the Z-80" was the reference for implementing the
Z-80 emulator.
James Farvour's "Microsoft Basic Decoded and Other Mysteries" and George
Blank's "Pathways through the ROM" helped us to debug the emulator and
figure out how to make the gnarly keyboard and cassette hacks work. Thanks
go to David Librik and Marty Brilliant for providing these books.
Jim Cathey, Charlie Gibbs, and Willi Kusche wrote SimCPM, a CPM simulator
for the Amiga. This was used (don't ask how) to help debug our Z-80
emulator.