Nova Emulator Notes


Quick Notes for 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 RDOS operating system is complemented with DG's assemblers (ASM and MAC), ALGOL, FORTRAN IV and Extended
BASIC (both single- and multi- user).

Hardware configuration:

    Original Nova or Nova 4 CPU with 32KW memory
    Hardware MUL/DIV (unsigned)
    Main terminal (TTI/TTO)
    Real-Time Clock (RTC)
    'classic' DKP disk controller with four (4) drives (DP0-DP4) (Model 4048)
    'Zebra' DZP disk controller with four (4) drives
    Line Printer (Note: requires pop-up window support in browser)
    Front console image of Wild Hare's Nova with 'clickable' (animated and audible) switches
    Optional ASR-33 keyboard input area (for use with i<anything> and Android)
    Optional support for non-DG-compatible "extended memory" [0-64 KW rather than 0-32 KW]

Software configuration:

    Pre-Built Operating Systems and Languages

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

        Languages
            Assembler and Macro Assembler
            FORTRAN IV
            ALGOL
            Extended BASIC

    MP/OS   rev 3.21

        Languages
            Macro Assembler
            FORTRAN IV
            Pascal
            Extended BASIC

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

        Languages
            Assembler
            BASIC

Web Page Load Time

    Operating system disk image files may download up to 10 MB of information, and therefore may
    take a while to load depending upon your browser and web connection.

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

    Type the <Esc> (Escape) key to get IRIS login screen attention;
    Type <Ctrl>/P (Control/P) to inhibit parity checking.
    Account name: MANAGER (all upper case)
    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.

    Performance - varies widely depending upon browser and internal Nova/JS tuning parameters.
        0.3 - 1.5 MIP performance depending upon hardware and browser.

    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

        DG software provided pursuant to an agreement between DG/EMC and Wild Hare Computer
        Systems, Inc. for personal educational, non-commercial use only.

        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.02

                            ###