[its-hackers] Muddle function to remove a node from a list.

rrs0 at earthlink.net rrs0 at earthlink.net
Thu Apr 15 09:31:08 CEST 2021


HI Everyone,

 I now have a working version of DROP  for" ITSPKG >" the ITS muddle package system.
<DROP "FOO"> removes <PACKLAGE "FOO">'s public oblist from .OBLIOST without  causing
muddle's READ to lose its mind by screwing up .OBLIST . I don't think my code should touch the 
GVAL of OBLIST. That leaves me to finish L-UNUSE and the  file system interface in
 FIND/LOAD which is called by USE. Then to try some real packages, like the sources of MIGS 
And others. 

Its amazing that after 40+ yeas, so much of Muddle comes back. All I have is Greg Pfister (GFP) 
and Stue Gally (SWG)'s book The Muddle/MDL manual and a online copy PDL's MDL Programming 
Environment. Of the 15+ computer languages that I've work with, I think in Muddle still.

I agree with LARS that ITS is  the best text adventure game I have ever seen. ITS and MUDDLE
Really gave me a good reason to recover a serious life treating illness and the will to continue.
I am definitely a 70 year old Hacker and computer nerd. Its great fun. Back then it was the ARPA
Net and MIT-DMCG (DMS's original name was HOST 70 and USC TIP was host 23. The terminal
Next to the TIP was a ASR 33 Teletype, the TTY's paper tape reader was used to boot the TIP.
GFP and BKD linked to me and gave me personal on line instruction in the use of Muddle . It
was so much better than Fortran or IBM Assembly language. I was hook!! At that time USC-ECL
was an IBM 3670/44, An Adage AGT-10 (a 30 Bit computer and vector drawing 21" CRT graphics display)
which played Space War! Lastly a large Analog Computer -- A Beckman I Think, many OP-AMPs..

Here's the working code for drop:
-------------------------------------------------------

; "find the index needed by NTH of the package's oblist in .OBLIST."
<DEFINE FNDOBLIDX (PKN "OPT" (OBLS .OBLIST)
		      "AUX" (IDX 0) X Y Z )
	#DECL( (PKN) STRING (OBLS) <LIST [REST OBLIST]>
	       (IDX VALUE) <OR FIX FALSE> )
	<REPEAT ((I 1)(LEN <LENGTH .OBLS>) OBL)
		#DECL( (I LEN) FIX (OBL) OBLIST ) 
		<SET OBL <NTH .OBLS .I>>
		<SET OBNAM <PNAME <GET .OBL OBLIST>>>
		<COND (<=? .PKN .OBNAM>
		       <SET IDX .I> <RETURN .I> )
		      (T <SET I <+ .I 1>> )>
		<AND <G? .I .LEN> <RETURN <SET IDX 0>> >
	>
	<COND (<0? .IDX> <SET IDX #FALSE(OBLIST-NOT-FOUND) >)>
	.IDX>


;" REMOVE THE NTH NODE IN A LIST. Doesn't MODIFIES THE ORGINAL LIST
  LIKE REST FOR N ==? 0 RETURN THE LIST UNCHANGED"
<DEFINE LRM (L N "AUX" X Y Z (LST <LIST !.L>) "ACT" A) 
	#DECL ((L LST VALUE) LIST (N) FIX)                    
	<COND (<==? .N 0> <RETURN <SET LST .LST> .A>)         
	      (<==? .N 1> <RETURN <SET LST <REST .LST>> .A>)> 
	<PUTREST <REST .LST <- .N 2>> <REST .LST <+ .N 0>>>   
	.LST>                                               

;" REMOVE A DROPPED PACKAGDE FROM .OBLIST . IF THE PACKAGE
   IS NOT FOUND, THEN NO CHANGES TO .OBLIST ARE MADE"
<DEFINE DROP(PKN "AUX" NOBLS OOBLS N X Y Z) 
	#DECL((PKN) STRING (N) <OR FIX FALSE>
	      (NOBLS VALUE OOBLS)<OR <LIST [REST OBLIST]> FALSE> )
	<SET OOBLS .OBLIST>
	<SET N <FNDOBLIDX .PKN>>
	<OR .N <SET N 0>>
	<SET NOBLS <LRM .OOBLS .N>>
	;"Danger! Will Robbinson"
	<SET OBLIST .NOBLS> >

---------------------------------------------------------------------------------

> On Apr 14, 2021, at 12:18 AM, Lars Brinkhoff <lars at nocrew.org> wrote:
> 
> Timothy Anderson wrote:
>> Euclid's (or Tim's) sixth axiom is that there is absolutely no part of
>> this entire exercise that is even remotely rational [...] Like the
>> song says, nerds just want to have fun.
> 
> This is very much true.  There certainly are no material or productivity and the 
> gains in running ITS today.  But I think it's  great fun!  It's the best
> text adventure game I have ever seen.  There are all the elements:
> exploring unknown territory, solving puzzels, quirky characters.  It's
> not interactive fiction, but interactive facts.
> 
> 
> Eric Swenson wrote:
>> Wouldn’t it be better, rather than reimplementing the package system,
>> to just request of the MIT archives the release of the runtime
>> libraries for the various versions of MDL?
> 
> That's probably better in the long run, and I'd like to make that happen
> some day.  But it's also a some work on the part of other people, and I
> don't want to be a pest.
> 
> In the meanwhile, RRS's package system will make it possible to run
> things like MIGS.




More information about the its-hackers mailing list