MACRO 00010000 &NAME @CARD &BUF,&DEV=X'00C',&GEN=NO 00020000 LCLC &NDX 00030000 &NDX SETC '&SYSNDX' 00040000 AIF ('&GEN' EQ 'YES').GEN 00050000 .* 00060000 &NAME @RGCK &BUF,REG=R1 00070000 LA R15,@CARD 00080000 BALR R14,R15 00090000 MEXIT , 00100000 .* 00110000 .* 00120000 .GEN ANOP , 00130000 @CARD STM R14,R12,12(R13) SAVE CALLERS REGISTERS 00140000 ST R1,@&NDX.90 SAVE BUFFER ADDR INTO CCW 00150000 MVI @&NDX.90,X'02' READ CARD 00160000 LA R2,80 DATA LENGTH 00170000 ST R2,@&NDX.90+4 SAVE INTO CCW 00180000 LA R2,@&NDX.90 POINT TO CCW 00190000 ST R2,72 SAVE INTO CAW 00200000 @RGCK &DEV,REG=R2 DEVICE ADDRESS 00210000 SIO 0(R2) START I/O 00220000 BNZ @&NDX.03 BRANCH IF ERROR 00230000 @&NDX.01 DS 0H 00240000 TIO 0(R2) WAIT FOR I/O TO COMPLETE 00250000 BZ @&NDX.02 COMPLETE 00260000 BC 1,@&NDX.03 ERROR 00270000 B @&NDX.01 00280000 * 00290000 @&NDX.02 DS 0H 00300000 LA R15,0 SET RC 00310000 CLC @&NDX.91,68 CHANNEL END + DEVICE END ? 00320000 BE @&NDX.04 YES - RC=0 00330000 LA R15,8 RC =8 00340000 B @&NDX.04 00350000 * 00360000 @&NDX.03 DS 0H 00370000 LA R15,8 00380000 @&NDX.04 DS 0H 00390000 L R14,12(,R13) RESTORE R14 00400000 LM R0,R12,20(R13) RESTORE R0-R12 00410000 BR R14 RETURN TO CALLER 00420000 * 00430000 DS 0D 00440000 @&NDX.90 DC X'00',AL3(0),X'00',X'00',AL2(0) CCW 00450000 @&NDX.91 DC X'0C00' CHANNEL END - DEVICE END 00460000 MEND , 00470000