Read Me(ucsd-psystem-vm) Read Me(ucsd-psystem-vm)
NAME
ucsd-psystem-vm - UCSD p-System virtual machine
DESCRIPTION
The ucsd-psystem-vm package is a virtual machine (p-code interpreter)
for the UCSD p-System.
The ucsd-psystem-vm package makes it possible to run UCSD Pascal (an
ancient programming environment) on today's Linux machines, and also
*BSD. The p-code runs very much faster on modern hardware.
This is still experimental code. If you are in trouble, "Use the
source, Luke!"
Running the Virtual Machine
For instructions on how to run the virtual machine, including details
of how to fetch and manipulate disk images, see the ucsdpsys_vm(1) man
page.
Nostalgia
If you are still reading, prepare to enter the nostalgic world of UCSD
Pascal...
Command: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem, D(ebug,? [II.0]
Welcome SYSTEM, to
U.C.S.D. Pascal System II.0
Current date is 30-Jun-79
BUILD
You will find complete instructions for building the ucsd-psystem-vm
package in the BUILDING file in the source tarball.
COPYRIGHT
ucsd-psystem-vm version 0.11
Copyright (C) 2000, 2001 Mario Klebsch
Copyright (C) 2006, 2009, 2010 Peter Miller
The ucsd-psystem-vm programs come with ABSOLUTELY NO WARRANTY. This is
free software and you are welcome to redistribute it under certain
conditions. For details see the ucsdpsys_vm_license(1) man page.
AUTHOR
Mario Klebsch E-Mail: mario@klebsch.de
WWW: http://www.klebsch.de/
MAINTAINER
Peter Miller E-Mail: pmiller@opensource.org.au
/\/\* WWW: http://miller.emu.id.au/pmiller/
RELEASE NOTES
This section details the various features and bug fixes of the various
releases.
Version 0.11 (2010-Aug-25)
* There is now "glue" support for the APPLESTU and TRANSCEN units,
found in the ucsd-psystem-os project's host/klebsch source directory.
* Some byte-sex issues have been fixed, in anticipation of trying to
debug the cross compiler's big-endian support. The virtual machine
now takes the system's byte sex from the byte sex of the first disk.
All subsequest disk images are check to be sure they are all the
same.
* The SYSCOM^.MISCINFO word is now emulated, and sets the various bits
that the emulator has control of, including the word-machine and
byte-sex indicators.
* Some more detail about ucsd-psystem-os has been added to the
ucsdpsys_vm(1) man page.
* The syscom^.sysunit field is now set to the unit that the
SYSTEM.PASCAL file was found on, rather than always setting it to 4.
* When using a terminal emulator such as xterm(1) or gnome-terminal(1),
the ucsdpsys_vm(1) command is now able to track the actual terminal
size, and adjust CRTINFO.WIDTH and CRTINFO.HEIGHT at run-time, so
that they always reflect the actual terminal size. This is
implemented using a SIGWINCH interrupt handler, and the ncurses(3)
support for SIGWINCH; see resizeterm(3) for more information.
* The system date (in the system's segment 0 procedure 1 stack frame,
local variable 67) is now adjusted at run-time, to ensure that the
system's idea of the current date is always correct, and the
resulting date stamps on disk files will be correct (well, as correct
as a two digit year will ever be).
Version 0.10 (2010-Jun-19)
* The VM now implements the CSP inline-math ATAN, COS, EXP, LN, SIN,
and SQRT opcodes.
* There is a new ucsdpsys_svolio(1) -x option, that may be used to
extract all files from a disk image.
Version 0.9 (2010-May-17)
* A bug has been fixed in the CSP ROUND opcode. It was rounding in the
wrong direction in some cases.
* There are two new opcodes: LES POWR for proper subset comparisons,
and GTR POWR for proper superset comparisons.
* There is now a test suite for the virtual machine. It requires the
ucsd-psystem-xc and ucsd-psystem-fs projects to be built and
installed before it can be run.
http://ucsd-psystem-fs.sourceforge.net/
http://ucsd-psystem-xc.sourceforge.net/
* A bug has been fixed in the IDSEARCH function, it now recognises the
SEPARATE symbol.
* A bug in the CSP FILLCHAR opcode has been fixed, it now treats the
Length parameter as signed.
* A bug has been fixed in the MOVERIGHT code, it no longer panics on
negative lengths. Lengths less than or equal to zero now do nothing.
* A bug has been fixed in the MOVELEFT code, it no longer panics on
negative lengths. Lengths less than or equal to zero now do nothing.
* A bug has been fixed in the XJP opcode. It now treats the limits as
signed integers. It was erroneously treating them as unsigned
integers.
Version 0.8 (2010-May-07)
* A number of omissions and inconsistencies in the documentation have
been fixed.
Version 0.7 (2010-Apr-06)
* The project now uses GNU Autoconf to configure. The tarball compiles
"out of the box". Pre-built Debian packages are available on the web
site.
* All of the commands consistently use getopt_long(3) for argument
parsing. All commands now come with a man page.
* The project uses libexplain for better error reporting of Linux and
Unix errors.
http://libexplain.sourceforge.net/
Version 0.5 (2001-Aug-02)
Long integer support has been added.
Version 0.4 (2001-Jun-08)
This time, protability has been improved. Disk access now functions
even when mmap(2) is not available, using lseek(2), read(2) and
write(2) instread.
The code to implement the Turtle Graphics (and all dependencies on X11)
has been moved to a separate process. This should make porting to
other platforms much easier, because this is simply a dedicated server
that reads turtle commands. (For historical reasons, it is called at
the moment but still ucsdpsys_xturtleserver(1), his background, he can
not even hide it completely).
The PRINTER: Device is now also implemented, otherwise faulty are a few
P-commands have been corrected.
Anyone who had a problem with the F(iler the eX(amine command crashing,
should try again now.
Version 0.3 (2001-May-20)
The build instructions have been simplified. The Apple Pascal 1.1 demo
now runs.
Version 0.2 (2001-May-10)
Things have improved. I now have Apple Pascal 1.3 and 1.1 version
working. Running is perhaps slightly exaggerated, but at least the
compiler seems to work.
Version 0.1 (2000-Sep-21)
Many years ago I learned programming at school using Apple-Pascal.
From nostalgic feelings out (and because it was the best Pascal system,
the more I could use), I've started to code interpreter for a p-
Machine. Actually, not yet ripe for a publication, but in a discussion
in de.alt.folklore.computer was considerable interest expressed in this
software.
Although this program is the status of best-Alpha, it's here to
download ready. Documentation non-existent, unfortunately. Use the
source, Luke! Use the source, Luke!
Reference Manual ucsd-psystem-vm Read Me(ucsd-psystem-vm)