Forwarding this to the classic cmp list 'cause I know some of you are
interested, but I'm not an active reader of this list.
For anyone interested, here is the 0.3 snapshot of my
alpha-micro am-100
emulator.
http://www.otterway.com/am100
This is the first to boot AMOS and run BASIC! Here's the $README...
--------------------------------------------------------------------------
--
-------------------
/* AM-100.doc (c) Copyright Mike Noel, 2001-2002 */
PREFACE
This software is an emulator for the Alpha-Micro AM-100 computer. It is
copyright by Michael Noel and licensed for non-commercial hobbyist use
under
terms of the "Q public license", an open
source certified license.
There exist known serious discrepancies between this software's internal
functioning and that of a real AM-100, as well as between it and the
WD-1600
manual describing the functionality of a real AM-100,
and even between it
and the comments in the code describing what it is intended to do! Notice
that this software hasn't reached the 1.0 version yet. In fact it's a
long
way from it. It's not beta; it's alpha. Use
it at your own risk!
Reliability aside, it is not the intent of the copyright holder to use
this
software to compete with current or future Alpha-Micro
products, and no
such competing application of the software will be supported.
Alpha-Micro and other software that may be run on this emulator are not
covered by the above copyright or license and must be legally obtained
from
an authorized source.
As this is written I have permission from Alpha-Micro to distribute AMOS
5.0
with the emulator so you can get that from me too -
but it is subject to
their terms and conditions.
INSTALLATION
Preferred installation is to compile the source on the target machine.
Tested targets include Red Hat Linux (6.1, 6.2, 7.0, 7,1, and 7.2) and
Microsoft Windows 98SE and 2000 using Cygwin 1.3.12-2 and 1.3.13-1.
Frankly,
Windows 98 is not a good target. Windows 2000 and
Linux are both OK.
Step Zero. You have at least 12 megs free space - right?
We will assume you have downloaded the source and
AMOS into a directory on your (running, known good)
linux or cygwin system; those files being
./AM-100-0.3.tgz
./amos50.tgz
Step One. Create a sub directory and untar the source.
mkdir am
cd am
mv ../AM-100-0.3.tgz .
mv ../AMOS50.tgz
tar -xzf AM-100-0.3.tgz
tar -xzf amos50.tgz
Step Two. Compile the source.
make
Step Three. Run it!
./AM-100
Step Four. What's this message...
"boot failed! Problem with 'dsk0-container' ?"
dsk0-container is the name of the file that represents DSK0
in the emulator. Similarly, dsk1-container represents DSK1,
and dsk2-container and dsk3-container do the obvious. Each
container is 10 megs (19980 blocks).
Since you might already have a dsk0-container, I've packaged
the AMOS release as dsk1-container. If you have enough free
space just copy dsk1-container to dsk0-container - if not
rename instead.
Then run it again!
cp dsk1-container dsk0-container
./AM-100
Step Five. It booted - right?
If not contact me & I'll try to help you figure out why...
OPERATION
The window you run this in (msdos? cygwin? xterm?) is probably defaulted
to 25 lines x 80 columns. You need to shrink it to 24x80 (or vue and fix
won't scroll correctly). One reason I don't like W98 is I haven't found a
way to do that there...
If you've other containers (dsk1-container, etal) you can mount and
unmount
them as you like. Can't change without restarting
the emulator thou...
All the control keys should work. Esc should work. The Arrow keys,
Insert,
Delete, Home, End, PgUp, and PgDn should work - at
least as I would want
them to!!
Watch out for ALT keys. ALT C means quit the emulator. ALT T toggles
instruction tracing. ALT S toggles instruction stepping (which doesn't
work
in this release). See PS3.C for all the key
mappings.
Console output is to STDOUT. Traces go to STDERR. So if you want to try
a
trace but don't want it mixed with your screen,
start the emulator with
./AM-100 2>AM-100.log
Then all the trace output goes into a file. Watch out - it gets huge very
very fast. Actually there is also a "user" trace facility, but I'm not
ready to try and document it yet.
There are some other tricks you can play with STDOUT and STDERR. One is
to
TEE the STDOUT so that all your console activity gets
copied into a file.
Like this:
./AM-100 | tee AM-100.lst
or:
./AM-100 2>AM-100.log | tee AM-100.lst
CUT and PASTE works with the STDOUT console window. Access them by
clicking
on the little icon on the left of the window bar.
They are under 'edit'.
So copy that big basic program off your real machine and paste it into
AMOS
basic (or edit) (or whatever).
DO NOT USE DIRSEQ. It scrambles directories. I will track that down and
fix it for the next release.
PERFORMANCE
Performance has not been a design consideration. There are dozens of
places
it could be dramatically improved. My judgment is
that's not worth the
effort. But judge for yourself. On a Pentium 166 laptop with linux 6.2
it
seems pretty close to what I remember my AM-100 being
able to do. The
ways
that AMOS loops when it doesn't have work are
converted into sleeps, so
it's
pretty low impact even on an old slow box.
Of course on a 2.4 gig p4 it screams. Certainly much faster than the
AM-1000 I traded in my old AM-100 to buy, but I've no idea how it compares
to modern systems.
Maybe someone will run some benchmarks???
WHAT IS CHANGED/ADDED TO AMOS 5.0?
Not much. The system.mon is a standard mongen of sysbsw.mon and my own
disk
driver vdk.dvr[1,6]. I patched ps3.idv[1,6] to create
ps3new.idv[1,6].
Ansi.tdv[1,6] is a hack of a vt100 driver I wrote years ago.
System.ini[1,4]
is a demonstration of bank switched memory.
Spoolr.ini[1,4] is just a way
to test lptspl with output to the console.
Source for vdk.dvr, ps3new.idv and ansi.tdv are not provided simply
because
I haven't had time. vkd is a one-instruction link
to the container file
disk system in hwassist.c. ps3new is just a branch back to output all
waiting chars at once instead of just one per clock tick - a performance
improvement. Ansi.tdv is just an ugly hack for the tcrt calls - the more
difficult input processing is handled in the ps3.c module of the emulator.
WHAT DO I **KNOW** DOES NOT WORK?
Aside from DIRSEQ most stuff seems to work. LISP and PASCAL may not work
but I know so little about them I'm not certain.
Format 11 instructions (floating point) have only been working a few days.
They are probably really sick and I just haven't noticed yet. But enjoy
basic until they bite you!
I also have pretty good reason to think PS.V handling (and 'over/under
flow'
in general) is not quite right. What the book says is
supposed to happen
is
at odds with what diagnostics check for and what known
running programs
do!
HOW TO REPORT A NEW BUG
Send me an email (mike(a)otterway.com) telling me what you did, what
happened,
and why you don't think that should have happened.
For example: "I
compiled
and ran xyz.bas and it crashed saying it couldn't
open file aaa.bbb, but
aaa.bbb was there like it was supposed to be and this program and file
work
on my real AM-100". So far I'm pretty prompt
getting back to people who
tell me about problems, hopefully that will continue...
SOFTWARE DONATIONS
Were you a software developer in the AM-100 heydays? Still have a copy of
your pride and joy laying around? Why not let others remember with you!
Let me post a copy for use with the emulator. All donations welcome!
CREDITS
A number of people have helped and/or inspired me to write this thing.
There's Jim Battle, who's built web pages and emulators for several
machines
including the Processor Technology SOL-20 (see
http://www.thebattles.net/sol20/sol.html) . We share an interest in
Processor Tech hardware and software and I really admire the way he has
pulled all that arcane stuff together.
There's Roger Bowler (etal) and the Hercules project (IBM mainframe
emulator, see
http://www.conmicro.cx/hercules). I spent a lot of my
career
as an OS sysprog, and what that team of people have
done is just
magnificant. Many design elements of my emulator come from them - I even
borrowed their use of the Q license!
There's Harvey, a guy who saved some of my old books for 20+ years in his
garage. Some were manuals for my old AM-100! There's Mike, who still has
a
running AM-100, and was good enough to send me a copy
of his wd16 manual.
There's Rhett who found me a really clean complete copy of amos. There's
Joe, another guy with a running AM-100 who sent me an assembled copy of
the
cpu diagnostic and worked with me to get it to run
without a monitor. And
of course there's Alex who has given permission to distribute amos along
with the emulator so more people can enjoy it.