Closed larsbrinkhoff closed 2 years ago
From http://home.earthlink.net/~rrs0/Resume.html:
The first major software system that Mr. Shiffman designed was MIGS for MIT-DMS. MIGS, which stood for Muddle Interactive Graphics System, was an extension to the Muddle (MDL) language (a dialect of Lisp) developed at MIT. See Publications, #2. MIGS modeled a subset of the Evans&Sutherland LDS-1 in software. As a matter of fact MIGS outlasted LDS-1 by several years. MIGS was an interactive 3D line-drawing graphical system with both immediate and display compiler/display processor modes. Immediate mode output would appear on your display terminal as soon as your input was complete. The display compiler mode would build a graphical data structure or MCELL, which would later be transformed and displayed by the software display processor. MIGS also contained a on-line help system that documented its use and operation.
Immediate mode was used for simple one time graphics, such as function plotting. It also handled all of MIGS's terminal output for the different types of terminals the system could use. MIGS was capable of supporting ARDS and Tektronix storage scope, Imlacs, DEC GT-40 family of displays, and HP 2648s. Immediate mode also graphical input from the Talos Tablet on USC's GT-42.
Display compiler / processor mode was used to generate complex 3D graphical images that could be displayed, transformed and redisplayed over and over again.
The display compiler and processor used homogeneous coordinates to represent graphical objects and matrix multiplication to perform all its transformations. MIGS allowed sub-picturing and transforming to any depth. There was no conditional image termination, so recursive image definitions were not allowed.
The first beta version of MIGS was released in 1972. After that Mr. Shiffman continued refining MIGS and adding new features to it. Thanks to MIT's optimizing Muddle compiler and many carefully rewritten code Mr. Shiffman was able to get the compiler to generate total in-line code. The final version of MIGS on a DEC KL-20 would match the performance of DEC FORTRAN. The Clipping divider in MIGS was based on the code of Ivan Sutherland and Danny Cohen described in Principles of Interactive Computer Graphics by Newman & Sproull. The matrix multiplier was hand-coded by Mr. Shiffman as in-line code without loops to increase its performance. The software character generator was one of the last features added to MIGS. This allowed the users of MIGS to place text in any MCELL or picture and apply any series of 3D transforms as could be done to any MCELL.
I believe all, or most, interesting files have been sent to Rick Shiffman now, and he has given permission to include them in the repository.
CC @36bit
I have pushed a branch called lars/migs. It has all the MIGS source and documentation files.
However, it's not possible to load the files since they use PACKAGE and USE.
Note that if we get appropriate permission to include Muddle 55 from MIT, the package system works fine in that runtime.
in Muddle 105 and 106 (TENEX and TWINEX Muddles) the package system and MIGS ran fine. I don't know if there is any archives from USC-ISI that are still in existence, since Lars had to help me retrieve MIGS source files from MIT
Hello @Rick-Shiffman, nice to see you here!
We have Muddle 54 and 56 for ITS, which should correspond closely with the Tenex/Twenex versions 104 and 106. They work fine, but we do not yet have the libraries or compilers out in public. The same goes for anything 55 or 105. It's a long-draw process to get permission from MIT, but we're working on it.
In the meanwhile, maybe some small stubs for PACKAGE, USE, ENTRY, etc could make it possible to load MIGS?
Hi Lars, that should be possible for one predefined terminal type, I'm going to look at migspk and see what Need to be done. What display terminal type would You like; tecktronix or imlac / ards??
Sent from my iPhone
On Nov 29, 2020, at 2:02 AM, Lars Brinkhoff notifications@github.com wrote:
Hello @Rick-Shiffman, nice to see you here!
We have Muddle 54 and 56 for ITS, which should correspond closely with the Tenex/Twenex versions 104 and 106. They work fine, but we do not yet have the libraries or compilers out in public. The same goes for anything 55 or 105. It's a long-draw process to get permission from MIT, but we're working on it.
In the meanwhile, maybe some small stubs for PACKAGE, USE, ENTRY, etc could make it possible to load MIGS?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
@Rick-Shiffman, Imlac would be the best terminal type. Thanks!
Hi Lars, I was looking for documentation on the muddle package system. I wanted to refresh my memory After ~40 years. I found the muddle manual and primer on line, but no documentation for <package "w">,
The package system including
Hi Eswenson1, I found a viewable copy of "The MDL Programming Environment". Now its time to start working on an un-packaged version MIGS with Imlac / ARDS terminal drive peloadded
I think this can be closed now.
Hi Eric, I think so I've got all the parts of MIGS working.
The only future change I might make and I do mean future, is to allow you to change your terminal type after you've loaded MIGS. Which no one ever does, so I've currently disallowed it and sometime in the future even far future I may actually fix the problem. it requires a lot of oblist rearrangement. And it doesn't seem worth it at this time. Rick
PS what I find amazing is how well "ITSPKG >" works with Muddle 56 for what I do. It acts like the full package system in Muddle 55. All it needs is Rpackage Support.
PPRINT and FRAMES seem very well behaved in Muddle 56.
Sent from my iPhone
On Feb 13, 2022, at 12:28 PM, Lars Brinkhoff @.***> wrote:
I think this can be closed now.
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.
DM: .INFO.; MIGS ORDERMIGSPK.MUDMIGSMN.FBINMIGSMN.SAV106MIGSMN.FIX106
DM: .INFO.; MIGS RECENT
DM: .MSGS.; MIGS 1
DM: MUDSUB; MIGS INIT missing
DM: LIBRM3; MIGSPK URS106 missing
DM: LIBRM3; MIGSMN FBIN missing
DM: RRS; MIGS INIT missing
DM: RRS; MIGSIN MUD missing
DM: RRS; AR2 MIGSPK missing
DM: RRS; MIGSPK URS104 missing
DM: RRS; MIGSMN URS113 missing
XX:\
XX:\
XX:\
XX:\