MacIvory III Setup and X11

As I haven't had the time to continue to debug the XL1201 hardware problems, I turned back to the MacIvory III and an Intel i7 NUC I had.

First I set up Ubuntu 14.04 on the NUC with NFS and the "time" service, so I could use it as an always-on server for the Symbolics computers. This way I can put the full size SCSI computer away when I'm not actually imaging SCSI drives.

(There are numerous screenshots depicting many of these at the end.)

Then, I set up the MacIvory III the same way I had previously set up the XL1201, except I made it the namespace server for a new namespace ADMIRAL2. I set up all the same hosts, etc. First, I put the various *.boot files in the FEP back to their defaults so that it would boot an almost clean Genera 8.3 world. Almost, because DKS provided an 8.3 world with one change, adding a Y2K patch and a MacIvory specific patch. The FEP version in the MacIvory is I328 as opposed to the later I333 from the XL1201; I may try using the I333 another time.


Hello I328  
Hello Local  


Declare Paging Files,  
Set Network Address CHAOS|1201,INTERNET|  
Set Boot Options :IDS Enable  


Load World FEP0:>Genera-8-3-Y2K-fixed.ilod.1  

As soon as I configured the namespace and the server to have an Internet address ( in this case), I had to set up the sys.translations file. DKS had set up the LMFS with the sys directory directly off the root for some reason, rather than in the >rel-8-3>sys> as he had done with the XL1201 hard drive. No matter; I set up the translation file (which took several tries to get right) and was good to go.


(fs:set-logical-pathname-host "SYS" :translations
  '(("sys:**;*.*.*" "ARGON:>sys>**>*.*.*")))

After setting up the hosts for my iMac (NEON) and the new NUC Linux server (BORON), I was able to use NFS (Show Directory BORON:/genera/) and X11 (Start X Screen NEON). I really wanted to be using X11 because I have an inexpensive 3-button HP USB mouse, and as you know from previous posts I have no working Mac OS 8 3-button mouse.

With X11, the keyboard mapping is shown using the Show X Keyboard Mapping command, or just read the Genera X-Windows manual which gives most of the mappings. Not all, however - a key mapping is that the numpad 5 is equivalent to the right symbol key. In fact, that's the only critical key on the numpad. So, I'm using an Apple A1243 USB keyboard just to access the symbol key until I figure out how to remap things.

To make my life easier, I made a configuration. I show the function keys as full size for ease of legibility, even though they're actually half height on the real keyboard.

Online View

To get Xquartz to listen on port 6000 without any trickery, you have to use the 2.7.10_beta2 version, which is what I'm using from now on.

One interesting thing I found, with Xquartz anyway, is that you can paste the X-Windows clipboard into Genera using the paste command which is mapped to the numpad / key. So, you can copy from macOS and paste into Genera! Although I was able to copy something in Genera (control-left mouse-drag to highlight, and then hit numpad minus to copy) and subsequently paste it back into Genera (numpad /), it didn't seem to make it into the X-Windows paste buffer.

Another interesting thing is that Genera properly uses the arrow keys as well as page up/down keys, these latter mapped to scroll and back-scroll, which itself is simply m-SCROLL. Additionally, the home key seems to be equivalent to c-a even though the end key keeps its usual special meaning under Genera.

Additionally, the numpad clear key pressed at the Lisp Command: prompt shows the last 22 or so commands. I'm not sure what key this is mapped to, but I'd really like to figure it out.

Dynamic Lisp Listener 2 Input history:  
  1: Show X Keyboard Mapping "X Scr...
 22: Copy File ARGON:>**>*.*.* BORO...
(51 more items in history.)


Backing Up Files via NFS

For good measure, I created a directory BORON:/genera/macivory.sct/ and subdirectories for lmfs and each fep. By using the name .sct in the directory name, Genera will store version numbers with each file by appending them to the NFS names. This allows a more complete backup of the files, although owners and file comments are still lost.

I let the LMFS backup run overnight. It took quite a few tries to figure out the proper syntax and options to Copy File to get it to do a recursive copy, creating directories, and with the proper file types. (And I'm still not totally certain it's correct.)

dfields@boron:/genera/macivory.sct/lmfs/sys/site$ ls -l sys.translations*  
-rw-rw-r-- 1 genera genera 302 Feb 27  2013 sys.translations.~1~
-rw-rw-r-- 1 genera genera 280 Jul 10 19:25 sys.translations.~10~
-rw-rw-r-- 1 genera genera 306 Jul 10 22:48 sys.translations.~11~
-rw-rw-r-- 1 genera genera 310 Jul 10 22:49 sys.translations.~12~
-rw-rw-r-- 1 genera genera 302 Mar  6  2013 sys.translations.~2~
-rw-rw-r-- 1 genera genera 302 Mar  7  2013 sys.translations.~3~
-rw-rw-r-- 1 genera genera 302 Mar  8  2013 sys.translations.~4~
-rw-rw-r-- 1 genera genera 302 Mar  9  2013 sys.translations.~5~
-rw-rw-r-- 1 genera genera 302 Mar  9  2013 sys.translations.~6~
-rw-rw-r-- 1 genera genera 296 Mar  9  2013 sys.translations.~7~
-rw-rw-r-- 1 genera genera 304 Jun 18 16:30 sys.translations.~8~
-rw-rw-r-- 1 genera genera 296 Jul 10 18:55 sys.translations.~9~

MacIvory Miscellany

  • Show Directory HOST:Mac-OS-8:* or Show Directory HOST:≣:* will show the files on the MacIvory host; the version with the equivalent character will choose the system directory.
  • Show Directory LOCAL:>*.*.newest will show the files on the local LMFS, regardless of the host name (I think)

X11 Next Steps

  • Keyboard mapping
    • Map alt/option into super
    • Map F13 or F7 into symbol
    • Swap backspace and rubout (delete and delete⌦)
    • Map caps lock into rubout or something else useful (but might be hard due to macOS)
    • Add a mapping for line which doesn't yet exist - maybe sh-return?
    • Consider mappings for local and repeat - unnecessary?
      • Do this through X remapping
    • Do this through defining a new keyboard type and mapping in Genera (preferred, more fun method)
  • Make it possible to get a Genera X screen while away from home
    • SSH in to BORON and tunnel?
    • Ability to telnet to Genera to start the X screen?

I usually use a Microsoft Sculpt Keyboard so I would prefer to switch to that after figuring out how to map things, as well as create a mapping for the built-in keyboards of portable Macs. Additionally, I use the Logitech K811 occasionally, which has an F13.

X11 Keyboard Template

This reflects the default Xquartz and Genera 8.3 X11 mapping when using the Apple A1243 keyboard. Keys in red have no defined mapping and cause Genera to beep. the clear key actually shows a scrollback history but I don't know how it's mapped. The symbols in orange are accessed by hitting right symbol - which is numpad 5 - and the specified key, possibly with shift. In general, labels on the bottom are unshifted, and the top labels have shift held.

Online View

X11 Window Information

Admiral-iMac:~$ xprop  
[Editor's note: Click on the Genera window]
                window state: Normal
                icon window: 0x0
                program specified location: 0, 0
                program specified size: 0 by 0
                program specified minimum size: 640 by 320
                program specified maximum size: 2560 by 1418
                program specified base size: 1280 by 1024
                Client accepts input or input focus: True
                Initial state is Normal State.
                window id # to use for icon: 0xa00007
WM_CLASS(STRING) = "genera", "Genera"  
WM_NAME(STRING) = "Genera on ARGON"  

Xquartz Startup Files

.Xresources: Make the default X-term white text on black background and my preferred size (100 cols by 40 lines)

XTerm*saveLines: 65536  
XTerm*VT100.geometry: 100x40  
XTerm*reverseVideo: on  
XTerm*scrollBar: true  
XTerm*rightScrollBar: true  

.xinitrc.d/ is an executable file that adds the fonts set up in my previous blog post.

xset fp+ ~/x11/fonts/genera/  
xset fp rehash  

MacIvory III Setup Screens

MacIvory III X11 Genera Screens

Douglas Fields

Writing LISP and Haskell since 1990