Note: This manual only covers MESS features essential for running the Apollo emulation. See MESS User's Manual for a full description of all MESS features.
MESS will emulate one of the following Apollo workstations and servers:
| MESS 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 MESS with one system and additional command line options, e.g.
$ ./mess dn3500 -mouse -log -disk1 <pathname>.awd -flop <pathname>.afd
Useful command line options:
| Option | Description |
|---|---|
| -mouse | grab mouse input (for acceptable mouse emulation; use this option only for the DN3x00 emulation) |
| -mt | use a second CPU core for video processing (may improve the graphic performance) |
| -nosound | turn off the keyboard beeper |
| -log | error messages will be logged in error.log |
| -disk1 <pathname>.awd | specify a Winchester disk image file |
| -disk2 <pathname>.awd | specify a second Winchester disk image file (i.e. w0:1) |
| -flop <pathname>.afd | specify a floppy disk image file |
| -ctape <pathname>.act | specify a cartridge tape image file |
Notes:
see also MESS User's Manual
The Apollo emulation should be configured for proper operation.
To run config
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)?
If the Winchester disk image hasn't been used for some time (14 days), it may be necessary to run calendar.
To run calendar
If Domain/OS has crashed or has been aborted, it may be necessary to salvage the disk.
To run salvol
The Diagnostic EXecutive (dex) is a comprehensive diagnostic control system for diagnostic products in the offline environment.
To run dex
see also MESS User's Manual
see also MESS User's Manual
see also MESS User's Manual
see also MESS User's Manual
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).
Be sure to set the following options in mess.ini or as command line option
| Option | Value |
|---|---|
| video | opengl (Linux/Mac OS X), d3d (Windows) |
| window | 1 |
| maximize | 0 |
If file mess.ini does not yet exist, run the following command to create a new mess.ini file with default configuration settings:
./mess -createconfig
refer to MESS User's Manual
To switch the Apollo emulation between Service Mode and Normal Mode
To check or modify the Apollo Driver Configuration
| Entry | Description |
|---|---|
| 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 |
| German Keyboard | select German Apollo keyboard |
| 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 |
Notes:
The additional special keys of the Apollo keyboard are mapped to the function keys (and some other keys) of the PC keyboard.
| 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.
| 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.
The Multinational Apollo keyboard has some additional keys, a slightly modified layout and some different key labels. To emulate the German Apollo keyboard
ITEM_ID_EQUALS SDLK_WORLD_20 0x15 0xdf '
keymap 1 keymap_file keymaps/km-de.txt
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 |
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
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 mess.ini to 0 or run the emulation with option -nowindow.
To select the appropriate view from the command line run MESS with option -view, e.g.
| PC screen | Size | MESS command line |
|---|---|---|
| XGA Screen | 1024×768 | ./mess dn3500 -nowindow -view xga … |
| WXGA Screen | 1280×800 | ./mess dn3500 -nowindow -view wxga … |
| SXGA Screen | 1280×1024 | ./mess dn3500_19i -nowindow -view sxga … |
| SXGA+ Screen | 1400×1050 | ./mess dn3500_19i -view sxga … |
To configure the appropriate view
If MESS has been build with option USE_NETWORK=1 the network interface may be verified and changed.
To verify or change the network interface
The boot ROM images for the Apollo emulation reside either in the zip file apollo/roms/dn3500.zip or in the directory apollo/roms/dn3500 (if rompath is set to apollo/roms in mess.ini).
$ (cd apollo/roms/dn3500 && zip -r ../dn3500.zip *)
# cd / # tar cf /tmp/netserver-files.tar sau7 sau8 sau14 sau_sys sys/net/netboot sysboot
$ cd <your emulation directory> $ mkdir -p apollo/roms/apollo $ (cd apollo/roms/apollo && tar xf /tmp/netserver-files.tar)
> di e > ld > ex config
Notes:
Note: cartridge tape access is very slow, be patient when executing software from cartridge tape
$ ls -log /tmp/*.ct -r--r--r-- 1 53678592 Feb 20 2005 /tmp/019593-001.CRTG_STD_SFW_BOOT_1-REV.A.ct -r--r--r-- 1 58403328 Feb 20 2005 /tmp/019594-001.CRTG_STD_SFW_1.ct -r--r--r-- 1 61564928 Feb 20 2005 /tmp/019594-002.CRTG_STD_SFW_2.ct -r--r--r-- 1 56568320 Feb 20 2005 /tmp/019594-003.CRTG_STD_SFW_3.ct -r--r--r-- 1 57844224 Feb 20 2005 /tmp/019594-004.CRTG_STD_SFW_4.ct $
$ rm -f /tmp/dn3500_sr10.4.awd $ ./mess dn3500 -mouse -disk1 /tmp/dn3500_sr10.4.awd -ctape /tmp/019593-001.CRTG_STD_SFW_BOOT_1-REV.A.ct
> re > di c > ex invol
> re > di c > ex calendar
> re > di c > ex domain_os : Restore complete. Apollo Phase II Environment Revision 10.4 RBAK version Jan 25, 1992 12:58:22 pm ) go
sh login: user Password: $ /install/tools/minst
see also
$ rm -f /tmp/new_disk.awd $ ./mess dn3500 -disk1 /tmp/new_disk.awd ...
$ rm -f /tmp/new_disk.awd $ touch /tmp/new_disk.awd $ ./mess dn3500 -disk1 /tmp/new_disk.awd ...
To select a different cartridge tape image while the emulation is running
The node id of the Apollo emulation will be be taken from the logical volume label of the first logical disk volume, if option Node ID from Disk has been set in the Apollo configuration (see before). Otherwise the node id will default to 12345.
To change the node id of the Apollo emulation
To change the node id of the Apollo disk image
$ /etc/server -p /etc/rgyd -restore_master&
$ /etc/rgy_admin
Default object: rgy default host: dds://dn3500
State: in service master replica list is writable
rgy_admin: lrep -state
dds:#0.12345 *** not communicating ***
(master) dds://dn3500 state: in service 2012/04/20.09:35:38
rgy_admin: delrep dds:#0.12345 -force
rgy_admin: quit
After installing Domain/OS SR10
$ touch /etc/daemons/llbd
$ /etc/server /etc/ncs/glbd -create -first -family dds -listen dds & $ touch /etc/daemons/glbd
$ /install/tools/rgy_create $ touch /etc/daemons/rgyd
Before proceeding see also
Note: The following assumes that linux1 is the hostname of the Linux PC where the emulation is running and linux2 is the hostname of a second Linux PC connected with Ethernet to linux1.
# /etc/lcnode # /etc/uctnode node_12345 # /etc/ctnode dn3500 12345 # /etc/lcnode
# touch /etc/daemons/tcpd # touch /etc/daemons/inetd # touch /etc/daemons/syslogd
# cat /etc/hosts 127.0.0.1 localhost 192.168.2.30 dn3500 192.168.2.99 linux1 192.168.2.25 linux2
# echo "linux1 root" >>.rhosts # echo "linux2 root" >>.rhosts # echo "linux1 ost" >>.rhosts # echo "linux2 ost" >>.rhosts # chown root .rhosts # chmod 600 .rhosts
# ls -l /dev/ttyp* # /etc/mkdev /dev pty
# echo "ttyp0 none dumb off secure" >> /etc/ttys # echo "ttyp1 none dumb off secure" >> /etc/ttys
$ netstat -i $ netstat -a $ /etc/ping linux1 100 5
$ ping 192.168.2.30 $ rlogin 192.168.2.30 -l root $ rcp /etc/hosts root@192.168.2.30:/tmp/hosts_from_linux $ rsh 192.168.2.30 -l root ls -l /tmp/hosts_from_linux
To access the Ethernet interface eth0 or the TUN/TAP interface of the Linux host, MESS must be either run as root (not recommended) or the network capabilities must be set for MESS.
To set the network capabilities for MESS in openSUSE 12.3:
file_caps=1
# setcap cap_net_raw,cap_net_admin=eip mess $ /sbin/getcap mess mess = cap_net_admin,cap_net_raw+eip
... 3c505: apollo_eth_init: Operation not permitted - Ethernet access disabled
$ sudo apt-get install libcap2-bin $ sudo setcap cap_net_raw,cap_net_admin+eip mess $ sudo getcap mess
On a Linux host the MESS Network Device provides Ethernet networking between the MESS Apollo emulation and the host PC.
To build MESS with Network Device run make with USE_NETWORK=1, i.e.
$ make clean all TARGET=mess USE_NETWORK=1
To run MESS with Network Device
# MESS_USER=ost ;# replace ost with your Linux user name # MESS_UID=2021 ;# replace 2021 with your Linux user id # TAP=tap-mess-$MESS_UID-0 # /sbin/tunctl -d $TAP # /sbin/tunctl -u $MESS_USER -t $TAP # /sbin/ifconfig $TAP 192.168.2.99 up # /sbin/route add -host 192.168.2.30 dev $TAP # /sbin/arp -Ds 192.168.2.30 $TAP pub # /bin/sh -c "echo 1 > /proc/sys/net/ipv4/conf/$TAP/proxy_arp"
On a Mac OS X host the MESS Network Device provides Ethernet networking between the MESS Apollo emulation and other Mac, PCs or e.g. Apollo Worlstations.
To build MESS with Network Device run make with USE_NETWORK=1, i.e.
$ make clean all TARGET=mess USE_NETWORK=1
To run MESS with Network Device
Notes:
The MESS Apollo emulation may be setup to provide full Apollo Domain services to all Apollo nodes connected to the Ethernet interface eth0 of the MESS host PC.
This feature uses some non-portable and unsupported code which will currently work only for a MESS host PC with Linux.
To build MESS with Ethernet network interface access find the following line in file src/mess/includes/apollo.h
//#define APOLLO_FOR_LINUX
carefully read the preceeding comments, uncommment the line and rebuild MESS (eventually with USE_NETWORK=1), i.e.
$ make clean all TARGET=mess USE_NETWORK=1
Connect the Ethernet cable from the Apollo workstation(s) to the Ethernet connector of the MESS host PC, set the network capabilities (see before), start the MESS Apollo emulation and verify the Domain Networking operation with the lcnode command:
$ /com/lcnode The node ID of this node is 12345. 1 other node responded. Node ID Boot time Current time Entry Directory 12345 1993/05/12 16:25:08 1993/05/12 16:30:34 //dn3500 1AEA5 1993/05/12 16:21:10 1993/05/12 16:30:33 *** node not catalogued *** $ /com/ctnode -update $ /com/lvolfs 1AEA5 # free # total % free node id entry directory 80752 329388 25 1AEA5 //zorro $
Notes:
On a DN3x00 with a floppy disk drive (and ethernet controller):
$ /bin/cp /dev/dsk/F0d0s1 /tmp/floppy.afd
Notes:
$ dd if=/dev/zero of=/tmp/floppy.afd ibs=16384 count=77
On an Apollo DN3x00 with a cartridge tape drive
$ /systest/ssr_util/cptape -r /tmp/tape.act
To create a cartridge tape image using the MESS Apollo emulator, start the emulator with a non-existing tape image file, e.g.
$ ./mess dn3500 -disk1 <pathname>.awd -ct /tmp/new_tape.act
# cpboot /sys -dev ct # wbak -dev ct -f 1 -sysboot /sau7 # rbak -dev ct -f 1 -index -all
Notes:
You need two Apollo Workstations to create a Winchester disk image:
Steps:
$ /bin/cp /dev/dsk/W0d0s1 /tmp/disk.img
$ java -jar fixHeader.jar /tmp/disk.img /tmp/disk.awd
Notes: