Interlisp / medley

The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
https://Interlisp.org
MIT License
375 stars 19 forks source link

Installing and using Medley for DOS #1790

Open pamoroso opened 3 months ago

pamoroso commented 3 months ago

On my Linux Mint 21.3 system I'm trying to install Medley for DOS on DOSBox-X. The installer hangs and the installation files seem corrupted.

I started from the installation disks in the dsk1 to dsk5 folders of the history repo under 1990s/1993-envos/users-maiko/DOS/floppy. I git cloneed the repo and moved the dsk1 to dsk5 directories to a convenient location.

Then I started DOSBox-X, mounted the dsk1 directory as the A: floppy, and ran the install batch file. The installer hung the DOS session like in the screenshot, with the only option being to force-quit the emulator as Ctrl-C didn't work:

medley-dos

The files in the installation disk folders seem password-protected and/or corrupted. Running unzip -t on Linux reports errors for all of the files in all of the installation disks. Here are the reports for the .zips on the first disk:

paolo@lispmachine:~/medley/dos/dsk1$ unzip -t emul.zip 
Archive:  emul.zip
error:  expected central file header signature not found (file #2).
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)
MEDLEY.EXEPK^A:  mismatching "local" filename (MEDLEY.EXE│^L№),
         continuing with "central" filename version
[emul.zip] MEDLEY.EXEPK^A password: 
paolo@lispmachine:~/medley/dos/dsk1$ unzip -t lib.zip 
Archive:  lib.zip
    testing: LIBRARY/SYSEDIT         
  error:  invalid compressed data to explode
    testing: LIBRARY/TBDECLS         
  error:  invalid compressed data to explode
    testing: LIBRARY/4045XLPS.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/BIGBITMA.LCO    
  error:  9247 bytes required to uncompress to 20005 bytes;
          supposed to require 8968 bytes.
    testing: LIBRARY/BROWSER.LCO     
  error:  invalid compressed data to explode
    testing: LIBRARY/CASH-FIL.DFA    
  warning:  2536 bytes required to uncompress to 4657 bytes;
            supposed to require 2539 bytes.
 bad CRC d4ba8c02  (should be 7f2f9ab6)
    testing: LIBRARY/CENTRONI.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/CHARCODE.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/CHARDEVI.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/CHAT.LCO        
  error:  invalid compressed data to explode
    testing: LIBRARY/CHATTERM.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/CMLARRAY.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/CMLFLOAT.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/COLOR.LCO       
  error:  invalid compressed data to explode
    testing: LIBRARY/COPYFILE.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/DATABASE.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/DEDIT.LCO       
  error:  invalid compressed data to explode
    testing: LIBRARY/DEDITPP.LCO     
  error:  invalid compressed data to explode
    testing: LIBRARY/DES.LCO         
  error:  invalid compressed data to explode
    testing: LIBRARY/DLRS232C.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/DLTTY.LCO       
  warning:  7269 bytes required to uncompress to 19404 bytes;
            supposed to require 7278 bytes.
 bad CRC 26860e2a  (should be e8977a26)
    testing: LIBRARY/DMCHAT.LCO      
  error:  invalid compressed data to explode
    testing: LIBRARY/EDITBITM.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/GCHAX.LCO       
  error:  invalid compressed data to explode
    testing: LIBRARY/EDITBMPA.LCO     bad CRC c1522eaa  (should be 2a7f3af5)
    testing: LIBRARY/ETHERREC.LCO    
  error:  invalid compressed data to explode
file #27:  bad zipfile offset (local header sig):  177418
    testing: LIBRARY/FTPSERVE.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/FX-80DRI.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/GRAPHER.LCO     
  error:  invalid compressed data to explode
    testing: LIBRARY/GRAPHZOO.LCO    
  error:  invalid compressed data to explode
file #32:  bad zipfile offset (local header sig):  280845
    testing: LIBRARY/HASH.LCO        
  error:  invalid compressed data to explode
    testing: LIBRARY/HRULE.LCO       
  error:  invalid compressed data to explode
    testing: LIBRARY/IMAGEOBJ.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/KERMIT.LCO      
  error:  invalid compressed data to explode
    testing: LIBRARY/KERMITME.LCO    
  error:  invalid compressed data to explode
file #38:  bad zipfile offset (local header sig):  322314
    testing: LIBRARY/LLCOLOR.LCO     
  error:  11707 bytes required to uncompress to 25681 bytes;
          supposed to require 11498 bytes.
    testing: LIBRARY/MAIKOCOL.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/MASTERSC.DFA    
  warning:  32555 bytes required to uncompress to 66479 bytes;
            supposed to require 32800 bytes.
 bad CRC 7592767d  (should be 1039a2d0)
    testing: LIBRARY/MATCH.LCO       
  error:  invalid compressed data to explode
    testing: LIBRARY/MATMULT.LCO     
  error:  invalid compressed data to explode
    testing: LIBRARY/MSANALYZ.DFA    
  error:  10741 bytes required to uncompress to 22653 bytes;
          supposed to require 10597 bytes.
    testing: LIBRARY/MSCOMMON.DFA    
  error:  6685 bytes required to uncompress to 19418 bytes;
          supposed to require 6474 bytes.
    testing: LIBRARY/MSPARSE.DFA     
  warning:  10536 bytes required to uncompress to 20803 bytes;
            supposed to require 10573 bytes.
 bad CRC 06e413d9  (should be 71b53142)
    testing: LIBRARY/NSCHAT.LCO      
  error:  invalid compressed data to explode
    testing: LIBRARY/NSMAINTA.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/PCTREE.LCO      
  error:  invalid compressed data to explode
    testing: LIBRARY/POSTSCRI.LCO    
  error:  29923 bytes required to uncompress to 71468 bytes;
          supposed to require 27711 bytes.
    testing: LIBRARY/PRESS.LCO       
  error:  invalid compressed data to explode
    testing: LIBRARY/PUPCHAT.LCO     
  error:  invalid compressed data to explode
    testing: LIBRARY/PUPPRINT.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/RDSYS.LCO       
  error:  invalid compressed data to explode
    testing: LIBRARY/READNUMB.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/READSYS.LCO     
  error:  invalid compressed data to explode
    testing: LIBRARY/REMOTEVM.LCO    
  error:  invalid compressed data to explode
file #58:  bad zipfile offset (local header sig):  537354
    testing: LIBRARY/RS232CME.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/SAMEDIR.LCO     
  error:  invalid compressed data to explode
    testing: LIBRARY/SCALEBIT.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/SEDIT-CO.DFA    
  error:  9434 bytes required to uncompress to 18936 bytes;
          supposed to require 9176 bytes.
    testing: LIBRARY/SKETCH.LCO      
  error:  invalid compressed data to explode
    testing: LIBRARY/SKETCHBM.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/SKETCHED.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/SKETCHEL.LCO    
  error:  invalid compressed data to explode
file #67:  bad zipfile offset (local header sig):  882021
file #68:  bad zipfile offset (local header sig):  887898
file #69:  bad zipfile offset (local header sig):  914045
    testing: LIBRARY/SKETCHST.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TABLEBRO.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDIT.LCO       
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDITABB.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDITCHA.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDITCOM.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDITDEC.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDITFIL.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDITFIN.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDITFNK.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDITHCP.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDITHIS.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEDITLOO.LCO    
  error:  19256 bytes required to uncompress to 43705 bytes;
          supposed to require 18890 bytes.
    testing: LIBRARY/TEDITMEN.LCO    
  error:  invalid compressed data to explode
file #84:  bad zipfile offset (local header sig):  684460
file #85:  bad zipfile offset (local header sig):  696520
file #86:  bad zipfile offset (local header sig):  712591
    testing: LIBRARY/TEDITWIN.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TELERAID.LCO    
  error:  invalid compressed data to explode
    testing: LIBRARY/TEXEC.LCO       
  error:  invalid compressed data to explode
    testing: LIBRARY/TEXTMODU.DFA    
  error:  25526 bytes required to uncompress to 58415 bytes;
          supposed to require 23377 bytes.
error: invalid zip file with overlapped components (possible zip bomb)

git clone is supposed to preserve binary files, right?

Are there working DOS installation disk files or images that don't require ZIP passwords? Also, the DOS installer requests a registration code: any available codes?

masinter commented 3 months ago

I forget where they came from, but the files in the interlisp/DOS repo includes a DOS.md which describes a successful run by @alexshendi of Medley on DOS. @ekaltman that he was going to try to run it so please coordinate if you can.

Anzus commented 3 months ago

I’ve got a couple of ISO’s that used to run under Virtualbox when I had an Intel Mac, if anyone wants them.

On Jul 20, 2024, at 10:28 AM, Larry Masinter @.***> wrote:

I forget where they came from, but the files in the interlisp/DOS repo includes a DOS.md which describes a successful run by @alexshendi of Medley on DOS. @ekaltman that he was going to try to run it so please coordinate if you can. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

pamoroso commented 3 months ago

@Anzus Do you mean ISOs that contain the files of Medley's installation floppies?

nbriggs commented 3 months ago

The files in the Interlisp/DOS repo unzip correctly.

pamoroso commented 3 months ago

I'm making some progress with the floppies in the DOS repo and DOSBox-X.

Mounting disk 1 and running INSTALL.BAT works. Then the installer prompts to insert disk 2 and I mount it, but pressing any key just repeats the prompt without proceeding. Pressing Ctrl-C has no effect and I have to force-quit the emulator to end the session.

Here's the installation process after mounting disk 2 and pressing a few keys:

medley-install-disk2

pamoroso commented 3 months ago

The next thing I tried with DOSBox-X and the floppies in the DOS repo is to run the installer of disk1, end the session, mount disk 2 from a new session, and run INSTALL.BAT on disk 2. But the session repeatedly prints this error so fast it's hard to read. It's something like "bad command or filename".

medley-installdisk2b

Another thing I tried was to copy to C:\MEDLEY the files listed in item 3 of section "Installation" of DOS.md and execute MEDLEY LISP.SYS -M 31 -VGA from C:\MEDLEY, but this crashed DOSBox-X.

nbriggs commented 3 months ago

Read through the install.bat so you know what it should be doing. Check if the "pause" command in a .bat file works on the DOS emulator you're running.

pamoroso commented 3 months ago

PAUSE works as expected on DOSBox-X but I tried something different. Since INSTALL.BAT contains simple commands available in DOS or on the installation disks, I ran the commands manually to copy the installation files to C:\MEDLEY and join the ones that are split into parts.

Now I need to run UNCOMP.EXE and feed it the right password to uncompress the password-protected ZIP files. I don't have a registration code, so I'm trying a number of ZIP cracking tools but so far without success.

nbriggs commented 3 months ago

keymaker.c is the source for making keys - but I wouldn't have expected that to be used for password protected zip files, and I'm surprised they appear to be password protected, since:

briggs@macrobiotic DOS % cat  floppy/dsk*/sysout*.zip >/tmp/sysout.zip
briggs@macrobiotic DOS % unzip -l /tmp/sysout.zip 
Archive:  /tmp/sysout.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
  5350400  09-24-1992 15:31   LISP.SYS
---------                     -------
  5350400                     1 file
pamoroso commented 3 months ago

I can unzip with no password these ZIPs too: FONTS.ZIP, LIB.ZIP, and SYSOUT.ZIP. But EMUL.ZIP requests a password:

paolo@lispmachine:~/medley/dos$ unzip EMUL.ZIP 
Archive:  EMUL.ZIP
[EMUL.ZIP] MEDLEY.EXE password:
alexshendi commented 3 months ago

You could copy medley.exe and emul.exe from the https://github.com/Interlisp/DOS/dos486/ directory.

On July 22, 2024 10:21:40 PM GMT+02:00, Paolo Amoroso @.***> wrote:

I can unzip with no password these ZIPs too: FONTS.ZIP, LIB.ZIP, and SYSOUT.ZIP. But EMUL.ZIP requests a password:

***@***.***:~/medley/dos$ unzip EMUL.ZIP 
Archive:  EMUL.ZIP
[EMUL.ZIP] MEDLEY.EXE password:

-- This ain't no signature.

pamoroso commented 3 months ago

Success! Here is Medley on DOSBox-X launched by the command MEDLEY LISP.SYS -M 8 -VGA:

medley-dos-vga

Thanks @alexshendi, I hadn't noticed those files. I copied MEDLEY.EXE and EMUL.EXE (i.e. the contents of EMUL.ZIP) from the DOS repo to C:\MEDLEY, unzipped the other ZIPs there, removed the ZIPs from C:\MEDLEY, and added PATH=%path%;C:\MEDLEY to complete the actions of INSTALL.BAT. To dismiss the initial request Please enter name of system init file I just press Ctrl-E.

By default Medley doesn't seem to detect all the available RAM, 16 MB on my emulated system, and I have to run it with the option -M 8 or -M 16, otherwise it yields the error sysout_loader: can't allocate Lisp 32MBytes VM.

SVGA mode has rendering issues, here is MEDLEY LISP.SYS -M 16 -VESA104:

medley-dos-svga

The prompt window and the Exec are duplicated, there are two mouse pointers that move in sync, and sometimes moving the mouse corrupts the desktop. I'll play with the DOSBox-X settings to see if I can improve things.

The system is pretty barebones and the background menu has only these options:

ROOMS.ZIP is supposed to be on disk 5 of the installation floppy set but it's missing from our repos. Are the relevant files in DOS/rooms?

Finally, unlike what the manual of Medley for DOS states, INSTALL.BAT doesn't update AUTOEXEC.BAT.

pamoroso commented 3 months ago

The prompt Please enter name of system init file can be dismissed also by pressing ENTER.

pamoroso commented 3 months ago

For your convenience I gathered all the necessary DOS files of the MEDLEY directory in their uncompressed and ready to run form and packed them as this ZIP file MEDLEY-DOS.ZIP:

MEDLEY-DOS.ZIP

To install it unzip the file at the root of a DOS drive, for ecample C:, and add this to AUTOEXEC.BAT:

PATH=%path%;C:\MEDLEY

Now Medley is ready to run:

C:
CD MEDLEY
MEDLEY LISP.SYS -M 8 -VGA

Medley runs fine on DOSBox-X also in SVGA 800x600 mode, i.e. option -VESA102:

MEDLEY LISP.SYS -M 8 -VESA102

medley-dos-svga800x600

pamoroso commented 3 months ago

As is Medley can't access library files. For example, evaluating (IL:TEDIT) yields the error:

Undefined car of form
IL:TEDIT

I added this code to the site init file C:\MEDLEY\LIBRARY\SITE-INI.LIS:

(setq directories
    '("{dsk}c:/medley/library/"))

(setq lispusersdirectories (copy directories))

But evaluating (IL:FILESLOAD TEDIT) yields the error File TEDIT not found.

By the way, to reflect the latest developments I'm renaming this issue to "Installing and using Medley for DOS". It may be converted to a discussion if needed.

pamoroso commented 3 months ago

The problem is IL:DIRECTORIES is NIL. Adding this to AUTOEXEC.BAT makes Medley load the site init file correctly at startup:

SET LDEINIT=C:/MEDLEY/LIBRARY/SITE-INI.LSP

Now (IL:FILESLOAD TEDIT) no longer fails because of the empty load path. However, loading and running TEdit fails with break windows and errors related to missing fonts and other issues I'm investigating.

Anzus commented 3 months ago

Sorry, been dealing with a lot of stuff post-hurricane, haven't been tracking here, so I'll gather up a bunch of responses.

It helps to think of DOS Medley as being not really a development environment but a delivery environment. i.e., the intended use was for people to develop on another faster device, and then be able to deliver their applications on DOS by transferring the sysout or files over. There was a shell script for converting files into the 8.3 form, if memory serves. The pricing was where it was to compete with GCL, if I remember. The Wayback Machine shows the following price sheet: https://web.archive.org/web/20020207052000/http://top2bottom.net/venue_pricing.html The "run-time" version basically removed the file system code.

Re: Memory. I don't think 16 Mb of memory was available on PC's back in the early 90's. You might be better of with only 4Mb. And even that required high/low memory finagling.

Re: accessing files. Is IL:DIRECTORIES correctly being set? Is your init being loaded?

pamoroso commented 3 months ago

When evaluating (il:filesload tedit) I get this break window with the error:

FONT NOT FOUND (coerced to)
(HELVETICA 8 (BOLD REGULAR REGULAR) 0 DISPLAY)

helvetica-not-found