MACRO 00001000 &LABEL PRINTL &BUFFER,&LENGTH,&ERROR=*+4 00002000 LCLA &CNT,&END,&PNT 00003000 LCLC &ADDR,&LEN 00004000 CNOP 0,4 00005000 &LABEL DS 0H 00006000 AIF (T'&BUFFER EQ 'O').ERR1 00007000 AIF ('&BUFFER'(1,1) EQ '(').REG1 00008000 AIF ('&BUFFER'(1,1) EQ '''').QUO1 00009000 &ADDR SETC '&BUFFER' 00010000 AGO .LEN1 00011000 .REG1 ANOP 00012000 &ADDR SETC '0' 00013000 ST &BUFFER(1),DMS&SYSNDX.A 00014000 AGO .LEN1 00015000 .QUO1 ANOP 00016000 &PNT SETA 2 00017000 &END SETA K'&BUFFER-2 00018000 AIF (&END LE 0).ERR2 00019000 .LOOP AIF (&PNT GT &END).QUO2 00020000 AIF ('&BUFFER'(&PNT,2) EQ '''''').DBLQ 00021000 &PNT SETA &PNT+1 00022000 AGO .LOOP 00023000 .DBLQ ANOP 00024000 &PNT SETA &PNT+2 00025000 &CNT SETA &CNT+1 00026000 AGO .LOOP 00027000 .QUO2 ANOP 00028000 &CNT SETA K'&BUFFER-&CNT-2 00029000 AIF (&CNT LE 0).ERR2 00030000 &LEN SETC '&CNT' 00031000 &ADDR SETC 'DMS&SYSNDX.C' 00032000 AGO .LEN2 00033000 .LEN1 ANOP 00034000 &LEN SETC '133' 00035000 .LEN2 ANOP 00036000 AIF (T'&LENGTH EQ 'O').BAL1 00037000 AIF ('&LENGTH'(1,1) EQ '(').REG2 00038000 &LEN SETC '&LENGTH' 00039000 AGO .BAL1 00040000 .REG2 ANOP 00041000 ST &LENGTH(1),DMS&SYSNDX.B 00042000 .BAL1 ANOP 00043000 BAL 1,DMS&SYSNDX.D 00044000 DC CL8'PRINTR' 00045000 DMS&SYSNDX.A DC AL4(&ADDR) 00046000 DMS&SYSNDX.B DC AL4(&LEN) 00047000 AIF ('&BUFFER'(1,1) NE '''').CONT 00048000 DMS&SYSNDX.C DC CL&LEN&BUFFER 00049000 .CONT ANOP 00050000 DMS&SYSNDX.D DS 0H 00051000 SVC 202 00052000 DC AL4(&ERROR) 00053000 MEXIT 00054000 .ERR1 MNOTE 8,'BUFFER ADDRESS NOT SPECIFIED' 00055000 MEXIT 00056000 .ERR2 MNOTE 8,'INVALID TEXT SPECIFICATION' 00057000 MEND 00058000