Running the Emulation

How to run the Apollo emulation

MAME will emulate one of the following Apollo workstations and servers:

MAME System Apollo Display
dn3500 DN3500 Color or 15“ Monochrome
dn3500_19i DN3500 19” Monochrome
dsp3500 DSP3500 Terminal
dn3000 DN3000 Color or 15“ Monochrome
dn3000_19i DN3000 19” Monochrome
dsp3000 DSP3000 Terminal
dn5500 DN5500 Color or 15“ Monochrome
dn5500_19i DN5500 19” Monochrome
dsp5500 DSP5500 Terminal

To run an emulation start MAME with one system and additional command line options, e.g.

$ ./mame dn3500 -mouse -log -disk1 <pathname>.awd -flop <pathname>.afd

See the MAME Documentation for specifics on installing and using MAME.

Notes:

  • The boot ROMs must have been setup, before the Apollo emulation may be run (see below).
  • Make sure you understand how to ungrab the mouse before runnung MAME with option mouse (see below)
  • The DN3x00 emulation may be run without option -mouse (i.e. without grabbing the mouse), if you are willing to move the cursor with the arrow keys of the keyboard (works quite good, once you get used to it)
  • DN3x00 is being used as shorthand for DN3000 or DN3500 or DN5500; same for DSP3x00

See also the MAME Documentation.

How to run config

The Apollo emulation should be configured for proper operation.

To run config

  • switch the Apollo emulation into Service Mode (see below) and reset or restart the emulation
  • press Return (in the MAME window or in the Terminal window) until the MD version and prompt (“>”) are shown
  • enter ex config and wait

the current configuration will be shown; expect something similar to:

Config - Offline(7), revision 10.4, December 2, 1991  7:29:50 pm

       Current configuration

Memory:
       Board #  Size in megabytes
            1              4
            2              4
            3              4
            4              4
       Total configured memory: 16 megabytes

Node-id:       12345
Display type: DISP8D -- 1024x800 monochrome display 
Peripheral devices: 
       FPU5 -- MC68881/MC68882
       FLP7 -- Floppy disk
       WINCHESTER CONTROLLER TYPE --  SMS/Omti                       
          WIN7 -- Winchester (controller 0  unit 0):  380MB--FA                
       CTAPE7 -- Cartridge Tape (QIC-II)
       ETH802.3_AT -- 802.3 Network Controller-AT (unit 0)

       Principal network: ETH802.3_AT -- 802.3 Network Controller-AT (unit 0)


Would you like to reconfigure this node (Y/N)?
  • Enter n to quit or y to modify the configuration; the configuration will be saved in the NVRAM of the emulation.

How to run calendar

  • If the Winchester disk image hasn't been used for some time (14 days), it may be necessary to run calendar.

To run calendar

  • Switch the Apollo emulation into Service Mode (see below) and reset or restart the emulation
  • press Return (in the MAME window or in the Terminal window) until the MD version and prompt (“>”) are shown
  • enter ex calendar and wait
  • enter w to select the Winchester disk
  • check and eventually change the timezone
  • check and eventually change date and time
  • confirm questions as appropriate and wait for the MD prompt to reappear

How to run salvol

  • If Domain/OS has crashed or has been aborted, it may be necessary to salvage the disk.

To run salvol

  • Switch the Apollo emulation into Service Mode (see below) and reset or restart the emulation
  • press Return (in the MAME window or in the Terminal window) until the MD version and prompt (“>”) are shown
  • enter ex salvol and wait
  • enter w to select the Winchester disk
  • enter return to start salvaging of logical volume 1 with default options
  • confirm Anything more to do? with n and wait for the MD prompt to reappear

How to run dex

  • The Diagnostic EXecutive (dex) is a comprehensive diagnostic control system for diagnostic products in the offline environment.

To run dex

  • Switch the Apollo emulation into Service Mode and set all other Driver Configuration values to Off (see below)
  • reset or restart the emulation
  • press Return until the MD version and prompt (“>”) are shown (in MAME window or in Terminal window)
  • enter ex dex and wait
  • enter help for more info
  • enter auto for full test (confirm errors with C or N); expect the following tests to fail
    • mem.dex Test 140: Parity Checker Test (emulation won't allow more the 40 parity error tests)
    • cpu.dex Test 302: SIO keyboard port test (behavior is ok for DSP3x00, run test with option -nokb)
    • disp.dex Test 20: Video SYNC Gen. Add. Test (not emulated for Monochrome graphics)
    • win.dex Test 103: Format Bad Track Test (not emulated)
    • fpu.dex Test 2: General Instruction (many FPU operations and operands are not yet emulated)

How to run Domain/OS in the DN3x00 emulation

  • Start the MAME emulation for dn3500 or dn3000 (resp. dn3500_19i or dn3000_19i) with option -mouse

make sure you understand how to ungrab the mouse (see below)

  • if Apollo emulation has been set to Normal Mode Domain/OS will boot without user intervention
  • if Apollo emulation has been set to Service Mode perform the following steps
    • in the MAME window press Return until the MD version and prompt (“>”) are shown
    • enter ex aegis (or ex domain_os) and wait until the bootshell prompt “)” appears
    • enter go to load as in normal mode (or help for more info)
    • wait until the DM has been started and the DM screen is shown
    • login as user user with empty password (or -apollo- if the registry already has been created)
    • wait for the first pad to appear and then enter shell commands …
    • see below for the mapping of the Apollo keyboard keys to the PC keyboard function keys
    • to logout press key F1 to move the cursor into the command window and enter lo
    • to shutdown Domain/OS press key F1 to move the cursor into the command window and enter shut

How to run Domain/OS in the DSP3x00 emulation

  • Start the MAME emulation for dsp3500 or dsp3000 (w/o option -mouse)
  • if Apollo emulation has been set to Normal Mode Domain/OS will boot without user intervention
  • if Apollo emulation has been set to Service Mode perform the following steps
    • in MAME window or in Terminal window press Return until the MD version and prompt (“>”) are shown
    • enter ex aegis (or ex domain_os) and wait until the bootshell prompt “)” appears
    • enter go to load as in normal mode (or help for more info)
    • wait until SPM and MBX Helper have been started
    • enter sh to start the login shell (or help for more info)
    • login as user user with empty password (or -apollo- if the registry already has been created)
    • wait for the shell prompt “$” and then enter shell commands …
    • enter exit as shell command to logout
    • enter shut to shutdown Domain/OS

MAME Basics

How to stop the emulation

  • in the MAME window press ScrLock to switch your keyboard in partial emulation mode
  • press Esc to stop the emulation

See also the MAME Documentation.

How to reset the emulation

  • in the MAME window press ScrLock to switch your keyboard in partial emulation mode

press F3 to reset the emulation See also the MAME Documentation.

How to restart the emulation

  • Stop the emulation (see before) and restart the emulation from the command line, or in the MAME window press ScrLock to switch your keyboard in partial emulation mode
  • Press Shift and F3 to restart the emulation

See also the MAME Documentation.

How to suspend the emulation

  • In the MAME window press ScrLock to switch your keyboard in partial emulation mode
  • Press button P to pause the emulation
  • Press button P once again to resume the emulation
  • Eventually delete the extra character p in the emulation
  • Eventually press ScrLock to switch your keyboard back to fully emulated keyboard mode

See also the MAME Documentation.

How to ungrab the mouse

  • If the emulation has been started with option -mouse, the mouse will be grabbed as long as the emulation is running.
  • Suspend the emulation (see before) to ungrab the mouse. The mouse will be grabbed again, if the emulation is resumed (see before).

Service Mode/Normal Mode

To switch the Apollo emulation between Service Mode and Normal Mode

  • Open the Apollo Driver Configuration menu (see below)
  • select and change the value of entry Service/Normal
  • close the menus and reset the emulation (see before)

Apollo Driver Configuration

To check or modify the Apollo Driver Configuration

  • Start the emulation for DN3500, DN3000, DSP3500 or DSP3000
  • In the MAME window press ScrLock to switch your keyboard in partial emulation mode
  • press Tab to enter the Internal User Interface
  • Press Cursor Down twice to select Driver Configuration and press Return to open the Driver Configuration menu

The Apollo Driver Configuration menu has the following entries

Entry Descriptiion
Service/Normal select Service mode or Normal mode
Graphics Controller Select 8-Plane Color, 4-Plane Color or 15“ Monochrome graphics controller (for dn3x00 only, will be ignored for dn3x0_19i and dsp3x00
20 Years Ago set default date in the RTC back by 20 years to omit the Nov 2, 1997 problem of Domain/OS software releases before SR 10.4.1
Node ID from Disk set node ID to value from the logical volume label of the first logical disk volume; without this option the default node ID 12345 is used
Idle Sleep Add sleep calls in the Idle Loop of Domain/OS to reduce the CPU usage of the emulation; should be used only for DSP3x00
Trap Trace Trace all Domain/OS SVC traps in the error log file
FPU Trace Trace all FPU operations in the error log file
Disk Trace Trace disk I/O in the error log file
Network Trace Trace network packets in the error log file
  • Press Cursor Down or Cursor Up to select the proper menu entry
  • Press Cursor Right or Cursor Left to select the proper value
  • Press button Tab to close the menu
  • Press button F3 to restart the emulation using the new settings
  • Press ScrLock to switch your keyboard back to in full emulation mode

Notes:

  • The new Driver Configuration setting won't be used unless the emulation has been reset or restarted
  • Each system (i.e. DN3500, DN3000, DSP3500 or DSP3000) has its own Driver Configuration settings
  • Warning: entering character p in partial emulation mode will pause (i.e. freeze) the emulation (e.g. for “r cpu”)

See also the MAME Documentation.

Keyboard Mapping

The additional special keys of the Apollo keyboard are mapped to the function keys (and some other keys) of the PC keyboard.

Function Keys

F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
SHELL CUT UNDO MOVE INS LINE CHAR SAVE ABORT HELP
CMD COPY PASTE GROW MARK DEL DEL AGAIN READ EDIT EXIT HOLD

Set Num Lock to use the Function keys F1 - F9 and F10 = F0 without Apollo mapping.

Other Keys

PC Keyboard Apollo Keyboard
Insert NEXT WINDOW
Delete POP
Right Window NEXT WINDOW
Menu POP

Cursor keys and Pad scroll keys have been mapped to the numeric keypad too.

How to emulate the German Apollo keyboard

The Multinational Apollo keyboard has some additional keys, a slightly modified layout and some different key labels. To emulate the German Apollo keyboard

  • Use a German PC keyboard at your Linux system
  • Verify that the file keymaps/km-de.txt exists (a copy of mame/src/osd/sdl/keymaps/km-de.txt)
  • in keymaps/km-de.txt the entry for ITEM_ID_EQUALS may have to be changed to:

ITEM_ID_EQUALS SDLK_WORLD_20 0x15 0xdf '

verify and eventiually correct the following two entries in mame.ini:

keymap      1
keymap_file keymaps/km-de.txt
  • In the MAME Apollo emulation set the Apollo Driver Configuration German Keyboard to ON and restart the emulation (see before)
  • in DM pads use the left ALT key (or Shift/ALT) to select national characters
  • Note: the MD and the standalone utilities expect a US keyboard (Y and Z must be swapped, other keys may have to be estimated)

Key mapping (German Keyboard)

PC Keyboard Apollo Keyboard
Key Shift Alt Key Shift Alt Shift
3 § 3 @ 3 @
ß  ? \ ß  ? ~  ?
+ * ~ + * + *
Ü ü Ü } ]
Ö ö Ö I \
Ä ä Ä { [
< > I < > < >

Note: in table read I as |

How to run Domain/OS on a small screen

The Apollo emulation expects a screen size of 1024×800 pixel (for dn3000 and dn3500) resp. 1280×1024 pixel (for dn3000_19i and dn3500_19i) plus around 100 more pixel vertical to display the keyboard mapping, LEDs and the window manager title line.

If your host PC has one of the following screen sizes

  • WXGA Screen (1280×800)
  • XGA Screen (1024×768)
  • SXGA Screen (1280×1024)

it may be preferable to run the emulation in full-screen mode and to select an appropriate view without keyboard mapping and LED display.

To run the emulation in fullscreen mode set option window in mame.ini to 0 or run the emulation with option -nowindow.

To select the appropriate view from the command line run MAME with option -view, e.g.

PC Screen Size MAME command line
XGA Screen 1024x768 ./mess./mess dn3500 -nowindow -view xga …
WXGA Screen 1280x800 ./mess dn3500 -nowindow -view wxga …
SXGA Screen 1280x1024 ./mess dn3500_19i -nowindow -view sxga …
SXGA+ Screen 1400x1050 ./mess dn3500_19i -view sxga …

To configure the appropriate view

  • Start the emulation for dn3x00 resp. dn3x00_19i
  • in the MAME window press ScrLock to switch your keyboard in partial emulation mode
  • Press Tab to enter the Internal User Interface
  • Press Cursor Down to select Video Options and press Return to open the Video Options menu
  • For dn3x00 select WXGA or XGA from the options:
    • Apollo (1024×800)
    • WXGA Screen (1280×800)
    • XGA Screen (1024×768)
  • For dn3x00_19i select SXGA from the options:
    • Apollo 19” Monochrome
    • SXGA Screen (1280×1024)
  • Press Return to select the entry
  • Press Tab to close the menu
  • Press ScrLock to switch your keyboard back to in full emulation mode
  • start Domain/OS and check the display

How to set the MAME Network Interface

If MAME has been build with option USE_NETWORK=1 the network interface may be verified and changed.

To verify or change the network interface

  • Start MAME for the Apollo emulation
  • in the MAME window press ScrLock to switch your keyboard in partial emulation mode
  • Press Tab to enter the Internal User Interface
  • Press Cursor Down to select “Network Devices” and press Return to open the Network Devices menu
  • The Network Devices menu has only one entry
  • Press Cursor Right or Cursor Left to select the appropriate network interface for network device 3C505 (e.g. tap-mess-…-0 for Linux or en0 for Mac OS X)
  • Press button Tab to close the menu
  • Press ScrLock to switch your keyboard back to in full emulation mode
  • Eventually restart the emulation

Software Installation