X-Git-Url: https://jxself.org/git/?p=pdp10-muddle.git;a=blobdiff_plain;f=mim%2Fdevelopment%2Fmim%2Fmimc%2Fmimgen.mima;fp=mim%2Fdevelopment%2Fmim%2Fmimc%2Fmimgen.mima;h=6a7392ea26a38f716f18e3ce670c9267243bfb4c;hp=0000000000000000000000000000000000000000;hb=d73ace3f3292e320b461b8fcd2e9f5dc5d9684d7;hpb=d530283ea60fb0ddcc28e9c5bd072456afe06e07 diff --git a/mim/development/mim/mimc/mimgen.mima b/mim/development/mim/mimc/mimgen.mima new file mode 100644 index 0000000..6a7392e --- /dev/null +++ b/mim/development/mim/mimc/mimgen.mima @@ -0,0 +1,3765 @@ + + + + + + + + + + + + + +> + +)> + +M$$BINDID + + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) (TYP <2 .L>) A) #DECL ((L) ) >> >)> )> 2> )>> ,MIMOPS> + +"Generate function starting pseudo-op" + +#WORD *23626261241* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + + + PHRASE13> + + + +PHRASE13 + +PHRASE15 + + + = STACK> + + = STACK> + + + + + + + = TEMP14> + + + + +"Generate temp pseudo-op and return pointer to list so that others can + be dynamically added" + +#WORD *22135272465* + + + + + + + + + + = TEMP5> + + + + + + +#WORD *13434727340* + + + + + + + + + + + + +"Here to change any TEMPS to ADECLs if possible" + +#WORD *30672366113* + ) L4> + + + (TYPE FALSE)> + + + +MAP6 + + + + + + + PHRASE19> + + + + + + + PHRASE19> + + (TYPE FALSE)> + +TAG22 + + (TYPE FALSE)> + +TAG23 + + + + + + = STACK> + + + + +PHRASE19 + + +MAPAP9 + + + +#WORD *31727323302* + TEMP LIST ANY) TMP4 TL5 TYP6> + + + + + (TYPE FALSE)> + + + +MAP9 + + + + + + + (TYPE FALSE)> + +TAG23 + + + + + 2 = TEMP17> + = TEMP17> + + + +PHRASE22 + + +MAPAP12 + + + +"Here to create a temporary" + +#WORD *33525750552* + + OPT4 OPT5 OPT6 OPT7 OPT8> +OPT4 + +OPT5 + +OPT6 + > +OPT7 + > +OPT8 + + + + + + + PHRASE23> +BOOL24 + + + + + + PHRASE27> + = TEMP16> + + + + +PHRASE27 + + + - BOOL34> + + PHRASE33> + + PHRASE33> +BOOL34 + + +PHRASE33 + +PHRASE36 + + + + - BOOL41> + + PHRASE40> + +BOOL41 + + +PHRASE40 + (TYPE FALSE)> +PHRASE43 + + + + + + PHRASE45> + + + + + +PHRASE45 + +PHRASE47 + + + 6 = TEMP16> + = TMP13> + + + + + + + +PHRASE23 + + PHRASE52> + + + + +AGAIN58 + + + + + + + + + PHRASE62> + + + + + + + + + PHRASE62> + +BOOL63 + + + + + + +PHRASE69 + + + + + +PHRASE62 + + + + +EXIT54 + + + + + + + +PHRASE52 + + + + + + + PHRASE78> + + + + + +PHRASE78 + + + +#WORD *13442227611* + + OPT4 OPT5 OPT6> +OPT4 + +OPT5 + +OPT6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PHRASE30 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PHRASE23 + + + + + + +PHRASE42 + + + + + + +#WORD *3063020215* + ANY "OPTIONAL" ANY) TMPS6 LOC7> + OPT4 OPT5> +OPT4 + > +OPT5 + + + + +AGAIN15 + + + + PHRASE19> + +PHRASE19 + + + +PHRASE20 + + + + + + +PHRASE23 + + PHRASE27> + + + + + +PHRASE27 + + + + + + + + + +#WORD *15473032434* + + OPT4 OPT5 OPT6> +OPT4 + > +OPT5 + +OPT6 + + + + + - PHRASE14> + + + + + + + + + + + + +PHRASE17 + + + + + + + + +PHRASE28 + + + + + + + + + + + + +PHRASE25 + +PHRASE14 + + PHRASE32> + + + PHRASE32> + + + + + + + + + + + +PHRASE32 + - PHRASE36> + + > +PHRASE36 + + + + + + + +#WORD *10040600577* + + OPT4 OPT5> +OPT4 + +OPT5 + + + - PHRASE54> + + + + +TAG13 + + + + + - PHRASE39> + + + + + + + + +TAG28 + + - TAG29> + + +TAG29 + + +TAG27 + + + + + +PHRASE22 + + + + + + + + + + +TAG42 + + - TAG43> + + +TAG43 + + +TAG41 + + + + + + + + + + + +TAG52 + + + + + + +TAG51 + + + +TAG46 + +TAG49 + + + + + + +TAG48 + + +TAG47 + + + + + +PHRASE39 + + PHRASE54> + + + + + +PHRASE54 + + + +#WORD *12645462404* + + + + - PHRASE7> + + + + +TAG9 + + +PHRASE7 + + + +"Generate a unique atom for label, temp name, var name etc." + +#WORD *2366522673* +) S6> + OPT4 OPT5> +OPT4 + +OPT5 + + + - PHRASE10> + +PHRASE10 + + + + + + + + + + + + + + + + + + + + + 3 = S6 (TYPE STRING)> + +PHRASE20 + + + + + 2 = S6 (TYPE STRING)> +PHRASE26 + + + + + - BOOL28> + + + + + +BOOL28 + + + +"Add an instruction to the output code" + +#WORD *23303111155* + ANY) THING4> + + + + + + + + + + + + + + + +#WORD *2764054272* + + + + + > + + + + + + +#WORD *5532060232* + + + + + + + + + + + +#WORD *33617404344* +) SKIP-DEAD4 X5> + ) (DO-LATER-SETRL10 %<>) (FREED-TEMPS11:LIST ()) TEMP17 XP29:VECTOR Y30 TEMP36 TEMP41 FOR-SETRL9> + + + + = TEMP17> + + + + = TEMP17> + + +MAP19 + + + + + + +PHRASE33 + - PHRASE35> + = TEMP36> + + + + +PHRASE35 + - PHRASE37> + + + + + + + = TEMP41> + + +BOOL44 + + + = TEMP41> + + + + + + + + + + + + + + + = TEMP41> + +TAG51 + + + + + + +TAG49 + + + +PHRASE48 + + + + + + + + + + + + = TEMP36> + +TAG56 + + + + + + +TAG54 + + + +PHRASE46 + + + + + + + + + + + + + +PHRASE58 + + + + + +PHRASE39 + +PHRASE62 + + + + + + + + + + + + +PHRASE37 + - PHRASE67> + + + + + + + + + + + + + + + + + + + +PHRASE67 + + +MAPAP22 + + + + + + + = TEMP17> + +TAG71 + + + + + + +TAG70 + + + PHRASE74> + + + + - PHRASE74> + + + + + + + + +PHRASE74 + + + + + + PHRASE80> + + + + + + + + + + +PHRASE80 + + + +MAP84 + + + + + + + > + + + +MAPAP87 + + + + = STACK> + + +PHRASE93 + + +#WORD *30616176143* + + OPT4 OPT5 OPT6> +OPT4 + +OPT5 + +OPT6 + + + - TAG13> + + + + + + + + +TAG13 + + PHRASE20> + + + +PHRASE20 + + +PHRASE21 + + + + + + + + + + = TEMP16> + ]> 'FIX TEMP16> + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PHRASE29 + + + + + + + + +PHRASE36 + + + + + + +"Generate a label in the code" + +#WORD *24140542543* + ANY) TG4> + + + + + + + + + +"Generate jump to label" + +#WORD *17601046251* + + + + + + + + + + + + +"Generate code to PUSH something onto stack. It can be called with various + arguments: + 1) #TEMP - refernce to a named temporary + 3) #MIM-SPECIAL atom - MIM special variable + 4) other - quoted object " + +#WORD *34706603760* + + + + - PHRASE6> + + + = STACK> + + + +PHRASE6 + - PHRASE8> + + + + + + +PHRASE8 + + + + + + + + + + +PHRASE11 + + + + +#WORD *15206262434* + + + + - PHRASE6> + + + + + + + +PHRASE6 + + + + + + + +PHRASE8 + + + + + + + + + + +PHRASE10 + + + + +#WORD *25060761075* + + + + + + + + + + + + +" Generate FIXBIND to wrap bindings pending by linking up atoms." + +#WORD *1720700340* + + + + + + + + + +" Generate code for optional arguments." + +#WORD *24743654350* + + + + + + + + + + + +#WORD *36751331051* + + OPT4 OPT5> +OPT4 + +OPT5 + + + + PHRASE10> + + + + + + + + + + + PHRASE15> + + + +PHRASE15 + (TYPE FALSE)> +PHRASE17 + + + + + + + +PHRASE10 + + + + + + + + + + + PHRASE23> + + + +PHRASE23 + (TYPE FALSE)> +PHRASE25 + + + + + + +"Get the value of a special variable bound in the current function" + +#WORD *32754000014* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + - PHRASE16> + + + BOOL18> + + + + +BOOL18 + + - PHRASE16> + + + + + + + +PHRASE16 + + +PHRASE23 + + + + + + + + + + PHRASE29> + + + + + + + + + + +PHRASE29 + + + > + + + + + + + + + + + + + + + + + + + + + + + + + + + +PHRASE37 + + + +"See if a special variable is assigned" + +#WORD *12612333255* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + + + + + + + PHRASE18> + + +PHRASE18 + + PHRASE22> + + + + + + + PHRASE25> + + + +PHRASE25 + +PHRASE27 + + + + + + + +PHRASE22 + + + + + + + + + + + + + + + + + + + + + + + + - TAG32> + + + +TAG32 + (TYPE FALSE)> +TAG33 + + + + + + + + + + +"Set the value of a special variable bound in the current function" + +#WORD *22123224456* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + + + + + + + + + PHRASE19> + + + + + + + + + +PHRASE19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"Generate code to set a MIM local" + +#WORD *10407571022* + SYMTAB "OPTIONAL" ANY ANY) SYM7 VAL8 USE-IT9> + OPT4 OPT5 OPT6> +OPT4 + +OPT5 + > +OPT6 + + + + + + + PHRASE14> + - PHRASE16> + + +PHRASE16 + + + +PHRASE17 + + + + + +PHRASE14 + + + + PHRASE21> + + + + + + + + + + +PHRASE21 + + + +#WORD *23202063260* + TEMP "OPTIONAL" ANY ANY) TMP7 VAL8 XTRA9> + OPT4 OPT5 OPT6> +OPT4 + +OPT5 + +OPT6 + + + + PHRASE16> + - PHRASE15> + + +PHRASE15 + + + +PHRASE16 + + + + + + - TAG22> + > +TAG22 + - PHRASE24> + = VAL8> + +PHRASE24 + + + + +PHRASE25 + + PHRASE28> + + + + + + + + + + + +PHRASE28 + + + + + + + + + + +"Quote atom to protect the MIM assembler" + +#WORD *24551434560* + + + + + +AGAIN10 + + + EXIT7> + - PHRASE6> + + + + + + + + + + + + + + +EXIT7 + + + + + + + +PHRASE6 + + + +" Return currently running FRAME " + +#WORD *611722301* + + OPT4 OPT5> +OPT4 + +OPT5 + + + - TAG7> + + + +TAG7 + + + + + + + + + +" Return TUPLE of arguments" + +#WORD *5672574535* + + + + + + + + + + + + + + + + + + +"Compare # of args supplied with a constant and jump in appropriate case" + +#WORD *34747706177* + + + + + + + + + + > + + + +"Get current binding at top of world" + +#WORD *653212563* + + + + + + + + + + + + + + +"Get an arg by arg number and mung into a local" + +#WORD *37701143342* + + + + + + + + + + + + + + + + +"Generate call to MSUBR" + +#WORD *13350353433* + + + + = NAM4> + + + + + + + + + + + + + +PHRASE8 + + + + + + + + + + + + + + + + +#WORD *5532206727* + + + + = NAM4> + + + + + + + + + + + + + + + + + + + + + +"Begin building a FRAME for a future call" + +#WORD *6742474456* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE8> + + + + + = STACK> + + + + + +PHRASE8 + + + + + + +"Generate a VECTOR of the top N things on the stack" + +#WORD *4631107647* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + + PHRASE11> + + + +PHRASE11 + +PHRASE13 + + + > + + + + + + + + +#WORD *13615155655* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + + PHRASE11> + + + +PHRASE11 + +PHRASE13 + + + > + + + + + + + + +"Same for TUPLE" + +#WORD *11426447543* + + + + + + + + + + + + + + +"Same for LIST" + +#WORD *27702304050* + + + + + + + + + + + + + + + +"Generate code to move datum from place to place" + +#WORD *2103751535* + + OPT4 OPT5> +OPT4 + +OPT5 + + + - PHRASE11> + + PHRASE11> + - PHRASE14> + + + + + + + + + + + + - PHRASE14> + + + +PHRASE14 + + + + + + + + + +PHRASE17 + + + +PHRASE11 + + PHRASE20> + - PHRASE20> + + + +PHRASE20 + - PHRASE22> + + +PHRASE22 + + + +PHRASE23 + + + + + + + +PHRASE28 + + + + + + + +PHRASE26 + - PHRASE31> + (TYPE FALSE)> + + + +MAP33 + + + + + + + + + + + +MAPAP36 + + +PHRASE31 + + + + + + + + + + + + + +PHRASE46 + + + + + - PHRASE54> + + + + + + + + + +PHRASE54 + + + + + + + + + + + +PHRASE63 + + + + + +PHRASE49 + - PHRASE76> + + + + + + - PHRASE79> + + PHRASE81> + + + + + + + + +PHRASE81 + + + + + +PHRASE83 + + + + + + +PHRASE79 + + PHRASE88> + + + + + + + + + + + + +PHRASE88 + + + + + + + + + + +PHRASE76 + + + > +TAG95 + + + + + + +PHRASE97 + + +PHRASE44 + + + +#WORD *31253005015* + + + + + + +"Generate a TYPE? instruction" + +#WORD *36477445165* + + + + + + + + - PHRASE10> + + + +PHRASE10 + + + + + +PHRASE12 + + + + PHRASE15> + + + +PHRASE15 + +PHRASE16 + + + + + + + + +#WORD *31611377042* + + OPT4 OPT5> +OPT4 + +OPT5 + + + + PHRASE13> + + +PHRASE13 + +COND12 + + PHRASE15> + + +PHRASE15 + + > + +PHRASE16 + + + + + + + + + + + + + + + + + + + + + > + + PHRASE23> + + + +PHRASE23 + +PHRASE24 + + + + + + + TAG27> + + > +TAG27 + + + + + + + +#WORD *1736634447* + + OPT4 OPT5> +OPT4 + +OPT5 + + + + PHRASE9> + + + + + +PHRASE9 + + + +PHRASE11 + + + PHRASE14> + + + + + + + + + + + + + + + > + + + + + +PHRASE14 + + + + + + + + + + + + + +"Generate SETG/GVAL things" + +#WORD *27662305212* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + - PHRASE13> + + + + + +PHRASE13 + + PHRASE16> + + + + + + + + + + + + + + +PHRASE16 + + + + + + + + + + + + +#WORD *13501635567* + + + + + + +PHRASE12 + + PHRASE13> + + + +PHRASE13 + +PHRASE15 + + PHRASE17> + + +PHRASE17 + + + - PHRASE21> + + + + + + +PHRASE21 + + +PHRASE24 + + + + + + + + + + + + + + + + + > + + + + + + + + + + + + + + + + + + + - TAG31> + + + +TAG31 + (TYPE FALSE)> +TAG32 + + + +PHRASE28 + + + + + + +PHRASE34 + + + + + + + +#WORD *13315522243* + + + + - PHRASE12> + + + + + + + + + + + + + + +PHRASE12 + + + + + + + + + + + + + + + + + + + + + + + + > + + + + + + + + + + + + PHRASE27> + + + + + + + +PHRASE27 + + + + + + + + + + + + + + + + + + + + + PHRASE36> + + + +PHRASE36 + + + + + + PHRASE42> + + + +PHRASE42 + +PHRASE43 + + + + + + +PHRASE39 + + + + PHRASE47> + + + +PHRASE47 + +PHRASE48 + + + + +PHRASE44 + + + + + + + + + + + +"Generate CHTYPE" + +#WORD *33653725540* + + + + + + + + - PHRASE9> + + + PHRASE9> + + + + + + + +PHRASE9 + + +PHRASE13 + + + + + + + + + +#WORD *4052555024* + + + + + + > + + - PHRASE9> + + + + + > + + + PHRASE9> + + + > + + - PHRASE9> + + + + + > + + + BOOL15> + + + + + + +BOOL15 + + + + + + + PHRASE22> + + + +PHRASE22 + +PHRASE23 + + + + + + + +PHRASE9 + + + + + + + - TAG26> + + + +TAG26 + (TYPE FALSE)> +TAG27 + + + + + + +#WORD *27467444044* + + OPT4 OPT5> +OPT4 + +OPT5 + + + - TAG7> + +TAG7 + + + + + + + + + + +#WORD *31253005015* + + + + + + +#WORD *5726064271* + + + + + + + + + + + + + + + + + +#WORD *7656341160* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + + + + + + + + + + + +PHRASE11 + + + + + + + + + + + + + +#WORD *37642615207* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + + + + + + + + + + + +PHRASE11 + + + + + + + + + + + + + +#WORD *37642623207* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + + + + + + + + + + + +PHRASE11 + + + + + + + + + + + + + +#WORD *37642661207* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + + + + + + + + + + + +PHRASE11 + + + + + + + + + + + + + +#WORD *37642433207* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + + + + + + + + + + + +PHRASE11 + + + + + + + + + + + + + +#WORD *36622040206* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE12> + + + + + + + + + + + + + + + + + + + + +PHRASE12 + + + + + + + + + + + + + + + + + +#WORD *26165674423* + + + + + + + + + + + + + + + + + +#WORD *31527275142* + + + + + + + + + + + + + + + + + +#WORD *1112506473* + + OPT4 OPT5> +OPT4 + +OPT5 + + + + PHRASE11> + + + + + + + + + + + + + + + + +PHRASE11 + + + + + + + + + + + + + +#WORD *17426161542* + + + + + + + + + + + + + + + + + +#WORD *23726174240* + + + + + + + + + + + + + + + + + +#WORD *2775313625* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + PHRASE14> + + + +PHRASE14 + +PHRASE16 + + + + + + + + + + + +PHRASE11 + + + + + + PHRASE20> + + + +PHRASE20 + +PHRASE22 + + + + + + + + +#WORD *11563557552* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + PHRASE14> + + + +PHRASE14 + +PHRASE16 + + + + + + + + + + + +PHRASE11 + + + + + + PHRASE20> + + + +PHRASE20 + +PHRASE22 + + + + + + + + +#WORD *11563561552* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + PHRASE14> + + + +PHRASE14 + +PHRASE16 + + + + + + + + + + + +PHRASE11 + + + + + + PHRASE20> + + + +PHRASE20 + +PHRASE22 + + + + + + + + +#WORD *11563523552* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + PHRASE14> + + + +PHRASE14 + +PHRASE16 + + + + + + + + + + + +PHRASE11 + + + + + + PHRASE20> + + + +PHRASE20 + +PHRASE22 + + + + + + + + +#WORD *11563771552* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + PHRASE14> + + + +PHRASE14 + +PHRASE16 + + + + + + + + + + + +PHRASE11 + + + + + + PHRASE20> + + + +PHRASE20 + +PHRASE22 + + + + + + + + +#WORD *1702352460* + + + + + + + + + PHRASE10> + + + +PHRASE10 + +PHRASE12 + + + + + + + + + + + + +#WORD *36742164650* + + + + + + + + + + + + + + + +#WORD *36742544644* + + + + + + + + + + + + + + + +#WORD *36742545244* + + + + + + + + + + + + + + + +#WORD *36742547644* + + + + + + + + + + + + + + + +#WORD *36742557244* + + + + + + + + + + + + + + + +#WORD *24305305022* + + + + + + + + + + + + + + + + + + + +#WORD *30661471225* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + + + + + + + + + + +PHRASE11 + + + + + + + + + + + + + + +#WORD *7456411203* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE11> + + + + + + + + + + + + + + + +PHRASE11 + + + + + + + + + + + + + + +#WORD *11513072505* + + + + + + + + + + + + + + + +#WORD *11613072505* + + + + + + + + + + + + + + + +#WORD *10653072505* + + + + + + + + + + + + + + + +#WORD *21515124213* + + OPT4 OPT5> +OPT4 + > +OPT5 + + + + PHRASE12> + + + + + + + + + + + + + + + + + + + +PHRASE12 + + + + + + + + + + + + + + + + + + +#WORD *6150273754* + + + + - PHRASE6> + + + + + +PHRASE6 + + + + + + + +#WORD *31340356417* + + + + + + + + + + + + + + + PHRASE12> + + + +PHRASE12 + +PHRASE14 + + + + + + + + +#WORD *5543604076* + + + + + + + + + + + + + + + PHRASE12> + + + +PHRASE12 + +PHRASE14 + + + + + + + + +#WORD *4641046574* + + + + + + + + + + + + + + + + + + + + + +