"ROUTINES TO GENERATE SUBSTRUCT FOR THE COMPILER. CURRENTLY ONLY HACKS UVECTOR AND VECTOR CASES 1) COPYING (ALWAYS HACKED) (I.E 1 ARG) 2) COPYING PORTIONS (2 OR 3 ARGS) (ALWAYS HACKED) 3) COPYING INTO STRUCTURES HACKED IN 2 CASES > .N1 .N2 .X>" "NODE STRUCTURE IS FAIRLY MUNGED TO ALLOW FOR REASONABILITY. 1==> STRUCTURE NODE THIS IS ACTUALLY RESTED 2==> NUMBER NODE (IF IT EXISTS) 3==> RESTED STRUCTURE NODE (IF IT EXISTS) DECISION AS TO FOURTH ARG WILL TRY TO BE MADE DURING PASS1 OR SYMANA" ) (STRNOD <1 .K>) (TPS >) L) #DECL ((NOD) NODE (WHERE) (K) ) >> ) (<==? .L 2> .WHERE>) (<==? .L 3> <3 .K> .WHERE>) ()>> \ "ROUTINE TO COPY INTO A NEW STRUCTION (1 OR 2 ARGUMENT SUBSTRUCTS." ) TAC) #DECL ((STRNOD) NODE (TPS) ATOM (WHERE) (SDAT TDAT NDAT) DATUM (TAC NAC SAC) AC) > ,AC-A> >) (> >>)> > > > > > > > >> .END-LABEL>> ()>> > .SDAT> > > > > \ "HERE FOR 3 ARGUMENT SUBSTRUCS" ) NDAT (NUM ,QUOTE-CODE> )>) TAC (END-LABEL ) (ONO .NO-KILL) (NO-KILL .ONO) NAC SAC) #DECL ((STRNOD NUMNOD) NODE (TPS) ATOM (WHERE) (SDAT) (NDAT TDAT) DATUM (TAC NAC SAC) AC (NO-KILL) ) )> >>) (<==? .TPS UVECTOR> >) ()> > >> > ,ACPROT T> > > ) ()> .TPS .SDAT> >> !>> >> 0>> )>)>) (ELSE .STRNOD .NUMNOD>> >>)> > >> > > |CERR1 >>)> > 1>> )> >> > ) (>> )> > > >> >> .END-LABEL>> )> ()>> .SDAT> > > > >)> > \ "ROUTINE TO COPY INTO A UVECTOR OR VECTOR > or .N1 .N2 .X>." ,QUOTE-CODE> )>) RV FLG DDAT DAC (ONO .NO-KILL) (NO-KILL .ONO) TEM TEM2 (OTHN <>) END-LABEL RR) #DECL ((STRNOD NUMNOD CPYNOD) NODE (WHERE) (NDAT DDAT TDAT SDAT) DATUM (DAC NAC TAC SAC) AC (NO-KILL) ) > >>> ,QUOTE-CODE> ,LVAL-CODE> > ,REST-CODE> <==? >>> ,QUOTE-CODE> >>>> .TEM2>>> >>)> .STRNOD .CPYNOD>> )> > >>) (ELSE >> >)> ) ( > > > )> .TPS <>>) (ELSE > > >> ,ACPROT T>) (ELSE > > !>> ()>>)>)> .TPS> ) (ELSE .TPS> ()>>)>)> > >)>)>) (ELSE .NUMNOD .STRNOD>> .CPYNOD .NUMNOD> .CPYNOD .STRNOD>>> >)> >> >>) (ELSE >> >>)> >)> > >>> |CERR1 >>)> > 1>>)> > ()>> !>> > > > ) (ELSE >>) (ELSE > > !>>)> 1>> 1>>)> ()>> > > ()>>)> > [
) 0>]>> >)>) (ELSE ()>>)>)> > > > >)> )> > \ "ROUTINE TO GENERATE A CALL TO IBLOCK AND ALSO GENERATE THE APPROPRIATE DATUM" )) #DECL ((DAT) DATUM (TPS) ATOM) >) (>)> > .DAT> "ROUTINES TO DETERMINE THE CASE OF THE SUBSTRUC WITH 4 ARGUMENTS" "SUB-CASE-1 LOOKS FOR .N1 .N2 .X> AND SIMILAR CASES WHERE BLTS ARE ALWAYS POSSIBLE. STRNOD== NODE OF STRUCTURE CPYNOD== NODE OF STRUCTURE TO COPY INTO" ) (DATAC )) #DECL ((STRNOD CPYNOD) NODE (DATAC DATA) ) <1 .DATAC>> FIX> > FIX> <2 .DATAC>>>>>> ) (DATAC )) #DECL ((STRNOD CPYNOD) NODE (DATAC DATA) ) <1 .DATAC>> FIX> > FIX> <2 .DATAC>>>>>> )) #DECL ((NOD TNOD) NODE (SYM) SYMTAB (NTYP) FIX) <==? .NTYP ,SET-CODE>> ( 0)) ( >>>> ,LVAL-CODE> <==? .NTYP ,SET-CODE>> >)>> (.SYM >>))>> "ROUTINE TO DO BLT: AC1==> SOURCE AC2==> START OF DEST AC3==> END OF DEST." (SD) DATUM) )>> )>> ()>>> "HERE TO BLT WITH SOME KNOWLEDGE AC1==> SOURCE AC2==> START OF DEST AC3==> NUMBER OF WORDS TO TRANSMIT" ) >> ()>> ()>> )> ()>>> "HERE TO BLT BUT WITH A DATUM AS DEST SLOT" > > ()>> !>> -1 ()>>> "ROUTINE TO GENERATE CHECKS FOR THE CASE WHERE THE LENGTH IS KNOWN." >> >) (>>)> >> >> )>> >> "ROUTINE TO REST A VECTOR/UVECTOR AND CHECK FOR BOUNDS AC==> UV/V TPS== PRIMTYPE NUM== AMOUNT TO REST." ) >>) (ELSE ) (>)> []>>)> )>> )) #DECL ((AC1 AC2) AC (NUM) (OTHN) ) [) .OTHN>]>>) (ELSE >>)> 1>>)> .NUM>) (ELSE 1) (ELSE 2)> ()>)>> `@ >> -1>> >> > >> `O* >> )>> )>> >>