mirror of
https://github.com/moshix/mvs.git
synced 2026-05-03 06:48:53 +00:00
229 lines
7.1 KiB
Plaintext
229 lines
7.1 KiB
Plaintext
TITLE 'DEMOMVS - DEMO USE OF MVS SHELL TO SUPPORT MVS WTO'
|
||
*
|
||
* PGM-ID. DEMOMVS.ALC
|
||
* AUTHOR. DON HIGGINS
|
||
* DATE. 05/29/87
|
||
* REMARKS. THIS PROGRAM INVOKES MVS.MOD DYNAMICALLY LOADED SUBROUTINE
|
||
* TO ESTABLISH MVS SHELL AND THEN USES STANDARD MVS WTO AND
|
||
* WTOR SVC'S.
|
||
* MAINTENANCE.
|
||
*
|
||
* 05/30/87 CHANGE LOGIC FOR RETURN TO PC/370 SUPERVISOR STATE AT SVC 3
|
||
* 06/01/87 REMOVE PATH FOR MVS.MOD
|
||
* 06/02/87 ADD CHAINED CCW'S AND POINT ASSIST CHANNEL I/O TO CONSOLE
|
||
* 06/06/87 ADD DISPLAY OF TIMER RESULTS IN R1 VIA ABEND, ADD WTOR TEST
|
||
*
|
||
DEMOMVS CSECT
|
||
STM R14,R12,12(R13)
|
||
LR R12,R15
|
||
USING DEMOMVS,R12
|
||
LA R15,DEMOSAVE
|
||
ST R15,8(R13)
|
||
ST R13,4(R15)
|
||
LR R13,R15
|
||
LA R2,=C'DEMOMVS STARTED$'
|
||
SVC PCWTO
|
||
L R15,=V(PET)
|
||
BALR R14,R15 PRINT TIME AND DATE
|
||
LA R1,=C'MVS.MOD'
|
||
SVC PCLOAD
|
||
LTR R15,R15
|
||
BNZ ABEND
|
||
LR R15,R0
|
||
BALR R14,R15 IPL MVS AND RETRUN IN PROBLEM STATE
|
||
*
|
||
* TEST MVS WTO/WTOR SVC 35
|
||
*
|
||
BAL R1,WTO1
|
||
DC AL2(WTO1M-*,0),C'HELLO FROM MVS DEMO VIA WTO'
|
||
WTO1M EQU *
|
||
WTO1 DS 0H
|
||
SVC MVSWTO MVS WTO SVC 35
|
||
BAL R1,WTO2
|
||
DC AL2(WTO2M-*,0),C'HELLO AGAIN TO TEST SERIAL REUSE'
|
||
WTO2M EQU *
|
||
WTO2 DS 0H
|
||
SVC MVSWTO MVS WTO SVC 35
|
||
CNOP 0,4
|
||
WTORLOOP BAL R1,WTOR1
|
||
DC AL1(L'WTOR1RPY),AL3(WTOR1RPY),A(WTORECB)
|
||
DC AL2(WTOR1M-*,0),C'ENTER WTOR REPLY TO ECHO, END TO STOP'
|
||
WTOR1M EQU *
|
||
WTOR1 DS 0H
|
||
SVC MVSWTOR MVS WTOR SVC 35
|
||
LA R3,20
|
||
WTOLOOP EQU * WTO SCREEN OF MSGS WHILE WAITING
|
||
BAL R1,WTO2A
|
||
DC AL2(WTO2AM-*,0),C'FILL SCREEN WHILE WTOR OUTSTANDING'
|
||
WTO2AM EQU *
|
||
WTO2A DS 0H
|
||
SVC MVSWTO MVS WTO SVC 35
|
||
BCT R3,WTOLOOP
|
||
LA R1,WTORECB
|
||
SVC MVSWAIT
|
||
CLC WTOR1RPY,=C'END'
|
||
BE WTOREND
|
||
BAL R1,WTO3
|
||
DC AL2(WTO3M-*,0),C'REPLY WAS '
|
||
WTOR1RPY DC C'XXX'
|
||
WTO3M EQU *
|
||
WTO3 DS 0H
|
||
SVC MVSWTO MVS WTO SVC 35
|
||
B WTORLOOP
|
||
WTORECB DC F'0'
|
||
WTOREND EQU *
|
||
*
|
||
* TEST MVS GMAINR/FMAINR SVC 10
|
||
*
|
||
BAL R1,WTO4
|
||
DC AL2(WTO4M-*,0),C'TEST MVS GETMAIN/FREEMAIN STARTING'
|
||
WTO4M EQU *
|
||
WTO4 DS 0H
|
||
SVC MVSWTO MVS WTO SVC 35
|
||
LA R4,X'104'
|
||
USING ASCB,R4
|
||
L R2,ASCASF SAVE FQE PTR FOR CHECK
|
||
LA R0,16
|
||
LCR R1,R0 R1 = NEG. FOR GMAIN
|
||
SVC MVSGMAIN MVS GETMAIN SVC 10
|
||
CLR R1,R2
|
||
BNE ERR DID WE GET FIRST 16
|
||
LA R3,16(R2)
|
||
CL R3,ASCASF DOES FQE NOT POINT TO REMAINING
|
||
BNE ERR
|
||
SVC MVSFMAIN MVS FREEMAIN SVC 10
|
||
CL R2,ASCASF IS FQE BACK TO ORIG.
|
||
BNE ERR
|
||
*
|
||
* TEST MVS ABEND SVC 13 WITH/WITHOUT FORMATTTED DUMP OPTION
|
||
*
|
||
BAL R1,WTO5
|
||
DC AL2(WTO5M-*,0),C'TEST MVS ABEND WITHOUT/WITH DUMP'
|
||
WTO5M EQU *
|
||
WTO5 DS 0H
|
||
SVC MVSWTO MVS WTO SVC 35
|
||
L R1,=X'00122000' SYSTEM ABEND 122
|
||
SVC MVSABEND
|
||
L R1,=X'80000333' USER ABEND 333 WITH DUMP
|
||
SVC MVSABEND
|
||
*
|
||
* TEST MVS TIMER SVC 11
|
||
*
|
||
BAL R1,WTO6
|
||
DC AL2(WTO6M-*,0),C'TEST TIMER R1=0.01 SEC/HHMMSSTH'
|
||
WTO6M EQU *
|
||
WTO6 DS 0H
|
||
SVC MVSWTO MVS WTO SVC 35
|
||
LA R1,X'01' REQ. TOD IN 0.01 SEC
|
||
SVC MVSTIME MVS TIME SVC 11
|
||
LR R1,R0
|
||
SVC MVSABEND USE ABEND TO DISPLAY R1 0.01 SEC TIME
|
||
LA R1,X'02'
|
||
SVC MVSTIME
|
||
LR R1,R0
|
||
SVC MVSABEND USE ABEND TO DISPLAY R1 PACKED HHMMSSTH
|
||
*
|
||
* TEST MACRO CODE FOR SIO (INS0156.MOD) TO SIMULATE CHANNEL TO X'01F' CONSOLE
|
||
*
|
||
BAL R1,WTO7
|
||
DC AL2(WTO7M-*,0),C'TEST MVS SIO SIMULATOR STARTING'
|
||
WTO7M EQU *
|
||
WTO7 DS 0H
|
||
SVC MVSWTO MVS WTO SVC 35
|
||
XFILI =C'CON:' REDIRECT ASSIST (SIMULATED CHANNEL I/O) TO CON:
|
||
XFILO =C'CON:'
|
||
LA R0,SIOCCW1
|
||
ST R0,CAW
|
||
SIO X'01F'
|
||
CLC CSW+4(4),=X'0D000050' CE,DE,UE, NO DATA READ AT EOF
|
||
BNE ERR
|
||
LA R0,SIOCCW2
|
||
ST R0,CAW
|
||
SIO X'01F'
|
||
CLC CSW+4(4),=X'0C000000' CE,DE, 0 RESID.
|
||
BNE ERR
|
||
*
|
||
* EXIT MVS MODE TO SUPR. STATE AND EXIT PC/370 TO MS-DOS
|
||
*
|
||
SVC MVSEXIT RETRUN TO SUPR. STATE
|
||
LA R2,=C'END OF DEMOMVS$'
|
||
SVC PCWTO
|
||
L R13,4(R13) RESTORE SAVE
|
||
LM R14,R12,12(R13) RESTORE REGS
|
||
BR R14 EXIT TO PC/370 DETACH SVC
|
||
ABEND EQU * MVS EXIT SVC
|
||
SVC MVSEXIT RETURN TO SUPR. STATE
|
||
SVC PCTRACE
|
||
DC C'106'
|
||
SVC PCTRACE
|
||
DC C'BUG'
|
||
B ABEND
|
||
ERR EQU *
|
||
SVC MVSEXIT RETURN TO SUPR. STATE
|
||
SVC PCTRACE
|
||
DC C'800'
|
||
SVC PCTRACE
|
||
DC C'BUG'
|
||
B ERR
|
||
SIOCCW1 CCW CCWRITE,SIOMSG1,X'40',L'SIOMSG1 HELLO
|
||
SIOCCW1L CCW CCWRITE,SIOMSG2,X'40',L'SIOMSG2 ENTER TEXT TO ECHO
|
||
CCW CCREAD,SIOREAD,X'40',L'SIOREAD READ TEXT
|
||
CCW CCWRITE,SIOREAD-1,X'40',L'SIOREAD+1 ECHO TEXT
|
||
CCW CCTIC,SIOCCW1L,X'00',0
|
||
SIOCCW2 CCW CCWRITE,SIOMSG3,X'00',L'SIOMSG3 THATS ALL
|
||
SIOMSG1 DC C' HELLO FROM SIO CCW READ/WRITE LOOP'
|
||
SIOMSG2 DC C' ENTER TEXT TO ECHO OR ESC TO END'
|
||
SIOMSG3 DC C' DEVICE END DETECTED'
|
||
DC C' ' CARRIAGE CONTROL FOR WRITE CCW
|
||
SIOREAD DC CL80' '
|
||
DEMOSAVE DC 18F'0'
|
||
R0 EQU 0
|
||
R1 EQU 1
|
||
R2 EQU 2
|
||
R3 EQU 3
|
||
R4 EQU 4
|
||
R12 EQU 12
|
||
R13 EQU 13
|
||
R14 EQU 14
|
||
R15 EQU 15
|
||
PCTRACE EQU 9 PC/370 TRACE
|
||
PCLOAD EQU 25 PC/370 LOAD MODULE
|
||
PCWTO EQU 200+9 PC/370 WTO VIA MS-DOS SVC 9
|
||
MVSWAIT EQU 1 MVS WAIT FOR ECB POST VIA EXT. INT.
|
||
MVSPOST EQU 2 MVS POST ECB
|
||
MVSEXIT EQU 3 MVS EXIT TO PC/370 SUPERVISOR STATE
|
||
MVSGMAIN EQU 10 MVS GETMAIN
|
||
MVSFMAIN EQU 10 MVS FREEMAIN
|
||
MVSTIME EQU 11 MVS TIME OF DAY IN R0
|
||
MVSABEND EQU 13 MVS ABEND WITH CMP CODE IN R1
|
||
MVSWTO EQU 35 MVS WTO
|
||
MVSWTOR EQU 35 MVS WTOR
|
||
CSW EQU X'40' CHANNEL STATUS WORD
|
||
CAW EQU X'48' CHANNEL ADDRESS WORD
|
||
CCWRITE EQU X'01' WRITE DATA FROM MEMORY TO CHANNEL
|
||
CCREAD EQU X'02' READ DATA FROM CHANNEL TO MEMORY
|
||
CCTIC EQU X'08' TRANSFER IN CHANNEL TO NEW CCW
|
||
*********************************************************************
|
||
*
|
||
* ASCB - ADDRESS SPACE CONTROL BLOCK FOR PC/370 RELEASE 2.0+
|
||
*
|
||
*********************************************************************
|
||
*
|
||
* THIS CONTROL BLOCK IS INITIALIZED BY THE PC/370 EMULATOR AT EXECUTION
|
||
* TIME FOR THE MAIN PROGRAM COM FILE AND IS LOCATED AT VIRTUAL MEMORY
|
||
* ADDRESS X'104'. THIS CONTROL BLOCK IS ALSO CREATED FOR EACH ATTACHED
|
||
* COM PROGRAM ADDRESS SPACE DURING ATTACH SVC 26 EXECUTION (SEE SVC.DOC).
|
||
*
|
||
*********************************************************************
|
||
ASCB DSECT
|
||
ASCIDR DS CL4 ASCB IDENTIFIER C'ASCB'
|
||
ASCNXT DS A ABSOLUTE ADDRESS OF NEXT DAUGHTER TASK ASCB
|
||
ASCPRV DS A ABSOLUTE ADDRESS OF PREVIOUS MOTHER TASK ASCB
|
||
ASCASO DS A ABSOLUTE ADDRESS OF ADDRESS SPACE ORIGIN
|
||
ASCASL DS F LENGTH OF ADDRESS SPACE (USED FOR ADDRESS PROTECTION)
|
||
ASCASF DS A RELATIVE ADDRESS OF FIRST FREE QUEUE ELEMENT (FQE)
|
||
ASCENT DS A RELATIVE ADDRESS OF ENTRY POINT (FROM COM PREFIX)
|
||
ASCEXT DS A RELATIVE ADDRESS OF RETURN IN MOTHER TASK ASCB
|
||
LASCB EQU *-ASCB
|
||
END DEMOMVS
|
||
|