FCB TITLE 'DMKFCB (CP) VM/370 - RELEASE 6' 00001000
SPACE 3 00002000
MACRO 00003000
FCB &NAME,&SPACE,&LENGTH,&LINE,&INDEX 00004000
GBLA &SW 00005000
LCLA &LN,&LEN,&A,&CNT,&X,&Y,&B,&D @VA15080 00006100
LCLC &XX,&YY,&C @VA15080 00006200
SPACE 2 00008000
*********************************************************************** 00009000
* FCB FCB-NAME,SPACING,LENGTH,(LINE,CHANNEL...),INDEX * 00010000
*********************************************************************** 00011000
SPACE 2 00012000
AIF (K'&NAME GT 4).ERR0 NAME TO LONG 00013000
AIF ('&NAME' EQ '').ERR5 NAME MISSING 00014000
AIF ('&LENGTH' LT '1').ERR1 LENGTH FIELD BLANK 00015000
AIF ('&LENGTH' GT '180').ERR1 LENGTH GREATER THAN 180 MAX 00016000
AIF ('&SW' EQ '1').ORG 1ST FCB MACRO ?? 00017000
&SW SETA 1 YES 00018000
AGO .NORG 00019000
.ORG ANOP 00020000
ORG *-8 ORG TO START OF ZERO RECORD 00021000
.NORG ANOP 00022000
FCB&NAME DS 0H 00023000
SPACE 00024000
DC CL4'&NAME' FCB BUFFER NAME 00025000
SPACE 00026000
DC AL2(NXT&NAME-FCB&NAME) DISPLACEMENT TO NEXT BUFFER HDR 00027000
DC AL2(END&NAME-DAT&NAME) LENGTH OF BUFFER DATA 00028000
DC XL2'00' FILLER 00029000
&Y SETA 0 00030000
&X SETA 0 00031000
AIF ('&INDEX' EQ '').P1 INDEX EQUAL BLANK 00032000
AIF ('&INDEX' LT '1').ERR6 INDEX LESS THAN ONE 00033000
AIF ('&INDEX' GT '31').ERR6 INDEX GREATER THAN 31 00034000
&X SETA 128 SET INDEX FLAG 00035000
&Y SETA &INDEX SET INDEX VALUE 00036000
.P1 ANOP 00037000
&CNT SETA &X+&Y INDEX VALUE PLUS FLAG 00038000
DC AL1(&CNT) INDEX VALUE 00039000
DC AL1(0) FILLER 00040000
SPACE 00041000
DAT&NAME EQU * 00042000
&CNT SETA N'&LINE NUMBER OF PARAMETERS 00043000
DC XL&LENGTH'00' ZERO BUFFER 00044000
AIF ('&SPACE' EQ '6').L6 6 LINES PER INCH 00045000
AIF ('&SPACE' EQ '8').L8 8 LINES PER INCH 00046000
AIF ('&SPACE' EQ '').L6 SPACE BLANK DEFAULT TO 6 LINES/INCH 00047000
MNOTE 12,'***SPACING -&SPACE- INVALID. 6,8 OR OMITTED' 00048000
AGO .END 00049000
.L6 ANOP 00050000
&LN SETA 0 00051000
AGO .TSTCOL 00052000
.L8 ANOP 00053000
&LN SETA 16 6 LINES/INCH 00054000
.TSTCOL ANOP 00055000
&A SETA 1 00056000
&LEN SETA 16 SET UP END OF FORMS VALUE (BIT 3) 00057000
&D SETA 0 @VA15080 00057100
.LOOP ANOP 00058000
AIF ('&A' GT '&CNT').LAST LAST LINE 00059000
&XX SETC '&LINE(&A)' GET LINE NUMBER 00060000
AIF ('&A' EQ '&CNT').ERR3 ODD NUMBER OF LINE,VALUE 00061000
AIF ('&XX' GT '&LENGTH').ERR4 LINE VALUE TO LARGE 00062000
AIF ('&XX' LT '1').ERR4 LINE VALUE LESS THAN 1 00063000
&X SETA &LINE(&A) SET LINE NUMBER 00064000
&B SETA &A+2 NEXT LINE VALUE INDEX @VA15080 00064050
.DUP ANOP 00064100
AIF (&D EQ 1).CONT2 ALREADY GAVE ERR7 MNOTE @VA15080 00064150
AIF (&B GT &CNT).CONT2 PAST LAST LINE VALUE @VA15080 00064200
&C SETC '&LINE(&B)' NEXT LINE VALUE @VA15080 00064250
AIF (&XX EQ &C).SETFLG FOUND DUP @VA15080 00064300
&B SETA &B+2 INDEX TO NEXT LINE VALUE @VA15080 00064350
AGO .DUP @VA15080 00064400
.SETFLG ANOP 00064450
&D SETA 1 INDICATE DUP LINE FOUND @VA15080 00064500
AGO .ERR7 GIVE INFORMATIONAL MNOTE @VA15080 00064550
.CONT2 ANOP 00064600
&A SETA &A+1 00065000
&YY SETC '&LINE(&A)' GET CHANNEL VALUE 00066000
AIF ('&YY' GT '12').ERR2 CHANNEL VALUE INVALID 00067000
AIF ('&YY' LT '1').ERR2 MUST BE ALPH 00068000
&Y SETA &LINE(&A) GET CHANNEL VALUE 00069000
&A SETA &A+1 SET UP TO NEXT PARAMETER 00070000
AIF ('&X' NE '1').CONT IF NOT COL 1 GO TO .CONT 00071000
&LN SETA &LN+&Y SET UP VALUE FOR COL ONE 00072000
AGO .LOOP NEXT 00073000
.CONT ANOP 00074000
AIF ('&X' NE '&LENGTH').CONT1 IS IT LAST COLUMN 00075000
&LEN SETA 16+&Y SET UP END OF FORMS @VA15080 00076100
* @VA15080 00076200
AGO .LOOP NEXT 00077000
.CONT1 ANOP 00078000
SPACE 00079000
ORG DAT&NAME+&X-1 PRINT LINE NUMBER. 00080000
DC AL1(&Y) CHANNEL VALUE. 00081000
AGO .LOOP NEXT 00082000
.LAST ANOP 00083000
SPACE 00084000
ORG DAT&NAME PRINT LINE ONE 00085000
DC AL1(&LN) CHANNEL VALUE PLUS 6 OR 8 LINE VALUE 00086000
* BIT 3 ZERO FOR 6 LINES PER INCH 00087000
* BIT 3 ONE FOR 8 LINES PER INCH 00088000
SPACE 00089000
ORG DAT&NAME+&LENGTH-1 LAST PRINT LINE 00090000
DC AL1(&LEN) CHANNEL VALUE INCLUDING END OF 00091000
* FORMS BIT (3) 00092000
SPACE 00093000
END&NAME EQU * END OF BUFFER DATA 00094000
SPACE 2 00095000
NXT&NAME DS 0H NEXT HEADER STARTS HERE 00096000
SPACE 00097000
DC XL8'00' ZERO HEADER RECORD 00098000
AGO .END 00099000
.ERR0 ANOP 00100000
SPACE 3 00101000
MNOTE 12,'***FCB NAME -&NAME- TOO LONG. 4 IS MAX.' 00102000
AGO .END 00103000
.ERR1 ANOP 00104000
SPACE 00105000
MNOTE 12,'***LENGTH -&LENGTH- NOT 1 TO 180' 00106000
AGO .END 00107000
.ERR2 ANOP 00108000
SPACE 3 00109000
MNOTE 12,'***CHANNEL -&YY- NOT 1 TO 12' 00110000
AGO .END 00111000
.ERR3 ANOP 00112000
SPACE 3 00113000
MNOTE 12,'***CHANNEL VALUE MISSING. LINE-&XX-' 00114000
AGO .END 00115000
.ERR4 ANOP 00116000
SPACE 3 00117000
MNOTE 12,'***LINE -&XX- NOT 1 TO &LENGTH' 00118000
AGO .END 00119000
.ERR5 ANOP 00120000
SPACE 3 00121000
MNOTE 12,'***FCB NAME MISSING' 00122000
AGO .END 00123000
.ERR6 ANOP 00124000
SPACE 3 00125000
MNOTE 12,'***INDEX -&INDEX- NOT 1 TO 31.' 00126000
&X SETA 0 00127000
SPACE 3 00128000
AGO .P1 00129000
.ERR7 ANOP 00129100
SPACE 3 00129200
MNOTE 2,'***SAME PRINT LINE SPECIFIED MORE THAN ONCE' @VA15080 00129300
AGO .CONT2 @VA15080 00129400
.END ANOP 00130000
SPACE 3 00131000
MEND 00132000
EJECT 00133000
*. 00134000
* 00135000
* MODULE NAME - 00136000
* 00137000
* DMKFCB 00138000
* 00139000
* FUNCTION - 00140000
* 00141000
* THIS MODULE CONTAINS THE FORMS CONTROL BUFFER LOAD IMAGES 00142000
* THAT ARE USED BY THE OPERATOR COMMAND 'LOADBUF' TO LOAD THE 00143000
* FORMS CONTROL BUFFER FOR THE 3211 PRINTER OR 3203 00144000
* PRINTER, AND THE COMMAND 'LOADVFCB' TO LOAD THE VIRTUAL 00145000
* FORMS CONTROL BUFFER IN THE VIRTUAL 3211 PRINTER OR 00146000
* VIRTUAL 3203 PRINTER. 00146100
* 00147000
* 00148000
* ATTRIBUTES - 00149000
* 00150000
* PAGEABLE, CALLED BY SVC 00151000
* 00152000
* 00153000
* 00154000
* NOTES - 00155000
* 1. THIS MODULE MUST START ON A PAGE BOUNDARY. 00156000
* 2. THIS MODULE CANNOT EXCEED A FULL PAGE IN SIZE. 00157000
* 3. ONE MACRO IS INCLUDED IN THIS MODULE TO ASSIST 00158000
* IN CREATING LOAD BUFFERS. 00159000
* 00160000
* 00161000
* 00162000
EJECT 00163000
********************** 00164000
* 00165000
* FCB MACRO 00166000
* 00167000
********************** 00168000
* 00169000
* 00170000
* THIS FCB MACRO IS USED TO CREATE A 3211 OR 3203 00171000
* FORMS CONTROL BUFFER LOAD IMAGE. 00172000
* 00173000
* 00174000
* +----+-----+-------------------------------------------------+ 00175000
* | | FCB | FCB-NAME,SPACING,LENGTH,(LINE,CHANNEL,...),INDEX| 00176000
* +----+-----+-------------------------------------------------+ 00177000
* 00178000
* 00179000
* FCB-NAME - 00180000
* 00181000
* ONE TO FOUR ALPHABETIC AND/OR NUMERIC CHARACTER NAME 00182000
* TO BE ASSIGNED TO THE BUFFER LOAD IMAGE. 00183000
* 00184000
* EXAMPLES - A11,1234,WXYZ,A,L 00185000
* 00186000
* 00187000
* SPACING - 00188000
* 00189000
* CARRIAGE SPACING - ENTER 6 FOR SIX LINES PER INCH 00190000
* OR 8 FOR EIGHT LINES PER INCH. DEFAULT IS 6 LINES 00191000
* PER INCH. IF THIS OPERAND IS OMITTED, COMMA 00192000
* MUST BE PRESENT. 00193000
* 00194000
* 00195000
* LENGTH - 00196000
* 00197000
* ENTER NUMBER (1 TO 180) OF PRINT LINES PER PAGE OR 00198000
* CARRIAGE TAPE. 00199000
* 00200000
* 00201000
* (LINE,CHANNEL,....) 00202000
* 00203000
* ENTER PRINT (LINE) NUMBER (1 TO THE VALUE OF LENGTH) AND 00204000
* (CHANNEL) VALUE (1 TO 12) FOR THAT PRINT LINE. 00205000
* 00206000
* EXAMPLE - 00207000
* (3,1,60,12) 00208000
* PRINT LINE 3 CHANNEL 1 00209000
* PRINT LINE 60 CHANNEL 12 00210000
* 00211000
* IF A LINE NUMBER IS ENTERED MORE THAN ONCE, THE LAST 00211100
* (LINE,CHANNEL) PAIR OF THE DUPLICATE LINE WILL BE INCLUDED IN 00211200
* THE BUFFER LOAD IMAGE, AND AN INFORMATIONAL MNOTE WILL BE 00211300
* ISSUED. 00211400
* 00212000
* INDEX - 00213000
* 00214000
* ENTER 1 TO 31. THE VALUE IS THE NUMBER OF THE PRINT POSITION 00215000
* THAT IS THE FIRST PRINTED POSITION. 00216000
* 00217000
* EXAMPLE - 00218000
* 00219000
* 20 00220000
* PRINTING STARTS IN PRINTER POSITION 20 00221000
*. 00222000
EJECT 00223000
SPACE 3 00224000
COPY OPTIONS 00225000
EJECT 00226000
COPY LOCAL OPTIONS 00227000
PRINT DATA 00228000
EJECT 00229000
DMKFCB CSECT 00230000
SPACE 3 00231000
DC CL8'DMKFCB' MODULE NAME 00232000
SPACE 3 00233000
ENTRY DMKFCBLD 00234000
DMKFCBLD DS 0H 00235000
FCB FCB1,6,66,(1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,19,10, C00236000
21,11,23,12,64,9) 00237000
EJECT 00238000
END 00239000