home *** CD-ROM | disk | FTP | other *** search
- TITLE 'INS0156 - PC/370 MVS SIO TYPE 4 MACRO INSTRUCTION'
- * PGMID. INS0156.ALC (LINKED AS INS0156.MOD)
- * AUTHOR. DON HIGGINS.
- * DATE. 05/31/87
- * REMARKS. PC/370 MVS SIO (START I/O) TYPE 4 MACRO INSTRUCTION TO
- * SUPPORT SIMULATED CAHNNEL PROGRAMS TO CONSOLE X'01F'
- * MAINTENANCE.
- *
- * 06/02/87 ADD TIC AND DEVICE END LOGIC
- * 06/06/87 ADD CR,LF AFTER READ
- *
- INS0156 CSECT
- USING *,R6
- L R3,OLDPGM+4
- CLC 0(4,R3),=X'9C00001F' IF NOT EXPLICIT X'01F'
- BNE NOTOPER SET CC=3 = NOT OPERATIONAL
- L R3,CAW
- CCWEXEC EQU * EXEC CCW AT R3
- CLI 0(R3),CCREAD
- BE INSREAD
- CLI 0(R3),CCWRITE
- BE INSWRITE
- CLI 0(R3),CCTIC
- BE INSTIC
- CCWERR EQU * CCW INVALID OP CODE
- MVC CSW+4,=X'0C20' CE, DE, PGM CHECK
- LH R0,6(R3)
- STH R0,CSW+6 CCW RESIDUAL COUNT
- B CSWSTOR
- INSREAD EQU * CCW READ VIA ASSIST XREAD
- L R4,0(R3)
- LH R5,6(R3)
- XREAD 0(R4),0(R5)
- LA R2,LF
- SVC WRITECHR FORCE LF,CR AFTER READ
- LA R2,CR
- SVC WRITECHR
- MVC CSW+4(4),=X'0C000000'
- BZ CCWNEXT
- MVC CSW+4(2),=X'0D00' CCW CE, DE, UNIT EXCEPTION
- LH R0,6(R3)
- STH R0,CSW+6
- B CSWSTOR
- INSWRITE EQU * CCW WRITE VIA ASSIST XPRNT
- L R4,0(R3)
- LH R5,6(R3)
- XPRNT 0(R4),0(R5)
- MVC CSW+4(4),=X'0C000000'
- B CCWNEXT
- INSTIC EQU * CCW TRANSFER TO CCW
- L R3,0(R3)
- B CCWEXEC
- CCWNEXT EQU *
- TM 4(R3),X'40' IS CHAIN COMMAND ON
- BZ CSWSTOR NO, STORE CSW AND EXIT
- LA R3,8(R3) YES, GO TO NEXT CCW
- B CCWEXEC
- NOTOPER EQU *
- OI OLDPGM+2,X'30' SET CC=3
- B INSEXT
- CSWSTOR EQU *
- NI OLDPGM+2,X'CF' SET CC=0 STARTED
- OI OLDPGM+2,X'10' SET CC=1 CSW STORED
- ST R3,CSW CCW ADDRESS
- INSEXT EQU *
- L R15,OLDPGM+4
- LA R15,4(R15) SKIP OVER SIO INSTR.
- ST R15,OLDPGM+4
- SR R15,R15
- BR R14
- *
- * DATA
- *
- R0 EQU 0
- R1 EQU 1
- R2 EQU 2
- R3 EQU 3
- R4 EQU 4
- R5 EQU 5
- R6 EQU 6
- R14 EQU 14
- R15 EQU 15
- OLDPGM EQU X'28' OLD PGM PSW
- CSW EQU X'40' CHANNEL STATUS WORD
- CAW EQU X'48' CHANNEL ADDRESS WORD
- CCREAD EQU X'02' CCW READ
- CCWRITE EQU X'01' CCW WRITE
- CCTIC EQU X'08' CCW TIC
- WRITECHR EQU 200+2 WRITE CHR TO CONSOLE FROM R2
- CR EQU X'0D' ASCII CARRIAGE RETURN
- LF EQU X'0A' ASCII LINE FEED
- END