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.