ibm:vm370-lib:cp:dmkfcb.assemble_src
Table of Contents
DMKFCB Source
References
- Fixes Applied : 1
- This Source Date : Thursday, December 7, 1978
- Last Fix ID : [R15080DK]
Source Listing
- DMKFCB.ASSEMBLE.txt
- 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
ibm/vm370-lib/cp/dmkfcb.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator