mirror of
https://github.com/moshix/mvs.git
synced 2026-05-05 15:53:52 +00:00
93 lines
2.5 KiB
Plaintext
93 lines
2.5 KiB
Plaintext
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
|
||
|