Nova Emulator Notes


Quick Notes About the Nova Emulator
===================================

The project is designed to create an easily-accessed, simplified "user experience" for running a Data General
Nova computer.  This includes the visual image of an original Nova's front console (1968, Serial Number 45),
a user terminal display, an optional ASR-33 keyboard, and various other 'experience options'.

The emulator is also an accessible tool for Nova program creation, testing and deployment by
people restoring Data General hardware.

Hardware configuration:

    Nova CPUs supported include:
        Original Nova
        Nova with 64KW support
        Nova 3
        Nova 3/D
        Nova 4
        Nova 4/X

    CPU options supported include
        MMPU memory map unit
        Hardware MUL/DIV   (unsigned)
        Hardware MULS/DIVS (signed)

    Common DG Peripherals
        Main terminal (TTI/TTO)
        Optional ASR-33 keyboard input area (for use with i<anything> and Android)
        Real-Time Clock (RTC)

    Front console image of Wild Hare's Nova with 'clickable' (and animated, and audible) switches

    Disk drives, classic DKP controller, 4 drives:

        Model   Description     Capacity
        -----   ------------------- ------- 
        4047    Diablo 31        2.5  MB
        4048    Century Data 111     6    MB
        4057    Century Data 114    25    MB
        4231    CDC "Winchester"    90    MB
        4234    Diablo 44 (top loader)  5+5   MB
        6030    DG 8" diskette      0.3   MB
        6045    DG Phoenix (top loader) 5+5   MB
        6070    DG Gemini  (top loader) 10+10 MB
        6097    DG Skywalker quad flpy   1.2  MB
        6099    DG Echo Winchester   12.5 MB
        6103    DG Echo II Winchester    25   MB
        6225    Cactus            5   MB
        6227    Cactus II        15   MB
        6234    Daisy            50   MB

    Disk drives, DZP "Zebra" controller, 4 drives:

        Model   Description     Capacity
        -----   ------------------- ------- 
        6060     Zebra            96  MB
        6061     Zebra 2         190  MB
        6067     Zebra 1/2        50  MB
        6122     Vulcan          277  MB

    Line Printer (Note: requires pop-up window support enabled in browser)
    Optional support for non-DG-compatible "extended memory" [0-64 KW rather than 0-32 KW]

Software configuration:

    Pre-Built Operating Systems and Languages

The RDOS operating system is complemented with DG's assemblers (ASM and MAC), ALGOL, FORTRAN IV and Extended
BASIC (both single- and multi- user).

    Original DOS

        First DG Disk Operating System created in 1969.

    RDOS    Data General unmapped RDOS rev 7.60 (systems 'SYS', 'QTYSYS' and 'BOOTSYS' exist,
        'QTYSYS' has Wild Hare's RDOS 7.61 QTY patch/fix)

        Languages
            Assembler and Macro Assembler
            FORTRAN IV
            ALGOL
            Extended BASIC

    NRDOS   Data General Mapped RDOS [NRDOS] for Nova 3/D and Nova 4/X;
        (uses the MMU - Memory Map [and Protection] Unit)

    DOS 3.5 Operating system created for floppy diskette-based systems,
        derived from RDOS.

    MP/OS   New operating system designed for DG micro products and
        Nova 4 systems, rev 3.21.  Incompatible with RDOS.

        Languages
            Macro Assembler
            FORTRAN IV
            Pascal
            Extended BASIC

    IRIS    Educational Data Systems (EDS) / Point 4 IRIS, rev 7.5.

        Languages
            Assembler
            BASIC

    Diagnostics
        DG multi-programming diagnostics for corresponding Nova, Nova 3,
        Nova 3/D, Nova 4 and Nova 4/X computer systems.

Web-based User Interface

    Six main sections exist in the user web interface (from top to bottom):

                        Initial
    Area    Description         Visibility
    ----    ---------------------       ----------
    1)  front console image     visible
        Switches function when 'clicked',
        are animated and audible

    2)  IPS Counter         visible

    3)  terminal display window     visible

    4)  ASR-33 keyboard         hidden
        (for optional use by iPad/iPhones/tables)

    5)  a) option menu buttons      visible
        b) control keys         hidden
        c) console buttons      hidden

    6)  debug/trace display window  hidden

    Front Console Image

        This is a picture of Wild Hare original Nova's (Serial Number 45) front console
        panel which is overlaid with incandescent light displays that approximate that
        of the actual running hardware.

        The switch register and the function switches are operative, audible and animated -
        'clicking' them will perform the corresponding function.  Most function switches
        (i.e. examine, deposit, etc.) are ignored when the computer is running (like
         the real hardware), so the machine must be STOPped or RESET for all function
        switches to be effective.

    MIPS Counter

        This displays an approximate number of Nova instructions executed every second,
        and is updated about every two (2) seconds.

    Terminal Display Window

        This is the display and input area for the main DG console (device names TTI and TTI,
        device codes <010> and <011> (octacl), respectively).

    ASR-33 keyboard

        Usually keyboard input to the terminal is performed by typing in the Terminal Display
        Window's text area.  However, iPad/iPhone/iWhatever and some tablets have problems
        invoking a virtual keyboard when the text area is displayed.  The ASR-33 keyboard therefore
        creates a separate area that can be used to 'type' (select with mouse/finger cursor) 
        keys into the Terminal Display Window.  Note that the <CR> and <LF> keys codes
        may be recognized by different operating systems in different ways: in some cases
        a <CR> may be required as a input line terminator, on other cases a <LF> may be needed.

        RDOS 7.6 usually requires a <LF> line terminator.

        ASR-33 keyboard sounds and animation may affect input performance on some browsers.
        It just depends on browser and OS.

    Menu Options

        These menu buttons allow enabling and disabling the display of the other four areas
        of the user interface, along with enabling and disabling the special control key
        and console switch function buttons.

        Option Menu Buttons

            These menu buttons enable/disable the display of all other menus and options,
            and these buttons may not be hidden.

            The Control Keys menu enables the input of special 'control keys' to the
            Nova emulator from browsers which have problems handling user keyboard
            control or function keys.

            The Console Buttons enables or disables a button menu that enables buttons
            to perform the function of the main console hardware switches.

    Debug/Trace display menu

        Console Button actions are reflected in this window area.
        An undocumented 'Trace' instruction execution button exists here
        but may or may not exist in future revs.

RDOS Notes

    BOOTSYS operating system exists in all RDOS releases.
    SYS is general purpose release with TTI, TTO, RTC, DKP, and LPT support.
    QTYSYS is SYS release with 4-line QTY support (including Wild Hare QTY fix/patch to DG 7.60).

    SYS.SV was 'gened into this demo for user convenience and is the default system
    system loaded only a <CR> or <LF> is typed in response to the 'Filename?' query.

    Enter the date as two-digit month, day and four-digit year, separated by spaces.

    Enter the time as hour, minute and second in 24-hour format, separated by spaces.

    RDOS is does not display Y2K dates in convenient form.  For example, year 2018 is listed as 118.

    End of line terminator is generally <LF>, which is the LF button on the ASR-33
    keyboard.  Some utilities accept either <LF> or <CR> - it just depends.

    All CLI (Command Line Interpreter) filenames and command are case insensitive.

    All CLI commands follow a similar consistent format.

    The root file system (and disk) name for this RDOS system is 'DP0'.

    A single-level sub-directory structure is supported by RDOS; multiple sub-levels
    are not supported.  (This depends upon whether use of special fixed-length
    'partitions' exists, however.)

    Directories and subdirectories must be explicity 'INIT'ialized before use
    and 'RELEASE'd after use in order to be recognized by RDOS.  This is different
    than other operating systems where directories are considered just file name
    references.

    Type 'UP' from the default master directory (DP0 in this environment) after RDOS
    startup to execute a CLI script to initialize all commonly-used directories and link
    various standard utilities to the appropriate directory.

    Type 'DOWN' from 'DP0' before the final 'RELEASE DP0' command to shut down the
    system cleanly.

    Files may be transferred to/from the browser's (client) computer using the PTR and PTP
    LOAD and SAVE buttons.

IRIS Notes
    . IRIS rev 7.5
    . Type the <Esc> (Escape) key to get IRIS login screen attention;
    . Type <Ctrl>/P (Control/P) to inhibit parity checking.
    . Account name is: MANAGER (all upper case)
      (Account name is case sensitive)
    . No password is required.

Random Notes

    Non-persistent disk data - disk data reinitialized when web page refreshed.

    DP0 contains all operating system, utilities, libraries and language files.

    DP1, DP2 and DP3 do not initially exist, but may be used after they are initialized using the
    standard DG procedures:

        DKINIT  - full INIT on selected drive (Model 4048, DP1, DP2 or DP3)
            - optionally installing bootstrap on DP1, DP2 or DP3 using the BOOT program
        INIT/F DP1 or DP2 or DP3
        use DP1, DP2 or DP3
        RELEASE DP1 or DP2 or DP3

    Boot RDOS, use 4-digit year,
        separate time and date numbers with space (' ')

    Convenient RDOS CLI macros in DP0:

        UP.MC
        DOWN.MC
        LINKASM.MC
        LINKFORT.MC
        LINKALGOL.MC
        LINKBASIC.MC

    DP0 Directories

        ALGOL       ALGOL compiler and runtime libraries
        FORT        FORTRAN IV compiler and runtime libraries
        XBASIC      Extended BASIC generation, libraries and interpreter directory
        U$UTILS     URDOS 7.60 utilities and libraries
        U$RDOS      URDOS 7.60 SYSGEN libraries
        HELP        HELP demo program from the ALGOL manual

    Release Notes

        Release notes for operating systems and languages may be contained in each directory,
        and would have filenames that start with the number '0' (i.e. 085xxxxxxyy).

How Do I...

    How to Create and Run an Assembler Program

        DIR %MDIR%
        UP
        (CDIR,DIR) TMP
        %MDIR%:LINKASM
        XFER/A $TTI NULL.SR  (type the following lines)

            <tab>.TITLE NULL
            <tab>.NREL

            <tab>.ENT NULL

            NULL:<tab>JMP .

            <tab>.END NULL
            <control/Z>

        ASM NULL
        RLDR/P NULL
        NULL
        (console lights should eventually be 000445)
        <control/C><control/A>
        R (return to CLI 'R' prompt)

        MAC NULL
        RLDR/P NULL
        NULL
        (console lights should eventually be 000445)
        <control/C><control/A>
        R

    How to Create and Run a FORTRAN IV Program

        DIR %MDIR%
        UP
        (CDIR,DIR) TMP
        %MDIR%:LINKFORT
        XFER/A $TTI HELLO.FR
            <tab>TYPE "Hello world!<015>"
            <tab>END
            <control/Z>
        CLG HELLO
            Hello World!  (displayed by FORTRAN program)
        R

    How to Create and Run an ALGOL Program

        DIR %MDIR%
        UP
        (CDIR,DIR) TMP
        %MDIR%:LINKALGOL
        XFER/A $TTI HELLO.AL

            begin
            external procedure OPEN ;

            OPEN( 1, "$TTO" ) ;
            OUTPUT( 1, "Hello world!<015>" ) ;
            end
                <control/Z>
        ALGOL HELLO
        RLDR/P HELLO ALGOL.LB
        HELLO
            Hello World!  (displayed by ALGOL program)
        R

    How to Create and Run a BASIC Program

        DIR %MDIR%
        UP
        (CDIR,DIR) TMP
        %MDIR%:LINKBASIC
        BASIC

        *

          10 let a = a + 1
          20 goto 10
        * RUN
        <escape key> to interrupt BASIC infinite loop
        *
        print a
           23155
        *
        * BYE
        R

    How to Run a 5-user (!) BASIC System

        Main console:

        DIR %MDIR%
        UP
        (CDIR,DIR) TMP
        %MDIR%:LINKBASIC
        XBASIC:MUBASIC

        *

          10 let a = a + 1
          20 goto 10
        * RUN
        <escape key> to interrupt BASIC infinite loop
        *
        print a
           23155
        *
        * BYE
        R

        QTY lines:

        Show the QTY:0/1/2/3 terminal displays

        Hit <ESC>ape key to initiate login prompt in any window.

        User names are USR1, USR2, USR3, and USR4.

        Enter and run program as described for main console.

        BYE command terminates user session.

    How Do I Operate the Front Console?

        Console image is that of Wild Hare's 'classic' Nova computer -
        the first model DG produced in 1968 and 1969.
        Positioning the mouse (or touching the screen) above or
        below a specific switch will perform the corresponding
        function (the switches are animated and have sounds from
        actual NOVA switches).

        The 'Show Console Buttons' option button enables or disables
        the front console function buttons.  These buttons perform the
        same functions as the front console switches and are easier
        to use on i<devices>, Androids and other touch screen.

        Only the STOP and RESET buttons function when the CPU is running,
        all other buttons are ignored.  All other buttons function when
        the processor is HALTed.

        The front console 'switch register' data may be entered as an octal
        number in the far right Console Button menu.  An 'Whoops!' error will
        be displayed and the function ignored if an invalid octal number
        exists in the 'Switch Register' field.  The field allows 7 octal
        digits, but will be masked to 16 bits.

        START, EXAM, DEP, DEP NEXT and APL use the 'Switch Register' value.

        A READS instruction with invalid switch register data will display
        the alert message but return 0 to the program.

    Control Keys

        Some browsers have problems handling control keys that may be used
        in a DG environment, so the 'Control Keys' option menu provides
        a way to send special keycodes to the emulator.

    Terminal Window

        Input and output area for default DG terminal (TTI and TTO, device
        codes <010> and <011> octal).

        Initially display set to 80 characters by 24 lines, but may be expanded
        and scrolled.

        All web page session is retained by default, but note that this may
        result in slower screen update response depending upon browswer used.

        DG software assumes DG terminal with support for proprietary DG CRT
        cursor display and keyboard codes.  These may appear as block characters
        on non-DG terminals.

        Rubout is <Backspace> key.

        <CR> is <LF>, and <LF> is <CR>.

        Different DG software may require different terminators, so <control/J> (<LF>
        [line feed] or <NL> in more modern parlance) may be required rather than <control/M>
        (<CR> [carriage return]).  Later RDOS software releases supports the default <LF>,
        but some stand-alone utilities may still require the <CR>.

        TTI currently generates even parity to help with some stand-alone programs.

    Debug Window

        Logs console button activity.

        May display instruction execution information.

    Browser Quirks

        Different browsers still have quirks, missing features and/or incompatibilities
        with each other, especially regarding user keyboard input.

        Apple-based browsers may not support input to text areas, so the ASR-33 keyboard
        options can be used in these cases.

        ASR-33 keyboard sounds and animation may affect input performance on some browsers.
        It just depends on the host computer, browser and the OS.

    Software Licenses

        Point 4 IRIS system provided pursuant to an agreement between Point 4 and Wild Hare
        Computer Systems.

        Nova JavaScript emulator and corresponding web pages are copyrighted by Wild Hare Computer
        Systems, Inc., and are not currently open source.  The content may not be distributed, in
        part or in whole, and may used only for personal educational, non-commercial purposes.
        The content may not be distributed, in part or in whole, and may not be used for any
        professional or commercial purpose whatsoever.

Rev 01.00.04

                            ###