|
|
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: 23622 (0x5c46)
Types: s3xseg
Names: »S$E095«
└─⟦827b5bd03⟧ Bits:30009184 5702-sc1.V16.ccp
└─⟦f17e99db6⟧
└─⟦this⟧ »S$E095«
MACRO 00010000
.********************************************************************** 00020000
.* NAME: $E095 V-15, M-00. * 00040000
.********************************************************************** 00670000
$E095 &DMESTR- 00680000
GBLB &ONE,&NOB,&NOM,&N37,&MIN,&NSWL,&N32,&NAS,&NITB,&NTSP 00690000
GBLB &NSW,&N1050,&N2741,&NDME,&NSCTL,&NBFR,&NDF,&N41 00710000
GBLB &MOD4 00715000
LCLA &MIX 00720000
TABLE &DMESTR . DATA MODE ESCAPE STRING 00730000
'' TABDF CL6'//////' . DEFAULT STRING FOR CURRENT USE 00740000
TEXT 00750000
* R-15,C-00 CHANGE LEVEL 00760000
AIF (&NOM).M2000 00765000
TITLE '$E095/CMFORM---FORMULATE-OPERATION-CODE' 00770000
* PRINTER BUSY FLAG 1/17/78 *L 00775000
AIF (&ONE).C0550 00780000
CMFMLT EQU * 2 00790000
.C0550 ANOP 00800000
SPACE 00820000
AIF (&NSW).A5400 00830000
SPACE 00850000
TBN PLOPM(,XR1),OPDISC IS THIS PUT DISCONNECT OP SM 00860000
JF CMFO10 JUMP IF NOT PUT DISCONNECT SM 00870000
SPACE 00880000
SBF LCBATR(,XR2),LCBNIT SET BIT TO INDICATE INITIAL SM 00890000
* * OP IS NEEDED ON THIS LINE SM 00900000
SPACE 00910000
* IF THIS IS PUT ONLY - THEN PLUG WRITE DISCONNECT OP CODE SM 00920000
* IF THIS IS PUT THEN INVITE - CONTINUE THROUGH THE CODE TO FORM THE SM 00930000
* PROPER READ INITIAL OP CODE SM 00940000
SPACE 00950000
TBN PL$OPM(,XR1),OPINV IS THIS PUT DISC/INVITE SM 00960000
JT CMFO10 JUMP IF PUT DISC/INVITE INPUT SM 00970000
SPACE 00980000
* HAVE PUT DISCONNECT OP SM 00990000
SPACE 01000000
MVI CMOPWK+1,$MWTDS PLUG WITH WRITE DISCONNECT SM 01010000
J CMOPWK JUMP TO PLUG DTF WITH OP SM 01020000
.A5400 ANOP 01050000
SPACE 01060000
CMFO10 EQU * BEGIN TO FORM OP CODE M 01070000
MVI CMOPWK+1,MLREAD MOVE READ OP TO WORK AREA M 01080000
TBN PL$OPM(,XR1),OPGET IS THIS READ OPERATION M 01090000
JT CMTBFR JUMP IF READ OPERATION M 01100000
MVI CMOPWK+1,MLWRIT MOVE WRITE OP TO WORK AREA M 01110000
SPACE 01120000
CMTBFR EQU * CHECK FOR BUFFERRED RECEIVE M 01130000
MVC CMPOP+1(1),CMOPWK+1 MOVE CURRENT OP TO TBN INSTR. M 01140000
SPACE 01150000
AIF (&NBFR).R5400 01160000
* ALWAYS RESET IF BUFFERRED RECEIVE TERMINAL RM 01170000
* IF BUFFERRED RECEIVE - THEN MUST BE STATION CONTROL RM 01180000
SPACE 01190000
TBN $MDTFR(,XR2),$MTBFR IS THIS BUFFERRED RECEIVE ? RM 01200000
JT CMRSET JUMP IF BUFFERRED RECEIVE RM 01210000
.R5400 ANOP 01220000
SPACE 01230000
AIF (&NSCTL).S5900 01240000
* IF THIS IS 2740 WITH STATION CONTROL AND NO CHECKING - ISSUE RESET CM 01250000
SPACE 01260000
TBN $MDTFT(,XR2),MLSTAT IS IT STATION CONTROL CM 01270000
TBF $MDTFT(,XR2),$MTLRC IS IT NON-CHECKING CM 01280000
JT CMRSET JUMP IF STAT CTL AND NON-CK. CM 01290000
SPACE 01300000
.S5900 ANOP 01310000
* IF CHECKING TERMINAL, DON'T RESET. (RESET ALLOWS OPERATOR INPUT.) M 01320000
SPACE 01330000
TBN $MDTFT(,XR2),MLLRC IS IT CHECKING TERMINAL M 01340000
JT CMINIT JUMP IF NOT PAST SETTING RESET M 01360000
SPACE 01370000
* USE RESET IF HERE SO SET RESET BIT ON M 01380000
SPACE 01390000
CMRSET SBN CMOPWK+1,MLRSET SET RESET BIT IN OP CODE ON M 01400000
SPACE 01410000
* DO WE NEED TO ISSUE INITIAL OPERATION ON LINE M 01420000
SPACE 01430000
CMINIT EQU * TEST FOR INITIAL OP M 01440000
TBF LCBATR(,XR2),LCBNIT TEST INITIAL OP BIT IN LCB M 01450000
JF CMTRST JUMP IF INITIAL NOT NEEDED M 01460000
SPACE 01470000
********************************************************************* M 01480000
* NEED INITIAL OPERATION ON THIS LINE * M 01490000
********************************************************************* M 01500000
SPACE 01510000
AIF (&NSW).A5500 01520000
* IF IT IS A SWITCHED LINE AND IT IS A USER OP SM 01530000
* THEN ISSUE MESSAGE TO SYSTEM OPERATOR INFORMING HIM OF THE STATUS SM 01540000
* OF THE LINE SM 01550000
SPACE 01560000
TBN $MDTFT(,XR2),$MMDNT IS IT SWITCHED LINE SM 01570000
TBF PLOPM(,XR1),OPREQR IS IT USER REQUEST SM 01580000
JF CMNMSO JUMP IF NOT USER. SM 01590000
SPACE 01600000
* HAVE USER REQUEST TO SWITCHED LINE WHICH REQUIRES CONNECTION SM 01610000
* BRING IN TRANSIENT TO ISSUE MESSAGE SM 01620000
SPACE 01630000
B $CC4PI BR TO BRING IN TRANSINET SM 01640000
DC AL1(CC4WC) TRANSIENT ID SM 01650000
SPACE 01660000
CMNMSO EQU * END OF MSG TO SYSTEM OPERATOR SM 01670000
SPACE 01680000
.A5500 ANOP 01690000
AIF (&N2741).B5200 01700000
* DETERMINE IF THIS IS PUT TO 2741 1M 01730000
* IF YES - CANNOT ISSUE WRITE INITIAL TO 2741 SO MUST ISSUE READ 1M 01740000
* INITIAL AND BIT BUCKET THE DATA FROM THE READ BEFORE ISSUEING THE 1M 01750000
* WRITE TO THE 2741. 1M 01760000
SPACE 01770000
TBN PL$OPM(,XR1),OPPUT IS IT PUT 1M 01780000
CLI $MDTTP(,XR2),ML2741 IS IT 2741 1M 01790000
JC CMOPFM,ANY+LO+HI+FALSE JUMP IF NOT INITIAL PUT TO 2741M 01800000
SPACE 01810000
* HAVE WRITE INITIAL TO 2741 SO ISSUE READ INITIAL 1M 01820000
SPACE 01830000
SBN LCBATR(,XR2),LCBTBK SET ON LCB BIT BUCKET DATA 1M 01840000
* * FROM DUMMY READ. 1M 01850000
MVI CMOPWK+1,MLREAD PLUG READ INITIAL INTO OP WORK1M 01860000
J CMOPWK JUMP TO PLUG OP INTO DTF 1M 01870000
AGO .B5250 01890000
.B5200 ANOP 01900000
J CMOPFM JUMP TO PLUG INITIAL OP IN DTF.M 01910000
.B5250 ANOP 01920000
EJECT 01930000
CMTRST EQU * TEST FOR RESET SET M 01940000
TBN CMOPWK+1,MLRSET HAS RESET BEEN SET M 01950000
JT CMCONV JUMP TO ISSUE CONVERSATIONAL M 01960000
SPACE 01970000
* SINCE RESET NOT USED ON THIS LINE DETERMINE WHETHER A CONTINUE M 01990000
* OPERATION IS APPROPRIATE M 02000000
* FOR CONTINUE TO BE USED THE FOLLOWING CONDITIONS MUST BE MET M 02010000
* 1/ LAST OP ON LINE WAS OF SAME TYPE M 02020000
* 2/ LAST TERMINAL SCHEDULED ON LINE WAS SAME M 02030000
* 3/ FOR A READ THIS MUST BE A 2741 OR 2740 WITH CHECKING FEATURE. M 02040000
* 4/ READ TO STATION CONTROL TERMINAL WILL NEVER BE CONTINUE M 02050000
SPACE 02060000
* WAS LAST OP ON LINE TO THIS TERMINAL ? M 02070000
SPACE 02080000
CMPOP TBN $MDOPC(,XR2),*-* COMPARE LAST OP WITH CURRENT. M 02090000
JF CMCONV JUMP TO ISSUE CONVERSATIONAL M 02100000
SPACE 02110000
AIF (&NSCTL).S5910 02120000
CLC $MDTMA(2,XR2),CMSTMA TERMINAL ADDR MATCH FOR THIS CM 02130000
* AND LAST OP ON LINE ? CM 02140000
JNE CMCONV NO-GO ISSUE CONVERSATIONAL OP.CM 02150000
SPACE 02160000
.S5910 ANOP 02170000
* IF OPERATION IS A WRITE ISSUE A CONTINUE OP M 02180000
SPACE 02190000
TBN $MDOPC(,XR2),MLWRIT WAS IT WRITE M 02200000
JT CMCONT IF YES JUMP TO FORM CONTINUE OPM 02210000
SPACE 02220000
AIF (&NSCTL).S5920 02230000
* IF STATION CONTROL, THEN ISSUE CONVERSATIONAL OPERATION. CM 02240000
SPACE 02250000
TBN $MDTFT(,XR2),CMSTAT TEST FOR STATION CONTROL CM 02260000
JT CMCONV ISSUE CONVERSATIONAL OP CM 02270000
SPACE 02280000
.S5920 ANOP 02290000
SPACE 02291000
* CONTINUE OP IS VALID TO ALL CHECKING TERMINALS. M 02292000
SPACE 02293000
TBN $MDTFT(,XR2),MLLRC THIS A CHECKING TERMINAL ? M 02294000
JT CMCONT YES-GO TO ISSUE CONTINUE. M 02295000
SPACE 02296000
AIF (&N2741).B5300 02310000
* READ-CONTINUE NON-STATION CONTROL CAN ONLY BE TO A 2741. 1M 02340000
SPACE 02360000
CLI $MDTTP(,XR2),ML2741 IS IT 2741 1M 02370000
JE CMCONT JUMP IF 2741 1M 02380000
SPACE 02390000
.B5300 ANOP 02400000
* CONTINUE NOT VALID - ISSUE CONVERSATIONAL OPERATION CODE M 02410000
SPACE 02420000
* ISSUE CONVERSATIONAL OPERATION CODE M 02430000
SPACE 02440000
CMCONV EQU * PREPARE FOR CONVERSATIONAL. M 02450000
SBN CMOPWK+1,MLCONV SET CONVERSATIONAL BIT ON M 02460000
J CMOPFM JUMP TO PLUG DTF M 02470000
SPACE 02480000
* ALL CONDITIONS MET FOR CONTINUE OPERATION M 02490000
SPACE 02500000
CMCONT EQU * FORM CONTINUE OPERATION M 02510000
SBN CMOPWK+1,MLCONT SET CONTINUE BIT ON M 02520000
SPACE 02530000
CMOPFM EQU * OP FORMATION COMPLETE M 02540000
AIF (&NSCTL).S5930 02550000
MVC $MDTMA(2,XR2),CMSTMA MOVE TMA TO DTF CM 02560000
.S5930 ANOP 02570000
CMOPWK MVI $MDOPC(,XR2),*-* MOVE OP CODE TO DTF C 02580000
AIF (&N1050).C5200 02590000
B CMMCT GO TO PLUG BYTE 2 OF 1050 TMA.0M 02600000
.C5200 ANOP 02610000
CMFORX B *-* RETURN M 02620000
TITLE '$E095/CMCRID---ADD-CARRIAGE-RETURN/IDLES' 02630000
********************************************************************* M 02640000
* ROUTINE TO ADD CARRIAGE RETURN AND IDLE CHARACTERS * M 02650000
********************************************************************* M 02660000
SPACE 02670000
* INPUT IS - XR2 POINTS AT LCB M 02680000
* XR1 POINTS AT TARGET ADDR (LEFTMOST BYTE) M 02690000
* MOVE IN A CARRIAGE RETURN CHARACTER AND IDLE CHARACTERS NEEDED M 02710000
* TO ALLOW THE CARRIAGE TIME TO RESET TO TO HOME BASE M 02720000
SPACE 02730000
CMCRID EQU * ADD CARRIAGE RETURN AND IDLE. M 02740000
ST CMCRIZ+3,ARR STORE RETURN ADDR IN BRANCH M 02750000
MVI 0(,XR1),CMCR MOVE CR CHAR TO LINE BUFR M 02760000
AIF (&NBFR).R5300 02770000
TBN $MDTFR(,XR2),$MTBFR IS IT BUFFERRED RECEIVE RM 02780000
JT CMCRIZ JUMP IF YES - NO IDLES NEEDED RM 02790000
.R5300 ANOP 02800000
MVI CMTYPL-1(,XR1),CMIDLE MOVE IDLE CHAR TO LINE BUFR M 02810000
MVC CMTYPL-2(CMTYPL-2,XR1),CMTYPL-1(,XR1) PROPOGATE IDLE CHARM 02820000
CMCRIZ B *-* RETURN M 02830000
AIF (&N1050).C5300 02840000
TITLE '$E095/CMMCT----MULTI-COMPONENT-ADDRESS-ANALYSIS' 02850000
******************************************************************** 0M 02860000
* TERMINAL ADDRESS ANALYSIS FOR MULTI-COMPONENT TERMINAL* 0M 02870000
******************************************************************** 0M 02880000
* * 02900000
* FUNCTION: * 02910000
* * 02920000
* THIS ROUTINE PERFORMS A COMPONENT ADDRESS ANALYSIS FOR A 1050 * 02930000
* TERMINAL. IT WILL MOVE TO THE TERMINAL ADDRESS FIELD IN THE * 02940000
* MLTA DTF THE COMPONENT ADDRESS SPECIFIED IN THE PARAMETER LIST.* 02950000
* * 02960000
* . A CHECK IS MADE TO ASSURE THE TERMINAL IS A 1050 * 02970000
* * 02980000
* . THE COMPONENT INDEX IN THE PARAMETER LIST IS USED TO GET THE * 02990000
* COMPONENET ADDRESS FROM A TABLE OF 1050 COMPONENT ADDRESSES * 03000000
* * 03010000
* . THE COMPONENT ADDRESS IS MOVED TO THE MLTA DTF * 03020000
* * 03030000
* ENTRY POINT: CMMCT. * 03040000
* * 03050000
* * 03090000
* INPUT: INDEX REGISTER 1 CONTAINS THE ADDRESS OF THE COMMUNICATIONS * 03100000
* PARAMETER LIST * 03110000
* * 03120000
* . INDEX REGISTER 2 CONTAINS THE ADDRESS OF THE MLTA DTF * 03130000
* * 03140000
* * 03160000
* OUTPUT: THE 1050 COMPONENT ADDRESS IS MOVED TO THE TERMINAL ADDRESS * 03170000
* FIELD IN THE MLTA DTF * 03180000
* * 03190000
* EXTERNAL REFERENCES: * 03200000
* * 03210000
* . COMMUNICATIONS PARAMETER LIST * 03220000
* * 03230000
* . MLTA DTF * 03240000
* * 03250000
* EXITS, NORMAL: TO CALLER NSI ADDESSS. * 03260000
* * 03290000
* TABLES/WORKAREA: MCTABL -> TABLE OF 1050 COMPONENT ADDRESSES. * 03300000
* * 03310000
* ATTRIBUTES: RESIDENT, REUSABLE * 03340000
* * 03370000
*********************************************************************** 03380000
EJECT 03390000
CMMCT EQU * PLUG TMA FOR 1050 0M 03430000
ST CMMCTR+3,ARR SAVE THE ARR 0M 03440000
ST CMMCT1+3,XR1 SAVE XR1 0M 03450000
SPACE 03460000
* DETERMINE IF THIS IS MCT 0M 03470000
SPACE 03480000
CLI PL$MCT(,XR1),NOBIT IS IT MCT 0M 03490000
JE CMMCTR JUMP IF NOT MCT 0M 03500000
SPACE 03510000
* HAVE MCT WITH INDICES IN PL$OPC 0M 03520000
* DETERMINE WHETHER TO PLUG INPUT OR OUTPUT COMPONENT 0M 03530000
SPACE 03540000
MNN CMMCTV+3,PL$MCT(,XR1) MOVE OUTPUT COMPONENT INDEX 0M 03550000
TBN PL$OPM(,XR1),OPPUT IS THIS WRITE OPERATION 0M 03560000
JT CMMCTM JUMP IF WRITE 0M 03570000
SPACE 03580000
* HAVE READ OR SET SKIP BIT SO MOVE INPUT COMPONENT 0M 03590000
SPACE 03600000
MNZ CMMCTV+3,PL$MCT(,XR1) MOVE INPUT COMPONENT INDEX 0M 03610000
SPACE 03620000
* GET THE COMPONENT ADDRESS FROM THE TABLE BY USING THE INDEX AS A 0M 03630000
* DISPLACEMNT AND PLUG THE ADDR INTO THE DTF 0M 03640000
SPACE 03650000
CMMCTM LA MCTABL-1,XR1 POINT XR1 AT MCT TABLE 0M 03660000
CMMCTV MVC $MDTMA(1,XR2),##(,XR1) PLUG 2ND TMA BYTE WITH COMP. 0M 03670000
SPACE 03680000
CMMCT1 LA ####,XR1 RESTORE XR1 0M 03690000
CMMCTR B #### RETURN 0M 03700000
TITLE '$E095/MCTABL--MULTI-COMPONENT-ADDRESS-TABLE' 03710000
******************************************************************** 0M 03720000
* MULTI-COMPONENT TERMINAL TABLE * 0M 03730000
******************************************************************** 0M 03740000
SPACE 03750000
MCTABL EQU * MCT TABLE 0M 03760000
DC XL1'0B' KEYBOARD INDEX 1 0M 03770000
DC XL1'0D' READER 1 INDEX 2 0M 03780000
DC XL1'0E' READER 2 INDEX 3 0M 03790000
DC XL1'15' ANY INPUT DEVICE INDEX 4 0M 03800000
DC XL1'02' PRINTER 1 INDEX 5 0M 03810000
DC XL1'04' PRINTER 2 INDEX 6 0M 03820000
DC XL1'07' PUNCH 1 INDEX 7 0M 03830000
DC XL1'06' PUNCH 2 INDEX 8 0M 03840000
DC XL1'13' ALL OUTPUT COMPONENTS INDEX 9.0M 03850000
SPACE 2 03860000
MCTPRT EQU 6 INDEX OF LAST 1050 PRINTER 0M 03870000
.C5300 ANOP 03880000
.M2000 ANOP 03890000
TITLE '$E095----EQUATES----CONSTANTS' 03900000
TRL EQU * START OF TRANSLATE LIST 03910000
MVL EQU * START OF MOVE LIST 03920000
DS XL2 FROM LENGTH 03930000
DS AL2 TO ADDRESS 03940000
DS AL2 FROM ADDRESS 03950000
DS XL2 TO LENGTH 03960000
DS XL1 RETURN CODE 03970000
SPACE 03980000
AIF (&NDME).D5100 03990000
AIF (&NOM).M2100 04000000
* SPECIAL TRANSLATE LIST FOR DATA MODE ESCAPE COMMAND CHECK DM 04010000
SPACE 04020000
* IT IS SET UP TO TRANSLATE 6 BYTES INTO A PRE-DEFINED FIELD DM 04040000
* ALL FIELDS ARE PRE-SET EXCEPT DM 04050000
* 1) FROM ADDR DM 04060000
* 2) TRANSLATE TABLE ADDR DM 04070000
SPACE 04080000
CMDMTL EQU * DATA MODE ESCAPE XLATE LIST. DM 04090000
DC IL2'6' FROM LENGTH DM 04100000
DC AL2(CMDMEB) TO ADDR DM 04110000
DS AL2 FROM ADDR DM 04120000
DC IL2'6' TO LENGTH DM 04130000
DS XL1 RETURN CODE DM 04140000
SPACE 04150000
******************************************************************** DM 04160000
SPACE 04170000
* DATA MODE ESCAPE FIELDS DM 04180000
SPACE 04190000
.M2100 ANOP 04200000
DMELEN EQU 6 LENGTH OF DATA MODE ESCAPE. D 04210000
CMDME DC &DMESTR DATA MODE ESCAPE STRING D 04220000
AIF (&NOM).M2200 04230000
CMDMEB EQU * DATA MODE ESCAPE CHECK AREA. DM 04240000
DS CL(DMELEN) DATA MODE ESCAPE BUFFER AREA. DM 04250000
* TRANSLATE 1ST 6-BYTES HERE DM 04260000
.M2200 ANOP 04270000
.D5100 ANOP 04280000
SPACE 04290000
AIF (&NOB).NB010 04300000
AIF (&MIN).N0100 04310000
.NB010 ANOP 04320000
GMLIST EQU * START OF GETMAIN PARM LIST 04330000
DS AL2 GETMAIN ADDRESS 04340000
DS XL2 SIZE OF GETMAIN AREA 04350000
SPACE 04360000
SAVTA1 DC XL1'0' TERMINAL ATTRIBUTE SET BYTE 1 04370000
SAVTA2 DC XL1'0' TERMINAL ATTRIBUTE SET BYTE 2 04380000
AIF (&NOB).C0585 04390000
SAVRCL DC XL2'00' TERM ATTR SET RECORD LENGTH. B 04400000
.N0100 ANOP 04410000
.C0585 ANOP 04420000
X$FFFC DC XL2'FFFC' 2-BYTE VALUE FOR MINUS 4 04430000
CC0016 DC IL2'16' 2-BYTE BINARY 16 04440000
AIF (&NOB).NB020 04450000
AIF (&MIN).NX010 04460000
.NB020 ANOP 04470000
CMLLCB DC AL2(0) LAST LCB TESTED FOR GM ANALYSIS 04480000
SPACE 04490000
.NX010 ANOP 04500000
SPACE 04510000
* INTERNAL CM WORK AREAS 04520000
SPACE 04530000
CMPSII DC AL2(256*WPAAII) POST WPAAII BIT 04540000
CMPSCP DC AL2(256*WPACP) POST MASK FOR WPACP POST BIT 04550000
CMPSBY DC AL2(256*WPABSY) POST MASK FOR WPABSY POST BIT *L04555000
CMSWIT DC BL1'0' SET OF EIGHT BINARY SWITCHES 04560000
CMRFCK DC XL2'0000' PRUF WORK AREA 04563000
CMSEVN DC XL2'0007' CONSTANT OF SEVEN FOR PRUF 04566000
CMNDQL EQU BIT0 1-STILL NEED GETMAIN FOR THIS LCB04570000
CMRSLN EQU BIT1 1-INDICATES LINE CAN BE RESCHEDUL04580000
CMTPRQ EQU BIT2 1-INDICATES REQUEST JUST 04590000
* SCHEDULED WAS RESULT OF TP REQUES04600000
* POST BIT BEING SET 04610000
CMFMGO EQU BIT3 CM FREEMAIN OCCURRED BIT 04620000
* 0-FREEMAIN OCCURRED 04630000
* 1-NO FREEMAIN OCCURRED 04640000
CMNOST EQU BIT4 1-ONLINE TEST START FAILED 04650000
CMBSCK EQU BIT5 1-BSCA DTF SET UP FOR CHECK CALL 04660000
CMSPSI EQU BIT6 1-CM HAS HANDLED STOP INVITE 04663000
* TO A STATUS POLL TERMINAL 04666000
KNONLY EQU BIT7 CONSOLE IS ONLY PL IN Q (MD 4) 04668000
SPACE 04670000
CMIIND DS XL2 SIZE OF BUFFER NEEDED FOR LINE 04680000
AIF (&NOB).NB040 04690000
AIF (&MIN).N0150 04700000
.NB040 ANOP 04710000
#BUFND DS CL2 CONTAINS STORAGE NEEDED BY OPER 04720000
* AFTER ANALYSIS BY CMSTOR ROUTINE 04730000
.N0150 ANOP 04740000
SPACE 04750000
* $CC4CM SAVE AREA 04760000
SPACE 04770000
CMSDTF DS AL2 SAVE AREA FOR TP DTFADDR 04780000
CMSLCB EQU CMSDTF SAVE AREA FOR LCB /SAME AS DTF/ 04790000
AIF (&NOB).NB030 04800000
SAVCAT DC XL4'0' SAVE AREA FOR IOBCAR + IOBTAR 04801000
CMSPL@ DC XL2'0000' TEMP HOLD AREA FOR PL @ 04803000
USRTID DC XL1'00' SAVE AREA FOR DFF OHA OWNER 04806000
AIF (&MIN).N0200 04810000
.NB030 ANOP 04820000
CMSPL DS AL2 SAVE AREA FOR PARM LIST ADDR 04830000
.N0200 ANOP 04840000
AIF (&NOM).M2250 04850000
CMTCHR DS XL1 SAVE AREA FOR TUB CHARACTERISTICS04860000
CMVPTR DS AL2 ADDRESS OF PREVIOUS POINTER IN 04870000
* LINE QUEUE 04880000
CMTYPZ DC IL2'16' NUMBER OF TYPEWRITER CONTROL 04890000
* CHARACTERS ADDED TO MESSAGES 04900000
* THIS FIELD CHANGED IF BUFF REC 04910000
* TERMINALS IN THE SYSTEM 04920000
SPACE 04930000
.M2250 ANOP 04940000
AIF (&NSCTL).S5940 04950000
MLSTCL DC AL1(MLSTAT) STATION CONTROL BIT 04960000
CMSTMA DS XL2 SAVE AREA FOR MLTA TERMINAL ADDR 04970000
* HAS BEEN REQUESTED 04980000
.S5940 ANOP 04990000
EJECT 05000000
TLCREL EQU BIT6 BIT IN RETURN CODE TO INDICATE 05010000
* CARRIAGE RETURN AT END OF LINE 05020000
TLERR EQU BIT7 BIT IN TRANSLATE RETURN CODE TO 05030000
* INDICATE INVALID CHAR TRANSLATED 05040000
SPACE 2 05050000
* GETMAIN LIST EQUATES AND AREA 05060000
SPACE 05070000
GMCCP EQU 0 BEGINNING OF GETMAIN PARM LIST 05080000
GMADDR EQU GMCCP+2-1 GETMAIN ADDRESS 05090000
GMSIZE EQU GMADDR+2 SIZE OF GETMAIN AREA 05100000
SPACE 05110000
* $CC4CM EQUATES 05120000
SPACE 05130000
#4 EQU X'1B' HALT LIGHT '4'. 05140000
#BLITZ EQU X'19' HALT LIGHT 'BLITZ'. 05150000
AIF (&NOM EQ '0').M2300 05160000
$MDCMP EQU $BDCMP LABEL FOR COMPLETION CODE. 05170000
$MCRET EQU X'56' NO DTF'S COMPLETE. 05180000
.M2300 ANOP 05190000
AIF (&NOM).M2400 05200000
CMCR EQU X'5B' LINE CODE CARRIAGE RETURN CHAR 05210000
CMIDLE EQU X'5E' LINE CODE IDLE CHARACTER 05220000
CMCRTM EQU 73 MAX INPUT TO ALLOW CARRIAGE TO 05230000
* RETURN WITHOUT IDLE CHAR 05240000
MLRSET EQU X'01' RESET BIT IN OP CODE 05250000
MLCONT EQU X'02' CONTINUE OP CODE BIT 05260000
MLCONV EQU X'04' CONVERSATIONAL OPERATION CODE BIT05270000
MLLRC EQU $MTLRC LONGITUDINAL RECORD CHECKING 05280000
MLBFRC EQU $MTBFR BUFFERRED RECEIVE BIT 05290000
CMBFRC EQU $MTBFR BUFFERRED RECEIVE BIT 05300000
MLREAD EQU BIT3 MLTA READ OP BIT 05310000
MLWRIT EQU BIT2 MLTA WRITE OP BIT 05320000
MLABRT EQU $MCABT MLTA ABORT OP CODE 05330000
MLSKPN EQU $MCTSN MLTA SET SKIP BIT ON OP CODE 05340000
MLSKPF EQU $MCTSF MLTA SET SKIP BIT OFF OP CODE 05350000
MLSTAT EQU $MTPLT MLTA STATION CONTROL BIT 05360000
CMSTAT EQU $MTPLT MLTA STATION CONTROL BIT 05370000
SPACE 05380000
CMNLOP EQU X'CF' MASK TO SET OFF MLTA OP CODE 05390000
.M2400 ANOP 05400000
CMCMDI EQU BIT0+BIT1 COMMMAND INTERRUPT MODE 05410000
CMZERO EQU X'00' EQUATE OF ZERO 05420000
SPACE 05430000
CMLNPL EQU CC0016 LENGTH OF THE TP PARAMETER LIST 05440000
CMTYPL EQU X'10' NUMBER OF TYPEWRITER CHARS ADDED 05450000
* TO MESSAGE IF REQUESTED BY USER 05460000
CMTYBF EQU 1 NUMBER OF TYPEWRITER CONTROL 05470000
* CHARS TO ADD FOR BUFFERRED REC 05480000
CMASK EQU X'80' MASK FOR TYPEWRITER SWITCH 05490000
$PARM EQU 2 05500000
SPACE 05510000
MLSCCS EQU X'FD' BAD BITS IN RETURN CODE FROM MLTA05520000
MLCOF1 EQU X'01' MLTA PERMANENT ERROR 05530000
MLCTNR EQU X'04' ABORT OK, OR WRITE BAD RETURN COD05540000
MLCITP EQU X'06' TERMINAL INTERRUPT 05550000
SPACE 3 05560000
AIF (&NOB).C0590 05570000
EJECT 05580000
ALL EQU X'FF' MASK FOR ALL BITS IN A BYTE. B 05590000
BLANK EQU X'40' MASK FOR A BLANK CHARACTER. B 05600000
BSCA EQU X'80' Q CODE FOR BSCA. B 05610000
DONE EQU X'40' NORMAL COMPLETION. B 05620000
DSMXNT EQU X'80' DSM RIB FOR SYSTEM TRANSIENT. B 05630000
DTF EQU 2 DTF REG. B 05640000
FLDDME EQU 13 END POSITION IF DME CHARS. B 05650000
FLDRUN EQU 11 END POSITION IF '/RUN'. B 05660000
FLSCLR EQU X'97' UNCONDITIONAL: CLEAR FALSE CONDB 05670000
FLSNEQ EQU X'96' CONDITION: FALSE OR NOT EQUAL. B 05680000
FLSNLO EQU X'95' CONDITION: FALSE OR NOT LOW. B 05690000
FLSOEQ EQU X'91' CONDITION: FALSE OR EQUAL. B 05700000
FLSNHI EQU X'93' CONDITION: FALSE OR NOT HI *L 05705000
FLSOHI EQU X'94' CONDITION: FALSE OR HI. B 05710000
FLSOLO EQU X'92' CONDITION: FALSE OR LOW. B 05720000
IBX EQU 2 IOB WORK REG FOR BUFFER CARVE. B 05730000
IOB EQU 1 PTR TO INPUT/OUTPUT BLOCK B 05740000
LINE2 EQU X'08' MASK FOR BSCA LINE 2 Q CODE. B 05750000
PARM EQU 1 PARAMETER LIST POINTER REG. B 05760000
PL EQU 1 PARAMETER LIST REGISTER. B 05770000
POL EQU 1 POLL LIST WORK REGISTER. B 05780000
POLBIT EQU X'20' ON-ADDRESSING, OFF-POLLING. B 05790000
POLSKP EQU X'80' SKIP BIT FOR POLLING LIST B 05795000
READY EQU X'84' IOB READY FOR TRANSMIT. B 05800000
SBF2 EQU X'BB' SBF BASED ON XR2. B 05810000
SBN2 EQU X'BA' SBN BASED ON XR2. B 05820000
TRUAEQ EQU X'16' CONDITION; TRUE AND EQUAL. B 05830000
TRUALO EQU X'15' CONDITION: TRUE AND LOW. B 05840000
TRUNEQ EQU X'11' CONDITION: TRUE AND NOT EQUAL. B 05850000
TRUNHI EQU X'14' CONDITION: TRUE AND NOT HIGH. B 05860000
TUB EQU 1 PTR TO TERMINAL UNIT BLOCK. B 05870000
TXTSNT EQU X'01' INITIAL SETTING TEXT INDICATORSB 05880000
WKA EQU 1 WORK AREA REGISTER. B 05890000
WORK EQU 1 GENERAL WORK REG. B 05900000
WCC EQU 2 DISP. OF WCC IN PLRECA *L 05903000
STPRT EQU X'08' START PRINT BIT IN WCC *L 05906000
EJECT 05910000
AIF (&MIN).N0800 05920000
CMSPHY DC AL1(0) SAVE AREA FOR TUBPHY. B 05930000
.N0800 ANOP 05940000
BBUCKT DC XL1'00' DUMMY AREA FOR SEARCH EOT. B 05950000
FNDEOT DC AL2(BBUCKT) @ OF BIT BUCKET AREA FOR SEARCHB 05960000
DC AL2(BLANKC) ADDR. OF BLANK CHAR. B 05970000
DC AL2(1) LEN OF 1 FOR MOVE/CLEAR RTN. B 05980000
BNKRST EQU *-1 B 05990000
&MIX SETA &NITB+&NTSP+5*&NDF 05991000
AIF (&MIX NE '5').T1300 05992000
TWO DC AL2(2) ITB/TRANSP BUMP CONSTANT. IXB 05993000
.T1300 ANOP 05994000
AIF (&MIN).NX020 06000000
FIVE DC XL2'0005' CONSTANT OF FIVE. B 06010000
.NX020 AIF (&NSWL).S0100 06020000
THREE DC AL2(3) NSI BUMP CONSTANT. SB 06030000
.S0100 ANOP 06040000
TWELVE DC AL2(12) BUMP VALUE FOR OLT PARM LIST. B 06050000
AIF (&MIN).N0400 06060000
IOBLEN DC AL2(IOBL) LENGTH OF BSCA IOB. B 06070000
.N0400 ANOP 06080000
LINFO EQU IOBL MAX # LINE CONTROL CHARS MLMP. 06090000
&MIX SETA &N32+&N37+&N41 06100000
AIF (&MIX EQ '3').T1400 06110000
* ------------------------> START --> @01 06115000
RELSNS DC XL2'0014' MAX RECL FOR STATUS POLL. 0/5/7B 06120000
* ------------------------> END ---> @01 06125000
AIF (&N32).T1400 06130000
MAXMSG DC AL2(80+FORMTL) MAX SPACE FOR SYSTEM MSG. 0B 06140000
CMSTUS DC AL2(SSID) MSG ID FOR 3270 STATUS. 0B 06150000
.T1400 ANOP 06160000
&MIX SETA &NAS+&N32 06170000
AIF (&MIX NE '0').T1500 06180000
CMSTAS DC XL2'2552' ASCII '%R', STATUS MSG. 0AB 06190000
.T1500 ANOP 06200000
AIF (&N37).T1600 06210000
CMNULS DC XL3'00E200' NUL-S-NUL HEADER, 3735 STATUS.5B 06220000
AIF (&NAS).T1600 06221000
CMNULA DC XL3'005300' NUL-S-NUL (ASCII). 5AB 06222000
.T1600 ANOP 06230000
AIF (&N41).C0590 06231000
* ------------------------> START ---> @01 06232000
CM3741 DC CL2'%V' 3741 STATUS MSG (EBCDIC). 7B 06233000
AIF (&NAS).T1700 06234000
CM374A DC XL2'2556' 3741 STATUS MSG (ASCII). 7AB 06235000
.T1700 ANOP 06235500
* ---------------------------> END ---> @01 06236000
.C0590 ANOP 06240000
DC CL50'MAINTENCE.SPACE.BEGINS.HERE.......................' 06260000
DC CL45'.............................................' 06270000
DC CL50'...........................END.OF.MAINTENCE.SPACE.' 06300000
MEND 06320000