User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:fseform

Deck FSEFORM

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.fseform +++|PROC FSEFORM;
00002  M00S00002.fseform +++|BEGIN
00003  M00S00003.fseform +++|
00004  M00S00004.fseform +++|
00005  M00S00005.fseform +++|#
00006  M00S00006.fseform +++|***       FSEFORM -- STRING FORMATTING AND OUTPUT ROUTINES.
00007  M00S00007.fseform +++|*
Line S00008 Modification History
M01 (Removed by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00008  M01S00008.281l803 ---|*         COPYRIGHT CONTROL DATA CORPORATION, 1983.
Line S00001 Modification History
M01 (Added by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00009  M01S00001.281l803 +++|*         COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00010  M00S00009.fseform +++|#
00011  M00S00010.fseform +++|
00012  M00S00011.fseform +++|  DEF LISTCON #0#;
00013  M00S00012.fseform +++|
00014  M00S00013.fseform +++|*IFCALL SINGLE,COMFSGL
00015  M00S00014.fseform +++|*IFCALL ONLY,COMFONL
00016  M00S00015.fseform +++|*IFCALL MULTI,COMFMLT
00017  M00S00016.fseform +++|*CALL COMFFSE
00018  M00S00017.fseform +++|
00019  M00S00018.fseform +++|                             # COMMON DATA       #
00020  M00S00019.fseform +++|
00021  M00S00020.fseform +++|
00022  M00S00021.fseform +++|CONTROL IFEQ MULTI,1;
00023  M00S00022.fseform +++|  XREF ARRAY RENTSTK [1:MAXREENT];     # SUBROUTINE STACK  #
00024  M00S00023.fseform +++|    BEGIN
00025  M00S00024.fseform +++|    ITEM RSTK;
00026  M00S00025.fseform +++|    END
00027  M00S00026.fseform +++|  XREF ITEM RSTKPTR;
00028  M00S00027.fseform +++|CONTROL FI;
00029  M00S00028.fseform +++|PAGE                         # COMMON DATA, EXTERNALS      #
00030  M00S00029.fseform +++|
00031  M00S00030.fseform +++|
00032  M00S00031.fseform +++|*CALL COMFDS1
00033  M00S00032.fseform +++|*CALL COMFVD2
00034  M00S00033.fseform +++|*CALL COMFDS2
00035  M00S00034.fseform +++|*CALL COMFTAB
00036  M00S00035.fseform +++|
00037  M00S00036.fseform +++|
00038  M00S00037.fseform +++|XREF
00039  M00S00038.fseform +++|  BEGIN
00040  M00S00039.fseform +++|*CALL COMFXSB
00041  M00S00040.fseform +++|*CALL COMFXVT
00042  M00S00041.fseform +++|*CALL COMFXTI
00043  M00S00042.fseform +++|  END
00044  M00S00043.fseform +++|
00045  M00S00044.fseform +++|
00046  M00S00045.fseform +++|XDEF
00047  M00S00046.fseform +++|  BEGIN
00048  M00S00047.fseform +++|*CALL COMFXFO
00049  M00S00048.fseform +++|  END
00050  M00S00049.fseform +++|PAGE PROC TTWRD;
00051  M00S00050.fseform +++|  IOBEGIN(TTWRD)
00052  M00S00051.fseform +++|#
00053  M00S00052.fseform +++|**        TTWRD - TRANSMIT ONE-WORD ACCUMULATOR TO OUTPUT.
00054  M00S00053.fseform +++|*
00055  M00S00054.fseform +++|*         ENTRY  TTOWB - CONTAINS TEXT TO BE OUTPUT.
00056  M00S00055.fseform +++|*                TTCDC - SHOWS CHARACTER COUNT IN TTOWB.
00057  M00S00056.fseform +++|*
00058  M00S00057.fseform +++|*         EXIT   BOTH PARAMETERS CLEARED.
00059  M00S00058.fseform +++|*
00060  M00S00059.fseform +++|*         CALLS  VDTWTO.
00061  M00S00060.fseform +++|#
00062  M00S00061.fseform +++|  VDTWTO(TTOWB);               # TRANSMIT WORD     #
00063  M00S00062.fseform +++|  TTOWB = 0;                  # CLEAR WORD        #
00064  M00S00063.fseform +++|  TTCBC = -1;                 # SHOW EMPTY        #
00065  M00S00064.fseform +++|  IOEND
00066  M00S00065.fseform +++|
00067  M00S00066.fseform +++|
00068  M00S00067.fseform +++|PROC TTSYNC;
00069  M00S00068.fseform +++|  IOBEGIN(TTSYNC)
00070  M00S00069.fseform +++|#
00071  M00S00070.fseform +++|**        TTSYNS - CONDITIONALLY DRAIN ONE-WORD ACCUMULATOR.
00072  M00S00071.fseform +++|*
00073  M00S00072.fseform +++|*         ENTRY  TTCBC - CHARACTER COUNT IN TTOWB.
00074  M00S00073.fseform +++|*
00075  M00S00074.fseform +++|*         EXIT   TTCBC CLEAR, OUTPUT POSSIBLY TRANSMITTED.
00076  M00S00075.fseform +++|*
Line S00076 Modification History
M01 (Removed by) ns2167
Seq #  *Modification Id* Act 
----------------------------+
00077  M01S00076.ns2167  ---|*         CALLS  TTCHL, TTSTR, TTWRD.
Line S00001 Modification History
M01 (Added by) ns2167
Seq #  *Modification Id* Act 
----------------------------+
00078  M01S00001.ns2167  +++|*         CALLS  TTCHR, TTWRD.
00079  M00S00077.fseform +++|#
00080  M00S00078.fseform +++|  IF TTCBC GQ 0 THEN         # DRAIN PREVIOUS    #
00081  M00S00079.fseform +++|    BEGIN
Line S00001 Modification History
M01 (Added by) ns2132
Seq #  *Modification Id* Act 
----------------------------+
00082  M01S00001.ns2132  +++|    CONTROL IFEQ SINGLE,1;
00083  M01S00002.ns2132  +++|      IF NOT TTYOUTPUT THEN GOTO TTSYNC2;
00084  M01S00003.ns2132  +++|    CONTROL FI;
Line S00080 Modification History
M01 (Removed by) ns2167
Seq #  *Modification Id* Act 
----------------------------+
00085  M01S00080.ns2167  ---|    IF TTCBC LAN 1 EQ 0 THEN TTCHL(":");
00086  M01S00081.ns2167  ---|    TTSTR(":K$");
Line S00002 Modification History
M01 (Added by) ns2167
Seq #  *Modification Id* Act 
----------------------------+
00087  M01S00002.ns2167  +++|    IF TTCBC LAN 1 EQ 0 THEN TTCHR(O"00");
00088  M01S00003.ns2167  +++|    TTCHR(O"00");                    # CONTROL BYTE 0013B #
00089  M01S00004.ns2167  +++|    TTCHR(O"13");
Line S00004 Modification History
M01 (Added by) ns2132
Seq #  *Modification Id* Act 
----------------------------+
00090  M01S00004.ns2132  +++|TTSYNC2:
00091  M00S00082.fseform +++|    IF TTCBC EQ 9 THEN TTWRD;
00092  M00S00083.fseform +++|    TTWRD;
00093  M00S00084.fseform +++|    END
00094  M00S00085.fseform +++|  IOEND                        # OF TTSYNC         #
00095  M00S00086.fseform +++|
00096  M00S00087.fseform +++|
00097  M00S00088.fseform +++|PROC TTINIT;
00098  M00S00089.fseform +++|  BEGIN
00099  M00S00090.fseform +++|#
00100  M00S00091.fseform +++|**        TTINIT - INITIALIZE ONE-WORD ACCUMULATOR.
00101  M00S00092.fseform +++|*
00102  M00S00093.fseform +++|*         EXIT   TTCBC, TTOCB, TTOWB - CLEARED.
00103  M00S00094.fseform +++|#
00104  M00S00095.fseform +++|  TTOWB=0;
00105  M00S00096.fseform +++|  TTOCB=0;
00106  M00S00097.fseform +++|  TTCBC=-1;
00107  M00S00098.fseform +++|  END                         # OF TTINIT         #
00108  M00S00099.fseform +++|PAGE PROC TTCHL(A);          # CHAR (LEFT)       #
00109  M00S00100.fseform +++|  IOBEGIN(TTCHL)
00110  M00S00101.fseform +++|#
00111  M00S00102.fseform +++|**        TTCHL - FORMAT ONE CHARACTER FROM LEFT OF PARM.
00112  M00S00103.fseform +++|*
00113  M00S00104.fseform +++|*         ENTRY  A - WORD WITH CHARACTER IN TOP OF WORD.
00114  M00S00105.fseform +++|*                SCREENMODE - WHETHER TO USE VIRTERM OR TTWRD.
00115  M00S00106.fseform +++|*
00116  M00S00107.fseform +++|*         CALLS  VDTCHR, TTWRD.
00117  M00S00108.fseform +++|*
00118  M00S00109.fseform +++|*         USES   TTOCB, TTCBC, TTOWB.
00119  M00S00110.fseform +++|#
00120  M00S00111.fseform +++|  ITEM A;
00121  M00S00112.fseform +++|  ITEM B;
00122  M00S00113.fseform +++|  IF SCREENMODE THEN
00123  M00S00114.fseform +++|    BEGIN
00124  M00S00115.fseform +++|    B=C<0,1>A;
00125  M00S00116.fseform +++|    B=XLTDSPXP[B];
00126  M00S00117.fseform +++|    VDTCHR(B);
00127  M00S00118.fseform +++|    END
00128  M00S00119.fseform +++|  ELSE
00129  M00S00120.fseform +++|    BEGIN
00130  M00S00121.fseform +++|    TTOCB = A;                  # HOLD CHAR         #
00131  M00S00122.fseform +++|    IF TTCBC EQ 9 THEN TTWRD;   # FULL WORD         #
00132  M00S00123.fseform +++|    TTCBC = TTCBC + 1;          # INCREMENT POINTER #
00133  M00S00124.fseform +++|    C<TTCBC>TTOWB = C<0>TTOCB;  # CHAR TO WORD      #
00134  M00S00125.fseform +++|    END
00135  M00S00126.fseform +++|  IOEND
00136  M00S00127.fseform +++|
00137  M00S00128.fseform +++|PROC TTCHR(A);
00138  M00S00129.fseform +++|  IOBEGIN(TTCHR)
00139  M00S00130.fseform +++|#
00140  M00S00131.fseform +++|**        TTCHR - FORMAT CHARACTER FROM RIGHT OF WORD.
00141  M00S00132.fseform +++|*
00142  M00S00133.fseform +++|*         ENTRY  A - WORD WITH CHARACTER IN RIGHT END.
00143  M00S00134.fseform +++|*
00144  M00S00135.fseform +++|*         CALLS  TTCHL.
00145  M00S00136.fseform +++|#
00146  M00S00137.fseform +++|  ITEM A,B;
00147  M00S00138.fseform +++|  C<0,1>B=C<9,1>A;
00148  M00S00139.fseform +++|  TTCHL(B);
00149  M00S00140.fseform +++|  IOEND                       # OF TTCHR          #
00150  M00S00141.fseform +++|PAGE PROC TTST(A,B);
00151  M00S00142.fseform +++|  IOBEGIN(TTST)
00152  M00S00143.fseform +++|#
00153  M00S00144.fseform +++|**        TTST - FORMAT STRING OF SPECIFIED LENGTH.
00154  M00S00145.fseform +++|*
00155  M00S00146.fseform +++|*         ENTRY  A - STRING OF 6-BIT CHARACTERS.
00156  M00S00147.fseform +++|*                B - LENGTH OF STRING.
00157  M00S00148.fseform +++|*
00158  M00S00149.fseform +++|*         CALLS  TTCHL.
00159  M00S00150.fseform +++|*
00160  M00S00151.fseform +++|*         USES   P<STR>, STL, S2.
00161  M00S00152.fseform +++|#
00162  M00S00153.fseform +++|  ITEM A C (240), B;
00163  M00S00154.fseform +++|  P<STR> = LOC(A);            # SAVE PARMS        #
00164  M00S00155.fseform +++|  STL = B - 1;
00165  M00S00156.fseform +++|  FOR S2=0 STEP 1 UNTIL STL DO TTCHL(C<S2>ST);    # COPY STRING #
00166  M00S00157.fseform +++|  IOEND
00167  M00S00158.fseform +++|
00168  M00S00159.fseform +++|
00169  M00S00160.fseform +++|PROC TTSTR(A);
00170  M00S00161.fseform +++|  IOBEGIN(TTSTR)
00171  M00S00162.fseform +++|#
00172  M00S00163.fseform +++|**        TTSTR - FORMAT STRING TERMINATED BY $
00173  M00S00164.fseform +++|*
00174  M00S00165.fseform +++|*         ENTRY  A - STRING.
00175  M00S00166.fseform +++|*
00176  M00S00167.fseform +++|*         CALLS  TTST, TTBRK.
00177  M00S00168.fseform +++|*
00178  M00S00169.fseform +++|*         USES   S1.
00179  M00S00170.fseform +++|#
00180  M00S00171.fseform +++|  ITEM A C (240);
00181  M00S00172.fseform +++|  S1 = 0;
00182  M00S00173.fseform +++|  WHYLE S1 LS 80 AND C<S1>A NQ "$" DO S1 = S1+1; # FIND END OF STR #
00183  M00S00174.fseform +++|  IF S1 EQ 80 THEN
00184  M00S00175.fseform +++|    BEGIN                      # ERROR             #
00185  M00S00176.fseform +++|    TTST("NO $ IN TTSTR STRING",20);
00186  M00S00177.fseform +++|    TTBRK;
00187  M00S00178.fseform +++|    END
00188  M00S00179.fseform +++|  ELSE TTST(A,S1);            # WRITE THE STRING  #
00189  M00S00180.fseform +++|  IOEND
00190  M00S00181.fseform +++|
00191  M00S00182.fseform +++|
00192  M00S00183.fseform +++|PROC TTLCSTR(A);
00193  M00S00184.fseform +++|  IOBEGIN(TTLCSTR)
00194  M00S00185.fseform +++|#
00195  M00S00186.fseform +++|**        TTLCSTR - TTSTR WITH CONVERT TO LOWER-CASE ON SCREEN.
00196  M00S00187.fseform +++|*
00197  M00S00188.fseform +++|*         ENTRY  A - UPPER-CASE STRING WITH $ TERMINATOR.
00198  M00S00189.fseform +++|*
00199  M00S00190.fseform +++|*         CALLS  VDTCHR, MORTAL.
00200  M00S00191.fseform +++|*
00201  M00S00192.fseform +++|*         USES   S1, P<STR>.
00202  M00S00193.fseform +++|#
00203  M00S00194.fseform +++|  ITEM A C(240);
00204  M00S00195.fseform +++|  ITEM B I;
00205  M00S00196.fseform +++|  IF NOT SCREENMODE THEN MORTAL(" SCREEN MODE REQUIRED.$");
00206  M00S00197.fseform +++|  S1 = 0;
00207  M00S00198.fseform +++|  P<STR> = LOC(A);
00208  M00S00199.fseform +++|  WHYLE C<S1>ST NQ "$" DO
00209  M00S00200.fseform +++|    BEGIN
00210  M00S00201.fseform +++|    B = C<S1>ST;
00211  M00S00202.fseform +++|    IF B GQ "A" AND B LQ "Z" THEN VDTCHR(XLTDSPXP[B]+O"40");
00212  M00S00203.fseform +++|    ELSE VDTCHR(XLTDSPXP[B]);
00213  M00S00204.fseform +++|    S1 = S1 + 1;
00214  M00S00205.fseform +++|    END
00215  M00S00206.fseform +++|  IOEND              #   OF TTLCSTR   #
00216  M00S00207.fseform +++|
00217  M00S00208.fseform +++|
00218  M00S00209.fseform +++|PAGE PROC TTBRK;
00219  M00S00210.fseform +++|  IOBEGIN(TTBRK)
00220  M00S00211.fseform +++|#
00221  M00S00212.fseform +++|**        TTBRK - FORMAT END-OF-LINE.
00222  M00S00213.fseform +++|*
00223  M00S00214.fseform +++|*         ENTRY  TTCBC, SCREENMODE - CONTROL NEED TO DO ANYTHING.
00224  M00S00215.fseform +++|*
00225  M00S00216.fseform +++|*         CALLS  TTCHL, TTWRD.
00226  M00S00217.fseform +++|#
00227  M00S00218.fseform +++|  IF TTCBC GQ 0 AND NOT SCREENMODE THEN  # NON-TRIVIAL       #
00228  M00S00219.fseform +++|    BEGIN
Line S00220 Modification History
M01 (Removed by) ns2167
Seq #  *Modification Id* Act 
----------------------------+
00229  M01S00220.ns2167  ---|    IF C<TTCBC>TTOWB EQ ":" THEN TTCHL(" ");  # BLANK AFTER COLON #
Line S00005 Modification History
M01 (Added by) ns2167
Seq #  *Modification Id* Act 
----------------------------+
00230  M01S00005.ns2167  +++|    IF C<TTCBC>TTOWB EQ 0 THEN TTCHL(" ");  # BLANK AFTER COLON #
00231  M00S00221.fseform +++|    IF TTCBC EQ 8 THEN TTCHL(" ");      # NO 66-BIT EOL     #
00232  M00S00222.fseform +++|    IF TTCBC GQ 8 THEN TTWRD;   # NEED EXTRA WORD #
00233  M00S00223.fseform +++|    TTWRD;                      # DUMP THE EOL      #
00234  M00S00224.fseform +++|    END
00235  M00S00225.fseform +++|  IOEND
00236  M00S00226.fseform +++|
00237  M00S00227.fseform +++|
00238  M00S00228.fseform +++|PROC TTLIN(A);               # TTSTR + TTBRK     #
00239  M00S00229.fseform +++|  IOBEGIN(TTLIN)
00240  M00S00230.fseform +++|#
00241  M00S00231.fseform +++|**        TTLIN - COMBINED TTSTR AND TTBRK.
00242  M00S00232.fseform +++|*
00243  M00S00233.fseform +++|*         ENTRY  A - PARAMETER TO PASS ON TO TTSTR.
00244  M00S00234.fseform +++|*
00245  M00S00235.fseform +++|*         CALLS  TTSTR, TTBRK.
00246  M00S00236.fseform +++|#
00247  M00S00237.fseform +++|  ARRAY A;;
00248  M00S00238.fseform +++|  TTSTR(A);                   # OUTPUT STRING     #
00249  M00S00239.fseform +++|  TTBRK;                      # END LINE          #
00250  M00S00240.fseform +++|  IOEND
00251  M00S00241.fseform +++|
00252  M00S00242.fseform +++|
00253  M00S00243.fseform +++|PROC GETNUM(A,B);
00254  M00S00244.fseform +++|  BEGIN
00255  M00S00245.fseform +++|#
00256  M00S00246.fseform +++|**        GETNUM - FORMAT NUMBER BY RADIX.
00257  M00S00247.fseform +++|*
00258  M00S00248.fseform +++|*         ENTRY  A - BINARY INTEGER TO ENCODE.
00259  M00S00249.fseform +++|*                B - RADIX (BASE).
00260  M00S00250.fseform +++|*
00261  M00S00251.fseform +++|*         EXIT   NUMS1 - CONTAINS FORMATTED NUMBER.
00262  M00S00252.fseform +++|*                S1, S2 - RESIDUAL VALUES LEFT FOR PUTNUM USAGE.
00263  M00S00253.fseform +++|*
00264  M00S00254.fseform +++|*         MACROS MOD.
00265  M00S00255.fseform +++|*
00266  M00S00256.fseform +++|*         USES   S1,S2.
00267  M00S00257.fseform +++|#
00268  M00S00258.fseform +++|  ITEM A,B;
00269  M00S00259.fseform +++|  S1=ABS(A);
00270  M00S00260.fseform +++|  S2 = -1;                  # COUNT DIGITS      #
00271  M00S00261.fseform +++|  WHYLE S1 GQ B DO          # NOT DONE YET      #
00272  M00S00262.fseform +++|    BEGIN
00273  M00S00263.fseform +++|    S2 = S2 + 1;            # BUMP POINTER      #
00274  M00S00264.fseform +++|    C<S2>NUMS1 = MOD(S1,B) + O"33";   # GET A DIGIT       #
00275  M00S00265.fseform +++|    S1 = S1/B;              # REDUCE NUMBER     #
00276  M00S00266.fseform +++|    END
00277  M00S00267.fseform +++|  END
00278  M00S00268.fseform +++|
00279  M00S00269.fseform +++|
00280  M00S00270.fseform +++|PROC PUTNUM;                 # WRITE SET UP NUM  #
00281  M00S00271.fseform +++|  IOBEGIN(PUTNUM)
00282  M00S00272.fseform +++|#
00283  M00S00273.fseform +++|**        PUTNUM - TRANSMIT NUMS1 AS BUILT BY GETNUM.
00284  M00S00274.fseform +++|*
00285  M00S00275.fseform +++|*         ENTRY  NUMS1 - ENCODED NUMBER IN GETNUM FORMAT.
00286  M00S00276.fseform +++|*                S1, S2 - AS LEFT BY GETNUM.
00287  M00S00277.fseform +++|*
00288  M00S00278.fseform +++|*         EXIT   S2 - DESTROYED.
00289  M00S00279.fseform +++|*
00290  M00S00280.fseform +++|*         CALLS  TTCHL, TTCHR.
00291  M00S00281.fseform +++|#
00292  M00S00282.fseform +++|  TTCHR(S1+O"33");          # FIRST DIGIT       #
00293  M00S00283.fseform +++|  FOR S2=S2 STEP -1 UNTIL 0 DO TTCHL(C<S2>NUMS1);  # REST OF DIGITS #
00294  M00S00284.fseform +++|  IOEND
00295  M00S00285.fseform +++|PAGE PROC TTNUM(A,B);        # NUMBER A IN RADIX B         #
00296  M00S00286.fseform +++|  IOBEGIN(TTNUM)
00297  M00S00287.fseform +++|#
00298  M00S00288.fseform +++|**        TTNUM - EXTERNAL INTERFACE TO ENCODE NUMBERS.
00299  M00S00289.fseform +++|*
00300  M00S00290.fseform +++|*         ENTRY  A - INTEGER TO ENCODE AND TRANSMIT.
00301  M00S00291.fseform +++|*                B - RADIX.
00302  M00S00292.fseform +++|*
00303  M00S00293.fseform +++|*         CALLS  GETNUM, TTCHL, PUTNUM.
00304  M00S00294.fseform +++|#
00305  M00S00295.fseform +++|  ITEM A,B;
00306  M00S00296.fseform +++|  GETNUM(A,B);              # SET UP S1,S2,NUMS1          #
00307  M00S00297.fseform +++|  IF A LS 0 THEN TTCHL("-");          # MINUS SIGN        #
00308  M00S00298.fseform +++|  PUTNUM;                   # AND WRITE NUMBER  #
00309  M00S00299.fseform +++|  IOEND
00310  M00S00300.fseform +++|
00311  M00S00301.fseform +++|
00312  M00S00302.fseform +++|PROC TTDEC(A);               # NUMBER A IN DECIMAL         #
00313  M00S00303.fseform +++|  IOBEGIN(TTDEC)
00314  M00S00304.fseform +++|#
00315  M00S00305.fseform +++|**        TTDEC - ENCODE INTEGER IN DECIMAL.
00316  M00S00306.fseform +++|*
00317  M00S00307.fseform +++|*         ENTRY  A - INTEGER.
00318  M00S00308.fseform +++|*
00319  M00S00309.fseform +++|*         CALLS  TTNUM.
00320  M00S00310.fseform +++|#
00321  M00S00311.fseform +++|  TTNUM(A,10);
00322  M00S00312.fseform +++|  IOEND
00323  M00S00313.fseform +++|
00324  M00S00314.fseform +++|
00325  M00S00315.fseform +++|PROC TTLPAD(A,N,C);          # LEFT PAD DECIMAL NUM        #
00326  M00S00316.fseform +++|  IOBEGIN(TTLPAD)
00327  M00S00317.fseform +++|#
00328  M00S00318.fseform +++|**        TTLPAD - LEFT PADDED ENCODE AND TRANSMIT OF INTEGER.
00329  M00S00319.fseform +++|*
00330  M00S00320.fseform +++|*         ENTRY  A - INTEGER.
00331  M00S00321.fseform +++|*                N - FIELD WIDTH.
00332  M00S00322.fseform +++|*                C - PADDING CHARACTER.
00333  M00S00323.fseform +++|*
00334  M00S00324.fseform +++|*         CALLS  GETNUM, PUTNUM, TTCHL.
00335  M00S00325.fseform +++|*
00336  M00S00326.fseform +++|*         USES   S2, S3, S4.
00337  M00S00327.fseform +++|#
00338  M00S00328.fseform +++|  ITEM A,N,C;
00339  M00S00329.fseform +++|  IF A GQ 0 THEN              # DON'T DO NEGATIVE #
00340  M00S00330.fseform +++|    BEGIN
00341  M00S00331.fseform +++|    GETNUM(A,10);             # S2=WIDTH-1        #
00342  M00S00332.fseform +++|    S3 = N - S2 - 3;          # S3=PAD WIDTH-1    #
00343  M00S00333.fseform +++|    S4 = C;                   # PAD CHARACTER     #
00344  M00S00334.fseform +++|    FOR S3=S3 STEP -1 UNTIL 0 DO TTCHL(S4);       # WRITE PADDING #
00345  M00S00335.fseform +++|    PUTNUM;                   # WRITE NUMBER      #
00346  M00S00336.fseform +++|    END
00347  M00S00337.fseform +++|  IOEND
00348  M00S00338.fseform +++|
00349  M00S00339.fseform +++|
00350  M00S00340.fseform +++|
00351  M00S00341.fseform +++|END TERM
cdc/nos2.source/opl.opl871/deck/fseform.txt ยท Last modified: (external edit)