* /* START OF SPECIFICATIONS **** 00050002 * 00100002 *01* MODULE-NAME = LDO 00150002 * 00200002 *01* DESCRIPTIVE-NAME = LOGICAL DEVICE ORDER 00250002 * 00300002 *01* COPYRIGHT = XXXX-XXX COPYRIGHT IBM CORP 1973 00350002 * 00400002 *01* STATUS = RELEASE 1 00450002 * 00500002 *01* FUNCTION = THE PURPOSE OF THIS MACRO IS TO BUILD A LOGICAL 00550002 * DEVICE ORDER CONTROL BLOCK 00600002 * 00650002 *01* NOTES = THE ACCESS METHOD ALLOWS FOR THE EXECUTION OF A SERIES 00700002 * OF LDOS AS A SINGLE REQUEST. EACH LDO IS CREATED BY AN LDO MACRO 00750002 * INSTRUCTION AND THE DO MACRO IS USED TO EXECUTE THE SERIES OF LDO 00800002 * (USING JUMP LDO) OR THE SINGLE LDO 00850002 * 00900002 *02* CHARACTER-CODE-DEPENDENCIES = NONE 00950002 *02* DEPENDENCIES = NONE 01000002 *02* RESTRICTIONS = NONE 01050002 *02* REGISTER-CONVENTIONS = NONE 01100002 *02* PATCH-LABEL = NONE 01150002 *01* MODULE-TYPE = MACRO 01200002 * 01250002 *02* PROCESSOR = ASSEM-370R 01300002 * 01350002 *02* MACRO-SIZE = RES: CHOOSE: (9) STATEMENTS, 01400002 * COMMENTS: ENTER SIZE WHEN MACRO HAS BEEN CODED; 01450002 * 01500002 *02* ATTRIBUTES = LIST-EXEC 01550002 * 01600002 *01* ENTRY-POINT = NA 01650002 * 01700002 *01* EXIT-NORMAL = NA 01750002 * 01800002 *01* EXIT-ERROR = NA 01850002 * 01900002 *01* EXTERNAL-REFERENCES = NONE 01950002 *01* TABLES = NONE 02000002 *01* INNER-MACROS = NONE 02050002 *01* SYSTEM-MACROS = NONE 02100002 *01* CHANGE-ACTIVITY = DCRS=1H0262 , K1938 02150002 * 02200002 **** END OF SPECIFICATIONS ***/ 02250002 */*LDO: CHART (AMODE) */ 02350002 */* HEADING 02400002 */* LEVEL 4 LDO MACRO 02450002 */* PAGE # */ 02500002 */* FOOTING 02550002 */* DCR'S APPLIED: 1938,1858 AUGUST 13, 1973 02600002 */**/ 02610002 */*LDO: E LDO MACRO */ 02650002 */* N LDO &CMD=, &FLAGS=, &ADDR=, &LENGTH= */ 02700002 */* M DEFINE &C, &F, &L, &A USED TO BUILD LDO */ 02750002 */* D (N,,Y,%X00) &CMD ='' */ 02800002 */* D (N,,Y,%X02) &CMD =READ */ 02850002 */* D (N,,Y,%XF2) &CMD =SOLICIT */ 02900002 */* D (N,,Y,%X05) &CMD =WRITE */ 02950002 */* D (N,,Y,%X09) &CMD =WRITELBM */ 03000002 */* D (N,,Y,%X0D) &CMD =WRITELBT */ 03050002 */* D (N,,Y,%X1D) &CMD =ERASET */ 03100002 */* D (N,,Y,%X11) &CMD =EAU */ 03150002 */* D (N,,Y,%X0B) &CMD =RESETL */ 03200002 */* D (N,,Y,%X26) &CMD =RESETO */ 03250002 */* D (N,,Y,%X1B) &CMD =RESETC */ 03300002 */* D (N,,Y,%X08) &CMD =JUMP */ 03350002 */* D (N,,Y,%X2D) &CMD =COPYT */ 03400002 */* D (N,,Y,%X16) &CMD =READBUF */ 03450002 */* D (N,,Y,%X12) &CMD =READMOD */ 03500002 */* D (N,,Y,%X7F) &CMD =WRTPR */ 03550002 */* D (N,,Y,%X2F) &CMD =WRTNR */ 03600002 */* D (N,,Y,%X3F) &CMD =WRTAR */ 03650002 */* D (N,,Y,%X1F) &CMD =WRTRVI */ 03700002 */* D (N,,Y,%X5F) &CMD =WRTPRLG */ 03750002 */* D (N,,Y,%X6F) &CMD =WRTNLRG */ 03800002 */* D (N,,Y,%X29) &CMD =COPYM */ 03950002 */* D (N,,Y,%X19) &CMD =ERASEMSG */ 04000002 */* D (N,,Y,%X0F) &CMD =WRTHDR */ 04050002 */* D (N,,Y,%X03) &CMD = CONTACT */ 04100002 */* D (N,,Y,%X23) &CMD = DISCNECT */ 04150002 */* P PRINT &CMD VALUE ERROR */ 04200002 */*%X00: P (,%A00) SET &C= X'00' */ 04250002 */*%X11: P (,%A00) SET &C= X'11' */ 04260002 */*%X02: P (,%A00) SET &C= X'02' */ 04300002 */*%X03: P (,%A00) SET &C= X'03' */ 04310002 */*%XF2: P (,%A00) SET &C= X'F2' */ 04350002 */*%X05: P (,%A00) SET &C= X'05' */ 04400002 */*%X09: P (,%A00) SET &C= X'09' */ 04450002 */*%X0D: P (,%A00) SET &C= X'0D' */ 04500002 */*%X1D: P (,%A00) SET &C= X'1D' */ 04550002 */*%X0B: P (,%A00) SET &C= X'0B' */ 04600002 */*%X23: P (,%A00) SET &C= X'23' */ 04610002 */*%X26: P (,%A00) SET &C= X'26' */ 04650002 */*%X1B: P (,%A00) SET &C= X'1B' */ 04700002 */*%X08: P (,%A00) SET &C= X'08' */ 04750002 */*%X2D: P (,%A00) SET &C= X'2D' */ 04800002 */*%X16: P (,%A00) SET &C= X'16' */ 04850002 */*%X12: P (,%A00) SET &C= X'12' */ 04900002 */*%X7F: P (,%A00) SET &C= X'7F' */ 04950002 */*%X2F: P (,%A00) SET &C= X'2F' */ 05000002 */*%X3F: P (,%A00) SET &C= X'3F' */ 05050002 */*%X1F: P (,%A00) SET &C= X'1F' */ 05100002 */*%X5F: P (,%A00) SET &C= X'5F' */ 05150002 */*%X6F: P (,%A00) SET &C= X'6F' */ 05200002 */*%X29: P (,%A00) SET &C= X'29' */ 05350002 */*%X19: P (,%A00) SET &C= X'19' */ 05400002 */*%X0F: P (,%A00) SET &C= X'0F' */ 05500002 */*%A00: D (N,,Y,%F00) &FLG='' */ 05650002 */* D (N,,Y,.FLGC) &FLAGS = C */ 05700002 */* D (N,,Y,.FLGD) &FLAGS = D */ 05750002 */* P &F = X'00' */ 05800002 */* P GENERATE MNOTE FOR &FLAGS ERROR */ 05850002 */*.LDO4: P SET &L=&LENGTH */ 05950002 */*.LDO7: P SET &A=&ADDR */ 06000002 */* P GENERATE DC TO CONCATENATE &C,&F,&L,&A 06050002 */**/ 06100002 */*%EXIT: R EXIT */ 06150002 */*%F00: P (,.LDO4) SET &F=X'00' */ 06300002 */*.FLGC: P (,.LDO4) SET &F = X'40' */ 06350002 */*.FLGD: P (,.LDO4) SET &F = X'80' */ 06400002 */*LDO: END */ 06450002 MACRO 06500002 &LBL LDO &CMD=,&FLAGS=,&ADDR=,&LEN= 06550002 LCLA &TEST 06600002 LCLC &C,&F,&A,&L 06650002 AIF ('&CMD' EQ '').LDO02C3 06700002 AIF ('&CMD' NE 'READ').LDO01X1 06750002 &C SETC '02' 06800002 AGO .LDO02D3 06850002 .LDO01X1 AIF ('&CMD' NE 'CONTACT').LDO01X2 06860002 &C SETC '03' 06870002 AGO .LDO02D3 06880002 .LDO01X2 AIF ('&CMD' NE 'DISCONCT').LDO01F1 06890002 &C SETC '23' 06892002 AGO .LDO02D3 06894002 .LDO01F1 AIF ('&CMD' NE 'SOLICIT').LDO01G1 06900002 &C SETC 'F2' 06950002 AGO .LDO02D3 07000002 .LDO01G1 AIF ('&CMD' NE 'WRITE').LDO01H1 07050002 &C SETC '05' 07100002 AGO .LDO02D3 07150002 .LDO01H1 AIF ('&CMD' NE 'WRITELBM').LDO01J1 07200002 &C SETC '09' 07250002 AGO .LDO02D3 07300002 .LDO01J1 AIF ('&CMD' NE 'WRITELBT').LDO01K1 07350002 &C SETC '0D' 07400002 AGO .LDO02D3 07450002 .LDO01K1 AIF ('&CMD' NE 'ERASELBT').LDO01A3 07500002 &C SETC '1D' 07550002 AGO .LDO02D3 07600002 .LDO01A3 AIF ('&CMD' NE 'EAU').LDO01B3 07650002 &C SETC '11' 07700002 AGO .LDO02D3 07750002 .LDO01B3 AIF ('&CMD' NE 'RESETL').LDO01C3 07800002 &C SETC '0B' 07850002 AGO .LDO02D3 07900002 .LDO01C3 AIF ('&CMD' NE 'RESETU').LDO01D3 07950002 &C SETC '2B' 08000002 AGO .LDO02D3 08050002 .LDO01D3 AIF ('&CMD' NE 'RESETC').LDO01E3 08100002 &C SETC '1B' 08150002 AGO .LDO02D3 08200002 .LDO01E3 AIF ('&CMD' NE 'JUMP').LDO01F3 08250002 &C SETC '08' 08300002 AGO .LDO02D3 08350002 .LDO01F3 AIF ('&CMD' NE 'COPYLBT').LDO01G3 08400002 &C SETC '2D' 08450002 AGO .LDO02D3 08500002 .LDO01G3 AIF ('&CMD' NE 'READBUF').LDO01H3 08550002 &C SETC '16' 08600002 AGO .LDO02D3 08650002 .LDO01H3 AIF ('&CMD' NE 'READMOD').LDO01J3 08700002 &C SETC '12' 08750002 AGO .LDO02D3 08800002 .LDO01J3 AIF ('&CMD' NE 'WRTPR').LDO01K3 08850002 &C SETC '7F' 08900002 AGO .LDO02D3 08950002 .LDO01K3 AIF ('&CMD' NE 'WRTNR').LDO02A1 09000002 &C SETC '2F' 09050002 AGO .LDO02D3 09100002 .LDO02A1 AIF ('&CMD' NE 'WRTAR').LDO02B1 09150002 &C SETC '3F' 09200002 AGO .LDO02D3 09250002 .LDO02B1 AIF ('&CMD' NE 'WRTRVI').LDO02C1 09300002 &C SETC '1F' 09350002 AGO .LDO02D3 09400002 .LDO02C1 AIF ('&CMD' NE 'WRTPRLG').LDO02D1 09450002 &C SETC '5F' 09500002 AGO .LDO02D3 09550002 .LDO02D1 AIF ('&CMD' NE 'WRTNRLG').LDO02E1 09600002 &C SETC '6F' 09650002 AGO .LDO02D3 09700002 .LDO02E1 AIF ('&CMD' NE 'COPYLBM').LDO02H1 09750002 &C SETC '29' 09800002 AGO .LDO02D3 09850002 .LDO02H1 AIF ('&CMD' NE 'ERASELBM').LDO02J1 09900002 &C SETC '19' 09950002 AGO .LDO02D3 10000002 .LDO02J1 AIF ('&CMD' NE 'WRTHDR').LDO02K1 10050002 &C SETC '0F' 10100002 AGO .LDO02D3 10150002 .LDO02K1 ANOP 10200002 .LDO02B3 MNOTE 4,'VALUE ERROR CMD=&CMD' 10250002 .LDO02C3 ANOP 10300002 &C SETC '00' 10350002 .LDO02D3 AIF ('&FLAGS' NE '').LDO02E3 10400002 &F SETC '00' 10450002 AGO .LDO02J3 10500002 .LDO02E3 AIF ('&FLAGS' NE 'C').LDO02F3 10550002 &F SETC '40' 10600002 AGO .LDO02J3 10650002 .LDO02F3 AIF ('&FLAGS' NE 'D').LDO02G3 10700002 &F SETC '80' 10750002 AGO .LDO02J3 10800002 .LDO02G3 ANOP 10850002 &F SETC '00' 10900002 MNOTE 4,'VALUE ERROR FOR FLAGS=&FLAGS' 10950002 .LDO02J3 ANOP 11000002 &L SETC '&LEN' 11050002 AIF ('&LEN' NE '').LDO07A 11100002 &L SETC '0' 11150002 .LDO07A ANOP 11200002 &A SETC '&ADDR' 11500002 AIF ('&A' NE '').LDO07B 11550002 &A SETC '0' 11600002 .LDO07B ANOP 11650002 &LBL DC X'&C',X'&F',AL2(&L),AL4(&A) 11700002 MEND 11750002