|
|
DataMuseum.dkPresents historical artifacts from the history of: IBM System/3 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about IBM System/3 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 8636 (0x21bc)
Types: s3xseg
Names: »S$E094«
└─⟦d0bc1a931⟧ Bits:30009189 5704-sc1.V08.ccp
└─⟦64693a1c9⟧
└─⟦this⟧ »S$E094«
└─⟦4498c64f7⟧ Bits:30009191 5704-sc2.V05.ccp
└─⟦95ee7795b⟧
└─⟦this⟧ »S$E094«
MACRO 00010000
.***************************************************************** 00020000
.* NAME $E094 * 00030000
.***************************************************************** 00040000
$E094 00050000
GBLB &ONE,&NOB,&NOM,&MIN,&NDME 00060000
GBLB &NSW,&N1050,&N2741,&NMOVE,&NSCTL,&NBFR 00070000
TEXT 00080000
* R-02,C-01 CHANGE LEVEL 00090000
* R-02,C-02 CHANGE LEVEL DEL 00100000
AIF (&NOM).M2000 00110000
AIF (&NSCTL).S5800 00120000
TITLE '$E094/CMONSK/CMOFSK---MLTA-POLL-SKIP-BIT-ROUTINE' 00130000
******************************************************************** CM 00140000
* CM 00150000
* TITLE: CMONSK/CMOFSK - 'MLTA POLL SKIP BITS ON/OFF ROUTINE.' CM 00160000
* CM 00170000
* FUNCTION: CM 00180000
* CM 00190000
* THIS ROUTINE WILL TURN ON OR OFF AS DESIGNATED, THE POLLING CM 00200000
* SKIP BIT FOR AN MLTA TERMINAL ON A CONTROL STATION LINE CM 00210000
* CM 00220000
* . A CHECK IS MADE TO ASSURE THAT THE MLTA DTF IS OPEN AND IS CM 00230000
* FOR A LINE WITH THE STATION CONTROL FEATURE CM 00240000
* CM 00250000
* . THE POLLING SKIP BIT FOR THE TERMINAL SPECIFIED BY THE CM 00260000
* PARAMETER LIST IS THEN SET ON OR OFF AS APPROPRIATE BY CM 00270000
* BRANCHING TO THE MLTA IOCS CM 00280000
* CM 00290000
* ENTRY POINTS: CM 00300000
* CM 00310000
* . CMONSK - TO SET ON THE POLLING SKIP BIT CM 00320000
* CM 00330000
* . CMOFSK - TO SET OFF THE POLLING SKIP BIT CM 00340000
* CM 00350000
* INPUT: CM 00360000
* CM 00370000
* INDEX REGISTER 1 CONTAINS THE ADDRESS OF THE PARAMETER LIST CM 00380000
* FOR THE TERMINAL FOR WHICH THE SKIP BIT IS TO BE SET CM 00390000
* CM 00400000
* OUTPUT: CM 00410000
* CM 00420000
* POLLING SKIP BIT SET ON OR OFF AS DESIGNATED CM 00430000
* CM 00440000
* EXTERNAL REFERENCES: CM 00450000
* CM 00460000
* . MLTA IOCS (MLTIO1) CM 00470000
* CM 00480000
* . 1050 SERVICE ROUTINE (CMMCT) CM 00490000
* CM 00500000
* . MLTA START CODE ERROR ($CC4SC) CM 00510000
* CM 00520000
* EXITS, NORMAL: CM 00530000
* CM 00540000
* TO INSTRUCTION FOLLOWING THE INVOKING OF THIS ROUTINE (ARR) CM 00550000
* CM 00560000
* EXITS, ERROR: CM 00570000
* CM 00580000
* TO TRANSIENT $CC4SC IF THE MLTA IOCS YIELDS A NON-ZERO CM 00590000
* OPERATION START CODE TO THE REQEUST TO SET THE POLLING SKIP CM 00600000
* BIT. CM 00610000
* CM 00620000
* ATTRIBUTES: RESIDES, SERIALLY REUSEABLE. CM 00630000
* CM 00640000
******************************************************************* CM 00650000
EJECT 00660000
* IF ENTER HERE - SET THE POLL SKIP BIT ON CM 00670000
SPACE 1 00680000
CMONSK EQU * * CM 00690000
SBN CMSWNF+1,BIT0 SET SWITCH TO BRANCH CM 00700000
J CMSVRG JUMP CM 00710000
SPACE 00720000
* IF ENTER HERE - SET POLL SKIP BIT OFF CM 00730000
SPACE 00740000
CMOFSK EQU * CM 00750000
SBF CMSWNF+1,BIT0 SET SWITCH TO NO OP CM 00760000
SPACE 00770000
CMSVRG EQU * * LOCAL. CM 00780000
ST CMONOF+3,ARR SAVE THE ARR. CM 00790000
ST CMON1+3,XR1 SAVE XR1. CM 00800000
ST CMON2+3,XR2 SAVE XR2. CM 00810000
SPACE 00820000
L PLTUBA(,XR1),XR2 POINT XR2 AT THE TUB CM 00830000
L TUBDTF(,XR2),XR2 POINT XR2 AT THE DTF CM 00840000
SPACE 00850000
* ASSURE STATION CONTROL LINE, AND THAT THE LINE IS OPEN. CM 00860000
SPACE 00870000
TBN $MDAT2(,XR2),$MAOPN IS DTF OPEN, AND CM 00880000
TBN $MDTFT(,XR2),$MTPLT IS IT STATION CONTROL ? CM 00890000
JF CMON2 LEAVE NOW IF NOT STAION CTRL. CM 00900000
SPACE 00910000
* HAVE STATION CONTROL LINE, SET APPROPRIATE OP CODE IN THE DTF. CM 00920000
SPACE 00930000
L PLTUBA(,XR1),XR1 POINT XR1 AT TUB CM 00940000
SPACE 00950000
CMSWNF JC CMNNSK,X'87' JUMP TO SET SKIP ON. CM 00960000
MVI $MDOPC(,XR2),$MCTSF MOVE SKIP BIT OFF OP TO DTF CM 00970000
J CMPGTA JUMP TO PLUG TERM ADDR IN DTF CM 00980000
SPACE 00990000
CMNNSK EQU * * LOCAL. 01000000
MVI $MDOPC(,XR2),$MCTSN MOVE SKIP BIT ON OP TO DTF CM 01010000
SPACE 01020000
CMPGTA EQU * * LOCAL. 01030000
MVC $MDTMA(2,XR2),TUBTMA(,XR1) MOVE TERMINAL ADDR TO DTF CM 01040000
CMON1 LA #,XR1 RESTORE XR1 CM 01050000
SPACE 01060000
AIF (&N1050).C5100 01070000
B CMMCT PLUG BYTE 2 OF TMA FOR 1050 1CM 01080000
.C5100 ANOP 01090000
SPACE 01100000
B MLTIO1 BR TO MLTA IOCS CM 01110000
SPACE 01120000
CLI $MDOSC(,XR2),NOBIT CHECK START CODE CM 01130000
JE CMON2 JUMP IF START CODE GOOD CM 01140000
SPACE 01150000
* BRING IN TRANSIENT TO ANALYZE THE NON-ZERO MLTA START CODE CM 01160000
SPACE 01170000
SVC 0 ##### TRANSIENT CALL ##### CM 01180000
DC AL1(CCPRIB) CCP SVC RIB. CM 01190000
DC AL1(CC4SC) TRANSIENT ID FOR START CODE CM 01200000
SPACE 01210000
CMON2 EQU * * LOCAL. 01220000
LA #,XR2 RESTORE XR2 CM 01230000
CMONOF B # RETURN CM 01240000
.S5800 ANOP 01250000
TITLE '$E094/CMCRID---ADD-CARRIAGE-RETURN/IDLES' 01260000
**********************************************************************M 01270000
* M 01280000
* TITLE: CMCRID - 'ADD MLTA CARRAIGE RETURN AND IDLES.' M 01290000
* M 01300000
* FUNCTION: MOVE IN A CARRAIGE RETURN AND IDLE CHARACTERS NEEDED M 01310000
* TO ALLOW THE CARRIAGE TIME TO RETURN TO HOME POSITION. M 01320000
* M 01330000
* ENTRY POINT: CMCRID. M 01340000
* M 01350000
* INPUT:XR1 -> TARGET ADDRESS. (LEFTMOST DATA ADDRESS). M 01360000
* XR2 -> DTF(LCB). M 01370000
* M 01380000
* OUTPUT: CARRAGE RETURN AND IDLES ADDED TO OUTPUT DATA STREAM. M 01390000
* M 01400000
* EXTERNAL REFERENCES: N/A. M 01410000
* M 01420000
* EXITS-NORMAL: ALWAYS RETURN TO NSI OF CALLER. M 01430000
* M 01440000
**********************************************************************M 01450000
SPACE 3 01460000
CMCRID EQU * * < ENTRY POINT > M 01470000
ST CMCRIZ+3,ARR STORE RETURN ADDR IN BRANCH. M 01480000
MVI 0(,XR1),CMCR MOVE CR CHAR TO LINE BUFR. M 01490000
AIF (&NBFR).R5300 01500000
TBN $MDTFR(,XR2),$MTBFR IS IT BUFFERRED RECEIVE ? BM 01510000
JT CMCRIZ JUMP IF YES - NO IDLES NEEDED BM 01520000
.R5300 ANOP 01530000
MVI CMTYPL-1(,XR1),CMIDLE MOVE IDLE CHAR TO LINE BUFR. M 01540000
MVC CMTYPL-2(CMTYPL-2,XR1),CMTYPL-1(,XR1) PROPOGATE IDLE. M 01550000
CMCRIZ B # RETURN. M 01560000
AIF (&N1050).C5300 01570000
TITLE '$E094/CMMCT----MULTI-COMPONENT-ADDRESS-ANALYSIS' 01580000
*********************************************************************1M 01590000
* 1M 01600000
* TITLE: CMMCT - 'MULTI-COMPONENT TERMINAL ADDRESS ANALYSIS' 1M 01610000
* 1M 01620000
* FUNCTION: 1M 01630000
* 1M 01640000
* THIS ROUTINE PERFORMS A COMPONENT ADDRESS ANALYSIS FOR A 1050 1M 01650000
* TERMINAL. IT WILL MOVE TO THE TERMINAL ADDRESS FIELD IN THE 1M 01660000
* MLTA DTF THE COMPONENT ADDRESS SPECIFIED IN THE PARAMETER LIST1M 01670000
* 1M 01680000
* . A CHECK IS MADE TO ASSURE THE TERMINAL IS A 1050 1M 01690000
* 1M 01700000
* . THE COMPONENT INDEX IN THE PARAMETER LIST IS USED TO GET THE1M 01710000
* COMPONENT ADDRESS FROM A TABLE OF 1050 COMPONENT ADDRESSES. 1M 01720000
* 1M 01730000
* . THE COMPONENT ADDRESS IS MOVED TO THE MLTA DTF. 1M 01740000
* 1M 01750000
* ENTRY POINT: CMMCT. 1M 01760000
* 1M 01770000
* INPUT: XR1 -> PL. XR2 -> DTF(LCB). 1M 01780000
* 1M 01790000
* OUTPUT: THE MLTA DTF FIELD $MDTMA HAS THE CORRECT COMPONENT ADDR. 1M 01800000
* 1M 01810000
* EXTERNAL REFERENCES: NONE. 1M 01820000
* 1M 01830000
* EXTIS, NORMAL: ALWAYS TO THE NSI OF THE CALLER. 1M 01840000
* 1M 01850000
* TABLES/WORKAREA: MCTABL - TABLE OF 1050 COMPONENT ADDRESSES. 1M 01860000
* 1M 01870000
*********************************************************************1M 01880000
EJECT 01890000
CMMCT EQU * * < ENTRY POINT > 1M 01900000
ST CMMCTR+3,ARR SAVE THE ARR. 1M 01910000
ST CMMCT1+3,XR1 SAVE XR1. 1M 01920000
SPACE 01930000
* DETERMINE IF THIS IS MCT 1M 01940000
SPACE 01950000
CLI PL$MCT(,XR1),NOBIT IS IT MCT ? 1M 01960000
JE CMMCTR JUMP IF NOT MCT. 1M 01970000
SPACE 01980000
* HAVE MCT WITH INDICES IN PL$OPC. 1M 01990000
* DETERMINE WHETHER TO PLUG INPUT OR OUTPUT COMPONENT. 1M 02000000
SPACE 02010000
MNN CMMCTV+3,PL$MCT(,XR1) MOVE OUTPUT COMPONENT INDEX. 1M 02020000
TBN PL$OPM(,XR1),OPPUT IS THIS WRITE OPERATION ? 1M 02030000
JT CMMCTM JUMP IF WRITE. 1M 02040000
SPACE 02050000
* HAVE READ OR SET SKIP BIT SO MOVE INPUT COMPONENT. 1M 02060000
SPACE 02070000
MNZ CMMCTV+3,PL$MCT(,XR1) MOVE INPUT COMPONENT INDEX. 1M 02080000
SPACE 02090000
* GET THE COMPONENT ADDRESS FROM THE TABLE BY USING THE INDEX AS A 1M 02100000
* DISPLACEMNT AND PLUG THE ADDR INTO THE DTF. 1M 02110000
SPACE 02120000
CMMCTM EQU * * LOCAL. 02130000
LA MCTABL-1,XR1 POINT XR1 AT MCT TABLE. 1M 02140000
CMMCTV MVC $MDTMA(1,XR2),#(,XR1) PLUG 2ND TMA BYTE WITH COMP @.1M 02150000
SPACE 02160000
CMMCT1 LA #,XR1 RESTORE XR1. 1M 02170000
CMMCTR EQU * * LOCAL. 1M 02180000
B # RETURN 1M 02190000
.C5300 ANOP 02200000
.M2000 ANOP 02210000
MEND 02220000