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