diff --git a/build/timestamps.txt b/build/timestamps.txt index a9eacfbf..c4867abd 100644 --- a/build/timestamps.txt +++ b/build/timestamps.txt @@ -1672,6 +1672,7 @@ rms/macros.18 197511040224.09 rms/palx.143 197204150602.24 rrs/ar2.migspk 198211190021.46 rrs/ar9.1 197706070441.38 +rrs/codgen.urs001 197812281952.48 rrs/displa.urs017 198207271850.38 rrs/hptek.urs001 198005282134.20 rrs/jsys.order 197810181754.50 diff --git a/src/rrs/codgen.urs001 b/src/rrs/codgen.urs001 new file mode 100644 index 00000000..f5a6db90 --- /dev/null +++ b/src/rrs/codgen.urs001 @@ -0,0 +1,379 @@ + + + +)> +E X ON OFF CNTL + +)> + + + +) + "AUX" (CHANIN )) +;"CHARCOMP IS THE MAIN FUNCTION USED TO COMPILE A NEW CHARACTER SET FOR +XSWTXT, THE SOFTWARE CHARACTER GENERATER IN C2G. THIS FUNCTION TAKES 2 +STRING AND A OPTIONAL FLAG. THE STRINGS ARE THE SOURCE FILE (CHARACTER +SET) AND THE OBJECT FILE (5 PLITS THAT ARE USED BY XSWTXT IN C2G)." + #DECL ((INSTR OUTSTR) STRING (CHANIN) + (OPTSW) ) + + .OUTSTR .OPTSW> + ) + (T )>> + +) "AUX" PCHRS) + #DECL ((SORCE) ]> + (OUTFILE-STR) STRING + (PCHRS) ]> + [3 ]> (OPTSW) ) + >>>) + (T >)> + > + + + + + )) + "ACT" P1) + ;"THIS FUNCTION PARSES THE SOURCE OF THE CHARACT SET + AND BUILDS THE DATA STRUCTURES USED BY THE CODE GENERATERS" + #DECL ((LIST) ]> + (OP XC YC) + (OPV XV YV) + (L) ]> (I J) FIX (CHR) CHARACTER + (CHARD VALUE) ]> + [3 ]> + (P1 P2 P3) ACTIVATION) + > + > + > + > )>> + > + > + > + > + > + 1 .OP> ;"ENTER LABLE" + > + > + > + 2 .I> ;"ENTER STARTING ADDR" + > + > + ;"DRDRAW" + ;"ENTER OP-CODE" + >> + >> + > + ;"ENTER X-COORD" + ;"ENTER Y-COORD" + >) + (<==? .OP OFF> ;"DRMOVE" + ;"ENTER OP-CODE" + >> + >> + > + ;"ENTER X-CORD" + ;"ENTER Y-COORD" + >) + (<==? .OP CNTL> ;"ITS A CNTL CHR, DISPLAY HAT AND CHR." + > + > + + ;"PUT CALL TO CNTL HAT IN XV" + >> + ;"PUT CALL TO CHR IN YV" + >) + (<==? .OP X> 3 <- .I 1>> ) + (T )>>> + + #LOSE *000000000000*>) ATC X + Y (SX 0.0000000) (SY 0.0000000)) + ;"ONCAT IS USED TO CONCATENATE RELATIVE DRAWS THAT HAVE THE + SAME SLOPE. ONCAT USES THE FUNCTION RATIO? TO DETERMIN IF + THE SLOPES ARE THE SAME" + > + > + > + >) + (T + >> ;"GET ON'S X,Y COORDS" + >> + > + > + > + > ;"IF NOT AN ON" + >> + >> + ;"CAN I CONCAT?" + > ;"YES" + > + >) + (T + ;"NO" + > + + > + + > + > + ;"RESET SX,SY" + )>> + + > + + > + + >)>>> + + <0? .Y1> > + <0? .Y2> > + <0? .X2> > + <0? .Y2> > + > + > + <==? > + >>> + + #LOSE *000000000000*>) ATC X + Y (SX 0.0000000) (SY 0.0000000) (OFFL <>)) + ;"OFCAT CONCATENATES RELATIVE MOVES" + > + > + > + + + >> + >> + > + > + > + > + > + )> + >> + >> + > + > + >> + + > + + > + + >) + (T >)>>> + +> ;"GENERATE THE 2 DICTIONARY + PLITS; DICB AND DICE" + > + > + ) N2) + ;"DETERMIN THE NUMBER OF WORD NEED IN THE + PILTS, OP AND X AND Y." + > + >> + > + NIL> + >) + (T )> > > + <1OP-X-Y .PCHRS .CHAN .WCNT> ;"GENERATE THE LAST 3 PLITS; + OP,X,AND Y" > + +) O) + ;"GENERATE THE TWO DICTIONARY PLITS (DICB AND DICE). DICB + CONTAINS THE STARTING INDEXS DATA FOR EACH CHARACTER. + DICE CONTAINS THE ENDING INDEXS FOR EACH CHARACTER'S DATA." + >> > + + + + > + >> NIL> > + > + "% " + 1>> + ","> + .O> + + >> + + + + + > + >> NIL> > + 1>> ","> . +O> + + >> + + + .O> + +>) + "AUX" (OP <2 .PCHRS>) (X <3 .PCHRS>) (Y <4 .PCHRS>) ) + ;"THIS FUNCTION GENERATES THE THREE DATA PLITS, OP, X, AND Y + OP CONTAINS THE OPCODES, X AND Y CONTAIN THE OPERANDS." + + + + > ","> .O +> + + ) (T >)>> + + + + + + > ","> .O> + + ) (T >)>> + + + + + > ","> .O> + + ) (T >)>> + + + > + + + > + + + + > + > + + > + + + + >) + ( <==? .T X>> + + + + >) + (<==? .T CNTL> + + > + + >) + ( <==? .T OFF>> + + " " + > "0.0") + (T >)> + " " + > "0.0") + (T >)>>> + + >) + (T >)>) + (T >)>> + + > + +NULL;"THE FOLLOWING FUNCTIONS ARE NOT FOR GENERAL USE!!!!" + +>) + "AUX" (OP <2 .PCHRS>) (X <3 .PCHRS>) (Y <4 .PCHRS>) O) + > #FALSE ()> > + + + + > ","> .O +> + + ) (T >)>> + + + + + + > ","> .O> + + ) (T >)>> + + + + + > ","> .O> + + ) (T >)>> + + + > + +) O) + >> > + + + + > + >> NIL> > + > + "% " + 1>> + ","> + .O> + + >> + + + + + > + >> NIL> > + 1>> ","> . +O> + + >> + + + > + + + + + \ No newline at end of file