1
0
mirror of https://github.com/moshix/mvs.git synced 2026-02-03 14:52:54 +00:00
Files
moshix.mvs/PC370_orig/Diskette/full/MAC/SI500API.MLC

145 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
TITLE 'SI500API.ALC - SI SYSTEM LINK FROM CICS TO CADET VIA API'
*
* PGM-ID. SI500API.ALC
* AUTHOR. DON HIGGINS.
* DATE. 11/03/87
* REMAKRS. THIS IS A PC/370 ASSEMBLY LANGUAGE PROGRAM DESIGNED TO RUN
* ON A PC WITH PC 3270 EMULATION USING THE APPLICATION
* PROGRAM INTERFACE. THE PROGRAM SIMULATES 3270 TRANSACTIONS
* TO OBTAIN CICS APPLICTION SCREENS AND STORE THEM ON A PC
* DISK IN SEPARATE FILES FOR ACCESS BY PC NETWORK APPLICATIONS.
* REFERENCE. IBM PC 3270 EMULATION PROGRAM APPLICATION PROGRAM INTERFACE
* AND HOST REFERENCE, #SC23-0892.
* MAINTENANCE.
*
* 11/04/87 DSH 1.0 CHANGE FILE NAME TO CADET STD. WITH DRIVE AND DIR
* 11/05/87 DSH 1.0 CHANGE DRIVE TO N: AND TIME TO 180 SECONDS
* 11/10/87 DSH 1.0 ADD LOGIC TO STORE FILES IN TIME SEQUENCE AS WELL
* AS IN THE MOST CURRENT FILE.
* 12/29/87 DSH 1.1 ADD LOGIC TO ALSO WRITE TAAU SUMMARY SCREENS
* 12/30/87 DSH 1.1 ADD TAAU,ALL,CANCEL AFTER EACH TAAU,ALL,99
*
SI500API CSECT
USING *,R12
LR R12,R15
LA R13,SAVEAREA
WTO 'SI500API CICS TO PC CADET FILE TRANSFER API VER 1.1'
WTO ' '
CALL APISTART ACTIVATE 3270 SESSION
LOOP EQU *
CALL DAT PRINT DATE AND TIME
LA R1,CLEARKEY
CALL APIAID ENTER CLEAR KEY
LA R1,=C"SINQ"
LA R2,4
CALL APITRAN ENTER TAAU TRANSACTION
LA R1,PF1
CALL APIAID ENTER PF KEY
LA R1,SCREEN
CALL APIREAD READ SCREEN
LA R1,=C'SIT01S01'
BAL R14,BLDFILE SAVE SCREEN IN PC FILE
LA R1,PF2
CALL APIAID ENTER PF KEY
LA R1,SCREEN
CALL APIREAD READ SCREEN
LA R1,=C'SIT02S01'
BAL R14,BLDFILE SAVE SCREEN IN PC FILE
LA R1,PF3
CALL APIAID ENTER PF KEY
LA R1,SCREEN
CALL APIREAD READ SCREEN
LA R1,=C'SIT03S01'
BAL R14,BLDFILE SAVE SCREEN IN PC FILE
LA R1,PF4
CALL APIAID ENTER PF KEY
LA R1,SCREEN
CALL APIREAD READ SCREEN
LA R1,=C'SIT04S01'
BAL R14,BLDFILE SAVE SCREEN IN PC FILE
LA R1,CLEARKEY
CALL APIAID ENTER CLEAR KEY
LA R1,=C"TAAU,ALL,03"
LA R2,11
CALL APITRAN ENTER TAAU TRANSACTION
LA R1,SCREEN
CALL APIREAD READ SCREEN
LA R1,=C'TAT01S01'
BAL R14,BLDFILE SAVE SCREEN IN PC FILE
LA R1,ENTERKEY
CALL APIAID ENTER ENTER KEY
LA R1,SCREEN
CALL APIREAD READ SCREEN
LA R1,=C'TAT02S01'
BAL R14,BLDFILE SAVE SCREEN IN PC FILE
LA R1,CLEARKEY
CALL APIAID ENTER CLEAR KEY
LA R1,=C"TAAU,ALL,CANCEL"
LA R2,15
CALL APITRAN ENTER TAAU CANCEL TRANSACTION
*
* WAIT FOR AN INTERVAL AND THEN REPEAT LOOP
*
WTO 'WAITING FOR 3 MINUTES'
LA R1,180 (PRODUCTION VERSION SHOULD BE 180)
CALL APIWAIT WAIT FOR SPECIFIED # OF SECONDS
B LOOP
*
* BLDFILE - WRITE SCREEN TO PC FILE
*
BLDFILE EQU *
ST R14,BLDSAV14
L R15,PCFILE+(DCBDSN-IHADCB) GET ADDR OF DSN FROM DCB
MVC DSNOFF(8,R15),0(R1) MOVE 8 CHARACTER FILE NAME TO DCBDSN
WTO 'WRITING CICS SCREEN TO CADET PC FILE'
SVC TRACE
DC C'BLD '
CLI SCREEN,C" " IF SCREEN DOES NOT START WITH ASCII
BL APIERR ABORT
OPEN PCFILE
PUT PCFILE,SCREEN WRITE SCREEN TO DISK FILE
CLOSE PCFILE
SVC TIME R0 = HH, MM, SS, 100TH SEC
SRL R0,24
CVD R0,PWORK
MVC DHR,=X'40212020'
ED DHR,PWORK+6
L R15,PCFILE+(DCBDSN-IHADCB) GET ADDR OF DSN FROM DCB
MVI DSNOFF+5(R15),C'H'
MVC DSNOFF+6(2,R15),DHR+2
OPEN PCFILE
PUT PCFILE,SCREEN WRITE SCREEN TO DISK FILE
CLOSE PCFILE
L R14,BLDSAV14
BR R14
*
* ENTER DEBUG ON ERROR FOR NOW
*
APIERR EQU *
SVC TRACE
DC C'BUG '
SVC EXIT
BLDSAV14 DC F'0'
*
* COMMON DATA
*
SAVEAREA DC 18F'0'
PWORK DC D'0'
DHR DC C' Z99'
PCFILE DCB DSORG=S,MACRF=P,RECFM=F,LRECL=1920,
DDNAME=N:\ENERGY\SIT01SXX.(T)
DSNOFF EQU 10 OFFSET TO PRIMARY DSNAME IMMEDIATELY ABOVE
DC C'*** SCREEN ***'
SCREEN DS 1920C 24 X 80 ASCII SCREEN
DC C'*** END OF SCREEN ***'
COPY CPY\EQUREGS
COPY CPY\EQUSVCS
COPY CPY\IHADCB
PF1 EQU X'07' PROGRAM FUNCTION KEY 1 SCAN CODE (SEE A-2)
PF2 EQU X'0F'
PF3 EQU X'17'
PF4 EQU X'1F'
CLEARKEY EQU X'06' CLEAR KEY
ENTERKEY EQU X'58' ENTER KEY
END