User Tools

Site Tools


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

Deck FSEFORM

3 Modifications

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.fseform +++|PROC FSEFORM;
00002  M01S00002.fseform +++|BEGIN
00003  M01S00003.fseform +++|
00004  M01S00004.fseform +++|
00005  M01S00005.fseform +++|#
00006  M01S00006.fseform +++|***       FSEFORM -- STRING FORMATTING AND OUTPUT ROUTINES.
00007  M01S00007.fseform +++|*
Line S00008 Modification History
M01 (Added by) fseform
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00008  M02S00008.281l803 ---|*         COPYRIGHT CONTROL DATA CORPORATION, 1983.
00009  M01S00001.281l803 +++|*         COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00010  M01S00009.fseform +++|#
00011  M01S00010.fseform +++|
00012  M01S00011.fseform +++|  DEF LISTCON #0#;
00013  M01S00012.fseform +++|
00014  M01S00013.fseform +++|*IFCALL SINGLE,COMFSGL
00015  M01S00014.fseform +++|*IFCALL ONLY,COMFONL
00016  M01S00015.fseform +++|*IFCALL MULTI,COMFMLT
00017  M01S00016.fseform +++|*CALL COMFFSE
00018  M01S00017.fseform +++|
00019  M01S00018.fseform +++|                             # COMMON DATA       #
00020  M01S00019.fseform +++|
00021  M01S00020.fseform +++|
00022  M01S00021.fseform +++|CONTROL IFEQ MULTI,1;
00023  M01S00022.fseform +++|  XREF ARRAY RENTSTK [1:MAXREENT];     # SUBROUTINE STACK  #
00024  M01S00023.fseform +++|    BEGIN
00025  M01S00024.fseform +++|    ITEM RSTK;
00026  M01S00025.fseform +++|    END
00027  M01S00026.fseform +++|  XREF ITEM RSTKPTR;
00028  M01S00027.fseform +++|CONTROL FI;
00029  M01S00028.fseform +++|PAGE                         # COMMON DATA, EXTERNALS      #
00030  M01S00029.fseform +++|
00031  M01S00030.fseform +++|
00032  M01S00031.fseform +++|*CALL COMFDS1
00033  M01S00032.fseform +++|*CALL COMFVD2
00034  M01S00033.fseform +++|*CALL COMFDS2
00035  M01S00034.fseform +++|*CALL COMFTAB
00036  M01S00035.fseform +++|
00037  M01S00036.fseform +++|
00038  M01S00037.fseform +++|XREF
00039  M01S00038.fseform +++|  BEGIN
00040  M01S00039.fseform +++|*CALL COMFXSB
00041  M01S00040.fseform +++|*CALL COMFXVT
00042  M01S00041.fseform +++|*CALL COMFXTI
00043  M01S00042.fseform +++|  END
00044  M01S00043.fseform +++|
00045  M01S00044.fseform +++|
00046  M01S00045.fseform +++|XDEF
00047  M01S00046.fseform +++|  BEGIN
00048  M01S00047.fseform +++|*CALL COMFXFO
00049  M01S00048.fseform +++|  END
00050  M01S00049.fseform +++|PAGE PROC TTWRD;
00051  M01S00050.fseform +++|  IOBEGIN(TTWRD)
00052  M01S00051.fseform +++|#
00053  M01S00052.fseform +++|**        TTWRD - TRANSMIT ONE-WORD ACCUMULATOR TO OUTPUT.
00054  M01S00053.fseform +++|*
00055  M01S00054.fseform +++|*         ENTRY  TTOWB - CONTAINS TEXT TO BE OUTPUT.
00056  M01S00055.fseform +++|*                TTCDC - SHOWS CHARACTER COUNT IN TTOWB.
00057  M01S00056.fseform +++|*
00058  M01S00057.fseform +++|*         EXIT   BOTH PARAMETERS CLEARED.
00059  M01S00058.fseform +++|*
00060  M01S00059.fseform +++|*         CALLS  VDTWTO.
00061  M01S00060.fseform +++|#
00062  M01S00061.fseform +++|  VDTWTO(TTOWB);               # TRANSMIT WORD     #
00063  M01S00062.fseform +++|  TTOWB = 0;                  # CLEAR WORD        #
00064  M01S00063.fseform +++|  TTCBC = -1;                 # SHOW EMPTY        #
00065  M01S00064.fseform +++|  IOEND
00066  M01S00065.fseform +++|
00067  M01S00066.fseform +++|
00068  M01S00067.fseform +++|PROC TTSYNC;
00069  M01S00068.fseform +++|  IOBEGIN(TTSYNC)
00070  M01S00069.fseform +++|#
00071  M01S00070.fseform +++|**        TTSYNS - CONDITIONALLY DRAIN ONE-WORD ACCUMULATOR.
00072  M01S00071.fseform +++|*
00073  M01S00072.fseform +++|*         ENTRY  TTCBC - CHARACTER COUNT IN TTOWB.
00074  M01S00073.fseform +++|*
00075  M01S00074.fseform +++|*         EXIT   TTCBC CLEAR, OUTPUT POSSIBLY TRANSMITTED.
00076  M01S00075.fseform +++|*
Line S00076 Modification History
M01 (Added by) fseform
M02 (Updated by) ns2167
Seq #  *Modification Id* Act 
----------------------------+
00077  M02S00076.ns2167  ---|*         CALLS  TTCHL, TTSTR, TTWRD.
00078  M01S00001.ns2167  +++|*         CALLS  TTCHR, TTWRD.
00079  M01S00077.fseform +++|#
00080  M01S00078.fseform +++|  IF TTCBC GQ 0 THEN         # DRAIN PREVIOUS    #
00081  M01S00079.fseform +++|    BEGIN
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 (Added by) fseform
M02 (Updated by) ns2167
Seq #  *Modification Id* Act 
----------------------------+
00085  M02S00080.ns2167  ---|    IF TTCBC LAN 1 EQ 0 THEN TTCHL(":");
Line S00081 Modification History
M01 (Added by) fseform
M02 (Updated by) ns2167
Seq #  *Modification Id* Act 
----------------------------+
00086  M02S00081.ns2167  ---|    TTSTR(":K$");
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");
00090  M01S00004.ns2132  +++|TTSYNC2:
00091  M01S00082.fseform +++|    IF TTCBC EQ 9 THEN TTWRD;
00092  M01S00083.fseform +++|    TTWRD;
00093  M01S00084.fseform +++|    END
00094  M01S00085.fseform +++|  IOEND                        # OF TTSYNC         #
00095  M01S00086.fseform +++|
00096  M01S00087.fseform +++|
00097  M01S00088.fseform +++|PROC TTINIT;
00098  M01S00089.fseform +++|  BEGIN
00099  M01S00090.fseform +++|#
00100  M01S00091.fseform +++|**        TTINIT - INITIALIZE ONE-WORD ACCUMULATOR.
00101  M01S00092.fseform +++|*
00102  M01S00093.fseform +++|*         EXIT   TTCBC, TTOCB, TTOWB - CLEARED.
00103  M01S00094.fseform +++|#
00104  M01S00095.fseform +++|  TTOWB=0;
00105  M01S00096.fseform +++|  TTOCB=0;
00106  M01S00097.fseform +++|  TTCBC=-1;
00107  M01S00098.fseform +++|  END                         # OF TTINIT         #
00108  M01S00099.fseform +++|PAGE PROC TTCHL(A);          # CHAR (LEFT)       #
00109  M01S00100.fseform +++|  IOBEGIN(TTCHL)
00110  M01S00101.fseform +++|#
00111  M01S00102.fseform +++|**        TTCHL - FORMAT ONE CHARACTER FROM LEFT OF PARM.
00112  M01S00103.fseform +++|*
00113  M01S00104.fseform +++|*         ENTRY  A - WORD WITH CHARACTER IN TOP OF WORD.
00114  M01S00105.fseform +++|*                SCREENMODE - WHETHER TO USE VIRTERM OR TTWRD.
00115  M01S00106.fseform +++|*
00116  M01S00107.fseform +++|*         CALLS  VDTCHR, TTWRD.
00117  M01S00108.fseform +++|*
00118  M01S00109.fseform +++|*         USES   TTOCB, TTCBC, TTOWB.
00119  M01S00110.fseform +++|#
00120  M01S00111.fseform +++|  ITEM A;
00121  M01S00112.fseform +++|  ITEM B;
00122  M01S00113.fseform +++|  IF SCREENMODE THEN
00123  M01S00114.fseform +++|    BEGIN
00124  M01S00115.fseform +++|    B=C<0,1>A;
00125  M01S00116.fseform +++|    B=XLTDSPXP[B];
00126  M01S00117.fseform +++|    VDTCHR(B);
00127  M01S00118.fseform +++|    END
00128  M01S00119.fseform +++|  ELSE
00129  M01S00120.fseform +++|    BEGIN
00130  M01S00121.fseform +++|    TTOCB = A;                  # HOLD CHAR         #
00131  M01S00122.fseform +++|    IF TTCBC EQ 9 THEN TTWRD;   # FULL WORD         #
00132  M01S00123.fseform +++|    TTCBC = TTCBC + 1;          # INCREMENT POINTER #
00133  M01S00124.fseform +++|    C<TTCBC>TTOWB = C<0>TTOCB;  # CHAR TO WORD      #
00134  M01S00125.fseform +++|    END
00135  M01S00126.fseform +++|  IOEND
00136  M01S00127.fseform +++|
00137  M01S00128.fseform +++|PROC TTCHR(A);
00138  M01S00129.fseform +++|  IOBEGIN(TTCHR)
00139  M01S00130.fseform +++|#
00140  M01S00131.fseform +++|**        TTCHR - FORMAT CHARACTER FROM RIGHT OF WORD.
00141  M01S00132.fseform +++|*
00142  M01S00133.fseform +++|*         ENTRY  A - WORD WITH CHARACTER IN RIGHT END.
00143  M01S00134.fseform +++|*
00144  M01S00135.fseform +++|*         CALLS  TTCHL.
00145  M01S00136.fseform +++|#
00146  M01S00137.fseform +++|  ITEM A,B;
00147  M01S00138.fseform +++|  C<0,1>B=C<9,1>A;
00148  M01S00139.fseform +++|  TTCHL(B);
00149  M01S00140.fseform +++|  IOEND                       # OF TTCHR          #
00150  M01S00141.fseform +++|PAGE PROC TTST(A,B);
00151  M01S00142.fseform +++|  IOBEGIN(TTST)
00152  M01S00143.fseform +++|#
00153  M01S00144.fseform +++|**        TTST - FORMAT STRING OF SPECIFIED LENGTH.
00154  M01S00145.fseform +++|*
00155  M01S00146.fseform +++|*         ENTRY  A - STRING OF 6-BIT CHARACTERS.
00156  M01S00147.fseform +++|*                B - LENGTH OF STRING.
00157  M01S00148.fseform +++|*
00158  M01S00149.fseform +++|*         CALLS  TTCHL.
00159  M01S00150.fseform +++|*
00160  M01S00151.fseform +++|*         USES   P<STR>, STL, S2.
00161  M01S00152.fseform +++|#
00162  M01S00153.fseform +++|  ITEM A C (240), B;
00163  M01S00154.fseform +++|  P<STR> = LOC(A);            # SAVE PARMS        #
00164  M01S00155.fseform +++|  STL = B - 1;
00165  M01S00156.fseform +++|  FOR S2=0 STEP 1 UNTIL STL DO TTCHL(C<S2>ST);    # COPY STRING #
00166  M01S00157.fseform +++|  IOEND
00167  M01S00158.fseform +++|
00168  M01S00159.fseform +++|
00169  M01S00160.fseform +++|PROC TTSTR(A);
00170  M01S00161.fseform +++|  IOBEGIN(TTSTR)
00171  M01S00162.fseform +++|#
00172  M01S00163.fseform +++|**        TTSTR - FORMAT STRING TERMINATED BY $
00173  M01S00164.fseform +++|*
00174  M01S00165.fseform +++|*         ENTRY  A - STRING.
00175  M01S00166.fseform +++|*
00176  M01S00167.fseform +++|*         CALLS  TTST, TTBRK.
00177  M01S00168.fseform +++|*
00178  M01S00169.fseform +++|*         USES   S1.
00179  M01S00170.fseform +++|#
00180  M01S00171.fseform +++|  ITEM A C (240);
00181  M01S00172.fseform +++|  S1 = 0;
00182  M01S00173.fseform +++|  WHYLE S1 LS 80 AND C<S1>A NQ "$" DO S1 = S1+1; # FIND END OF STR #
00183  M01S00174.fseform +++|  IF S1 EQ 80 THEN
00184  M01S00175.fseform +++|    BEGIN                      # ERROR             #
00185  M01S00176.fseform +++|    TTST("NO $ IN TTSTR STRING",20);
00186  M01S00177.fseform +++|    TTBRK;
00187  M01S00178.fseform +++|    END
00188  M01S00179.fseform +++|  ELSE TTST(A,S1);            # WRITE THE STRING  #
00189  M01S00180.fseform +++|  IOEND
00190  M01S00181.fseform +++|
00191  M01S00182.fseform +++|
00192  M01S00183.fseform +++|PROC TTLCSTR(A);
00193  M01S00184.fseform +++|  IOBEGIN(TTLCSTR)
00194  M01S00185.fseform +++|#
00195  M01S00186.fseform +++|**        TTLCSTR - TTSTR WITH CONVERT TO LOWER-CASE ON SCREEN.
00196  M01S00187.fseform +++|*
00197  M01S00188.fseform +++|*         ENTRY  A - UPPER-CASE STRING WITH $ TERMINATOR.
00198  M01S00189.fseform +++|*
00199  M01S00190.fseform +++|*         CALLS  VDTCHR, MORTAL.
00200  M01S00191.fseform +++|*
00201  M01S00192.fseform +++|*         USES   S1, P<STR>.
00202  M01S00193.fseform +++|#
00203  M01S00194.fseform +++|  ITEM A C(240);
00204  M01S00195.fseform +++|  ITEM B I;
00205  M01S00196.fseform +++|  IF NOT SCREENMODE THEN MORTAL(" SCREEN MODE REQUIRED.$");
00206  M01S00197.fseform +++|  S1 = 0;
00207  M01S00198.fseform +++|  P<STR> = LOC(A);
00208  M01S00199.fseform +++|  WHYLE C<S1>ST NQ "$" DO
00209  M01S00200.fseform +++|    BEGIN
00210  M01S00201.fseform +++|    B = C<S1>ST;
00211  M01S00202.fseform +++|    IF B GQ "A" AND B LQ "Z" THEN VDTCHR(XLTDSPXP[B]+O"40");
00212  M01S00203.fseform +++|    ELSE VDTCHR(XLTDSPXP[B]);
00213  M01S00204.fseform +++|    S1 = S1 + 1;
00214  M01S00205.fseform +++|    END
00215  M01S00206.fseform +++|  IOEND              #   OF TTLCSTR   #
00216  M01S00207.fseform +++|
00217  M01S00208.fseform +++|
00218  M01S00209.fseform +++|PAGE PROC TTBRK;
00219  M01S00210.fseform +++|  IOBEGIN(TTBRK)
00220  M01S00211.fseform +++|#
00221  M01S00212.fseform +++|**        TTBRK - FORMAT END-OF-LINE.
00222  M01S00213.fseform +++|*
00223  M01S00214.fseform +++|*         ENTRY  TTCBC, SCREENMODE - CONTROL NEED TO DO ANYTHING.
00224  M01S00215.fseform +++|*
00225  M01S00216.fseform +++|*         CALLS  TTCHL, TTWRD.
00226  M01S00217.fseform +++|#
00227  M01S00218.fseform +++|  IF TTCBC GQ 0 AND NOT SCREENMODE THEN  # NON-TRIVIAL       #
00228  M01S00219.fseform +++|    BEGIN
Line S00220 Modification History
M01 (Added by) fseform
M02 (Updated by) ns2167
Seq #  *Modification Id* Act 
----------------------------+
00229  M02S00220.ns2167  ---|    IF C<TTCBC>TTOWB EQ ":" THEN TTCHL(" ");  # BLANK AFTER COLON #
00230  M01S00005.ns2167  +++|    IF C<TTCBC>TTOWB EQ 0 THEN TTCHL(" ");  # BLANK AFTER COLON #
00231  M01S00221.fseform +++|    IF TTCBC EQ 8 THEN TTCHL(" ");      # NO 66-BIT EOL     #
00232  M01S00222.fseform +++|    IF TTCBC GQ 8 THEN TTWRD;   # NEED EXTRA WORD #
00233  M01S00223.fseform +++|    TTWRD;                      # DUMP THE EOL      #
00234  M01S00224.fseform +++|    END
00235  M01S00225.fseform +++|  IOEND
00236  M01S00226.fseform +++|
00237  M01S00227.fseform +++|
00238  M01S00228.fseform +++|PROC TTLIN(A);               # TTSTR + TTBRK     #
00239  M01S00229.fseform +++|  IOBEGIN(TTLIN)
00240  M01S00230.fseform +++|#
00241  M01S00231.fseform +++|**        TTLIN - COMBINED TTSTR AND TTBRK.
00242  M01S00232.fseform +++|*
00243  M01S00233.fseform +++|*         ENTRY  A - PARAMETER TO PASS ON TO TTSTR.
00244  M01S00234.fseform +++|*
00245  M01S00235.fseform +++|*         CALLS  TTSTR, TTBRK.
00246  M01S00236.fseform +++|#
00247  M01S00237.fseform +++|  ARRAY A;;
00248  M01S00238.fseform +++|  TTSTR(A);                   # OUTPUT STRING     #
00249  M01S00239.fseform +++|  TTBRK;                      # END LINE          #
00250  M01S00240.fseform +++|  IOEND
00251  M01S00241.fseform +++|
00252  M01S00242.fseform +++|
00253  M01S00243.fseform +++|PROC GETNUM(A,B);
00254  M01S00244.fseform +++|  BEGIN
00255  M01S00245.fseform +++|#
00256  M01S00246.fseform +++|**        GETNUM - FORMAT NUMBER BY RADIX.
00257  M01S00247.fseform +++|*
00258  M01S00248.fseform +++|*         ENTRY  A - BINARY INTEGER TO ENCODE.
00259  M01S00249.fseform +++|*                B - RADIX (BASE).
00260  M01S00250.fseform +++|*
00261  M01S00251.fseform +++|*         EXIT   NUMS1 - CONTAINS FORMATTED NUMBER.
00262  M01S00252.fseform +++|*                S1, S2 - RESIDUAL VALUES LEFT FOR PUTNUM USAGE.
00263  M01S00253.fseform +++|*
00264  M01S00254.fseform +++|*         MACROS MOD.
00265  M01S00255.fseform +++|*
00266  M01S00256.fseform +++|*         USES   S1,S2.
00267  M01S00257.fseform +++|#
00268  M01S00258.fseform +++|  ITEM A,B;
00269  M01S00259.fseform +++|  S1=ABS(A);
00270  M01S00260.fseform +++|  S2 = -1;                  # COUNT DIGITS      #
00271  M01S00261.fseform +++|  WHYLE S1 GQ B DO          # NOT DONE YET      #
00272  M01S00262.fseform +++|    BEGIN
00273  M01S00263.fseform +++|    S2 = S2 + 1;            # BUMP POINTER      #
00274  M01S00264.fseform +++|    C<S2>NUMS1 = MOD(S1,B) + O"33";   # GET A DIGIT       #
00275  M01S00265.fseform +++|    S1 = S1/B;              # REDUCE NUMBER     #
00276  M01S00266.fseform +++|    END
00277  M01S00267.fseform +++|  END
00278  M01S00268.fseform +++|
00279  M01S00269.fseform +++|
00280  M01S00270.fseform +++|PROC PUTNUM;                 # WRITE SET UP NUM  #
00281  M01S00271.fseform +++|  IOBEGIN(PUTNUM)
00282  M01S00272.fseform +++|#
00283  M01S00273.fseform +++|**        PUTNUM - TRANSMIT NUMS1 AS BUILT BY GETNUM.
00284  M01S00274.fseform +++|*
00285  M01S00275.fseform +++|*         ENTRY  NUMS1 - ENCODED NUMBER IN GETNUM FORMAT.
00286  M01S00276.fseform +++|*                S1, S2 - AS LEFT BY GETNUM.
00287  M01S00277.fseform +++|*
00288  M01S00278.fseform +++|*         EXIT   S2 - DESTROYED.
00289  M01S00279.fseform +++|*
00290  M01S00280.fseform +++|*         CALLS  TTCHL, TTCHR.
00291  M01S00281.fseform +++|#
00292  M01S00282.fseform +++|  TTCHR(S1+O"33");          # FIRST DIGIT       #
00293  M01S00283.fseform +++|  FOR S2=S2 STEP -1 UNTIL 0 DO TTCHL(C<S2>NUMS1);  # REST OF DIGITS #
00294  M01S00284.fseform +++|  IOEND
00295  M01S00285.fseform +++|PAGE PROC TTNUM(A,B);        # NUMBER A IN RADIX B         #
00296  M01S00286.fseform +++|  IOBEGIN(TTNUM)
00297  M01S00287.fseform +++|#
00298  M01S00288.fseform +++|**        TTNUM - EXTERNAL INTERFACE TO ENCODE NUMBERS.
00299  M01S00289.fseform +++|*
00300  M01S00290.fseform +++|*         ENTRY  A - INTEGER TO ENCODE AND TRANSMIT.
00301  M01S00291.fseform +++|*                B - RADIX.
00302  M01S00292.fseform +++|*
00303  M01S00293.fseform +++|*         CALLS  GETNUM, TTCHL, PUTNUM.
00304  M01S00294.fseform +++|#
00305  M01S00295.fseform +++|  ITEM A,B;
00306  M01S00296.fseform +++|  GETNUM(A,B);              # SET UP S1,S2,NUMS1          #
00307  M01S00297.fseform +++|  IF A LS 0 THEN TTCHL("-");          # MINUS SIGN        #
00308  M01S00298.fseform +++|  PUTNUM;                   # AND WRITE NUMBER  #
00309  M01S00299.fseform +++|  IOEND
00310  M01S00300.fseform +++|
00311  M01S00301.fseform +++|
00312  M01S00302.fseform +++|PROC TTDEC(A);               # NUMBER A IN DECIMAL         #
00313  M01S00303.fseform +++|  IOBEGIN(TTDEC)
00314  M01S00304.fseform +++|#
00315  M01S00305.fseform +++|**        TTDEC - ENCODE INTEGER IN DECIMAL.
00316  M01S00306.fseform +++|*
00317  M01S00307.fseform +++|*         ENTRY  A - INTEGER.
00318  M01S00308.fseform +++|*
00319  M01S00309.fseform +++|*         CALLS  TTNUM.
00320  M01S00310.fseform +++|#
00321  M01S00311.fseform +++|  TTNUM(A,10);
00322  M01S00312.fseform +++|  IOEND
00323  M01S00313.fseform +++|
00324  M01S00314.fseform +++|
00325  M01S00315.fseform +++|PROC TTLPAD(A,N,C);          # LEFT PAD DECIMAL NUM        #
00326  M01S00316.fseform +++|  IOBEGIN(TTLPAD)
00327  M01S00317.fseform +++|#
00328  M01S00318.fseform +++|**        TTLPAD - LEFT PADDED ENCODE AND TRANSMIT OF INTEGER.
00329  M01S00319.fseform +++|*
00330  M01S00320.fseform +++|*         ENTRY  A - INTEGER.
00331  M01S00321.fseform +++|*                N - FIELD WIDTH.
00332  M01S00322.fseform +++|*                C - PADDING CHARACTER.
00333  M01S00323.fseform +++|*
00334  M01S00324.fseform +++|*         CALLS  GETNUM, PUTNUM, TTCHL.
00335  M01S00325.fseform +++|*
00336  M01S00326.fseform +++|*         USES   S2, S3, S4.
00337  M01S00327.fseform +++|#
00338  M01S00328.fseform +++|  ITEM A,N,C;
00339  M01S00329.fseform +++|  IF A GQ 0 THEN              # DON'T DO NEGATIVE #
00340  M01S00330.fseform +++|    BEGIN
00341  M01S00331.fseform +++|    GETNUM(A,10);             # S2=WIDTH-1        #
00342  M01S00332.fseform +++|    S3 = N - S2 - 3;          # S3=PAD WIDTH-1    #
00343  M01S00333.fseform +++|    S4 = C;                   # PAD CHARACTER     #
00344  M01S00334.fseform +++|    FOR S3=S3 STEP -1 UNTIL 0 DO TTCHL(S4);       # WRITE PADDING #
00345  M01S00335.fseform +++|    PUTNUM;                   # WRITE NUMBER      #
00346  M01S00336.fseform +++|    END
00347  M01S00337.fseform +++|  IOEND
00348  M01S00338.fseform +++|
00349  M01S00339.fseform +++|
00350  M01S00340.fseform +++|
00351  M01S00341.fseform +++|END TERM
cdc/nos2.source/opl.opl871/deck/fseform.txt ยท Last modified: by 127.0.0.1