MACRO 00001000 CMSCB 00002000 PUSH PRINT 00002200 AIF ('&SYSPARM' NE 'SUP').ACC01 00002400 PRINT OFF,NOGEN 00002600 .ACC01 ANOP 00002800 * 00003000 * SIMULATED OS CONTROL BLOCKS 00004000 * 00005000 FCBSECT DSECT 00006000 FCBINIT DS 0X - INTERESTING TIDBITS 00007000 FCBOPCB EQU X'08' - OPEN ACQUIRED THIS CMS BLOCK 00008000 FCBPERM EQU X'04' - PERMANENT CONTROL BLOCK 00009000 FCBBATCH EQU X'02' - SPECIAL BATCH DATA SET 00010000 FCBCATML EQU X'01' - CONCATENATED MACLIB DATA SET 00011000 FCBOS EQU X'10' FCB FOR OS FORMATTED DISK 00012000 FCBDOSL EQU X'20' CONCATENATED DOSLIB DATA SET 00012100 FCBNEXT DS A - AL3(NEXT CMSCB) 00013000 FCBPROC DS A - A(SPECIAL PROCESSING ROUTINE) 00014000 FCBDD DS CL8 - DATA DEFINITION NAME 00015000 FCBOP DS CL8 - CMS OPERATION 00016000 IHAJFCB DS 0D - *** JOB FILE CONTROL BLOCK *** 00017000 JFCBDSNM DS 0X - 44 BYTES, DATA SET NAME 00018000 FCBTAPID DS 0X - TAPE IDENTIFICATION 00019000 FCBDSNAM DS CL8 - DATA SET NAME 00020000 FCBDSTYP DS CL8 - DATA SET TYPE 00021000 FCBPRPU EQU FCBDSTYP+4 - PRINTER/PUNCH COMMAND LIST 00022000 FCBTBSP DS 0X 2 BYTES, TAPE BACKSPCE COUNT @VA04853 00022500 FCBDSMD DS CL2 - DATA SET MODE 00023000 FCBITEM DS H - ITEM IDENTIFICATION NUMBER 00024000 FCBBUFF DS F - A(INPUT-OUTPUT BUFFER) 00025000 FCBBYTE DS F - DATA COUNT 00026000 FCBFORM DS CL2 - FILE FORMAT: FIXED/VARIABLE RECORDS 00027000 FCBCOUT DS H - RECORDS PER CMS PHYSICAL BLOCK 00028000 FCBREAD DS F - N'BYTES ACTUALLY READ 00029000 FCBDEV DS X - DEVICE TYPE CODE 00030000 FCBDUM EQU 0 - DUMMY DEVICE 00031000 FCBPTR EQU 4 - PRINTER 00032000 FCBRDR EQU 8 - READER 00033000 FCBCON EQU 12 - CONSOLE TERMINAL 00034000 FCBTAP EQU 16 - TAPE 00035000 FCBDSK EQU 20 - DISK 00036000 FCBPCH EQU 24 - PUNCH 00037000 FCBCRT EQU 28 - CRT 00038000 FCBMODE DS X - MODE: 1,2,3,4,5 00039000 FCBXTENT DS H - NUMBER OF ITEMS IN EXTENT 00040000 FCBRECL DS H - DCB LRECL AT OPEN TIME 00041000 IOBIOFLG DS X - I/O FLAGS 00042000 FCBDCBCT DS X - NO. OF DCB'S USING THIS FCB 00043000 FCBMEMBR DS 2F OS PDS MEMBER NAME 00044000 FCBOSFST DS F POINTER TO OS FST 00045000 FCBOSDSN DS F POINTER TO OS DSNAME BLOCK 00046000 FCBR13 DS F - SAVEAREA VECTOR R13 00047000 FCBKEYS DS A - A(DDS IN'CORE KEY TABLE) 00048000 FCBPDS DS A - A(PDS IN-CORE DIRECTORY) 00049000 JFCBMASK DS 8X - VARIOUS MASK BITS 00050000 JFCBCRDT DS 3C - DATA SET CREATION DATE (YDD) 00051000 JFCBXPDT DS 3C - DATA SET EXPIRATION DATE (YDD) 00052000 JFCBIND1 DS X - INDICATOR ONE 00053000 JFCBIND2 DS X - INDICATOR TWO 00054000 JFCBUFNO DS X - NUMBER OF BUFFERS 00055000 JFCBFTEK DS 0X - BUFFERING TECHNIQUE 00056000 JFCBFALN DS X - BUFFER ALIGNMENT 00057000 JFCBUFL DS H - BUFFER LENGTH 00058000 JFCEROPT DS X - ERROR OPTION 00059000 JFCKEYLE DS X - KEYLENGTH 00060000 DS X - ---NOT USED--- 00061000 JFCLIMCT DS 3X - BDAM SEARCH LIMIT 00062000 FCBDSORG DS 0X - DATA SET ORGANIZATION 00063000 JFCDSORG DS 2X - 00064000 FCBRECFM DS 0X - RECORD FORMAT 00065000 JFCRECFM DS X - 00066000 JFCOPTCD DS X - OPTION CODES 00067000 FCBBLKSZ DS 0H - BLOCK SIZE 00068000 JFCBLKSI DS H - 00069000 FCBLRECL DS 0H - LOGICAL RECORD LENGTH 00070000 JFCLRECL DS H - 00071000 FCBIOSW DS X - I/O OPERATION INDICATOR 00072000 FCBCLOSE EQU X'80' - DURING "CLOSE" 00073000 FCBCLEAV EQU X'40' - DISP = LEAVE DURING CLOSE 00074000 FCBPROCC EQU X'20' - GOTO FCBPROC DURING CLOSE 00075000 FCBPROCO EQU X'10' - GOTO FCBPROC DURING OPEN 00076000 FCBCASE EQU X'08' - ON=LOWER CASE CONSOLE I/O 00077000 FCBPVMB EQU X'04' - PUT-MOVE-VAR-BLK 00078000 FCBIOWR EQU X'02' - WRITE/PUT 00079000 FCBIORD EQU X'01' - READ/GET 00080000 FCBIOSW2 DS 1X - I/O OPERATION INDICATORS 00081000 FCBMVPDS EQU X'01' - SW FOR MOVEFILE WITH PDS OPTION 00082000 FCBMMV EQU X'02' MOVE PDS SWITCH FOR FIND @VA03059 00082100 FCBMVFIL EQU X'08' MOVE FILE IS ACTIVE 00082200 DEBLNGTH DS 0X - L'DEB IN DBLW WORDS 00083000 FCBTCLOS EQU X'40' A CLOSE TYPE T WAS DONE @VA08024 00083500 DS F - ---NOT USED--- 00084000 IHADEB DS 0D - *** DATA EXTENT BLOCK *** 00085000 DEBTCBAD DS A - A(MOVE-MODE USER BUFFER) 00086000 SEBSAV DS F DYNAMIC SAVE FOR RET ADDR FOR @VM02691 00087000 * SEB (OS I/O SIM) 00087100 DEBOFLGS DS 4X - DATA SET STAUS FLAGS 00088000 DEBOPATB DS 4X - OPEN/CLOSE OPTION BYTE 00089000 IOBFLG DS 0X - (START OF IOBPREFIX FOR NORMAL SCH) 00090000 IOBBFLG EQU 0 - DISPLACEMENT OF IOB FLAG IN IOB 00091000 IOBOUT EQU X'40' - "WRITE,PUT" IN PROGRESS 00092000 IOBIN EQU X'20' - "READ,GET" IN PROGRESS 00093000 IOBUPD EQU X'10' - "QSAM PUTX" IN PROCESS 00094000 IOBNXTAD DS A - A(NEXT BUFFER TO BE USED) 00095000 IOBECB DS F - ECB FOR QSAM NORMAL SCHEDULING 00096000 IHAIOB DS 0F - *** INPUT/OUTPUT BLOCK *** 00097000 DEBDEBID DS 0X - DEB IDENTIFICATION 00098000 DEBDCBAD DS A - A(DATA CONTROL BLOCK) 00099000 IOBECBCC DS 0X - ECB COMPLETION CODE 00100000 IOBBECBC EQU 12 - DISPLACEMENT OF ECB CODE IN IOB 00101000 IOBBECBP EQU 12 - DISPLACEMENT OF ECB PTR IN IOB 00102000 IOBECBPT DS A - A(EVENT CONTROL BLOCK) 00103000 IOBFLAG3 DS 0X - I/O ERROR FLAG 00104000 IOBBCSW EQU 16 - DISPLACEMENT OF CSW IN IOB 00105000 IOBCSW DS 8X - LAST CCW STORED(I.E., RESIDUAL COUNT) 00106000 IOBSTART DS A - X'ID-NEXT BUFFER',AL3(INITIAL BUFFER) 00107000 IOBDCBPT DS A - A(DATA CONTROL BLOCK) 00108000 IOBEND DS 0X - END-OF-INPUT/OUTPUT BLOCK 00109000 FCBEND DS 0D - END-OF FCB,JFCB,DEB,IOB BLOCKS 00110000 FCBENSIZ EQU (*-FCBSECT)/8 - SIZE OF FCB ENTRY, DOUBLEWORDS 00111000 SPACE 3 00112000 ORG FCBDSTYP+4 00113000 FCBIOOUT DS CL8 - SPECIAL I/O COMMAND LIST 00114000 FCBIOBUF DS A - A(DATA BUFFER) 00115000 FCBCONCR DS C - CONSOLE COLOR CODE 00116000 FCBCONMS DS X - CONSOLE MISCELLANEOUS INFO 00117000 FCBIOCNT DS H - L'DATA BUFFER 00118000 SPACE 3 00119000 * 00120000 * DATA EVENT CONTROL BLOCK 00121000 * 00122000 IHADECB DSECT 00123000 DECSDECB DS F - EVENT CONTROL BLOCK 00124000 DECTYPE DS H - TYPE OF I/O REQUEST 00125000 DECBRD EQU X'80' - READ SF 00126000 DECBWR EQU X'20' - WRITE SF 00127000 DECLNGTH DS H - LENGTH OF KEY & DATA 00128000 DECDCBAD DS A - V(DATA CONTROL BLOCK) 00129000 DECAREA DS A - V(KEY & DATA, BUFFER) 00130000 DECIOBPT DS A - V(IOB) 00131000 * BDAM EXTENSION 00132000 DECKYADR DS A - V(KEY) 00133000 DECRECPT DS A - V(BLOCK REFERENCE FIELD) 00134000 SPACE 3 00135000 * 00136000 * SOME FREQUENTLY USED EQUATES 00137000 * 00138000 DDNAM EQU FCBDSTYP - FILETYPE = DATA SET NAME 00139000 BLK EQU X'10' - RECFM=BLOCKED RECORDS 00140000 BS EQU X'20' - MACRF=BSAM 00141000 DA EQU X'20' - DSORG=DIRECT ACCESS 00142000 FXD EQU X'80' - RECFM=FIXED LENGTH RECORDS 00143000 IS EQU X'80' - DSORG=INDEXED SEQUENTIAL 00144000 LOC EQU X'08' - MACRF=LOCATE MODE 00145000 MOV EQU X'10' - MACRF=MOVE MODE 00146000 PS EQU X'40' - DSORG=PHYSICAL SEQUENTIAL 00147000 POU EQU X'03' - DSORG=PARTITIONED UNMOVEABLE 00147500 PO EQU X'02' - DSORG=PARTIONED ORGANIZATION 00148000 PREVIOUS EQU X'80' - OFLGS=PREVIOUS I/O OPERATION 00149000 QS EQU X'40' - MACRF=QSAM 00150000 UND EQU X'C0' - RECFM=UNDEFIN FORMAT RECORDS 00151000 VAR EQU X'40' - RECFM=VARIABLE LENGTH RECORDS 00152000 EJECT 00153000 POP PRINT 00153100 MEND 00154000