Up
EMULATE.DOC         News and corrections EMULATE 3.00         1987-08-10

The contents of this file is an addendum to the README.DOC file for
MS-DOS 3.20.

GENERAL     EMULATE v3.0 is an enhanced version of the PC ROM BIOS
            emulator.

LEVELS      Three levels of emulation are available.

            Level 1 corresponds to PC-mode.

            Level 2 is a slightly enhanced version of EMULATE v2.0.

            Level 3, in addition to level 2, supports direct handling of
            the video memory for the monochrome or color/graphics
            adaptors. This level of emulation requires 768K of RAM
            memory.

            Level 2 and 3 stays resident in memory when loaded.

            An optional parameter /1, /2 (default if 256K) or /3
            (default if 768K) specifies the level of emulation. If level
            2 or 3 is already loaded, the level of emulation can not be
            changed without resetting the computer. This must be done
            with the RESET button on the front of the computer.

            NOTE! Use always the RESET button to restart the computer
            whenever the emulator is loaded!

PRINTER     A printer filter (cf. PREMUL) is included. An optional
            parameter /ON (default) or /OFF defines the state of the
            filter. Parameters /+ and /- can be used instead of the
            parameters /ON and /OFF.

            The printer filter status can be changed directly from the
            keyboard. Supershift+Ctrl+Insert activates and Supershift+
            Ctrl+Delete deactivates the filter.

            A character screen dump (int 05h) is activated with Shift+
            Ctrl+F1. Either local or remote printers can be used. No
            message is displayed if the screen dump cannot be performed.
            The filter is automatically deactivated during graphic
            screen dumps.

            Full handling of both remote and local printer also for
            "normal" printing.

            NOTE! EMULATE v3.0 may not be used together with PREMUL!

MODES       Level 2 only supports video mode 7 (25*80 characters).
            Characters can only be written to the screen with DOS- or
            BIOS-calls.

            Level 3 supports video modes 2-7. Direct output to video
            memory is emulated. Some programs require a specific video
            mode set. Available modes are /MONO for monochrome adapter,
            /CGA for graphics or /MONOGR for both.

            The video mode can be reset to initial (not restricted) mode
            with parameter /INIT. This will also restore some parameters
            that application programs may have destroyed.

            The different screen modes will work with monochrome as well
            as with color screens.

HELP        A status report returned if only the parameter /? is typed.
            Helptext is available with the parameter /H or /HELP.

PARAMETERS  Examples of valid combinations:

                EMULATE /1              PC-mode
                EMULATE                 Load maximum level possible
                EMULATE /2 /OFF         Level 2, filter off
                EMULATE /3              Level 3, filter on
                EMULATE /3 /CGA         Level 3, filter on, cga
                EMULATE /?              Status request
                EMULATE /h              Help request

ERRORLEVEL  The EMULATE command sets the exit code as follows:

                 0    Normal completion
                 1    Syntax error
                 2    Option conflict
                 3    Incorrect DOS version
                 4    Incorrect ROM BIOS version
                 5    Insufficient memory
                 6    Level 3 can't be loaded,
                      if level 2 is already loaded
                10    No emulator. No network.
                11    No emulator. Network active, not logged on.
                12    No emulator. Network active, logged on.
                13    Emulator level 1. No network.
                14    Emulator level 1. Network active, not logged on.
                15    Emulator level 1. Network active, logged on.
                16    Emulator level 2. No network.
                17    Emulator level 2. Network active, not logged on.
                18    Emulator level 2. Network active, logged on.
                19    Emulator level 3. No network.
                20    Emulator level 3. Network active, not logged on.
                21    Emulator level 3. Network active, logged on.

            These codes can be used with the batch processing IF
            ERRORLEVEL subcommand. The codes 10-21 are only returned
            with a status request /?. The network status can be used to
            check if the central printer can be used, i.e. the user is
            logged on.

KEYBOARD    The key combination Ctrl+Break, calls interrupt 1Bh. The
            default action for this interrupt is to insert character 3
            (ctrl-C) into the keyboard queue.

INTERRUPTS  The following PC interrupts are emulated:

                 5h    print screen
                 9h    physical keyboard
                10h    video
                11h    equipment-list
                12h    memory size
                13h    diskette (only for stand-alone computer)
                14h    communications
                16h    keyboard
                17h    printer
                1Ah    time-of-day
                1Bh    keyboard break
                1Ch    timer tick
                1Fh    graphic characters

            The PC interrupts 15h, 18h, 19h, 1Dh, 1Eh, 67h (EMS) and F0h
            (used by the BASICA interpreter) are dummy interrupts.

            The COMPIS/SCANDIS interrupts E6h (graphics), EBh (network),
            EEh (physical hard disk), EFh (physical terminal), F1h
            (flexible disk), F3h (keyboard) and F4h (parallel printer)
            are modified.

            The hardware interrupts 02h (NMI), 08h (timer 0) and 12h
            (timer 1) are used.

VARIABLES   The most important variables located from absolute location
            400h to 5FFh in a PC computer are placed at the same
            adresses. These variables are:

                408h (word)    address of printer
                410h (word)    equipment-list data
                413h (word)    usable memory size
                41Ah (word)    head of BIOS keyboard buffer
                41Ch (word)    tail of BIOS keyboard buffer
                440h (word)    time out for flexible disk drive
                449h (byte)    current video mode
                44Ah (word)    screen column width (80)
                44Ch (word)    screen regeneration length (4000)
                44Eh (word)    screen location offset (0)
                450h (word)    current cursor location
                460h (word)    current cursor mode
                462h (byte)    current display page (0)
                463h (word)    port address of 6845 video emulator
                465h (byte)    CRT mode setting
                46Ch (Dword)   timer count
                470h (byte)    timer roll over
                478h (byte)    time out for printer
                500h (byte)    print-screen indicator

            All other bytes from 400h to 5FFh are set to 0 (zero).