See also the companion file http://www.andrews.edu/~calkins/sigma/sigma6.htm
on the partially developed Java-based emulator.
SIGGY.EXE is a fully functional Sigma 5/6/7 Computer emulator with
some enhancements for BIG and some work was done on Sigma 9
support. Various compile/load options allow you to rip out
the floating point or decimal unit, even the map if need be.
With its blazing speed a fully configured Sigma 7 emulator is all
you really need/want probably. It will boot CP-V in 16 seconds
on a 2003 vintage NT notebook, something a real Sigma 9 took
6 minutes to perform---those bits don't have to travel nearly so
far from drive to memory! Run it with no options and it will
display the following command line options.
Usage: c:/bin/siggy.exe
option description
b Unit Address - boot device address (hex) default = 3
s Sense switch settings (hex) default = 0
n No clock interrupts (for debugging)
c File name with Sigma Configuration default sigma.cfg
a Address stop enabled at address (hex) default off
w Watchdog timer override on default off
h Halt on traps default off
i Idle at startup
m Memory size (hex) default 20000
d Debug without pcp display
v Verbosity level (hex), bits turn on debugging messages:
1: device 2: controllers 4:iop 8:cpu 16:config
f File to read command line options
The important boot parameter is -b which tells it
the boot address and -i which is idle at startup.
If MTA80 is set to AUDIAG.MT then SIGGY -b80 will boot it.
SIGGY locks onto hardware interrupts so has some code which
has to do that in such a manner that it can unlock it when
done. This allows it to have faithful representation of
hardware interrupts and is what locks us into the PC/DOS
environment for now.
The emulator interface is much like the front panel of a Sigma
Computer. Most every switch there is setable and the commands
tend to follow the nomenclature there. Chapter 5 of a Sigma 5/7/9
CPU Reference Manual will provide the details of what each switch
or button does and the rest of the manual fills in details.
A scanned version of the Sigma 9 reference manual should be online
in this (http://www.andrews.edu/~calkins/sigma) directory.
At the idle prompt SIGGY has commands it will list with HELP/?
as listed below. Some of the most useful are s for step.
and quit to exit. Control C generally interrupts things, but
only if on the emulator screen (ALT F1). In run mode (ALT F3)
will get you the console or TYA01 (hardware address .001)
input/output, although on output it will go there for you by default.
Incidentally this is what makes the virtual terminals a pain
under CP-V C00 where time is output every minute to the TY.
Under TCP-V I00 it is only output after other activity.
When in console mode F1 simulates an console interrupt--this button
was generally wired to the front-panel console interrupt and
genearally the running program may give you a prompt. Input and
output are forced uppercase since real Teletype 33's (ASR/KSR)
only had uppercase. The ALT F2 screen is the emulator interaction
page. I'm sure FUNC BREAK on my other PC sent a BREAK on the
virtual terminals (ALT F4-F12). Note that line number, terminal
type, and such are settable in SIGMA.CFG.
SIGGY -B1f0 (for CPCP)
Give it a date after 1/1/70 and before 12/31/99 and a time
Answer N or cr to DELTA/HGP.
Hit F1 while on the Alt F3 screen to get a ! after DAY ghost spews
(Ignore the 9DIAG error---it apparently hasn't been restored.)
Enter !107 cr
Hit control C on the Alt F1 screen to get a -
-store 114a,0
-run
That break issue means that since the lines are "hardwired" that
location in memory needs to be zeroed to get a logon message.
COD:HWL=114A
I got that by crashing the system---it did a tape dump
I then rebooted the system ran GJOB ANLZ TA
SLP,I GJOB SPLIST GJOB LP SLP,L
Got the output from file LPOUT.LP
Now I have a logon message.
now do GJOB PCL/COPY :USERS ON :USERSSV/DEL :USERS/END
now log in with :SYS LBE now I have a command prompt
DELTA/.8C43/esc esc/Q verifies I have .C0 privilege
COPY :USERSSV OVER :USERS restores the old file
SUPER/LI CALKINS//MO CALKINS,KEITH/PA=????///END/OFF
I logged back on under CALKINS,KEITH,???? (have .F8 privilege?)
ANLZ/DELTA/;S/esc esc gave me a 79-00 oops? (loopus)
I did it again on a different line (probably with C0) and it happened again.
Now it crashed after HP 0 logged on; stored 80000000 instead.
Important Information about the SIGMA.CFG file will be given below.
? Display a list of commands.
ac Display the access codes starting with page arg1, for arg2 pages.
addstop Toggle the address stop address and display the results.
audio Toggle the audio switch on/off.
b Set address stop to 1 and select address to arg1 (hex).
boot Set boot address to arg1 (hex).
branch Display branch stack (somewhat like a 550/560).
clock Turn clocks on.
coc Display information on COCs?
cpu Display CPU (ALT F2) screen?
cpureset Do a cpu reset.
dev Gives status for device arg1 (hex)
device See dev.
devices Gives information about all devices.
d See dump.
dump Dump memory starting at word address
arg1 and going arg2 words. arg1 and arg2 are hex
dumpba Dump memory starting at byte address
arg1 and going arg2 round(bytes+8)?
dumpda Dump memory starting at doubleword address
arg1 and going arg2 doublewords.
dv Toggle verbosity for device arg1.
end See quit.
event Display event information.
fpos Display? file position for device arg1.
iai Increment instruction address.
iexist Uses arg1 and arg2 to set interrupt existance?
interrupts Display the complete interrupt table.
ioreset Do an I/O reset.
iostop Stop all I/O?
help See ?.
load Put the bootstrap load sequence into locations .20-.29
map Display the map starting with page arg1 and going arg2 pages.
memclear Clear memory.
moun Allows the mounting of a DOS file to a device.
(Document syntax)--this was powerful, useful, but frustrating).
n Execute the next instruction.
noclock Turn off clock interrupts?
nopcp Change back to default display mode.
pcp Display system information using mode.
power Turn off the power to the emulator??
psd Display the current program status double word.
psw1 Set word 0 of the psd to arg1 (hex).
psw2 Set word 1 of the psd to arg1 (hex).
quit Exit emulation.
q See quit.
regs Display the current register block (and identify which).
r See run.
reboot Rewind the boot address; clear memory;
ioreset; cpureset load; run.
rew Rewind address arg1.
rewind Rewind device unit arg1 (like mtA80, 9ta80, bta80).
run Start emulation.
s Step the emulator one instruction. The current
instruction will be highlighted and context around it given.
scroll Set scroll mode to 1.
search Search memory and registers for arg1 subject to mask arg2.
seladd Set the select address to arg1 (address stop).
sense Set the sense switches to arg1?
show Display the PSD, register block, and current instruction
in context.
s Single step the emulator and display the results.
ss Smart step (stop at branch?/psd?/inhibit interrupts?).
step Single step the emulator arg1 times (integer) and
display the results.
store Store arg2 in word address arg1, both hex.
sysreset Do a system reset (io & cpu reset).
tics Display tic information. (meaning what?)
user Display screen for virtual user arg1 (decimal!)
verbose Set the verbosity level. See command line options.
watchdog Toggle the watchdog timer switch.
wl Display writelocks starting with page arg1 and going arg2 pages.
While running, the emulator displays three pieces of information
on the bottom of the screen: column 35 run lamp; column 40 wait lamp;
and in column 75 the console interrupt/read pending lamp.
ALT QWER can be used to clear the sense switches, and ALT 123
used to set them, but only from non-terminal screeens.
Sense switch 4 might cause check-reads (SS2?) under CP-V and
was unimplemented as near as I can tell. Normally SS3 was set
while CP-V was running so it would start the card reader
symbiont (hot carder) automatically without !SS.
SIGMA.CFG tells the emulator what files to associate with which I/O
address. It defaults to this the file name in the current
directory but that can be overridden with a command line option.
You may need to change some of these since they point to
drives and directories which will not necessarily be convenient.
Extra tape drives especially were used since they were so cheap
and convenient.
If you don't use a drive it is no big deal.
The read only bit is checked on files for tapes and corresponds with
the lack of a write ring on tapes.
The Telefile diagnostics check that and loop outputting
REMOVE WRITE RING. To remove a write ring use the DOS command:
attrib +r diag.mt
Supported terminal types are: NONE, DTMD, WYSE, VT100, and Z-29.
You will probably find that DTMD uses the Datamedia 15x0 series
of screen addressing and not the later Datamedia 30x5 series
since we reprogrammed our Datamedias for backward compatibility.
SIGHCP is the sigma hardcore diagnostic "deck". It was originally cards
or card images but in "recent" years was put as the first thing
on diagnostic tapes.
I fear there were/are two versions kicking around and that
orignally Madhu's couldn't handle the fact that the first read
is 88 bytes of the 120 byte card. Since there are 108 cards,
and 108 was a common length of data for a card (see AP), that
can be confusing. Just be aware.
Files with extension CR can be read as card reader input by George's emulator.
Files with extension MT can be read as tape drive input by George's emulator.
Files with extension DP are disk drives and are treated as a contiguous
string of bytes.
There is more control information for an MT than for a CR since
you have to be able to read a tape backwards and skip files
and records both directions. Tape marks have to be emulated.
AUDIAG.MT is a stand-along tape-based diagnostic utility developed
at Andrews University. It evolved as a repository for various
card based diagnostics some of which were "crawl-unders"
developed at AU, for others it replaced useful card decks.
The main driver thus only reads in one card image at a time
and it was able to skip to another program on tape and read
it in. Tape content is as follows:
SIGHCP - the Sigma hard-core CPU diagnostic.
It hangs in a run loop I think on hardware problems.
CORESV - write core to tape with a bootable rewriter.
Was useful so one could later restore core after
a hardware problem was resolved and do an
"operator recovery."
MEMFLT - for finding core memory faults -- those
intermittent gremblins of days gone by.
ALGN - a disk utility which was used to select heads
during alignment, an almost daily occurrance
when we were running 30 100 Mb drives
(CDC BR3B8, Xerox 7277) with a MTBF of 30 days.
COCD - Our homegrown COCs were DIO only and this
developed during debugging.
TABLE - Our IBM 1403 line printers had a table in the
controller which needed to be loaded, sometimes
when the operating system was down. Eventually
we replaced the volitile memories with EPROMs.
RADE - Rad Editor. Useful for doing dasterdly deeds to
the operating system before booting. Amazingly
useful in times of need.
TAPE - a simple tape utility
VOLINIT - used to initialize the 100 Mb disk packs.
This replaced a 6" deck of cards which was at
best problematic. When we bought 100 used
disk packs from Warner, having it on tape
quickly redeemed any efforts required to do so.
This was crude but crude things were useful when the computer
was down for unknown reasons and especially useful as we
bootstrapped the emulator project.
CPCU.MT is the local U build of the CP-V C00 release of the operating
system.
We will outline the actual boot process elsewhere.
CPCP.MT and CPCP.ZIP an annotated boot from this PO tape is in file
CPCPDOC.TXT.
CPCPDOC.TXT information for booting the CPCP.MT PO tape.
MTLU00.MT and MTLU00.ZIP the Xerox diagnostic tape.
CPCU.PAT is just a list of my current "patches" to the CPCU po boot
tape. I kept the original as we created it and made such changes
to make running it easier. I think at the time the date/time thing
worked so we didn't have to enter it at boot time. Maybe if I boot
my PC with a pre-Y2K date I could verify that.
XeroxSigma9Ref.pdf sorry about the long mixed case name which thus
violates two of my naming conventions but I preserved the
name as given me by the fellow who scanned it in after I
mailed it too him. It should be what it says. I had some
problems with it and didn't zip it since that only saved
about 10%.
Regarding files in subdirectory DIAGS:
Files ending with .ABS were for the Java-based editor and have no
record control information.
Files ending with .CL are ASCII expansions of the EBCDIC compressed listings
for various diagnostics. The selection is skewed toward those
which had various problems, usually I/O related, under the
JAVA-based emulator. Although they have a Telefile copyright,
they are actually public domain dating back many years earlier.
We are indebted to Telefile for there preservation in electronic
form---I'd hate to have to scan in those old listings!
Information about the Java-based Sigma emulator is documented in SIGMA6.HTM
To have a fully functional CP-V system you must first boot from PO tape.
I will have to try to put information thereto here. Basically, you must
boot from a tape drive >siggy -b80 and answer some questions properly.
There are several boot tapes CPCP and CPCU as discussed above. CPCUDOC.TXT
gives screen shots.
Once you have a functional CP-V system you can boot it from "disk."
>siggy -b1f0 is what I used for PO tape CPCP.