Screen size / scrollbars (probably another dumb question)

19 views
Skip to first unread message

Tim Bradshaw

unread,
Aug 12, 2022, 12:13:04 PM8/12/22
to Interlisp

I am confused about what size maiko 'wants' the screen to be, and the presence of scrollbars on the screen.

I never ran Medley on other than real hardware – I think I saw people demonstrating it on a Sun, but I think we ('we' being the Centre for Speech Technology Research which was some kind of splendidly-doomed spinoff from the Edinburgh AI department) ever bought a license for it.  I am pretty sure the real machines did not have screen-level scrollbars though.  Based on the Sun user's guide (from here: https://docs.interlisp.org/home/documentation), it looks as though maiko may have always had screen-level scrollbars though?  That probably made sense then when screens were small and people wanted to run Medley inside a window.  I think it often makes less sense now when screens are vast, and also when you (or I, anyway) probably want to run the thing full-screen most of the time.

So: am I right that the screen-level scrollbars are an artifact of maiko, and if so can they be disabled (I mean without rebuilding maiko).  If not does anyone have any intuition as to how hard changing it to have an option of disabling them might be?  I might try if it's likely not to be a nightmare.

(One thing that makes me think they might not be entirely an artifact of maiko is that (apropos "SCREEN") does return things that make me think that Lisp knows how big its window is).

Second question is: what's the 'native' screen size for Medley?  I'd guessed it was the resolution of the D-machines but this seems to be wrong, not least because there were clearly several (1186s seem to have had either 15in (833x632) or 19in (1152x862) screens, according to https://bitsavers.computerhistory.org/pdf/xerox/interlisp-d/1186/3101678_1186_Users_Guide_May86.pdf).

What I'm really trying to do is make it be the case that I can make a modern machine (probably a Pi or something ultimately) boot into a world where it looks like a D-machine, not a D-machine-in-a-window.

Sorry for what are probably irritating questions!

--tim

Nick Briggs

unread,
Aug 12, 2022, 12:43:44 PM8/12/22
to Tim Bradshaw, Interlisp
Short answer:

(1) To disable maiko’s scrollbars, use the -noscroll option to run-medley

(2) There isn’t really a native screen size (or even aspect ratio), but it is limited by the address space allocated (in Lisp memory) to the display segment, which is 65536 32-bit words. The lde executable takes -screensize and -geometry arguments that set the simulated physical size and X window size respectively, and if -noscroll then they can be the same. The run-medley script tries to help but usually fails to do what you want with these parameters.

You’ll (currently) always end up with the window system title bar, so you can’t *quite* make it look like a D-machine display.

— Nick


> On Aug 12, 2022, at 9:12 AM, Tim Bradshaw <t...@tfeb.org> wrote:
>
> 
> --
> https://Interlisp.org for more details
> ---
> You received this message because you are subscribed to the Google Groups "Medley Interlisp Users/Interest" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to interlisp+...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/interlisp/8AC5CB5F-AEE5-478C-8625-77980BC195C2%40tfeb.org.

Tim Bradshaw

unread,
Aug 12, 2022, 12:57:25 PM8/12/22
to Nick Briggs, Interlisp
Thank you. I had in fact managed to find the -noscroll option after sending the mail, which will teach me to actually try searching the sources before asking!

--tim
> To view this discussion on the web visit https://groups.google.com/d/msgid/interlisp/38B17B65-0C43-49B1-8E7A-AD8902711000%40gmail.com.

Nick Briggs

unread,
Aug 12, 2022, 1:01:10 PM8/12/22
to Tim Bradshaw, Interlisp
No worries. It looks as though the title bar is a function of the window manager, though there seem to be ways to set the hints to the window manager about what decorations it should add. If there’s a way to do that externally I’d suggest using that, otherwise we can add code to maiko so you can pass a “no decorations” hint on the window.

— Nick

Tim Bradshaw

unread,
Aug 12, 2022, 1:19:08 PM8/12/22
to Nick Briggs, Interlisp

I am not sure how I'm doing it but I've suppressed title bars. In fact I am sure: there's no window manager! It looks like I can set the screen size to exactly half the screen resolution (in each dimension) of my macbook air which will probably make scaling look good.

Next I have to (a) remember what the keybindings for Medley were and (b) spend some happy hours working out how to map the mac keyboard to them, only to have to redo it all if I get a pi.)

(Also someone definitely needs to make a little dongle which has 4 (?) seven-segment LEDs and displays the MP (?) codes from the system, like the 1108s/09s did. I bet such a thing could be driven from a pi...).

Again, thanks for all the help!

--tim

> On 12 Aug 2022, at 18:01, Nick Briggs <nicholas...@gmail.com> wrote:
> No worries. It looks as though the title bar is a function of the window manager, though there seem to be ways to set the hints to the window manager about what decorations it should add. If there’s a way to do that externally I’d suggest using that, otherwise we can add code to maiko so you can pass a “no decorations” hint on the window.

Nick Briggs

unread,
Aug 12, 2022, 1:57:46 PM8/12/22
to Tim Bradshaw, Interlisp
You’re using Xquartz on the mac? Yes, half the screen size should look pretty good since it’s a hi-dpi screen.

Re. key bindings — this is a high-pressure can of worms. Xquartz doesn’t play well with the standard X11 keyboard map utilites, then maiko adds its own layer of mapping because it’s trying to adapt the physical keys and X11 mappings to the combined D-machine/Sun (type 3 or 4) keyboard key symbols in Lisp (see \KEYNAMES).

Ron has done a lot with modernizing a bunch of the keyboard and mouse interactions (draggable windows, copy&paste to&from the system clipboard) and I’ve wired up the touchpad/mousewheel scroll actions so that Ron’s code will work with them.

Re: MP codes — we could reimplement the Alto/Dolphin/Dorado MP code in the cursor ;-) — but really, having a. functioning operating system with a keyboard and display when Lisp drops into Raid is a whole lot easier to work with. I am not that interested in trying to debug failures through Teleraid!!

— Nick

Michele Denber

unread,
Aug 12, 2022, 5:26:40 PM8/12/22
to inte...@googlegroups.com
On 8/12/2022 1:18 PM, Tim Bradshaw wrote:
>
> (Also someone definitely needs to make a little dongle which has 4 (?) seven-segment LEDs and displays the MP (?) codes from the system, like the 1108s/09s did. I bet such a thing could be driven from a pi...).

I like that idea but the normal boot sequence on the D0 is

40 700 400 720 104 118 NP 1100 (where NP = number of memory pages) and
most of those numbers represent hardware tests of the D machine.  118 is
"Breath of Life read successfully".  I'm not sure what those numbers
would even mean in Maiko.  Unless you mean a display that just cycles
through the pre-stored boot sequence whenever you start Lisp.  That
might be fun.

            - Michele

Nick Briggs

unread,
Aug 12, 2022, 5:32:17 PM8/12/22
to Interlisp, Michele Denber
Lisp generated these MP codes...

./LLPARAMS:(CONSTANTS (\MP.OBSOLETEVMEM 1)
./LLPARAMS:       (\MP.INVALIDVMEM 2 "Vmem inconsistent at startup")
./LLPARAMS:       (\MP.IOCBPAGE 3 "No place for IOCB page at startup")
./LLPARAMS:       (\MP.MOB 4 "Map out of bounds")
./LLPARAMS:       (\MP.INVALIDADDR 5)
./LLPARAMS:       (\MP.INVALIDVP 6)
./LLPARAMS:       (\MP.CHAIN.UNAVAIL 7 "Unavailable page on real page table chain")
./LLPARAMS:       (\MP.SELECTLOOP 10Q "Loop in \SELECTREALPAGE")
./LLPARAMS:       (\MP.NEWPAGE 11Q "Attempt to allocate already existing page")
./LLPARAMS:       (\MP.NEWMAPPAGE 12Q "\DONEWPAGE failed to allocate new map page")
./LLPARAMS:       (\MP.BADLOCKED 13Q "Locked page occupies a file page needed to lock another")
./LLPARAMS:       (\MP.CLOCK0 14Q "Arg to CLOCK0 not an integer box")
./LLPARAMS:       (\MP.RESIDENT 15Q "Fault on resident page")
./LLPARAMS:       (\MP.STACKFAULT 16Q "Fault on stack")
./LLPARAMS:       (\MP.VMEMTOOLONG 20Q "Attempt to extend Vmem File beyond fixed limit (8mb)")
./LLPARAMS:       (\MP.WRITING.LOCKED.PAGE 21Q "Writing a locked page with UPDATEKEY = T")
./LLPARAMS:       (\MP.UNINTERRUPTABLE 22Q "Error in uninterruptable system code")
./LLPARAMS:       (\MP.STACKFULL 23Q)
./LLPARAMS:       (\MP.MDSFULL 24Q)
./LLPARAMS:       (\MP.UNKNOWN.UFN 25Q)
./LLPARAMS:       (\MP.ATOMSFULL 26Q)
./LLPARAMS:       (\MP.PNAMESFULL 27Q)
./LLPARAMS:       (\MP.USECOUNTOVERFLOW 30Q)
./LLPARAMS:       (\MP.MDSFULLWARNING 31Q)
./LLPARAMS:       (\MP.BADMDSFREELIST 32Q)
./LLPARAMS:       (\MP.BADARRAYBLOCK 33Q)
./LLPARAMS:       (\MP.BADDELETEBLOCK 34Q)
./LLPARAMS:       (\MP.BADARRAYRECLAIM 35Q)
./LLPARAMS:       (\MP.BIGREFCNTMISSING 36Q "PTR refcnt previously overflowed, but not found in table.")
./LLPARAMS:       (\MP.BIGREFCNTALREADYPRESENT 37Q "PTR already in overflow table")
./LLPARAMS:       (\MP.DELREF0 40Q)
./LLPARAMS:       (\MP.PROCERROR 41Q)
./LLPARAMS:       (\MP.PROCNOFRAME 42Q "Failed to build frame for PROCESS use")
./LLPARAMS:       (\MP.32MBINUSE 43Q)
./LLPARAMS:       (\MP.TOPUNWOUND 44Q "Unexpected (RETTO T)")
./LLPARAMS:       (\MP.STACKRELEASED 45Q)
./LLPARAMS:       (\MP.FLUSHLOCKED 46Q)
./LLPARAMS:       (\MP.MAPNOTLOCKED 47Q)
./LLPARAMS:       (\MP.UNLOCKINGMAP 50Q)
./LLPARAMS:       (\MP.SWAPDISKERROR 51Q "Hard Disk Error in swapper")
./LLPARAMS:       (\MP.BADRUNTABLE 52Q "Malformed run table for vmem file"))


--
https://Interlisp.org for more details
--- You received this message because you are subscribed to the Google Groups "Medley Interlisp Users/Interest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to interlisp+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages