ibm:vm370-lib:cp:dmkrga.assemble_src
Table of Contents
DMKRGA Source
References
- Fixes Applied : 29
- This Source Date : Thursday, December 7, 1978
- Last Fix ID : [HRC101DK]
Source Listing
- DMKRGA.ASSEMBLE.txt
- RGA TITLE 'DMKRGA (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 VALIDATE SEQUENCING OF INPUT 00002000
- COPY OPTIONS @V305731 00003000
- COPY LOCAL @V305731 00004000
- EJECT 00005000
- ************************************************************* 00006000
- * 00007000
- * MODULE NAME - 00008000
- * 00009000
- * DMKRGA 00010000
- * 00011000
- * CONTENTS - 00012000
- * 00013000
- * DMKRGAIN - SECOND LEVEL INTERRUPT HANDLER FOR 3270 STATIONS 00014000
- * 00015000
- * FUNCTION - 00016000
- * 00017000
- * THIS MODULE PROVIDES SUPPORT FOR THE 3270 REMOTE DISPLAY 00018000
- * AND PRINTER STATIONS. THE MODULE HANDLES INTERRUPTS AND CCW 00019000
- * PROCESSING FOR THE REMOTE STATIONS INCLUDING MESSAGE HANDLING 00020000
- * AND SCREEN MANAGEMENT. 00021000
- SPACE 2 00022000
- DMKRGA START , @V305731 00023000
- SPACE 1 00024000
- USING PSA,R0 @V305731 00025000
- USING TRQBLOK,R4 @V305731 00026000
- USING CONTASK,R6 @V305731 00027000
- USING BSCBLOK,R5 @V305731 00028000
- USING RDEVBLOK,R8 @V305731 00029000
- USING IOBLOK,R10 @V305731 00030000
- USING VMBLOK,R11 @V305731 00031000
- USING NICBLOK,R9 @V305731 00032000
- SPACE 1 00033000
- EXTRN DMKIOSQR,DMKSCNRU,DMKQCNCL,DMKCFMBK @V305731 00034000
- EXTRN DMKSTKMP,DMKCNSED,DMKSTKIO,DMKBLDVM @VA07391 00035100
- EXTRN DMKSCHRT,DMKSCHST,DMKCVTBD,DMKCVTDB @V305731 00036000
- EXTRN DMKCVTBH,DMKTBLUP,DMKTBLGR,DMKIOERN @V305731 00037000
- EXTRN DMKERMSG,DMKSCNRD,DMKSCNVU,DMKCVTHB @V305731 00038000
- EXTRN DMKCFMEN,DMKCFMAT,DMKQCNET,DMKQCNTO @V305731 00039000
- EXTRN DMKRGBSN,DMKRGBIC,DMKRGBMT,DMKRGBEN @V346931 00040000
- EXTRN DMKTBMTI,DMKTBMZI @V387398 00041000
- EXTRN DMKCVTAB @VA04301 00041100
- EXTRN DMKPTRAN,DMKQCNWT @V407511 00041110
- EXTRN DMKRGFEN @VA13123 00042000
- SPACE 1 @VA13123 00042500
- ENTRY DMKRGAIN @V305731 00043000
- ENTRY DMKRGACR @VA13123 00044000
- EJECT , @VA13123 00044500
- ************************************************************** 00045000
- * 00046000
- * SUBROUTINE NAME - 00047000
- * 00048000
- * DMKRGAIN 00049000
- * 00050000
- * FUNCTION - 00051000
- * 00052000
- * DMKRGAIN IS THE SECONDARY INTERRUPT HANDLER FOR THE 00053000
- * 3270 REMOTE SUPPORT. THE SUBROUTINE HANDLES INTERRUPTS 00054000
- * AND CCW PROCESSING FOR THE REMOTE DISPLAY AND PRINTER 00055000
- * STATIONS, INCLUDING MESSAGE HANDLING AND SCREEN 00056000
- * MANAGEMENT. 00057000
- * 00058000
- * ATTRIBUTES - 00059000
- * 00060000
- * RE-ENTRANT, RESIDENT, ENTERED VIA IOBLOK UNSTACK 00061000
- * 00062000
- * ENTRY CONDITIONS - 00063000
- * 00064000
- * GR12 = ADDRESS OF DMKRGAIN 00065000
- * GR11 = ADDRESS OF THE SYSTEM VMBLOK 00066000
- * GR10 = ADDRESS OF THE UNSTACKED IOBLOK 00067000
- * 00068000
- * EXIT CONDITIONS - 00069000
- * 00070000
- * EXIT IS MADE VIA GOTO DMKDSPCH 00071000
- * 00072000
- * CALLS TO OTHER ROUTINES - 00073000
- * 00074000
- * DMKIOSQR - TO START I/O ON LINE 00075000
- * DMKSCNRU - TO LOCATE LINE RDEVBLOK 00076000
- * DMKQCNCL - TO CLEAR CONTASK STACK AT LOGOUT 00077000
- * DMKCFMBK - TO ENTER CONSOLE FUNCTION MODE 00078000
- * DMKSTKMP - TO STACK CPEXBLOK 00079100
- * DMKCNSED - TO PERFORM EDITING AND TRANSLATION ON INPUT 00080000
- * DMKBLDVM - TO BUILD A VMBLOK FOR USER LOGON 00081000
- * DMKSCHRT - TO RESET A TIMER REQUEST 00082000
- * DMKSCHST - TO SET A TIMER REQUEST 00083000
- * DMKERMSG - TO WRITE AN ERROR MESSAGE 00084000
- * DMKSCNRD - TO GET REAL LINE ADDRESS 00085000
- * DMKQCNET - TO RETURN CONTASK AT COMPLETION 00086000
- * DMKQCNTO - TO SLEEP USER AFTER ERROR CONDITION 00087000
- * DMKIOERN - TO RECORD HARDWARE ERROR 00088000
- * DMKCFMEN - TO EXECUTE A CP CONSOLE FUNCTION 00089000
- * DMKCFMAT - TO POST AN ATTENTION INTERRUPT TO VM 00090000
- * DMKSCNVU - TO LOCATE THE VIRTUAL CONSOLE 00091000
- * DMKFREE - TO ALLOCATE FREE STORAGE FOR CONTASK'S 00092000
- * DMKFRET - TO RETURN ALLOCATED STORAGE 00093000
- * DMKCVTBH - TO CONVERT LINE ADDRESS FOR ERROR MESSAGE 00094000
- * DMKRGBSN - TO SCAN THE NICBLOKS FOR AN ACTIVE USER 00095000
- * DMKRGBMT - TO FORMAT THE DISPLAY SCREEN 00096000
- * DMKRGBIC - TO INITIALIZE CONTASK AND SCHEDULE I/O 00096100
- * DMKRGBEN - TO ENABLE/DISABLE BISYNC LINE 00096200
- * 00097000
- * EXTERNAL REFERENCES - 00098000
- * 00099000
- * DMKTBLUP - TRANSLATE TO UPPER CASE CHARACTERS 00100000
- * DMKTBLZI - APL 3270 COMPOUND CHARACTER TABLE 00100100
- * DMKTBLTI - TEXT 3270 COMPOUND CHARACTER TABLE 00100200
- * DMKRIOCN - SYSTEM CONSOLE ADDRESSES 00101000
- * DMKSYSVM - ADDRESS OF THE SYSTEM VMBLOK 00102000
- * 00103000
- * TABLES / WORK AREAS - 00104000
- * 00105000
- * TRQBLOK CONTROL BLOCK IS EXTENDED BY 1 DOUBLE WORD 00106000
- * TO CONTAIN EXTRA CONTROL DATA FOR THE RESOURCES. 00107000
- * THE TRQBLOK EXISTS FROM THE FIRST MORE STATUS ON THE 00108000
- * SCREEN TO LOGOUT. 00109000
- * 00110000
- * A BINARY SYNCHRONOUS COMMUNICATION CONTROL BLOCK (BSCBLOK) 00111000
- * WILL EXITS FOR EACH BISYNC LINE. THE BSCBLOK EXITS 00112000
- * FROM THE TIME THE BISYNC LINE IS ENABLED TO THE TIME IT'S 00113000
- * DIABLED OR AN ERROR OCCURRED ON THE BISYNC LINE. 00114000
- * 00115000
- * TBL3277 - A TABLE USED TO INDEX FOR THE BUFFER ADDRESSES 00116000
- * KEYBL - A TABLE USED TO FIND CONTROL KEYES 00117000
- * 00118000
- * NOTES - 00119000
- * 00120000
- * NONE 00121000
- * 00122000
- * REGISTER USAGE - 00123000
- * 00124000
- * GR14-15 LINKAGE REGISTERS 00125000
- * GR12,13 MODULE BASE REGISTERS 00126000
- * GR11 = ADDRESS OF THE SYSTEM VMBLOK 00127000
- * GR10 = ADDRESS OF ACTIVE IOBLOK 00128000
- * GR 9 = ADDRESS OF AFFECTED NICBLOK (IF ANY) 00129000
- * GR 8 = ADDRESS OF RDEVBLOK FOR LINE 00130000
- * GR 7 = INTERNAL LINKAGE REGISTER 00131000
- * GR 6 = ADDRESS OF CONTASK 00132000
- * GR 5 = BSCBLOK ADDRESSABILITY 00133000
- * GR 4 = TRQBLOK ADDRESSABILITY 00134000
- * G0-3 = WORK REGISTERS 00135000
- * 00136000
- * OPERATION - 00137000
- * 00138000
- * I. ANALYZE STATUS OF BISYNC LINE FOR 3270 REMOTE SUPPORT 00139000
- ** 00140000
- * 1. IF THE LINE RDEVBLOK INDICATES ANY OF THE FOLLOWING: 00141000
- * 00142000
- * . NON-BISYNC LINE RDEVBLOK 00143000
- * . A COPIED IOBLOK FOR THIS LINE 00144000
- * . UNSOLICITED INTERRUPT 00145000
- * . THE BISYNC LINE IS NOT IN USE 00146000
- * THEN, THROW AWAY THE LINE INTERRUPT AND RETURN 00147000
- * TO THE DISPATCHER. 00148000
- * 00149000
- * 2. IF THE LINE RDEVBLOK INDICATE A FATAL CONDITION OR 00150000
- * A NON-ZERO CONDITION CODE, DO ACTION 1. 00151000
- * 00152000
- * ACTION 1 00153000
- * ________ 00154000
- * 00155000
- * . RELEASE ALL CONTASKS FROM THE LINE RDEVBLOK 00156000
- * . FORCE ALL VIRTUAL MACHINE USERS OFF BISYNC LINE 00157000
- * . RELEASE STORAGE OBTAINED FOR THE BSCBLOK 00158000
- * . RESET THE POLL DELAY TIMER VALUE IF ONE EXIST 00159000
- * . IF THE LINE RDEVBLOK INDICATED A CONDITION CODE OF 3 AND 00160000
- * THE BISYNC LINE IS NOT OFFLINE, THEN SEND A 'NOT 00161000
- * OPERATIONAL ...' MESSAGE TO THE SYSTEM OPERATOR. 00162000
- * . SET THE OFFLINE AND DISABLE FLAG IN THE LINE RDEVBLOK 00163000
- * . SEND 'LINE ... DISABLED' MESSAGE TO SYSTEM OPERATOR 00164000
- * . RELEASE THE IOERBLOK AND IOBLOK; RETURN TO DISPATCHER 00165000
- * . IF THE BISYNC LINE IS A SWITCHED LINE, BYPASS GOING TO 00165250
- * DISPATCHER WHEN A PERMANENT IS INDICATED ON THE LINE. 00165500
- * CALL DMKRGBEN TO PUT AN ENABLE UP ON THE LINE. 00165750
- * 00166000
- * 3. GET THE ENDING CCW ADDRESS AND PICK UP THE TP-OP 00167000
- * CODE (BYTE 5) FROM THE CCW. GO BRANCH TO THE 00168000
- * APPORPRIATE FUNCTIONAL AREA. 00169000
- * 00170000
- * TP-OP CODE FUNCTION 00171000
- * __________ ________ 00172000
- * 00173000
- * 00 ERROR HANDLING CCW 00174000
- * 01 ENABLE/DISABLE FUNCTION 00175000
- * 02 WRITE EOT (SEQUENCE PRIOR TO POLLING 00176000
- * AND ADDRESSING) 00177000
- * 03 WRITE POLLING OR ADDRESSING CHARACTERS 00178000
- * 04 HANDLE STATION'S STATUS & SENSE MSG. 00179000
- * 05 READ RESPONSE TO ADDRESSING 00180000
- * 06 WRITE RESPONSE TO TEXT 00181000
- * 07 NO-OP FOLLOWING POLL COMMAND 00182000
- * 08 UNIT EXECPTION CONDITION (TIMEOUT) 00183000
- * 09 ALL RESET COMMANDS 00184000
- * 10 READ/WRITE TEXT 00185000
- * 11 READ RESPONSE TO TEXT 00186000
- * 12 READ REMAINING DATA FROM STATION 00187000
- * 13 STATUS BIDDING ON SWITCH LINE 00187100
- * 14 DISCONNECT STATION FROM LINE 00187200
- * 15 SEND ACK AFTER FSS WRITE 00187300
- * 16 WRITE TEXT CCW 00187400
- * 00188000
- * II. PROCESS THE TP-OP CODE FUNCTIONS 00189000
- * 00190000
- * 1. HANDLE THE WRITE OPERATION FUNCTION 00191000
- * A. HANDLE READ RESPONSE TO ADDRESSING (05) 00192000
- * . IF THE REPLY IS AN RVI, GO DO A SPECIFIC 00193000
- * POLL OPERATION FOR THE STATUS MESSAGE FROM 00194000
- * THE STATION. 00195000
- * . IF THE REPLY IS A WACK, CHECK FOR COPY FUNCTION 00196000
- * ACTIVE, IF NOT, GO RESTART AN I/O OPERATION 00197000
- * TO THE BISYNC LINE. IF COPY FUNCTION IS ACTIVE, 00198000
- * SEND 'NOT ACCEPTED' MESSAGE TO REQUESTOR. 00199000
- * . IF THE REPLY IS AN ACK, GET THE POINTER TO 00200000
- * THE WRITE CCW STRING AND WRITE THE DATA 00201000
- * TO THE STATION THAT WAS SELECTED. 00202000
- * . IF THE REPLY IS AN EOT (3275 DIAL ONLY), GO 00202200
- * GET THE PENDING STATUS MESSAGE. 00202400
- * . IF THE REPLY WAS A NAK (3275 DIAL ONLY) GO 00202600
- * RETRY THE OPERATION. 00202800
- * . IF NO REPLY WAS RECEIVED, SEND ENQ TO 00203000
- * CONTROL UNIT FOR RETRANSMISSION OF REPLY. 00204000
- * 00205000
- * B. HANDLE READ RESPONSE TO TEXT (11) 00206000
- * 00207000
- * . IF THE REPLY IS AN EOT AND IS NOT EXPECTED, 00208000
- * SEND A SPECIFIC POLL OPERATION TO THE STATION 00209000
- * FOR THE STATUS MESSAGE. IF THE EOT IS EXPECTED, 00210000
- * GET THE RETURN INDEX VALUE AND GO TO 00211000
- * FUNCTIONAL AREA. 00212000
- * . IF THE REPLY IS A NAK, RETRANSMIT LAST WRITE 00213000
- * OPERATION TO STATION. 00214000
- * . IF THE REPLY IS A WACK AND NOT A PRINTER, 00215000
- * RESET THE BISYNC LINE TO CONTROL MODE. IF THIS 00216000
- * STATION IS A PRINTER, GET THE RETURN INDEX 00217000
- * VALUE AND GO TO FUNCTIONAL AREA. 00218000
- * . IF THE REPLY IS AN ENQ, RETRANSMIT LAST WRITE 00219000
- * OPERATION TO STATION. 00220000
- * . IF THE REPLY IS AN ACK, GET THE RETURN INDEX 00221000
- * VALUE AND GO TO FUNCTIONAL AREA. 00222000
- * . IF THE REPLY IS A DISCONNECT SIGNAL (DLE EOT), 00222200
- * FORCE THE USER OFF THE SYSTEM AND PUT A READ 00222400
- * UP ON THE LINE. 00222600
- * . IF THE REPLY IS NOT RECEIVED, SEND AN ENQ 00223000
- * TO CONTROL UNIT FOR RETRANSMISSION OF REPLY. 00224000
- * 00225000
- * RETURN INDEX VALUES (CONLABEL) 00226000
- * INDEX FUNCTION 00227000
- * _____ ________ 00228000
- * 00 NEXT CONTASK FUNCTION 00229000
- * 04 READ STATE FUNCTION 00230000
- * 08 DETERMINE STATUS OF CONTASK 00231000
- * 0C CONSOLE PROCESSING FUNCTION 00232000
- * 10 MORE STATE FUNCTION 00233000
- * 14 REJECT FUNCTION 00234000
- * 18 WRITE STATUS FUNCTION 00235000
- * 1C LOGOFF USER FUNCTION 00236000
- * 20 BUILD VMBLOK FUNCTION 00237000
- * 24 FORMAT DISPLAY FUNCTION 00238000
- * 28 WRITE OPERATION FUNCTION 00239000
- * 2C RELEASE BUFFER FUNCTION 00240000
- * 30 RVI RESPONSE FUNCTION 00241000
- * 00242000
- * 2. HANDLE READ OPERATION (10) 00243000
- * 00244000
- * A. ANALYZE MESSAGE OR TEXT FROM THE REMOTE STATION 00245000
- * 00246000
- * . DETERMINE IF MESSAGE HAS ENDING CHARACTER (ETX) 00247000
- * AT THE END OF MESSAGE AND IF NOT, REQUEST 00248000
- * RETRANSMISSION OF MESSAGE FROM THE CONTROL 00249000
- * UNIT. 00250000
- * . IF TEXT IS FROM A 3275 DIAL, CHECK FOR 00250200
- * DISCONNECT SIGNAL AND IF DISCONNECT SIGNAL 00250400
- * (DLE EOT) IS PRESENTED, FORCE USER OFF SYSTEM. 00250600
- * . IF EOT IS IN TEXT GO GET PENDING STATUS MESSAGE. 00250800
- * 00251000
- * 1) HANDLE TEST REQUEST MESSAGE 00252000
- * 00253000
- * . VM IGNORE THE TEST REQUEST MESSAGE 00254000
- * 00255000
- * 2) HANDLE STATUS MESSAGE 00256000
- * 00257000
- * . IF THE STATUS MESSAGE IS A STANDALONE DEVICE 00258000
- * END, DETERMINE IF THE STATION SHOULD BE 00259000
- * FORMATTED. IF THE MESSAGE IS NOT A STANDALONE 00260000
- * DEVICE END, DETERIMINE IF THE STATION ERROR 00261000
- * IS RETRYABLE AND IF SO, RETRY THE FAILING 00262000
- * OPERATION FOR A MAXIMUM OF SEVEN TIMES . IF 00263000
- * STATION ERROR IS NOT RETRYABLE, DO ACTION 2. 00264000
- * 00265000
- * ACTION 2 00266000
- * ________ 00267000
- * 00268000
- * . SEND I/O ERROR MESSAGE (DMKRGA705I) FOR STATION 00269000
- * TO THE SYSTEM OPERATOR. 00270000
- * . RECORD MISCELLANEOUS DATA RECORD FOR STATION 00271000
- * ERROR. 00272000
- * . FORCE VIRTUAL MACHINE USER OFF BISYNC LINE 00273000
- * . GET ACTIVE RESOURCE AND START I/O OPERATION 00274000
- * TO BISYNC LINE. 00275000
- * 00276000
- * 3) HANDLE TEXT MESSAGE 00277000
- * 00278000
- * . PROCESS TAB FUNCTION 00279000
- * . PROCESS COPY FUNCTION 00280000
- * . CANCEL AND CLEAR KEY 00281000
- * RELEASE READ BUFFER 00282000
- * RESET ANY TIMER REQUEST 00283000
- * CLEAR OUTPUT SCREEN AREA 00284000
- * PROCESS NEXT CONTASK 00285000
- * . PA1 KEY 00286000
- * CANCEL FUNCTION BY RETURN CODE 4 OR 8 00287000
- * CLEAR SCREEN AREA 00288000
- * CLEAR THE STACK OF CONTASKS 00289000
- * . PF KEYS 00290000
- * GET THE USER'S FUNCTION TABLE VMPFUNC 00291000
- * GET AND VERIFY THE EXISTENCE OF A FUNCTION 00292000
- * WRITE UNDEFINED MESSAGE IF NOT FOUND 00293000
- * WRITE FUNCTION DATA IF FOUND AND DELAYED 00294000
- * PROCESS DATA IF IMMEDIATE 00295000
- * RETURN TO RELEASE BUFFER AT WRITE COMPLETION 00296000
- * . ENTER KEY 00297000
- * ANALYZE DATA IN BUFFER TO GET LENGTH 00298000
- * IF DATA ENTERED FROM READ STATE, CONTINUE 00299000
- * AT LABEL RDATA. 00300000
- * IF ENTERED FROM RUNNING, PROC. BY ENVIR. SET. 00301000
- * NULL DATA GIVE ATTN TO VM, OR ENTER CP MODE. 00302000
- * DATA ENTERED GO TO VM OR EXECUTE CONSOLE 00303000
- * FUNCTION. 00304000
- * DATA ENTERED IS RE-DISPLAYED UNLESS PRIVATE 00305000
- * DATA THAT IS ALREADY PENDING CAUSES 'NOT 00306000
- * ACCEPTED' MESSAGE. 00307000
- * IF VIRTUAL DATA IS #CP EXECUTE FUNCTION 00308000
- * RDATA ENTRY FOR RESPONSE TO READ REQUEST PASS 00309000
- * BUFFER DATA BACK TO CALLER WITH LENGTH 00310000
- * INDICATION. 00311000
- * 00312000
- * 4) TIMER INTERRUPT 00313000
- * 00314000
- * . STATUS TIMER INTERRUPT 00315000
- * REBUILD IOBLOK AND RESTORE STATUS IF NOT 00316000
- * ACCEPTED, CLEAR OUTPUT AREA, AND CONTINUE 00317000
- * TO NEXT CONTASK IF MORE. 00318000
- * . POLL DELAY TIMER INTERRUPT 00319000
- * RELEASE THE TIMER REQUEST BLOCK 00320000
- * GET NEXT ACTIVE RESOURCE AND START I/O 00321000
- * TO BISYNC LINE. 00322000
- * 00323000
- * 5) HANDLE DATA THAT ENDS WITH AN ETB 00324000
- * 00325000
- * . WHEN MORE THAN 256 BYTES ARE ENTERED, 00326000
- * A CHECK IS MAKE FOR AN ENDING CHAR. OF ETB. 00327000
- * ONCE DETECTING AN ETB, AN ACKNOWLEDGEMENT 00328000
- * IS SENTED REQUESTING MORE DATA. 00329000
- * AFTERWARD, CONTROL IS GIVEN TO THE TEXT MSG. 00330000
- * HANDLER (SEE FUNCTION ABOVED 'HANDLE TEXT 00331000
- * MESSAGE'). 00332000
- * 00333000
- * 3. HANDLE THE ENABLE/DISABLE FUNCTION (01) 00334000
- * 00335000
- * A. IN ORDER TO DISABLE THE BISYNC LINE DO ACTION 1. 00336000
- * B. ONCE THE BISYNC LINE IS ENABLED RETURN THE 00337000
- * CONTASK TO THE SYSTEM AND RESTART THE I/O 00338000
- * OPERATION TO THE BISYNC LINE. 00339000
- * 00340000
- * 4. HANDLE ALL RESET FUNCTIONS (09) 00341000
- * 00342000
- * . IF THERE ARE NO ERROR CONDITIONS OR STATUS 00343000
- * INDICATED, GET NEXT CONTASK ON THE STATION QUEUE. 00344000
- * . IF THIS IS A STATION ERROR, DO ACTION 2. 00345000
- * . IF THIS IS A CONDITION TO IGNORE INPUT DATA, THEN 00346000
- * GET NEXT CONTASK FROM STATION QUEUE. 00347000
- * . IF THIS IS A COPY FUNCTION, THEN REACTIVATE THE 00348000
- * REQUESTOR'S STATION. 00349000
- * . IF NONE OF THE ABOVE, ABEND SYSTEM. 00350000
- * 00351000
- * 5. HANDLE THE NO-OP COMMAND FUNCTION (07) 00352000
- * 00353000
- * . IF THE POLL DELAY INTERVAL IS ZERO, GO REACTIVATE 00354000
- * GENERAL POLL OPERATION IF THERE ARE NO OUTSTANDING 00355000
- * WRITE OPERATIONS. 00356000
- * . IF THE POLL DELAY INTERVAL IS NON-ZERO, SET UP 00357000
- * THE TIMER REQUEST BLOCK WITH THE DELAY POLL 00358000
- * TIMER INTERVAL AND WAIT UNTIL THE TIME HAS EXPIRED, 00359000
- * BEFORE DOING A GENERAL POLL OPERATION AGAIN. 00360000
- * 00361000
- * 6. HANDLE THE UNIT EXECPTION FUNCTION (08) 00362000
- * 00363000
- * . SET UP TO RESTART THE FAILING OPERATION THAT 00364000
- * THE TIMEOUT OCCURRED ON FROM THE REMOTE UNIT. 00365000
- * 00366000
- * 7. HANDLE UNKNOWN CCW OR ERROR HANDLER CCW (00) 00367000
- * 00368000
- * . DO ACTION 1 00369000
- * 00370000
- * 8. HANDLE STATION'S STATUS AND SENSE MESSAGE (04) 00371000
- * 00372000
- * 9. HANDLE BLOCK DATA FROM DISPLAY STATION (12) 00373000
- * 00373020
- * 10. HANDLE PENDING STATUS MESSAGE ON A SWITCHED LINE (13) 00373040
- * 00373060
- * . IF THE REPLY IS AN ENQ, WRITE AN ACK0 TO THE 00373080
- * STATION AND PUT A READ UP ON THE LINE TO RECEIVE 00373100
- * THE STATUS OR TEXT MESSAGE. 00373120
- * . IF THE REPLY IS THE DISCONNECT SIGNAL (DLE EOT), 00373140
- * GO FORCE THE USER OFF THE SYSTEM. 00373160
- * . IF THE REPLY IS UNKNOWN, RETRY THE I/O OPERATION 00373180
- * 00373200
- * 11. HANDLE DROP/DISCONNECT SWITCHED LINE (14) 00373220
- * 00373240
- * . IF THE STATION IS MARKED DISABLED ONLY ENABLE THE 00373260
- * SWITCHED LINE. IF THE STATION IS ENABLED, ENABLE 00373280
- * THE SWITCHED LINE AND WRITE THE VM LOGO TO THE 00373300
- * STATION. 00373320
- * 00373340
- * ERROR MESSAGES - 00374000
- * 00375000
- * DMKRGA454I LINE 'ADDR' DISABLED 00376000
- * DMKRGA455I LINE 'ADDR' CC=3 NOT OPERATIONAL 00377000
- * DMKRGA705I I/O ERROR RESID='RESOURCE ID' STATUS='STATUS' LINE='ADDR' 00378000
- SPACE 2 00379000
- ************************************************************* 00380000
- EJECT 00381000
- USING DMKRGAIN,R12 @V305731 00382000
- DMKRGAIN DS 0D @V305731 00383000
- LM R12,R13,RGABASE SET UP ADDRESSABILITY @V305731 00384000
- USING DMKRGA,R12,R13 @V305731 00385000
- LH R1,IOBRADD REAL DEVICE ADDRESS OF LINE @V305731 00386000
- CALL DMKSCNRU GET THE RDEVBLOK ADDRESS @V305731 00387000
- CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS ? @V305731 00388000
- BNE RGIGNORE NO, THROW AWAY INTERRUPT @V305731 00389000
- CLI RDEVTYPE,TYPBSC IS THIS A BISYNC LINE @V305731 00390000
- BNE RGIGNORE NO, THROW AWAY INTERRUPT @V305731 00391000
- CL R10,IOBLINK IS THIS A COPIED IOBLOK @V305731 00392000
- BNE RGIGNORE YES, THROW AWAY INTERRUPT @V305731 00393000
- TM IOBSPEC,IOBUNSL IS THIS A UNSOLICITED INTERRUPT @V305731 00394000
- BO RGIGNORE YES, THROW AWAY INTERRUPT @V305731 00395000
- TM RDEVSTAT,RDEVRSVD IS THIS LINE IN USE ? @V305731 00396000
- BZ RGIGNORE NO, CLEAN UP AND EXIT @V305731 00397000
- SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00397100
- L R5,RDEVBSC GET POINTER TO BSCBLOK @V305731 00398000
- L R9,BSCAUSER GET ADDR OF ACTIVE RESOURCE @V305731 00399000
- TM BSCFLAG1,BSCHALT HAS HALT I/O BEEN DONE YET? @V346931 00399300
- BO FATALER0 YES, DON'T DISABLE LINE @V346931 00399600
- TM IOBSTAT,IOBFATAL+IOBCC3 A FATAL CONDITION @V305731 00400000
- BNZ FATALER YES, FATAL CONDITION @V305731 00401000
- L R3,IOBCSW GET CCW ADDRESS FROM CSW @V305731 00402000
- LTR R3,R3 IS ADDRESS FROM CSW ZERO @VM03116 00403000
- BZ FATALER YES, FATAL CONDITION @VM03116 00404000
- SL R3,F8 BACK UP ONE CCW (KEY IS ZERO) @V305731 00405000
- SR R1,R1 CLEAR INDEX REGISTER @V305731 00406000
- IC R1,5(R3) GET BRANCH TABLE INDEX @V305731 00407000
- SLL R1,2 MULTIPLE BY 4 @V305731 00408000
- B TP0X(R1) BRANCH TO FUNCTIONAL SECTION @V305731 00409000
- TP0X EQU * BRANCH TABLE @V305731 00410000
- B FATALER1 ERROR HANDLER CCW OR UNKNOWN @V346931 00411100
- B TP01 ENABLE - DISABLE FUNCTION @V305731 00412000
- B TP02 WRITE EOT PRIOR POLL OR ADDR. @V305731 00413000
- B TP03 WRITE POLLING OR ADDRESSING CHARS@V305731 00414000
- B TP04 READ RESPONSE TO POLLING @V305731 00415000
- B TP05 READ RESPONSE TO ADDRESSING @V305731 00416000
- B TP06 POLL - WRITE RESPONSE TO TEXT @V305731 00417000
- B TP07 NO-OP FOLLOWING POLL COMMAND @V305731 00418000
- B TP08 UNIT EXECPTION CONDITION-TIMEOUT @V305731 00419000
- B TP09 ALL RESET COMMANDS @V305731 00420000
- B TP10 POLL/ADDR - READ-WRITE TEXT @V305731 00421000
- B TP11 ADDR - READ RESPONSE TO TEXT @V305731 00422000
- B TP12 READ REMAINING DATA FROM STATION @VM03043 00423000
- B TP13 GET PENDING STATUS MESSAGE @V346931 00424100
- B TP14 STATION DISCONNECT/DROP FROM LINE@V346931 00424200
- B TP16 WRITE TEXT CCW @VA13944 00424250
- SPACE 2 00424300
- TP02 EQU * WRITE EOT PRIOR TO POLL OR ADDR. @V305731 00425000
- TP03 EQU * WRITE POLLING OR ADDRESSING CHARS@V305731 00426000
- TP06 EQU * POLL - WRITE RESPONSE TO TEXT @V305731 00427000
- TP16 DS 0H WRITE TEXT CCW @VA13944 00427100
- SPACE 1 00428000
- UNITEXCP EQU * TEST FOR TIMEOUT CONDITION @V305731 00429000
- BAL R3,RTYCOUNT CHECK RETRY FIELD FOR MAXIMUM @VA13944 00430100
- TM IOBCSW+4,CE+DE+UE IS THIS A CE,DE, AND UE @VA13944 00430200
- BNO FATALER NO, FATAL SITUATION @VA13944 00430300
- MVC IOBMISC2+1(3),IOBCAW+1 SAVE CCW STRING ADDRESS @V305731 00438000
- LA R1,UNEPTCCW SET UP TO DO A READ SKIP @VA13944 00439100
- BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 00440000
- SPACE 2 00441000
- TP01 EQU * ENABLE - DISABLE FUNCTION @V305731 00442000
- L R6,NICQPNT GET ADDRESS OF ACTIVE CONTASK @V305731 00443000
- TM RDEVFLAG,RDEVDISB IS DISABLE LINE INDICATED? @V346931 00444000
- BO FATALER1 YES, FORCE ALL USERS OFF LINE @V346931 00445000
- BAL R3,CONRET GO RETURN CONTASK @V305731 00446000
- NI RDEVSTAT,X'FF'-RDEVWAII CLEAR BUSY FLAG FOR LINE@V305731 00447000
- BAL R7,RGSTART GET ACTIVE RESOURCE & START I/O @V305731 00448000
- SPACE 2 00449000
- TP05 EQU * ADDR-READ RESPONSE TO ADDRESSING @V305731 00450000
- TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED? @V346931 00450050
- BZ NODIAL2 NO, GO CHECK RESPONSE @V346931 00450100
- TM BSCFLAG1,BSCINBID INITIAL BIDDING SEQUENCE? @V346931 00450150
- BZ NODIAL2 NO, GO CHECK RESPONSE @V346931 00450200
- NI BSCFLAG1,X'FF'-BSCINBID CLEAR INITIAL BID FLAG @V346931 00450250
- CLC BSCRESP+LENADDR(L'BSCRCVD),BSCRCVD ACK RESPONSE?@V346931 00450300
- BE CORACK0 YES, WRITE MESSAGE TO STATION @V346931 00450350
- CLI BSCRESP+LENADDR,NAK NAK RESPONSE ? @V346931 00450400
- BE GETDUSNS YES, GO SET UP TO RETRY I/O @V346931 00450450
- NODIAL2 EQU * NOT DIAL OR NOT INIT BIDDING @V346931 00450500
- CLC BSCRESP(2),BSCRCVD IS THIS THE CORRECT RESPONSE @V305731 00451000
- BE CORACK0 YES, GET NEXT RESPONSE EXECPTED @V305731 00452000
- CLC BSCRESP(2),BSCSEND IS THIS THE SENDING RESPONSE @V305731 00453000
- BE CORACK0 YES, GET NEXT RESPONSE EXPECTED @V305731 00454000
- CLC BSCRESP(2),RGFWACK IS THIS A WACK RESPONSE @V305731 00457000
- BE ISWACK YES, GO SET WACK INDICATOR @V305731 00458000
- TM RDEVFTR,FTRDIAL IS DIAL UP FEATURE INDICATED?@V346931 00458050
- BNO CHKRVI NO, CHECK FOR RVI RESPONSE @V346931 00458100
- CLI BSCRESP,EOT EOT ? @V346931 00458150
- BE GETDUSNS YES, GET PENDING STATUS MESSAGE @V346931 00458200
- CLC BSCRESP,RGFDLEOT DISCONNECT SIGNAL? @V346931 00458250
- BE DLEEOT YES, GO FORCE USER OFF SYSTEM @V346931 00458300
- CLI BSCRESP,NAK NAK RESPONSE (NO TERMID)? @V346931 00458350
- BE GETDUSNS YES, GO SET UP TO RETRY I/O @V346931 00458400
- TM BSCFLAG,BSCRVI WAS EOT EXPECTED? @VA10521 00458410
- BO ISRVI YES, GO ISSUE SPECIFIC POLL @VA10521 00458420
- BAL R7,SENDENQ UNRECOGNIZED RESPONSE @V346931 00458450
- CHKRVI EQU * CHECK FOR PENDING STATUS @V346931 00458500
- CLC BSCRESP,RGFRVI IS THIS AN RVI RESPONSE? @V346931 00458550
- BE ISRVI YES, GO SET RVI INDICATOR @V346931 00458600
- CLI BSCRESP,EOT IS THIS AN EOT RESPONSE @V305731 00459000
- BE ISRVI YES, GO ISSUE SPECIFIC POLL @V305731 00460000
- TM BSCFLAG,BSCRVI WAS EOT EXPECTED? @VA11660 00460100
- BO ISRVI YES, GO ISSUE SPECIFIC POLL @VA11660 00460200
- BAL R3,RTYCOUNT CHECK RETRY COUNTER @VA13944 00461000
- B RESTARTA DO IT AGAIN, SAM @VA13944 00461050
- SPACE 2 00461100
- GETDUSNS EQU * SET UP TO HANDLE RETRY @V346931 00461200
- MVC BSCPCCW1(TWOCCW),S3275EOT WRITE EOT/READ CCW @V346931 00461300
- LA R1,BSCRESP ADDR OF RESPONSE BUFFER @V346931 00461400
- STCM R1,B'0111',BSCPCCW2+1 INTO CCW @V346931 00461500
- XC BSCRESP(RESPLEN),BSCRESP CLEAR RESPONSE BUFFER @V346931 00461600
- LA R1,BSCPCCW1 ADDRESS OF CHANNEL PROGRAM @V346931 00461700
- BAL R7,SETCAW GO START I/O TO BISYNC LINE @V346931 00461800
- SPACE 1 00462000
- CORACK0 EQU * CORRECT RESPONSE SECTION @V305731 00463000
- XI BSCRCVD+1,X'11' CHANGE ACK-0 TO ACK-1 @V305731 00464000
- XI BSCSEND+1,X'11' CHANGE ACK-1 TO ACK-0 @V305731 00465000
- MVI IOBMISC2,IBBWRITE FLAG AS WRITE CCW STRING @V305731 00466000
- L R1,BSCSPTR GET POINTER TO WRITE CCW STRING @V305731 00467000
- BAL R7,SETCAW GO RESTART I/O OPERATION @V305731 00468000
- SPACE 2 00469000
- ISWACK EQU * @V305731 00470000
- TM BSCFLAG,BSCCOPY IS COPY FUNCTION ACTIVE @V305731 00471000
- BO COPYERR YES, SEND MESSAGE TO REQUESTOR @V305731 00472000
- LA R1,BSCSCCW1 GET SELECT CCW @VA12356 00472100
- C R1,IOBCAW IS IT THE ONE? @VA12356 00472200
- BE OKCAW YES, RESTART AT THE SELECT @VA12356 00472300
- BAL R3,SELECTCW GO RESTART ADDRESSING SEQUENCE @VA11299 00473100
- OKCAW BAL R7,SETCAW ... @VA12356 00473300
- SPACE 1 00474000
- COPYERR EQU * SEND MESSAGE TO REQUESTOR @V305731 00475000
- NI BSCFLAG,X'FF'-BSCCOPY CLEAR COPY FUNCTION FLAG @V305731 00476000
- ICM R6,15,NICQPNT GET COPY FUNCTION CONTROL TASK @V305731 00477000
- BZ *+8 IF ZERO, BYPASS RETURN TASK @V305731 00478000
- BAL R3,CONRET RETURN CONTROL CONTASK @V305731 00479000
- L R9,BSCUCOPY GET COPY REQUESTOR NICBLOK ADDR @V305731 00480000
- BAL R3,NOTACPT GET CCWS FOR NOT ACCEPTED MESSAGE@V305731 00481000
- OI NICSTAT,NICCPNA+NICNTRL SET NOT ACPTED & CONTROL@V305731 00482000
- LA R1,CONCCW1 GET START OF CCW STRING @V305731 00483000
- ST R1,IOBCAW SAVE POINTER IN CAW FIELD @V305731 00484000
- BAL R3,SELECTCW GET ADDRESSING CHARACTERS @V305731 00485000
- BAL R7,RESTART GO RESTART I/O OPERATION TO LINE @V305731 00486000
- SPACE 2 00487000
- ISRVI EQU * @V305731 00488000
- BAL R3,SPOLLCW SET UP SPECIFIC POLLING CCWS @V305731 00489000
- BAL R7,SETCAW GO RESTART I/O OPERATION @V305731 00490000
- SPACE 2 00491000
- TP07 EQU * NOP FOLLOWING POLL COMMAND @V305731 00492000
- MVI BSCFLAG,X'00' CLEAR BISYNC INDICATORS @V305731 00493000
- BAL R7,FRETIOB RELEASE IOBLOK & IOERBLOK @V305731 00494000
- L R4,BSCTMRQ GET POINTER TO TIMER REQUEST @V305731 00495000
- LTR R1,R4 IS THERE A POINTER ? @V305731 00496000
- BZ POLLTMR YES, SET UP TIMER REQUEST BLOCK @V305731 00497000
- CALL DMKSCHRT GO RESET TIMER INTERRUPT @V305731 00498000
- BAL R7,DSCSTRQ GO SET UP TIMER REQUEST BLOCK @V305731 00499000
- SPACE 1 00500000
- POLLTMR EQU * GET STORAGE FOR TRQBLOK @V305731 00501000
- BAL R3,TRQSETUP GET STORAGE FOR TIMER REQUEST @V305731 00502000
- ST R4,BSCTMRQ SAVE POINTER TO TIMER REQUEST @V305731 00503000
- DSCSTRQ EQU * SCHEDULE TIMER REQUEST @V305731 00504000
- NI RDEVSTAT,X'FF'-RDEVWAII CLEAR LINE BUSY FLAG @V305731 00505000
- SLR R3,R3 CLEAR REGISTER 3 @V305731 00506000
- SLR R2,R2 CLEAR REGISTER 2 @V305731 00507000
- ICM R3,15,RDEVPDLY GET VALUE FOR TENTHS OF SECOND @V305731 00508000
- BZ TMREAD IF ZERO, CONTINUE POLLING @V305731 00509000
- M R2,=F'100000' PUT VALUE IN TIME OF DAY @V305731 00510000
- SLDL R2,12 (TOD) CLOCK VALUE @V305731 00511000
- STM R2,R3,TMRGPOLL SAVE TOD INTERVAL VALUE @V305731 00512000
- MVI TRQNAME,TRQBPOLL SET TIMER REQUEST FOR POLL @V305731 00513000
- LA R15,TMRINT GET RETURN ADDRESS ON INTERRUPT @V305731 00514000
- LA R1,TMRGPOLL GET ADDRESS OF TOD CLOCK INTERVAL@V305731 00515000
- BAL R7,SCHTIME SCHEDULE TIMER REQUEST @V305731 00516000
- OI BSCFLAG,BSCSCAN SET SECOND SCAN FLAG @V305731 00517000
- BAL R7,RGSTART CHECK FOR QUEUED WRITE REQUESTS @V305731 00518000
- SPACE 2 00519000
- TP10 EQU * POLL/ADDR - READ-WRITE TEXT @V305731 00520000
- CLI BSCREAD,EOT AN END OF TRANSMISSION RESPONSE @V305731 00521000
- BE ISRVI YES, DO A SPECFIC POLL OPERATION @V305731 00522000
- TM IOBCSW+4,UE DID WE GET AN EOT SOMEWHERE? @VA13944 00522100
- BO RESTARTA YES, START THE LINE AGAIN @VA13944 00522200
- LA R1,BSCSIZE1 GET SIZE OF INPUT BUFFER @V305731 00523000
- LA R2,BSCREAD GET ADDRESS OF BEGINNING OF DATA @V305731 00524000
- SR R3,R3 CLEAR REGISTER 3 @V305731 00525000
- ENQLIST EQU * CHECK FOR ENDING BISYNC CHARACTER@V305731 00526000
- CLI 0(R2),ENQ IS THIS AN ENQ BISYNC CHARARCTER @V305731 00527000
- BNE ENQDIAL NO, TEST FOR ENDING CHAR @V346931 00528000
- OI BSCFLAG,BSCENQ SET ENQ INDICATOR @V305731 00529000
- B DATAGOOD GO CHECK FOR BISYNC HEADER @V305731 00530000
- ENQDIAL TM RDEVFTR,FTRDIAL IS DIAL FEATURE INDICATED? @V346931 00530100
- BZ ENQETX NO, CHECK FOR ENDING CHARACTER @V346931 00530200
- CLC 0(DLEOTLN,R2),RGFDLEOT IS THIS DISCON SIGNAL? @V346931 00530300
- BE DLEEOT YES, FORCE USER OFF SYSTEM @V346931 00530400
- CLI 0(R2),EOT EOT? @V346931 00530500
- BE ISRVI YES, GET PENDING STATUS MESSAGE @V346931 00530600
- ENQETX EQU * CHECK FOR ENDING CHARACTER @VM03133 00531000
- CLI 0(R2),ETX IS THIS THE ENDING BISYNC CHARS. @V305731 00532000
- BE DATAGOOD YES, GO CHECK FOR BISYNC HEADER @V305731 00533000
- CLI 0(R2),ETB IS THIS END OF TEXT BLOCK CHARS. @V305731 00534000
- BE DATAGOOD YES, GO CHECK FOR BISYNC HEADER @V305731 00535000
- LA R2,1(R2) UPDATE INPUT DATA ADDRESS @V305731 00536000
- BCT R1,ENQLIST GO CHECK NEXT CHARACTER IN DATA @V305731 00537000
- BAL R7,SENDNAK REQUEST RETRANSMISSION OF INPUT @V305731 00538000
- SPACE 1 00539000
- DATAGOOD EQU * CHECK FOR BISYNC HEADER @V305731 00540000
- LR R1,R2 SAVE ENDING ADDRESS @V305731 00541000
- SR R0,R0 CLEAR REGISTER 0 @V305731 00542000
- LA R4,BSCREAD+1 GET POINTER TO STX CONTROL CHAR. @V305731 00543000
- CLI BSCREAD,X'05' IS THIS THE INDEX BYTE @V305731 00544000
- BE DATUPDAT YES, BYPASS GETTING ADDR. OF STX @VM03133 00545000
- S R4,F1 GET POINTER TO STX CONTROL CHAR. @V305731 00546000
- DATUPDAT EQU * GET CONTROL UNIT & DEVICE ADDRESS@VM03133 00547000
- ICM R0,3,1(R4) GET STATION ADDRESS (CU & DV) @V305731 00548000
- CLI 0(R4),STX IS THIS THE BEGINNING CHARACTER @V305731 00549000
- BE STATGOOD YES, GO FIND RESOURCE NICBLOK @V305731 00550000
- CLC 0(2,R4),RGFSONL IS THIS - SOH % - @V305731 00551000
- BNE SENDNAK NO, REQUEST RETRANSMIT INPUT DATA@V305731 00552000
- ICM R0,3,4(R4) GET STATION ADDRESS (CU & DV) @V305731 00553000
- CLC 2(2,R4),=X'D902' STATUS MESSAGE (R STX) @V305731 00554000
- BE STATGOOD YES, GO FIND RESOURCE NICBLOK @V305731 00555000
- CLC 2(2,R4),=X'6102' TEST REQUEST MSG. (/ STX) @V305731 00556000
- BE TESTREQ YES, GO IGNORE INPUT DATA @V305731 00557000
- BAL R7,SENDNAK REQUEST RETRANSMISSION OF INPUT @V305731 00558000
- SPACE 1 00559000
- STATGOOD EQU * FIND RESOURCE NICBLOK @V305731 00560000
- L R9,RDEVNICL GET ADDRESS OF NICBLOK LIST @V305731 00561000
- LA R2,NICSIZE*8 GET SIZE OF NICBLOK @V305731 00562000
- LH R3,RDEVMAX GET MAXIMUN NUMBER OF RESOURCES @V305731 00563000
- MH R3,=AL2(NICSIZE*8) GET ENDING ADDR. OF LIST @V305731 00564000
- ALR R3,R9 ... @V305731 00565000
- POLLIST EQU * FIND AFFECTED NICBLOK @V305731 00566000
- TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED @V346931 00566100
- BNO CKPLCHAR NO, GO EXAMINE POLLING CHARS @V346931 00566200
- TM NICTYPE,NICTERM DISPLAY/PRINTER ? @V346931 00566300
- BO FOUND YES, GO PROCESS INPUT TEXT @V346931 00566400
- CKPLCHAR EQU * NOT DIAL PRINTER @V346931 00566500
- CLM R0,B'0011',NICPOLL CORRECT POLLING CHARACTERS? @V305731 00567000
- BE FOUND YES, GO PROCESS INPUT DATA @V305731 00568000
- BXLE R9,R2,POLLIST GET NEXT NICBLOK AND LOOP @V305731 00569000
- L R9,RDEVNICL GET POINTER TO NICBLOK LIST @V305731 00570000
- BAL R7,TESTREQ RESOURCE NOT SYS-GEN. - IGNORE @V305731 00571000
- SPACE 2 00572000
- *********************************************************** 00573000
- * ENTRY WHEN TIMER REQUEST EXPIRES. 00574000
- *********************************************************** 00575000
- SPACE 1 00576000
- USING *,R12 ADDRESSABILITY FOR TIMER REQUEST @V305731 00577000
- TMRINT EQU * ENTRY TIMER REQUEST AT EXPIRATION@V305731 00578000
- SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00578100
- LM R12,R13,RGABASE GET BASE ADDRESSES @V305731 00579000
- USING DMKRGA,R12,R13 .... @V305731 00580000
- LH R1,TRQBDEV-TRQBLOK(R10) GET LINE ADDRESS @V305731 00581000
- CALL DMKSCNRU LOCATE REAL DEVICE CONTROL BLOCKS@V305731 00582000
- L R5,RDEVBSC GET ADDRESS OF BSCBLOK @V305731 00583000
- L R9,TRQBCRT-TRQBLOK(R10) GET NICBLOK ADDR OF USER@V305731 00584000
- CLI TRQNAME-TRQBLOK(R10),TRQBPOLL A POLL REQUEST @V305731 00585000
- BE TMREAD YES, RELEASE TIMER REQUEST BLOCK @V305731 00586000
- TM RDEVSTAT,RDEVWAII IS THE LINE ACTIVE? @VA08733 00586050
- BNO TMRGO NO, GO ON @VA08733 00586100
- CL R9,BSCAUSER IS THIS USER ACTIVE? @VA08733 00586150
- BNE TMRGO NO, GO ON @VA08733 00586200
- * *** DANGEROUS SITUATION: ACTIVITY ALREADY ON-GOING FOR 00586250
- * *** THE SAME TUBE. SAFER TO WAIT ANOTHER SECOND BEFORE 00586300
- * *** TRYING ANYTHING. 00586350
- LA R1,=A(1,0) 1 SECOND TIMER DELAY @VA08733 00586400
- LA R15,TMRINT RETURN ADDRESS @VA08733 00586450
- LR R4,R10 TRQBLOK ADDRESS @VA08733 00586500
- BAL R7,SCHTIME SCHEDULE TIMER REQUEST @VA08733 00586550
- B GODSPCH AND GO WAIT AWHILE LONGER @VA08733 00586600
- TMRGO EQU * HERE IF NOT ACTIVE SAME TUBE @VA08733 00586650
- NI NICSTAT,X'FF'-NICTRQ RESET TIMER REQUEST @V305731 00587000
- TM NICSTAT,NICCPNA NOT ACCEPTED MESSAGE ON @V305731 00588000
- BO CPNATMR1 YES, GO DETERMINE CORRECT STATUS @V305731 00589000
- BAL R3,GRFCLRT SET UP CCWS TO CLEAR SCREEN @V305731 00590000
- MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 00591000
- BAL R7,CKLINE CHECK STATUS OF BISYNC LINE @VA04651 00592100
- SPACE 1 00593000
- CPNATMR1 EQU * GET CORRECT SCREEN STATE @V305731 00594000
- BAL R4,STATUS DETERMINE SCREEN STATUS @V305731 00595000
- CKLINE EQU * DETERMINE STATUS OF LINE @VA04651 00595100
- OI NICFLAG,NICPROCN PROCESS CONTASK NOW ... @V305731 00607000
- NI NICSTAT,X'FF'-NICCPNA CLEAR NOT ACPTED MSG FLAG @V305731 00608000
- SR R10,R10 CLEAR IOBLOK ADDRESS REGISTER @V305731 00609000
- BAL R7,RGSTART GET ACTIVE RESOURCE & START I/O @V305731 00610000
- SPACE 2 00611000
- TMREAD EQU * HANDLE A POLL TIMER REQUEST @V305731 00612000
- LA R0,TRQBSIZE+CRTEXT GET SIZE OF TRQBLOK @VA13071 00613100
- L R1,BSCTMRQ GET ADDRESS OF TIMER REQUEST @V305731 00614000
- BAL R7,FRETSTG RELEASE STORAGE FOR TRQBLOK @V305731 00615000
- ST R0,BSCTMRQ CLEAR ADDRESS OF TIMER REQUEST @V305731 00616000
- SR R10,R10 CLEAR IOBLOK ADDRESS REGISTER @V305731 00617000
- BAL R7,RGSTART GET ACTIVE RESOURCE & START I/O @V305731 00618000
- SPACE 2 00619000
- RGABASE DS 0F REMOTE 3270 BASE REGISTER VALUES @V305731 00620000
- DC A(DMKRGA,DMKRGA+4096) @V305731 00621000
- SPACE 2 00622000
- FOUND EQU * PUT INPUT DATA INTO READ BUFFER @V305731 00623000
- TM BSCFLAG,BSCENQ IS ENQ IN TEXT FLAG SET ? @V305731 00624000
- BO SENDNAK YES, GO SEND NAK RESPONSE @V305731 00625000
- CLI 0(R4),STX IS THIS A TEXT MESSAGE ? @V305731 00626000
- BNE SENSTAT NO, GO TO STATUS MESSAGE SECTION @V305731 00627000
- LA R14,NDXRGFFN PASS ENTRY BRANCH TABLE OFFSET @VA13123 00627500
- GOTO DMKRGFEN GO HANDLE THE INPUT DATA @VA13123 00637500
- SPACE 1 @VA13123 00647500
- SECOND EQU * FIND COMPOUND CHARACTERS @VA13123 00657500
- LA R14,NDXRGF02 PASS ENTRY INDEX @VA13123 00667500
- GOTO DMKRGFEN GO HANDLE THE INPUT DATA @VA13123 00677500
- SPACE 1 @VA13123 00687500
- CHECKEY EQU * DETERMINE WHAT KEY WAS DEPRESSED @VM03043 00702000
- LA R14,NDXRGFCC PASS ENTRY INDEX @VA13123 00703000
- GOTO DMKRGFEN GO CHECK KEY @VA13123 00706000
- SPACE 1 @VA13123 00709000
- NOTKEY DS 0H @VA13123 00712000
- BAL R3,FRETRD RELEASE READ BUFFER @V305731 00715000
- TM BSCFLAG,BSCCOPY IS THIS A COPY FUNCTION ? @V305731 00716000
- BO RGFTSTRQ YES, RESET BISYNC LINE @V305731 00717000
- BAL R7,CPNATMR2 SET RETURN AND TEST FOR STATUS @V305731 00718000
- SPACE 1 00719000
- DATACNT EQU * SET UP COUNT IN BUFFER @V305731 00764000
- LA R14,NDXRGFDC PASS ENTRY INDEX @VA13123 00765000
- GOTO DMKRGFEN GO CHECK KEY @VA13123 00765800
- SPACE 1 @VA13123 00766600
- DMKRGACR DS 0H VALIDATE VECTOR OFFSET @VA13123 00767400
- LTR R14,R14 POSITIVE REGISTER? @VA13123 00768200
- BNM RGACRTN1 YES - GO COMPLETE VALIDATE @VA13123 00769000
- ABEND 3 GO DIE @VA13123 00769800
- RGACRTN1 DS 0H @VA13123 00770600
- CLM R14,B'1111',VECTBLST VALID OFFSET? @VA13123 00771400
- BL VECTBLGC(R14) YES - GO TO INDICATED ROUTINE @VA13123 00772200
- B RGA3 GO DIE @VA13123 00773000
- VECTBLGC DS 0H VECTOR TABLE USED ON RETURN FROM @VA13123*00773800
- DMKRGF @VA13123 00774600
- B EDNULL @VA13123 00775400
- B RVIRESP @VA13123 00776200
- B LOGUSER @VA13123 00777000
- B CLRKEY @VA13123 00777800
- B PA1KEY @VA13123 00778600
- B PA3KEY @VA13123 00779400
- B PFKEY @VA13123 00780200
- B CNCLKEY @VA13123 00781000
- B TESTREQ @VA13123 00781800
- B CRTMOR @VA13123 00782600
- B POSTINT @VA13123 00783400
- B SETHOLD1 @VA13123 00784200
- B NOTKEY @VA13123 00785000
- B RDRTN @VA13123 00785800
- B RDATA @VA13123 00786600
- B CFMBK @VA13123 00787400
- B VIRTBUFF @VA13123 00788200
- B TESTCF @VA13123 00789000
- VECTBLST DC AL4(*-VECTBLGC) VECTOR TABLE SIZE FOR COMPARE @VA13123 00789800
- SPACE 1 @VA13123 00790600
- EDNULL EQU * CLEAR INPUT AREA ON SCREEN @V305731 00793000
- BAL R3,FRETRD RELEASE THE READ BUFFER @V305731 00794000
- BAL R3,GRFCRD CCW STRING CLEAR INPUT AREA @V305731 00795000
- BAL R7,SETCAWA GO START I/O OPERATION TO LINE @V305731 00796000
- SPACE 1 00797000
- SETHOLD1 DS 0H @VA13123 00798000
- BAL R7,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V305731 00807000
- BAL R3,CRTHOLD SET UP CCW STRING FOR HOLD STATE @V305731 00808000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00809000
- SPACE 1 00810000
- CRTMOR EQU * SET CCW STRING FOR MORE STATE @V305731 00811000
- BAL R7,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V305731 00812000
- BAL R3,CRTMORE SET UP CCW STRING FOR MORE STATE @V305731 00813000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00814000
- SPACE 1 00815000
- POSTINT EQU * POST ATTENTION INTERRUPT @V305731 00816000
- BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 00817100
- TM VMMLEVEL,VMMCPENV CP ENVIRONMENT @V305731 00820000
- BO CFMBK YES, PUT IN CONSOLE FUNCTION MODE@V305731 00821000
- TM VMRSTAT,VMCFWAIT IS USER SLEEPING ? @V305731 00822000
- BO CFMBK YES, PUT IN CONSOLE FUNCTION MODE@V305731 00823000
- CALL DMKCFMAT POST ATTENTION INTERRUPT @V305731 00824000
- BZ SENDRESP IF ATTENTION INTERRUPT WAS POSTED@V305731 00825000
- CFMBK EQU * PLACE USER IN CONSOLE FUNCTION @V305731 00826000
- BAL R7,ROUTCFM PLACE IN CONSOLE FUNCTION MODE @V305731 00827000
- SENDRESP EQU * SEND RESPONSE TO REMOTE STATION @V305731 00828000
- BAL R7,RSWVMU SWITCH VMBLOK CHARGING @V4M0193 00829100
- BAL R7,RVIRESP SEND RVI RESPONSE - IGNORE INPUT @V305731 00832000
- SPACE 1 00833000
- VIRTBUFF EQU * HANDLE VIRTUAL BUFFER @V305731 00834000
- TM VMMLEVEL-VMBLOK(R1),VMMLINED VIRTUAL LINE EDIT @V305731 00835000
- BO VIRTBFRT YES, EDIT INPUT DATA @VA06260 00836100
- BAL R7,FRETCON NO, FRET DUMMY CONTASK @VA06260 00836200
- B SAVRDEV BYPASS EDITING INPUT @VA06260 00836300
- VIRTBFRT EQU * @VA06260 00836400
- MVI CONPARM,EDIT EDIT INPUT DATA @V305731 00837000
- BAL R7,ROUTCNS EDIT INPUT DATA & RELEASE CONTASK@V305731 00838000
- BAL R7,FRETCON RELEASE CONTASK ... @V305731 00839000
- LTR R3,R3 EDIT RESULT IN NULL DATA @V305731 00840000
- BNP EDNULL YES, RELEASE READ BUFFER @V305731 00841000
- L R7,0(R4) GET FIRST WORD OF DATA ENTERED @V305731 00842000
- O R7,=X'00404040' CONVERT TO UPPER CASE & BLANK @V305731 00843000
- CL R7,=X'15C3D740' IS IT CR-CP-BLANK ? @V305731 00844000
- BNE SAVRDEV NO, BYPASS HANDLING #CP @V305731 00845000
- CL R3,F3 IS IT JUST CR-CP ? @V305731 00846000
- BNE TRDATA NO, TRANSLATE TO UPPER CASE @V305731 00847000
- SR R0,R0 CLEAR REGISTER 0 @V305731 00848000
- ST R0,BUFCNT-BUFFER(R4) SET DATA COUNT TO ZERO @V305731 00849000
- TRDATA EQU * TRANSLATE CHARS. TO UPPER CASE @V305731 00850000
- L R1,=A(DMKTBLUP) GET UPPERCASE TABLE @V305731 00851000
- EX R3,TRANSLAT TRANSLATE CONSOLE FUNCTION @V305731 00852000
- TESTCF EQU * RE-DISPLAY DATA ON SCREEN @V305731 00853000
- L R1,NICUSER GET USER VMBLOK POINTER @V305731 00854000
- TM VMOSTAT-VMBLOK(R1),VMCF CONS. FUNCT. EXECUTE @V305731 00855000
- BO REJECT YES, CAN'T HANDLE DATA @V305731 00856000
- CLC BUFCNT-BUFFER(4,R4),F0 #CP ENTERED ? @V305731 00857000
- BE CPDISPLY YES, BYPASS SETTING CONS. FTN. @VM03133 00858000
- OI VMRSTAT-VMBLOK(R1),VMCFWAIT USER IN CONS. WAIT @V305731 00859000
- OI VMOSTAT-VMBLOK(R1),VMCF SET CONS. FTN. ACTIVE @V305731 00860000
- CPDISPLY EQU * DISPLAY INPUT DATA @VM03133 00861000
- BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 00861100
- LR R1,R4 GET DATA ADDRESS @V305731 00862000
- LR R0,R3 GET DATA COUNT @V305731 00863000
- LA R2,NORET SET UP PARM FOR DATA RE-DISPLAY @V305731 00864000
- BAL R7,ROUTQCN RE-DISPLAY INPUT DATA @V305731 00865000
- L R1,NICUSER GET USER VMBLOK POINTER @V305731 00866000
- BAL R3,GRFCRD SET UP CCWS TO CLEAR INPUT AREA @V305731 00867000
- MVI CONLABEL,RTNRFCFM RETURN TO CFM PROCESSING @V305731 00868000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00869000
- SPACE 1 00870000
- SAVRDEV EQU * HANDLE VIRTUAL USER INPUT DATA @V305731 00871000
- L R1,NICUSER GET USER VMBLOK POINTER @V305731 00872000
- LH R7,VMVTERM-VMBLOK(R1) GET VIRTUAL TERM. DISPL. @V305731 00873000
- LTR R7,R7 IS VIRTUAL TERMINAL DEFINED @V305731 00874000
- BM REJECT YES, REJECT INPUT DATA @V305731 00875000
- AL R7,VMDVSTRT-VMBLOK(R1) GET THE VDEVBLOK ADDRESS @V305731 00876000
- L R2,VDEVCON-VDEVBLOK(R7) PTR TO VIRTUAL CONTASK @V305731 00877000
- USING VCONCTL,R2 ADDRESSABILITY FOR VIRTUAL BUFFER@V305731 00878000
- L R1,VCONRBUF GET ADDRESS OF READ DATA BUFFER @V305731 00879000
- LTR R1,R1 IS THERE A VIRTUAL BUFFER @V305731 00880000
- BNZ REJECT NO, REJECT INPUT DATA @V305731 00881000
- MVC VCONRBSZ,=AL2(BUFSIZE) SIZE OF VIRT BUFFER HRV101DK 00882490
- STH R3,VCONRCNT SAVE NO. OF BYTES IN READ BUFFER @V305731 00883000
- ST R4,VCONRBUF SAVE BUFFER ADDRESS @V305731 00884000
- DROP R2 DROP REGISTER FOR VIRTUAL BUFFER @V305731 00885000
- XC BSCRPTR,BSCRPTR FORGET ABOUT THE BUFFER @VA08730 00885050
- BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 00885100
- LR R1,R4 GET BUFFER ADDRESS FOR RE-DISPLAY@V305731 00886000
- LR R0,R3 GET SIZE OF BUFFER DATA @V305731 00887000
- LA R2,NORET+NOTIME SET UP PARM FOR DATA RE-DISPLAY @V305731 00888000
- TM NICFLAG,NICDIAG IS THIS A DIAGNOSE WRITE REQUEST@V305731 00889000
- BZ BYPHIBIT NO, BYPASS INHIBIT PRINTING @VM03133 00890000
- LA R2,INHIBIT(R2) ADD INHIBIT TO SPOOL NOT PRINT @V305731 00891000
- BYPHIBIT EQU * SETUP TO RE-DISPLAY INPUT @VM03133 00892000
- LR R4,R8 SAVE RDEVBLOK ADDRESS @V305731 00893000
- LR R8,R7 GET VIRTUAL DEVICE BLK (VDEVBLOK)@V305731 00894000
- BAL R7,ROUTQCN GO RE-DISPLAY INPUT DATA @V305731 00895000
- BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 00896100
- CALL DMKCFMAT POST ATTN INTERRUPT TO VIRT MACH @V305731 00899000
- LR R8,R4 RESTORE RDEVBLOK POINTER @V305731 00900000
- BAL R3,GRFCRD CCWS TO CLEAR INPUT AREA @V305731 00901000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00902000
- SPACE 1 00903000
- RDATA EQU * HERE WHEN SCREEN IN READ STATE @V305731 00904000
- LTR R3,R3 ANY DATA READ ? @V305731 00905000
- BNP NOEDIT NO, BYPASS EDITING INPUT DATA @V305731 00906000
- CLI CONPARM,INHIBIT INHIBIT - NOEDIT CPREAD ? @V305731 00907000
- BE NOEDIT1 YES, BYPASS EDITING INPUT DATA @V305731 00908000
- TM NICFLAG,NICCARD DATA FROM CARD READER ? @V305731 00909000
- BO ZDATA YES, DON'T ACCEPT INPUT DATA @V305731 00910000
- MC MNCOERD,MNCLRESP RESPONSE CLASS, END READ @VA12636 00910100
- TM CONPARM,EDIT+UCASE ANY EDITING WANTED ? @V305731 00911000
- BZ NOEDIT NO, BYPASS EDITING @V305731 00912000
- L R1,NICUSER USER VMBLOK ADDRESS @VA09444 00912100
- TM VMOSTAT-VMBLOK(R1),VMCF IN CP READ?? @VA09444 00912200
- BO RDATA2 YES, EDIT THIS LINE @VA09444 00912300
- TM VMMLEVEL-VMBLOK(R1),VMMCPENV TERM MODE CP??? @VA09444 00912400
- BZ RDATA2 NO, MUST BE VMREAD @VA09444 00912500
- TM NICTMCD,NICAPL+NICTEXT TRANS INDICATED? @V387398 00913100
- BNZ NOEDIT YES, BYPASS EDIT FUNCTION @V387398 00913200
- RDATA2 DS 0H INSURE EDIT OF CP INPUT @VA09444 00913300
- L R2,CONADDR GET CALLERS BUFFER ADDRESS @V305731 00915000
- LH R0,CONCNT GET CALLERS BUFFER COUNT @V305731 00916000
- ST R4,CONADDR ADDRESS OF BUFFER FOR EDIT @V305731 00917000
- STH R3,CONCNT SAVE BUFFER COUNT @V305731 00918000
- BAL R7,ROUTCNS GO EDIT THE INPUT DATA @V305731 00919000
- ST R2,CONADDR RESTORE CALLERS BUFFER ADDRESS @V305731 00920000
- STH R0,CONCNT RESTORE CALLERS BUFFER COUNT @V305731 00921000
- SR R2,R2 SET ZERO RETURN CODE @V305731 00922000
- LTR R3,R3 ANY DATA AFTER EDITING ? @V305731 00923000
- BNP RDATA3 NO, RELEASE READ BUFFER @VA09444 00924100
- L R7,0(R4) GET FIRST WORD OF DATA ENTERED @VA09444 00924150
- O R7,=X'00404040' CONVERT TO UPPER CASE @VA09444 00924200
- CL R7,=X'15C3D740' IS THIS CR CP???? (#CP) @VA09444 00924250
- BNE RDRTN PASS DATA TO CALLER @VA09444 00924300
- CL R3,F3 IS IT JUST CR CP?? @VA09444 00924350
- BNE TRDATA1 NO TRANSLATE TO UPPER CASE @VA09444 00924400
- SR R0,R0 SET DATA COUNT TO ZERO @VA09444 00924450
- ST R0,BUFCNT-BUFFER(R4) *** @VA09444 00924500
- TRDATA1 DS 0H TRANSLATE CHARACTERS TO UP CASE @VA09444 00924550
- L R1,=A(DMKTBLUP) UPPERCASE XLATE TABLE @VA09444 00924600
- EX R3,TRANSLAT TRANSLATE CONSOLE FUNCTION @VA09444 00924650
- B RDRTN MOVE DATA TO USER BUFFER @VA09444 00924700
- RDATA3 DS 0H CONTINUE AS BEFORE @VA09444 00924750
- BAL R3,FRETRD RELEASE READ BUFFER @V305731 00925000
- BAL R3,GRFCRD SET UP CCWS TO CLEAR INPUT AREA @V305731 00926000
- MVI CONLABEL,RTNSRTRD SET RETURN TO READ SECTION @V305731 00927000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00928000
- SPACE 1 00929000
- NOEDIT1 EQU * @V305731 00930000
- TM NICFLAG,NICCARD IS DATA FROM CARD READER @V305731 00931000
- BO NOEDIT YES, BYPASS CLEARING COUNT @V305731 00932000
- ZDATA EQU * CLEAR INPUT DATA COUNT @V305731 00933000
- SR R3,R3 CLEAR COUNT REGISTER @V305731 00934000
- NOEDIT EQU * @V305731 00935000
- SR R2,R2 SET RETURN CODE TO ZERO @V305731 00936000
- RDRTN EQU * MOVE DATA INTO CALLERS BUFFER @V305731 00937000
- LH R1,CONCNT GET CALLERS BUFFER COUNT @V305731 00938000
- CLR R1,R3 IS IT LESS THAN INPUT COUNT @V305731 00939000
- BNL BYPCOUNT NO, BYPASS CHANGING COUNT @VM03133 00940000
- LR R3,R1 SET DATA COUNT TO MAXIMUN @V305731 00941000
- BYPCOUNT EQU * SAVE ACTUAL DATA COUNT @VM03133 00942000
- STH R3,CONCNT SAVE DATA COUNT @V305731 00943000
- LTR R3,R3 ANY DATA RETURNED ? @V305731 00946000
- BNP NODATA NO, BYPASS MOVING DATA @V305731 00947000
- L R1,CONADDR GET CALLERS BUFFER ADDRESS @V305731 00948000
- BCTR R3,R0 SUBTRACT ONE - EX INSTRUCTION @V305731 00949000
- EX R3,MOVEDATA MOVE INPUT DATA TO CALLERS BUFFER@V305731 00950000
- NODATA EQU * SET UP TO RE-DISPLAY INPUT DATA @V305731 00951000
- BAL R3,SETRETN SET RETURN CODE @V305731 00952000
- BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 00952100
- LA R0,4 SIZE FOR BLANKS @V305731 00953000
- LA R1,BLANKS WRITE BLANKS FOR NULL/PROTECTED @V305731 00954000
- TM CONPARM,INHIBIT NON-DISPLAY INPUT DATA ? @V305731 00955000
- BO BLNKDSP YES, GO RE-DISPLAY BLANKS @V305731 00956000
- LH R3,CONCNT RESTORE BYTE COUNT @VA07438 00958100
- LTR R3,R3 IS BYTE COUNT ZERO ? @V305731 00959000
- BZ BLNKDSP YES, GO WRITE BLANKS @V305731 00960000
- LR R0,R3 GET BYTE COUNT @V305731 00961000
- LR R1,R4 GET BUFFER ADDRESS @V305731 00962000
- BLNKDSP EQU * @V305731 00963000
- LA R2,NORET SET UP PARM @V305731 00964000
- TM CONPARM,VMGENIO VIRTUAL MACHINE DATA @V305731 00965000
- BZ BYPPARM NO, BYPASS PARAMETERS @VM03133 00966000
- LA R2,NORET+NOTIME ... @V305731 00967000
- BYPPARM EQU * CHECK FOR DIAGNOSE WRITE (X'58') @VM03133 00968000
- TM NICFLAG,NICDIAG SCREEN WRITTEN WITH DIAGNOSE @V305731 00969000
- BZ BYPINH NO, BYPASS INHIBITING PRINT @VM03133 00970000
- LA R2,INHIBIT(R2) ADD INHIBIT TO SPOOL NOT PRINT @V305731 00971000
- ICM R2,B'0100',NOMC BYPASS MONITOR CALL IN QCN @VA04810 00971500
- BYPINH EQU * RE-DISPLAY INPUT AREA @VM03133 00972000
- BAL R7,ROUTQCN GO RE-DISPLAY INPUT DATA @V305731 00973000
- OI CONPARM,INHIBIT MAKE SURE NOT SPOOLED TWICE @VA05374 00973500
- OI CONSTAT,CONACTV REMEMBER TO RETURN THE READ @V305731 00975000
- BAL R3,FRETRD RELEASE READ BUFFER @V305731 00976000
- BAL R3,GRFCRD SET UP CCWS TO CLEAR INPUT AREA @V305731 00977000
- TM NICFLAG,NICDIAG IS THE DIAGNOSE INTERFACE ACTIVE@V305731 00978000
- BO DIAG IF SO, BRANCH @VA11787 00979350
- B BYPWRITS SET UP SCREEN STATUS @VA11787 00979550
- DIAG MVI CONLABEL,RTNCPNAT RET. TO RITE STAT SECTION @VA11787 00979750
- BYPWRITS EQU * SETUP SCREEN STATUS @VM03133 00981000
- MVI NICSTAT,NICRUNN+NICNTRL SET RUNNING & CONTROL @V305731 00982000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00983000
- SPACE 1 00984000
- CNCLKEY EQU * HANDLE CANCEL KEY @V305731 00985000
- TM NICTMCD,NICAPL APL ON ? @V305798 00986000
- BZ CLRKEY NO, CONT @V305798 00987000
- L R1,NICUSER GET USER VMBLOK POINTER @VM03094 00988000
- TM VMQSTAT-VMBLOK(R1),VMPA2APL IS PA2 FLAG ENABLE @VM03116 00989000
- BZ CLRKEY NO, CONTINUE NORMAL PROCESSING @VM03094 00990000
- TM NICSTAT,NICHOLD+NICMORE IS THIS HOLD/MORE STATUS@VM03094 00991000
- BNZ XINCONT YES, REFLECT EXTERNAL INTERRUPT @VM03094 00992000
- TM NICSTAT,NICREAD IS READ STATUS INDICATED @VM03094 00993000
- BZ CLRKEY NO, DON'T REFLECT INTERRUPT @VM03094 00994000
- L R3,NICQPNT GET READ CONTASK FROM QUEUE @VM03094 00995000
- TM CONPARM-CONTASK(R3),VMGENIO IS THIS VM READ @VM03094 00996000
- BZ CLRKEY NO, BYPASS REFLECTING INTERRUPT @VM03094 00997000
- XINCONT EQU * REFLECT EXTERNAL INTRRUPT @VM03094 00998000
- SLR R3,R3 CLEAR THE INDEX @V305798 00999000
- STM R5,R6,BALRSAVE SAVE BASE REGS @VA07391 01000100
- L R4,=X'00400040' EXTERNAL INTERRUPT KEY @V305798 01001000
- LA R2,VMPXINT-VMBLOK(R1) START OF EXT INT BLOCKS @V305798 01002000
- USING XINTBLOK,R2 @V305798 01003000
- XINTLOOP LR R6,R2 @V305798 01004000
- L R2,XINTNEXT-XINTBLOK(,R6) NEXT ? @V305798 01005000
- LTR R2,R2 TEST IT @V305798 01006000
- BZ XINTADD NOPE, ADD END OF CHAIN @V305798 01007000
- C R3,XINTSORT CHECK FOR COLLATING SEQ @V305798 01008000
- BH XINTLOOP KEEP LOOKING... @V305798 01009000
- BL XINTADD THIS EES THE PLACE @V305798 01010000
- O R4,XINTCODE MUST BE INDICATED TOGETHER @V305798 01011000
- ST R4,XINTCODE OR ONE AT A TIME @V305798 01012000
- B XINTEXIT GET OUT @V305798 01013000
- XINTADD EQU * @V305798 01014000
- LA R0,XINTSIZE NO. OF DOUBLE WORDS @V305798 01015000
- CALL DMKFREE @V305798 01016000
- ST R1,XINTNEXT-XINTBLOK(,R6) @V305798 01017000
- SLR R5,R5 PARM IS MEANINGLESS HERE @V305798 01018000
- STM R2,R5,XINTNEXT-XINTBLOK(R1) BUILD NEW INTRPT BLK@V305798 01019000
- XINTEXIT EQU * RESTORE REGISTERS @V305798 01020000
- LM R5,R6,BALRSAVE RESTORE BASE REGS @VA07391 01021100
- DROP R2 DROP BASE REGISTER @V305798 01022000
- SPACE 2 01023000
- CLRKEY EQU * @V305798 01024000
- BAL R3,FRETRD RELEASE READ BUFFER @V305731 01025000
- CNCLDE EQU * CLEAR SCREEN ON DEVICE END STATUS@V305731 01026000
- BAL R7,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V305731 01027000
- TM NICSTAT,NICRUNN+NICMORE IS RUNNING OR MORE ON ? @V305731 01028000
- BZ CNCLREAD NO, CHECK READ STATE @V305731 01029000
- GRFCLR EQU * CLEAR SCREEN SECTION @V305731 01030000
- BAL R3,GRFCLRT SET UP CLEAR SCREEN CCWS @V305731 01031000
- MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 01032000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01033000
- SPACE 1 01034000
- CNCLREAD EQU * @V305731 01035000
- TM NICSTAT,NICREAD IS THIS A READ STATE @V305731 01036000
- BZ CNCLHOLD NO, CANCEL FROM HOLD STATE @V305731 01037000
- BAL R3,GRFCLRT SET UP CLEAR SCREEN CCWS @V305731 01038000
- MVI CONLABEL,RTNSRTRD SET RETURN TO READ SECTION @V305731 01039000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01040000
- SPACE 1 01041000
- CNCLHOLD EQU * PROCESS HOLD STATE @V305731 01042000
- LA R2,4 SINGLE ATTENTION RETURN CODE @V305731 01043000
- L R1,NICUSER GET USER VMBLOK POINTER @V305731 01044000
- TM VMMLEVEL-VMBLOK(R1),VMMCPENV CP ENVIRONMENT @V305731 01045000
- BZ GRFCLR NO, GO CLEAR SCREEN @V305731 01046000
- * CNCL(PA2) KEY WITH TERM MODE CP AND IN HOLDING STATUS 01046310
- * CLEARS THE SCREEN AND GIVES RETURN CODE 8 01046320
- SPACE 1 01046400
- CLEARD EQU * CLEAR THE REMOTE DISPLAY SCREEN @V305731 01047000
- LA R2,8 RETURN CODE FOR DOUBLE ATTENTION @VA04772 01048300
- TM CONPARM,VMGENIO WAS OUTPUT FROM VIRTUAL SIO @VA04772 01048600
- BO PA1CLR YES - DON'T GIVE DOUBLE ATTEN. @VA04772 01048900
- * RETURN 01049200
- BAL R3,SETRETN SET RETURN CODE FOR CALLER @VA04772 01049500
- BAL R3,GRFCLRT CCW'S TO CLEAR THE SCREEN @VA04772 01049800
- MVI CONLABEL,RTNLGTST CONTASK RETURN ADDRESS @VA04772 01050100
- B SETCAWA NOW CLEAR THE SCREEN @VA04772 01050400
- SPACE 1 01050700
- PA1CLR BAL R3,GRFCLRT CCW'S TO CLEAR THE SCREEN @VA04772 01051000
- MVI CONLABEL,RTNLGTST CONTASK RETURN ADDRESS @VA04772 01051300
- OI BSCFLAG1,BSCPA1 FLAG TO PUT USER IN BREAK MODE @VA04772 01051600
- B SETCAWA ISSUE SIO TO CLEAR THE SCREEN @VA04772 01051900
- SPACE 1 01053000
- PA1KEY EQU * HANDLE PA1 KEY @V305731 01054000
- BAL R3,FRETRD RELEASE READ BUFFER @V305731 01055000
- TM NICSTAT,NICRUNN IS RUNNING STATE INDICATED @V305731 01056000
- BO CFMBK YES, PLACE IN CONSOLE FUNCTION @V305731 01057000
- TM NICSTAT,NICMORE+NICHOLD IS MORE OR HOLD ON ? @V305731 01058000
- BZ PA1READ NO, MUST BE READ STATE @V305731 01059000
- BAL R7,RSTTMR RESET ACTIVE TIMER REQUEST @V305731 01060000
- BAL R7,CLEARD GO CLEAR SCREEN @V305731 01061000
- SPACE 1 01062000
- PA1READ EQU * HANDLE READ STATE FOR PA1 KEY @V305731 01063000
- LA R2,8 SET DOUBLE ATTENTION RETURN CODE @V305731 01064000
- SR R3,R3 ZERO DATA COUNT @V305731 01065000
- B RDRTN GO RE-DISPLAY BLANKS @V305731 01066000
- SPACE 1 01067000
- PA3KEY EQU * HANDLE THE FUNCTION KEYS @V305731 01068000
- LA R1,PF6NDX SET TABLE INDEX @V305731 01069000
- PFKEY EQU * PROCESS ALL FUNCTION KEYS @V305731 01070000
- S R1,=A(PFNDX) ADJUST TO KEY INDEX NUMBER @V305731 01071000
- SLL R1,2 TIMES 4 FOR INDEX @V305731 01072000
- L R4,NICUSER GET USER VMBLOK POINTER @V305731 01073000
- L R2,VMPFUNC-VMBLOK(,R4) GET USER FUNCTION TABLE @V305731 01074000
- LTR R2,R2 ANY DEFINED ? @V305731 01075000
- BZ PFREJ NO, REJECT FUNCTION @V305731 01076000
- LA R2,0(R1,R2) INDEX FOR FUNCTION KEY @V305731 01077000
- L R4,4(R2) GET PF DATA ADDRESS @V305731 01078000
- LTR R4,R4 ANY DATA DEFINED ? @V305731 01079000
- BZ PFREJ NO, REJECT FUNCTION KEY @V305731 01080000
- CLC 0(4,R4),=C'TAB ' IS IT THE TAB FUNCTION ? @V305731 01081000
- BE PFTAB YES, DO IT @V305731 01082000
- LH R1,2(R2) GET PF DATA SIZE @V305731 01083000
- CLC 0(4,R4),=C'COPY' IS IT THE COPY FUNCTION ? @V305731 01084000
- BNE PFSIZ NO, MOVE DATA TO BUFFER @V305731 01085000
- CLI 4(R4),X'40' IS THIS A BLANK CHARACTER @V305731 01086000
- BE PFLENG YES, CHECK LENGTH OF MESSAGE @VM03133 01087000
- C R1,F4 IS THIS JUST COPY ? @V305731 01088000
- BNE PFSIZ NO, RE-DISPLAY DATA @V305731 01089000
- PFLENG EQU * CHECK LENGTH OF MESSAGE @VM03133 01090000
- C R1,F8 IS PF DATA LENGTH GREATER THAN 8 @V305731 01091000
- BH PFSIZ YES, GO RE-DISPLAY PF DATA @V305731 01092000
- BAL R7,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V305731 01093000
- LH R1,2(R2) GET PF DATA SIZE @V305731 01094000
- C R1,F5 IS JUST COPY INDICATED ? @V305731 01095000
- BH RESDATA NO, GET RESOURCE ID. FROM PF DATA@V305731 01096000
- LR R4,R9 SAVE USER NICBLOK POINTER @V305731 01097000
- L R9,RDEVNICL GET START OF NICBLOK LIST @V305731 01098000
- LA R2,NICSIZE*8 GET LENGTH OF NICBLOK @V305731 01099000
- LH R3,RDEVMAX GET THE NUMBER OF NICBLOKS @V305731 01100000
- MH R3,=AL2(NICSIZE*8) GET THE ENDING @V305731 01101000
- ALR R3,R9 NICBLOK ADDRESS @V305731 01102000
- TESTPRT EQU * DETEMINE IF A PRINTER IS OFFLINE @V305731 01103000
- TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER ? @V305731 01104000
- BO RESOURCE YES, COPY FROM DISPLAY TO PRINTER@V305731 01105000
- BXLE R9,R2,TESTPRT GET NEXT NICBLOK ADDRESS @V305731 01106000
- BAL R7,REJREQ GO RESTORE USER NICBLOK POINTER @V305731 01107000
- SPACE 1 01108000
- RESDATA EQU * DETERMINE IF RESOURCE IS VALID @V305731 01109000
- LA R1,5(R4) GET RESOURCE ID. FROM PF DATA @V305731 01110000
- LA R0,3 GET LENGTH OF DATA @V305731 01111000
- CALL DMKCVTHB CONVERT RESOURCE ID. TO BINARY @V305731 01112000
- BNZ REJECT INVALID RESOURCE ID. @VM03094 01113000
- N R1,F4095 CLEAR THE LINE CODE @V305731 01114000
- LR R4,R9 SAVE USER NICBLOK POINTER @V305731 01115000
- L R9,RDEVNICL GET THE START OF NICBLOK LIST @V305731 01116000
- LA R2,NICSIZE*8 GET LENGTH OF NICBLOK @V305731 01117000
- LH R3,RDEVMAX GET NUMBER OF NICBLOKS @V305731 01118000
- MH R3,=AL2(NICSIZE*8) GET THE ENDING @V305731 01119000
- ALR R3,R9 NICBLOK ADDRESS @V305731 01120000
- TESTPRT1 EQU * GET NICBLOK FOR REMOTE PRINTER @V305731 01121000
- CH R1,NICNAME IS THIS THE PRINTER NICBLOK @V305731 01122000
- BE PRTTEST YES, SEE IF THIS IS A PRINTER @VM03133 01123000
- BXLE R9,R2,TESTPRT1 GET NEXT NICBLOK ADDRESS @V305731 01124000
- B REJREQ GO RESTORE USER NICBLOK POINTER @V305731 01125000
- PRTTEST EQU * CHECK FOR REMOTE PRINTER @VM03133 01126000
- TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER ? @V305731 01127000
- BO RESOURCE YES, GO COPY SCREEN TO PRINTER @V305731 01128000
- REJREQ EQU * @V305731 01129000
- LR R9,R4 GET USER NICBLOK POINTER @V305731 01130000
- REJECT EQU * CCW STRING FOR NOT ACCEPTED STATE@V305731 01131000
- BAL R3,FRETRD RELEASE STORAGE FOR READ BUFFER @V305731 01132000
- BAL R3,NOTACPT CCW STRING FOR NOT ACCEPTED STATE@V305731 01133000
- OI NICSTAT,NICCPNA+NICNTRL SET NOT ACPTED & CONTROL@V305731 01134000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01135000
- SPACE 1 01136000
- RESOURCE EQU * SET UP TO COPY SCREEN TO PRINTER @V305731 01137000
- BAL R3,FRETRD RELEASE READ BUFFER @V305731 01138000
- TM NICSTAT,NICDISA IS THIS PRINTER OFFLINE ? @V305731 01139000
- BO REJREQ YES, GO REJECT REQUEST @V305731 01140000
- TM NICFLAG,NICENAB IS THIS PRINTER ENABLE ? @V305731 01141000
- BZ REJREQ NO, GO REJECT REQUEST @V305731 01142000
- ST R9,BSCUCOPY SAVE PRINTER NICBLOK ADDRESS @V305731 01143000
- LR R9,R4 GET USER NICBLOK POINTER @V305731 01144000
- OI BSCFLAG,BSCOPIED SET INITIATE COPY FUNCTION FLAG@V305731 01145000
- BAL R7,RVIRESP SEND RVI RESPONSE TO STATION @V305731 01146000
- SPACE 1 01147000
- PFSIZ EQU * MOVE DATA FROM TABLE INTO BUFFER @V305731 01148000
- USING BUFFER,R3 ADDRESSABILITY FOR READ BUFFER @VA13123 01148500
- XC BUFFER(BUFINLTH+6),BUFFER CLEAR BUFFER AREA @V305731 01149000
- BCTR R1,R0 SUBTRACT ONE - EX INSTRUCTION @V305731 01150000
- EX R1,MVCRT MOVE FUNCTION DATA TO BUFFER @V305731 01151000
- LR R4,R3 MOVE BUFFER ADDRESS IN REGISTER 4@V305731 01152000
- LA R1,1(R1) UPDATE DATA COUNT @V305731 01153000
- LR R3,R1 SAVE DATA COUNT @V305731 01154000
- TM 0(R2),X'80' IMMED EXECUTION ? @V305731 01155000
- BO DATACNT YES, PROCESS DATA NOW @V305731 01156000
- LR R2,R4 GET BUFFER DATA ADDRESS @V305731 01157000
- L R7,=A(DMKTBLGR) GET TRANSLATE TABLE @V305731 01158000
- L R1,NICUSER GET USER VMBLOK POINTER @V305731 01159000
- IC R0,VMTLEND-VMBLOK(R1) GET LOGICAL LINE END @V305731 01160000
- STC R0,21(,R7) SAVE LCR CHAR IN TRANSLATE DATA @V305731 01161000
- BCTR R3,R0 SUBTRACT ONE - EX INSTRUCTION @V305731 01162000
- EX R3,TROPUT TRANSLATE OUTPUT DATA @V305731 01163000
- MVI 21(R7),X'15' STORE LCR CHAR IN TRANSLATE DATA @V305731 01164000
- LA R1,1(R3,R4) POINT PAST LAST BYTE @V305731 01165000
- MVI 0(R1),X'13' PUT CURSOR AT END @V305731 01166000
- MVI 1(R1),ETX PUT ENDING BISYNC CHARACTER @V305731 01167000
- LA R3,3(R3) COUNT WITH CURSOR & ETX @V305731 01168000
- BAL R7,BLD77IDS DISPLAY IN INPUT AREA @V305731 01169000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01170000
- SPACE 1 01171000
- PFREJ EQU * SEND REJECT MESSAGE @V305731 01172000
- XC BUFFER(BUFINLTH+6),BUFFER CLEAR READ BUFFER @V305731 01173000
- MVC BUFFER(RJL),PFRJM SET UP REJECT MESSAGE @V305731 01174000
- SRL R1,3 PF NUMBER BINARY @V305731 01175000
- LA R1,1(R1) ... @V305731 01176000
- CALL DMKCVTBD CONVERT TO DECIMAL @V305731 01177000
- STH R1,BUFFER+4 SET PF NUMBER IN MESSAGE @V305731 01178000
- LR R4,R3 GET BUFFER ADDRESS @V305731 01179000
- LA R3,RJL SIZE OF MESSAGE FOR WRITE @V305731 01180000
- BAL R7,BLD77IDS DISPLAY IN INPUT AREA @V305731 01181000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01182000
- SPACE 1 01183000
- PFTAB EQU * HANDLE THE TAB FUNCTION @V305731 01184000
- LA R14,TAB01 TAB TABLE START @V305731 01185000
- LA R0,136 TAB TABLE SIZE @V305731 01186000
- CLRNXT EQU * CLEAR TAB INDICATOR @V305731 01187000
- NI 0(R14),X'7F' TAB BIT OFF @V305731 01188000
- LA R14,2(R14) NEXT ENTRY @V305731 01189000
- BCT R0,CLRNXT LOOP FOR ALL ENTRIES @V305731 01190000
- LA R4,3(R4) POSITION TO TAB DATA @V305731 01191000
- LH R2,2(R2) GET TAB DATA COUNT @V305731 01192000
- S R2,F3 ADJUST TO FIRST ENTRY @V305731 01193000
- FNDSTRT EQU * FIND START OF DATA FIELD @V305731 01194000
- CLI 0(R4),X'40' START OF FIELD ?? @V305731 01195000
- BNE FNDEND YES, GO FIND END OF DATA @VM03133 01196000
- LA R4,1(R4) BUMP TO NEXT POSITION @V305731 01197000
- BCT R2,FNDSTRT KEEP LOOKING FOR FIELD START @V305731 01198000
- B TABEND WE DIDNT FIND ONE @V305731 01199000
- FNDEND EQU * SETUP COUNTER FOR SCAN @VM03133 01200000
- LR R1,R4 REMEMBER START OF FIELD @V305731 01201000
- SR R0,R0 CLEAR COUNTER @V305731 01202000
- FNDTAB EQU * FIND END OF DATA FIELD @V305731 01203000
- A R0,F1 COUNT ONE @V305731 01204000
- LA R4,1(R4) BUMP TO NEXT POSITION @V305731 01205000
- CLI 0(R4),X'40' IS THIS THE END OF THE FIELD ? @V305731 01206000
- BE BYPTABD YES, GOOD @VM03133 01207000
- BCT R2,FNDTAB KEEP LOOKING FOR THE END @V305731 01208000
- BYPTABD EQU * CONVERT TO A BINARY NUMBER @VM03133 01209000
- CALL DMKCVTDB CONVERT TO BINARY NUMBER @V305731 01210000
- BNZ NXTAB ERROR, IGNORE IT @V305731 01211000
- CH R1,=H'136' IS IT TOO BIG ? @V305731 01212000
- BH NXTAB YES, IGNORE ALSO @V305731 01213000
- SLL R1,1 TIMES TWO FOR INDEX @V305731 01214000
- LA R14,TABTBL(R1) POINT AT TAB TABLE ENTRY @V305731 01215000
- OI 0(R14),X'80' TURN ON TAB BIT @V305731 01216000
- NXTAB EQU * FIND END OF DATA FIELD @V305731 01217000
- LTR R2,R2 TEST COUNT REMAINING @V305731 01218000
- BNP TABEND NONE, END OF TABS @V305731 01219000
- BCT R2,FNDSTRT LESS ONE AND FIND NEXT TAB @V305731 01220000
- SPACE 01221000
- TABEND EQU * GET CURSOR BUFFER ADDRESS @V305731 01222000
- LA R14,TAB01 TAB POSITION TABLE @V305731 01223000
- LA R0,136 MAX COUNT FOR SCAN @V305731 01224000
- SR R1,R1 CLEAR COUNTER @V305731 01225000
- FNDCUR EQU * SET UP CURSOR ADDRESS @V305731 01226000
- LH R15,0(R14) GET CURSOR POSN ADDRESS @V305731 01227000
- N R15,=XL4'00007FFF' AND OUT TAB BIT @V305731 01228000
- CLM R15,3,BUFFER+1 COMPARE TO CURSOR POSN @V305731 01229000
- BE CURTAB FOUND IT @V305731 01230000
- LA R1,1(R1) COUNT PLUS ONE @V305731 01231000
- LA R14,2(R14) NEXT TABLE ENTRY @V305731 01232000
- BCT R0,FNDCUR KEEP LOOKING TILL END @V305731 01233000
- SR R1,R1 DIDNT FIND IT, FORCE TO BEGINNING@V305731 01234000
- LA R14,TAB01 FIRST ENTRY IN TABLE @V305731 01235000
- OI TAB01,X'80' TAB AT POSN 1 @V305731 01236000
- CURTAB EQU * @V305731 01237000
- MVC BUFFER(3),SYNCP HEADER FOR BISYNC PROTOCOL @V305731 01238000
- MVI BUFFER+3,WCC6 SET DATA TO WRITE IN BUFFER @V305731 01239000
- MVI BUFFER+4,SBA SET BUFFER ADDRESS @V305731 01240000
- LH R15,0(R14) GET TAB POSITION @V305731 01241000
- N R15,=XL4'00007FFF' AND OUT TAB BIT @V305731 01242000
- STCM R15,3,BUFFER+5 SET TAB POSITION @V305731 01243000
- MVI BUFFER+7,IC IC ORDER IF NOT NULL @V305731 01244000
- LA R2,BUFFER+9(R1) POINT AT CURSOR POSITION @V305731 01245000
- CLI 0(R2),X'00' IS IT NULL ?? @V305731 01246000
- BNE MOVCUR NO, JUST MOVE THE CURSOR @V305731 01247000
- TM NICTMCD,NICTABF IS THIS SECOND SCAN OF INPUT @V305731 01248000
- BO MOVCUR YES, BYPASS INSERTING TAB CHAR @V305731 01249000
- MVI BUFFER+7,X'6A' INSERT A LOGICAL TAB CHAR @V305731 01250000
- MOVCUR EQU * GET TAB POSITION FROM TABLE @V305731 01251000
- LA R14,2(R14) NEXT TABLE POSITION @V305731 01252000
- TM 0(R14),X'80' IS IT A TAB POSITION ?? @V305731 01253000
- BO SETCUR YES, SET CURSOR ADDRESS @V305731 01254000
- BCT R0,MOVCUR KEEP LOOKING FOR NEXT TAB @V305731 01255000
- OI NICTMCD,NICTABF SET SECOND SCAN FLAG @V305731 01256000
- SETCUR EQU * @V305731 01257000
- MVI BUFFER+8,SBA TAB POSITIONING @V305731 01258000
- LH R15,0(R14) GET BUFFER ADDRESS @V305731 01259000
- N R15,=XL4'00007FFF' AND OUT TAB BIT @V305731 01260000
- STCM R15,3,BUFFER+9 SET TAB ADDRESS @V305731 01261000
- MVI BUFFER+11,IC IC ORDER @V305731 01262000
- MVI BUFFER+12,ETX SET ENDING CHARACTER FOR BISYNC @V305731 01263000
- LR R4,R3 BUFFER ADDRESS @V305731 01264000
- BAL R3,BLD77TAB CCWS TO WRITE NEW CURSOR POSITION@V305731 01265000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01266000
- SPACE 2 01267000
- TP08 EQU * UNIT EXECPTION FROM TIMEOUT @V305731 01268000
- ICM R1,7,IOBMISC2+1 GET ADDR. OF RESTART CCW STRING @V305731 01269000
- BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01270000
- SPACE 2 01271000
- TP09 EQU * ALL RESET COMMANDS @V305731 01272000
- CLI BSCFLAG,X'00' ARE THERE ANY FLAGS ON ? @V305731 01273000
- BE NOCTL NO, GET NEXT CONTASK @V305731 01274000
- TM BSCFLAG,BSCREGEN IS REGENERATION FLAG ON ? @V305731 01275000
- BO REGENER YES, GO TO ERROR HANDLER @V305731 01276000
- TM BSCFLAG,BSCTSTRQ IS THIS A TEST REQUEST FLAG @V305731 01277000
- BO NOCTLNT YES, GO GET START I/O TO LINE @V305731 01278000
- TM BSCFLAG,BSCCOPY IS THIS A COPY FUNCTION ? @V305731 01279000
- BO RGFCOPY YES, GO HANDLE COPY FUNCTION @V305731 01280000
- ABEND 2 SHOULD NOT OCCUR @V305731 01281000
- SPACE 1 01282000
- NOCTL EQU * GET NEXT CONTASK @V305731 01283000
- NI NICSTAT,X'FF'-NICNTRL CLEAR CONTROL INDICATOR @V305731 01284000
- L R6,NICQPNT GET NEXT CONTASK @V305731 01285000
- LTR R6,R6 IS THERE A CONTASK ? @V305731 01286000
- BZ NOCTLNT NO, GET RESOURCE & START I/O @V305731 01287000
- TM CONSTAT,CONACTV HAS THIS CONTASK BEEN PROCESSED @V305731 01288000
- BZ NOCTLNT NO, GET ACTIVE RESOURCE @V305731 01289000
- BAL R3,CONRET RETURN CONTASK @V305731 01290000
- BAL R7,NOCTL GET NEXT CONTASK @V305731 01291000
- SPACE 1 01292000
- NOCTLNT EQU * GET ACTIVE RESOURCE & START I/O @V305731 01293000
- MVI BSCFLAG,X'00' CLEAR FLAG FIELD @V305731 01294000
- XC BSCCNT(2),BSCCNT CLEAR RETRY COUNT FIELD @V305731 01295000
- NI RDEVSTAT,X'FF'-RDEVWAII CLEAR BUSY INDICATOR @V305731 01296000
- TM RDEVFTR,FTRDIAL IS DIAL FEATURE INDICATED? @V346931 01296100
- BO RGSTART YES, GO SCAN FOR ACTIVE USER @V346931 01296200
- SLR R9,R9 CLEAR NICBLOK REGISTER @V305731 01297000
- CL R9,BSCTMRQ POLL DELAY EXPIRED ? @V305731 01298000
- BNE RGSTART NO, FIND ANOTHER USER (MAYBE) @V305731 01299000
- BAL R7,FRETIOB RELEASE IOBLOK @V305731 01300000
- TM BSCFLAG,BSCSCAN IS THIS SECOND SCAN OF NICBLOK @V305731 01301000
- BZ POLLIOB NO, GO DO POLL OPERATION @V305731 01302000
- NI BSCFLAG,X'FF'-BSCSCAN CLEAR SECOND SCAN FLAG @V305731 01303000
- GODSPCH EQU * EXIT TO DISPATCHER @V305731 01304000
- GOTO DMKDSPCH @V305731 01305000
- POLLIOB EQU * @V305731 01306000
- BAL R3,BLDIOB GO GET STORAGE FOR IOBLOK @V305731 01307000
- BAL R3,GPOLLCW SET UP GENERAL POLLING CCWS @V305731 01308000
- BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01309000
- SPACE 2 01310000
- REGENER EQU * FORCE USER OFF @V305731 01311000
- NI BSCFLAG,X'FF'-BSCREGEN CLEAR REGENERATION FLAG @V305731 01312000
- XC BSCCNT(2),BSCCNT CLEAR RETRY COUNT FIELD @V305731 01313000
- ICM R1,3,BSCSENSE GET REMOTE STATION SENSE BYTES @V305731 01314000
- BNZ CKSNS YES, GO CHECK SENSE @V346931 01315000
- TM RDEVFTR,FTRDIAL DIAL-UP FEATURE INDICATED? @V346931 01315100
- BZ FATALER NO, GO HANDLE FATAL LINE ERROR @V346931 01315200
- OI IOBSTAT,IOBFATAL SET DISABLE-REENABLE OF LINE @V346931 01315300
- B FATALER GO HANDLE FATAL LINE ERROR @V346931 01315400
- CKSNS EQU * ENTRY IF SENSE WAS SUCCESSFUL @V346931 01315500
- TM BSCSENSE+1,INVREQ IS INTERVENTION REQUIRED ? @V305731 01316000
- BO FORUSOF YES, BYPASS ERROR RECORDING @V305731 01317000
- LA R0,2 GET STORAGE FOR ERROR MESSAGE @V305731 01318000
- CALL DMKFREE GET STORAGE FOR MESSAGE @V305731 01319000
- LR R3,R1 SAVE ADDRESS OF STORAGE @V305731 01320000
- XC 0(16,R3),0(R3) CLEAR MESSAGE AREA @V305731 01321000
- LH R1,NICNAME GET RESOURCE ID @V305731 01322000
- CALL DMKCVTBH CONVERT TO HEX @V305731 01323000
- STCM R1,7,0(R3) SAVE RESOURCE ADDRESS IN MESSAGE @V305731 01324000
- SR R1,R1 CLEAR REGISTER 1 @V305731 01325000
- ICM R1,3,BSCSENSE GET SENSE BYTES @V305731 01326000
- CALL DMKCVTBH CONVERT TO HEX @V305731 01327000
- ST R1,4(R3) SAVE SENSE BYTES IN MESSAGE @V305731 01328000
- LH R1,IOBRADD GET LINE ADDRESS FROM IOBLOK @V305731 01329000
- CALL DMKCVTBH CONVERT TO HEX @V305731 01330000
- ST R1,9(R3) SAVE LINE ADDRESS IN MESSAGE @V305731 01331000
- LR R1,R3 GET ADDRESS OF MESSAGE STORAGE @V305731 01332000
- ICM R3,8,F2+3 SAVE SIZE OF MESSAGE STORAGE @V305731 01333000
- LA R2,705(0) GET MESSAGE NUMBER @V305731 01334000
- O R2,MSGPARM1 SET UP PARM FIELD FOR MSG WRITER @V305731 01335000
- LA R0,14 GET LENGTH OF MESSAGE @V305731 01336000
- ICM R0,14,MSGHEAD GET HEADER FOR MESSAGE @V305731 01337000
- CALL DMKERMSG,AFFINITY GO TO MESSAGE WRITER @V407511 01338100
- LA R0,CONDATA-CONCCW3+16 GET SIZE OF SHORT CONTASK @V305731 01339000
- SRL R0,3(0) CONVERT TO DOUBLEWORDS @V305731 01340000
- CALL DMKFREE GET STORAGE FOR CONTASK @V305731 01341000
- STH R0,0(0,R1) SAVE SIZE OF SHORT CONTASK @V305731 01342000
- LR R6,R1 SAVE ADDRESS OF CONTASK @V305731 01343000
- DROP R6 DROP CONTASK BASE REGISTER @V305731 01344000
- USING CONCCW3,R6 ADDRESSABILITY FOR SHORT CONTASK @V305731 01345000
- XC CONDATA(10),CONDATA CLEAR DEPENDENT AREA FOR MDR@V305731 01346000
- MVC CONDATA(2),IOBRADD GET LINE ADDRESS @V305731 01347000
- MVC CONDATA+2(2),NICSELT GET CU AND DV ADDRESS @V305731 01348000
- MVC CONDATA+4(2),BSCSENSE GET SENSE BYTES @V305731 01349000
- MVC CONDATA+6(2),NICNAME SAVE RESOURCE ID. @V305731 01350000
- LA R0,10 SIZE OF DEPENDENT DATA FOR MDR @V305731 01351000
- STH R0,CONDCNT SAVE COUNT @V305731 01352000
- DROP R6 DROP SHORT CONTASK BASE REGISTER @V305731 01353000
- USING CONTASK,R6 SET UP ADDRESABILITY FOR CONTASK @V305731 01354000
- LA R4,CALLIOER GET RETURN ADDRESS @V305731 01355000
- BAL R7,STKCPEX GO STACK A CPEXBLOK @V305731 01356000
- FORUSOF EQU * @V305731 01357000
- BAL R3,FORCEOFF FORCE USER OFF SYSTEM @V305731 01358000
- XC BSCSENSE(2),BSCSENSE CLEAR SENSE AND STATUS DATA@V305731 01359000
- TM BSCFLAG,BSCCOPY IS COPY FUNCTION ACTIVE @V305731 01360000
- BO COPYERR YES, SEND NOT ACPTED MSG. TO USER@V305731 01361000
- MVI BSCFLAG,X'00' CLEAR BISYNC LINE FLAGS @V305731 01362000
- NI RDEVSTAT,X'FF'-RDEVWAII CLEAR LINE BUSY FLAG @V305731 01363000
- TM RDEVFTR,FTRDIAL DIAL-UP FEATURE INDICATED? @V346931 01363200
- BO TP14 YES, GO DISCONNECT THE LINE @V346931 01363400
- BAL R7,RGSTART GET ACTIVE RESOURCE & START I/O @V305731 01364000
- SPACE 1 01365000
- CALLIOER EQU * ERROR RECORDING OF SENSE DATA @V305731 01366000
- LR R1,R6 GET MDR RECORD FOR RECORDER @V305731 01367000
- CALL DMKIOERN RECORD DATA FROM REMOTE STATION @V305731 01368000
- GOTO DMKDSPCH EXIT TO THE DISPATCHER @V305731 01369000
- SPACE 1 01370000
- RGFCOPY EQU * CLEANUP AFTER COPY FUNCTION @V305731 01371000
- NI BSCFLAG,X'FF'-BSCCOPY CLEAR COPY FUNCTION FLAG @V305731 01372000
- L R9,BSCUCOPY GET COPY REQUESTOR NICBLOK ADDR @V305731 01373000
- BAL R4,STATUS DETERMINE STATUS OF SCREEN @V305731 01374000
- OI NICFLAG,NICPROCN SET PROCESS NOW FLAG @V305731 01375000
- NI RDEVSTAT,X'FF'-RDEVWAII CLEAR LINE BUSY FLAG @V305731 01376000
- BAL R7,RGSTART GET ACTIVE RESOURCE @V305731 01377000
- SPACE 1 01378000
- FATALER EQU * FATAL LINE ERROR CONDITION @V305731 01379000
- CLI IOBMISC2,IBBWRITE TRYING TO DO A WRITE? @VA08732 01379010
- BE LDITCH YES, GO TRY RESELECTING TUBE @VA08732 01379020
- TM RDEVFTR,FTRDIAL IS DIAL UP FEATURE INDICATED?@V346931 01379040
- BNO FATALER2 NO, BYPASS SWITCHED DISCONNECT @V346931 01379080
- TM BSCFLAG1,BSCFORCE IS USER FORCE IN PROGRESS? @V346931 01379120
- BO FATALERA YES, SEE IF CMD REJECT ON DISABLE@VA13518 01379160
- OI BSCFLAG1,BSCFORCE SET USER FORCE IN PROGRESS @V346931 01379200
- BAL R7,CTLTASKB GET A CONTROL CONTASK @V346931 01379240
- MVC CONCCW1(TWOCCW),BKCONCCW CCW TO DISCON STATION @V346931 01379280
- OI CONCCW1+4,CC CHAIN TO DISABLE CCW @V346931 01379320
- MVI IOBMISC2+3,NONE CLEAR POTENTIAL CMD REJECT FLAG @VA13518 01379340
- BAL R7,SETCAWA GO DISABLE LINE @V346931 01379360
- SPACE 01379400
- FATALERA EQU * SEE IF CMD REJECT ON DISABLE SEQ.@VA13518 01379403
- TM IOBSTAT,IOBFATAL IS IOBFATAL ON? @VA13518 01379406
- BZ FATALER1 NO, MUST BE CC3-HANDLE AS BEFORE @VA13518 01379409
- * IOBMISC2+3 FILLED IN BY DMKBSC 01379412
- TM IOBMISC2+3,COMRJ CMD REJECT INDICATED? @VA13518 01379415
- BZ FATALER1 NO, HANDLE AS BEFORE @VA13518 01379418
- OI RDEVSTAT,RDEVNRDY SET NOT AVAILABLE FLAG @VA13518 01379421
- MVI IOBMISC2+2,COMRJ REMEMBER CMD REJECT FOR LATER @VA13518 01379424
- B FATAL2A CONTINUE FATAL ERROR PROCESSING @VA13518 01379427
- SPACE 01379430
- FATALER0 EQU * HANDLE NETWORK SHUTDOWN @V346931 01379440
- NI IOBSTAT,X'FF'-IOBFATAL CLEAR FATAL ERROR @V346931 01379480
- NI BSCFLAG1,X'FF'-BSCHALT CLEAR HALT I/O INDICATOR @V346931 01379520
- FATALER1 EQU * ERROR/UNKNOWN CCW @V346931 01379560
- TM RDEVFTR,FTRDIAL IS DIAL-UP FEATURE INDICATED? @V346931 01379600
- BZ FATALER2 NO, GO VARY DEVICE OFFLINE @V346931 01379640
- NI BSCFLAG1,X'FF'-BSCFORCE RESET FORCE USER FLAG @V346931 01379680
- TM IOBSTAT,IOBFATAL UNRECOVERABLE ERROR? @V346931 01379720
- BO *+8 YES, FOR SWITCHED REENABLE @V346931 01379760
- FATALER2 EQU * FOR VARY OFF LINE FUNCTION @V346931 01379800
- OI RDEVSTAT,RDEVNRDY SET NOT AVAILABLE FLAG @V305731 01380000
- MVI IOBMISC2+2,NONE CLEAR FLAG BYTE FOR LATER @VA13518 01380100
- TM IOBSTAT,IOBFATAL UNRECOVERABLE ERROR? @VA13518 01380200
- BO FATAL2A YES, IOBMISC2+2 CORRECT @VA13518 01380300
- MVI IOBMISC2+2,DISA REMEMBER TO SET RDEVDISA @VA13518 01380400
- FATAL2A EQU * @VA13518 01380500
- L R9,RDEVNICL GET POINTER TO RESOURCE NICBLOKS @V305731 01381000
- LH R7,RDEVMAX GET THE MAXIMUN RESOURCE ID @V305731 01382000
- MH R7,=AL2(NICSIZE*8) GET THE ENDING @V305731 01383000
- ALR R7,R9 ADDRESS @V305731 01384000
- LA R6,NICSIZE*8 GET SIZE OF NICBLOK @V305731 01385000
- CALL DMKQCNCL CANCEL ALL STACK CONTASKS @V305731 01386000
- RGFNICB EQU * FORCE ALL RESOURCES OFF THIS LINE@V305731 01387000
- TM RDEVFTR,FTRDIAL IS DIAL-UP FEATURE INDICATED? @V346931 01387100
- BZ FATALER3 NO, GO VARY DEVICE OFFLINE @V346931 01387200
- CLI IOBMISC2+2,NONE UNRECOVERABLE ERROR? @VA13518 01387300
- BE *+8 YES, FOR SWITCHED REENABLE @VA13518 01387400
- FATALER3 EQU * FOR VARY OFF LINE FUNCTION @V346931 01387500
- OI NICFLAG,NICDISB FORCE THE STATION TO BE DISABLE @V305731 01388000
- BAL R3,FORCEOFF FORCE RESOURCES OFF LINE @V305731 01389000
- BXLE R9,R6,RGFNICB GET NEXT RESOURCE @V305731 01390000
- L R1,BSCTMRQ GET ADDRESS OF POLL TIMER REQUEST@V305731 01393000
- LTR R1,R1 IS THERE A TRQBLOK ? @V305731 01394000
- BZ TRQBYP NO, BYPASS TIMER RESET @V305731 01395000
- CALL DMKSCHRT RESET TIMER REQUEST FOR POLL @V305731 01396000
- LA R0,TRQBSIZE+CRTEXT GET SIZE OF TRQBLOK @VA13071 01397100
- BAL R7,FRETSTG RELEASE STORAGE FOR TRQBLOK @V305731 01398000
- ST R0,BSCTMRQ CLEAR ADDRESS OF TIMER REQUEST @V346931 01398500
- TRQBYP EQU * @V305731 01399000
- XC BSCFLAG(FLAGLNS),BSCFLAG CLEAR STATUS CONDITIONS@V346931 01399100
- TM RDEVFTR,FTRDIAL DIAL-UP FEATURE INDICATED? @V346931 01399200
- BZ FATALER4 NO, GO PROCESS ERROR @V346931 01399300
- CLI IOBMISC2+2,NONE UNRECOVERABLE ERROR? @VA13518 01399400
- BE TP14 YES, GO DISABLE AND REENABLE LINE@VA13518 01399500
- FATALER4 EQU * NOT UNRECOVERABLE DIAL ERROR @V346931 01399600
- NI RDEVSTAT,X'FF'-(RDEVWAII+RDEVRSVD) RESET BUSY @V346931 01399700
- NI RDEVFLAG,X'FF'-RDEVENAB CLEAR ENABLE FLAG @V346931 01399800
- LA R0,BSCSIZE GET SIZE OF BSC CONTROL BLOCK @V305731 01400000
- L R1,RDEVBSC GET ADDRESS OF BSC CONTROL BLOCK @V305731 01401000
- BAL R7,FRETSTG RELEASE BSC CONTROL BLOCK @V305731 01402000
- ST R0,RDEVBSC CLEAR POINTER TO CONTROL BLOCK @V305731 01403000
- TM IOBSTAT,IOBCC3 IS THIS A CONDITION CODE 3 @V305731 01404000
- BO FATAL4A YES, SEND MESSAGE 455 @VA13518 01405000
- TM IOBMISC2+2,COMRJ WAS THIS A CMD REJECT? @VA13518 01405200
- BZ DISASTA NO, SKIP MESSAGE 455 @VA13518 01405400
- FATAL4A EQU * @VA13518 01405600
- TM RDEVSTAT,RDEVDISA IS LINE OFFLINE @V305731 01406000
- BO RGIGNORE YES, IGNORE SENDING MESSAGE @V305731 01407000
- LA R0,2 GET STORAGE FOR ERROR MESSAGE @VA13518 01407100
- CALL DMKFREE GET STORAGE @VA13518 01407200
- LR R3,R1 SAVE ADDRESS OF STORAGE @VA13518 01407300
- XC 0(16,R3),0(R3) CLEAR STORAGE @VA13518 01407400
- MVC 5(L'CC3,R3),CC3 INITIALIZE MESSAGE @VA13518 01407500
- TM IOBSTAT,IOBCC3 WAS IT A CC3? @VA13518 01407600
- BO FATAL4B YES, MESSAGE O.K. @VA13518 01407700
- MVC 5(L'CMDRJ,R3),CMDRJ MUST BE CMD REJECT @VA13518 01407800
- FATAL4B EQU * @VA13518 01407900
- LA R2,455(0) GET MSG (NOT OPERATIONAL...) @V305731 01408000
- BAL R7,ERRMSGS GO WRITE ERROR MESSAGE @V305731 01409000
- DISASTA EQU * WRITE LINE DISABLED MESSAGE @V305731 01410000
- OI RDEVSTAT,RDEVDISA SET OFFLINE FLAG FOR THIS LINE@V305731 01411000
- NI BSCFLAG1,X'FF'-BSCSHUT TURN OFF SHUTDOWN FLAG @VA11623 01411050
- LA R2,454(0) GET MSG (LINE ... DISABLED) @V305731 01412000
- SLR R3,R3 CLEAR R3 FOR ERRMSGS ROUTINE @VA13518 01412500
- BAL R7,ERRMSGS GO WRITE ERROR MESSAGE @V305731 01413000
- BAL R7,RGIGNORE GO CLEANUP 3270 SUPPORT @V305731 01414000
- SPACE 2 01415000
- TP11 EQU * ADDR - READ RESPONSE TO TEXT @V305731 01416000
- CLC BSCRESP(2),BSCRCVD IS THIS THE EXPECTED RESPONSE@V305731 01417000
- BE CORRACK YES, GO TO RETURN TABLE @V305731 01418000
- CLC BSCRESP(2),BSCSEND IS THIS THE SENDING RESPONSE @V305731 01419000
- BE CORRACK YES, GO TO RETURN INDEX TABLE @V305731 01420000
- CLI BSCRESP,EOT IS THIS AN EOT RESPONSE @V305731 01421000
- BE ISEOT YES, GO HANDLE EOT RESPONSE @V305731 01422000
- CLI BSCRESP,NAK IS THIS A NAK RESPONSE @V305731 01423000
- BE ISNAK YES, GO HANDLE NAK RESPONSE @V305731 01424000
- TM RDEVFTR,FTRDIAL IS DIAL UP FEATURE INDICATED? @V346931 01424100
- BZ TPWACK NO, CHECK FOR WACK RESPONSE @V346931 01424200
- CLC BSCRESP(DLEOTLN),RGFDLEOT DISCONNECT SIGNAL? @V346931 01424300
- BE DLEEOT YES, GO FORCE USER OFF SYSTEM @V346931 01424400
- TPWACK EQU * CHECK THE WACK RESP @V346931 01424500
- CLC BSCRESP(2),RGFWACK IS THIS A WACK RESPONSE @V305731 01425000
- BNE TPENQ NO, CHECK FOR ENQ RESPONSE @VM03133 01426000
- TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER @V305731 01427000
- BO CORRACK YES, GO TO PROPER SECTION @V305731 01428000
- BAL R7,RESEOT RESET BISYNC TO CONTROL MODE @VA10513 01429200
- TPENQ EQU * CHECK FOR ENQ RESPONSE @VM03133 01430000
- CLI BSCRESP,ENQ IS THIS AN ENQ RESPONSE @V305731 01431000
- BE ISNAK YES, GO HANDLE ENQ RESPONSE @V305731 01432000
- TM BSCFLAG,BSCRVI POSSIBLY GARBLED EOT ON RVI? @VA13084 01433000
- BO CORRACK NORMAL PROCESSING IF RVI @VA13084 01433300
- * OTHERWISE, RETRANSMIT REPLY 01433600
- SPACE 1 01434000
- SENDENQ EQU * CCWS TO REGENERATE RESPONSE @V305731 01435000
- BAL R3,RTYCOUNT CHECK RETRY FIELD FOR MAXIMUN @V305731 01436000
- BAL R3,ENQSUB SET UP CCWS TO SEND ENQ RESPONSE @V305731 01437000
- LA R1,BSCECCW1 GET POINTER TO CCW STRING @V305731 01438000
- BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01439000
- SPACE 1 01440000
- ISEOT EQU * HANDLE END OF TRANSMISSION RESP. @V305731 01441000
- TM BSCFLAG,BSCRVI WAS EOT EXPECTED ? @V305731 01442000
- BO CORRACK YES, GO TO RETURN TABLE SECTION @V305731 01443000
- BAL R3,SPOLLCW SET UP CCWS FOR SPECIFIC POLL @V305731 01444000
- BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01445000
- SPACE 1 01446000
- ISNAK EQU * SET UP TO RE-SEND DATA TO STATION@V305731 01447000
- BAL R3,RTYCOUNT CHECK COUNT FOR MAXIMUN VALUE @V305731 01448000
- L R1,IOBCAW GET RESTART ADDRESS OF CCW STRING@V305731 01449000
- BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01450000
- SPACE 1 01451000
- CORRACK EQU * GO TO PROPER RETURN SECTION @V305731 01452000
- L R6,NICQPNT GET POINTER TO CONTASK @V305731 01453000
- LTR R6,R6 IS THERE A CONTASK ? @V305731 01454000
- BZ RGFTSTRQ NO, RESET LINE TO CONTROL MODE @V305731 01455000
- SR R1,R1 CLEAR INDEX REGISTER @V305731 01456000
- IC R1,CONLABEL GET RETURN INDEX VALUE @V305731 01457000
- B RETURN(R1) GO TO RETURN SECTION @V305731 01458000
- RETURN EQU * RETURN TABLE @V305731 01459000
- B NOCTL1 00 - GO GET NEXT CONTASK @V305731 01460000
- B STRTRED 04 - GO PROCESS READ STATE @V305731 01461000
- B LOGTST 08 - DETERMINE STATUS OF CONTASK @V305731 01462000
- B GRFCFM 0C - CONSOLE FUNCTION PROCESSING @V305731 01463000
- B SETMOR 10 - PROCESS MORE STATE @V305731 01464000
- B SETREJ 14 - PROCESS NOT ACCEPTED MESSAGE@V305731 01465000
- B CPNATMR 18 - DETERMINE STATE OF SCREEN @V305731 01466000
- B CONLOGOF 1C - FORCE USER LOGOFF @V305731 01467000
- B BLDVMBLK 20 - GO BUILD VMBLOK FOR RESOURCE@V305731 01468000
- B FMTDONE 24 - PROCESS SCREEN FORMATS DONE @V305731 01469000
- B CONRETBF 28 - REMOVE WRITE CONTASKS @V305731 01470000
- B RDEXIT1 2C - RELEASE BUF & PROCESS STATUS@V305731 01471000
- B RVIEND 30 - HANDLE RVI RESPONSE @V305731 01472000
- SPACE 1 01473000
- NOCTL1 EQU * @V305731 01474000
- BAL R3,CONRET RETURN CONTASK @V305731 01475000
- RGFTSTRQ EQU * RESET BISYNC LINE TO CONTROL MODE@V305731 01476000
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01477000
- SPACE 1 01478000
- STRTRED EQU * PROCESS READ STATE @V305731 01479000
- BAL R3,CONRET RETURN CONTASK @V305731 01480000
- L R6,NICQPNT GET CURRENT CONTASK POINTER @V305731 01481000
- BAL R3,READSUB BUILD CCWS FOR READ STATE @V305731 01482000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01483000
- SPACE 1 01484000
- LOGTST EQU * DETERMINE STATUS OF CONTASK @V305731 01485000
- BAL R3,CONRET RETURN CONTASK @V305731 01486000
- L R6,NICQPNT GET CURRENT CONTASK POINTER @V305731 01487000
- TM CONPARM,LOGDROP+LOGHOLD LOGOUT MESSAGE @V305731 01488000
- BNZ CONCLR1 YES, CLEAR REMAINING @V305731 01489000
- TM BSCFLAG1,BSCPA1 RETURNING FROM MORE/HOLD PA1 @VA04772 01490100
- * INT. 01490200
- BO RETPA1 YES - DON'T RELEASE CONTASK @VA04772 01490300
- BAL R3,CONRET RETURN FINISHED CONTASK @VA04772 01490400
- B RESEOT RESET BISYNC LINE TO CONTROL MODE@VA04772 01490500
- SPACE 1 01490600
- RETPA1 NI BSCFLAG1,X'FF'-BSCPA1 RESET BREAK INDICATOR @VA04772 01490700
- CALL DMKCFMBK,AFFINITY PUT USER IN CONSOLE FUNC MODE @V407511 01490810
- B RESEOT RESET BISYNC LINE TO CONTROL MODE@VA04772 01490900
- SPACE 1 01491000
- CONCLR1 EQU * CANCEL ALL CONTASKS FROM STACK @V305731 01492000
- OI BSCFLAG,BSCLOG BYPASS MESSAGE TO OPERATOR @V305731 01493000
- TM CONPARM,LOGDROP SAVE CC ON DROP REQUEST @V346931 01493100
- BAL R3,FORCEOFF FORCE USER OFF - LOGOFF @V305731 01494000
- NI BSCFLAG,X'FF'-BSCLOG CLEAR BYPASS MESSAGE FLAG @V305731 01495000
- TM RDEVFTR,FTRDIAL DIAL UP FEATURE INDICATED? @V346931 01496100
- BNO RESEOT NO, RESET BISYNC LINE @V346931 01496200
- TM NICFLAG,NICENAB IS USER STILL ENABLED ? @V346931 01496300
- BZ LINEDROP NO, TERMINATE SWITCHED CONNECTIO @V346931 01496400
- SPM R3 RESTORE CC (CHECK FOR LOGDROP) @V346931 01496500
- BO LINEDROP YES, GO TERMINATE SWITCHED LINE @V346931 01496600
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MOD @V346931 01496700
- SPACE 1 01497000
- GRFCFM EQU * CONSOLE FUNCTION PROCESSING @V305731 01498000
- BAL R3,CONRET RETURN CONTASK @V305731 01499000
- L R4,BSCRPTR GET POINTER TO READ BUFFER @VA08730 01500100
- L R3,BUFCNT-BUFFER(R4) GET DATA COUNT @V305731 01501000
- LTR R3,R3 IS THERE ANY DATA ? @V305731 01502000
- BNP GRFBK NO, BYPASS GOING TO DMKCFM @V305731 01503000
- BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 01503100
- USING CPEXBLOK,R7 ADDRESSABILITY FOR CPEXBLOK @V305731 01504000
- LA R0,CPEXSIZE GET SIZE OF CPEXBLOK @V305731 01505000
- CALL DMKFREE GET STORAGE FOR CPEXBLOK @V305731 01506000
- LR R7,R1 GET ADDRESS OF CPEXBLOK @V305731 01507000
- LR R1,R4 GET ADDRESS OF READ BUFFER @V305731 01508000
- LR R0,R3 GET DATA COUNT @V305731 01509000
- STM R0,R15,CPEXR0 SAVE ALL REGISTERS @V305731 01513000
- LA R15,CALLCFM GET RETURN ADDRESS @V305731 01514000
- ST R15,CPEXADD SAVE RETURN ADDRESS @V305731 01515000
- LR R1,R7 GET CPEXBLOK POINTER @V305731 01516000
- CALL DMKSTKMP STACK CPEXBLOK @VA07391 01517100
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01518000
- DROP R7 DROP CPEXBLOK BASE REGISTER @VM03094 01519000
- SPACE 1 01520000
- CALLCFM EQU * GO TO CONSOLE FUNCTION SUPPORT @V305731 01521000
- CALL DMKCFMEN GO TO CONSOLE FUNCTION @V305731 01522000
- GOTO DMKDSPCH GO TO DISPATCHER @V305731 01523000
- SPACE 1 01524000
- GRFBK EQU * @V305731 01525000
- LA R0,BUFSIZE GET SIZE OF READ BUFFER @V305731 01526000
- LR R1,R4 GET READ BUFFER ADDRESS @V305731 01527000
- CALL DMKFRET RELEASE STORAGE FOR READ BUFFER @V305731 01528000
- BAL R7,ROUTCFM PLACE IN CONSOLE FUNCTION MODE @V305731 01529000
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01530000
- SPACE 1 01531000
- SETMOR EQU * PROCESS MORE STATE @V305731 01532000
- USING TRQBLOK,R4 SET UP ADDRESSABILITY FOR TRQBLOK@V305731 01533000
- BAL R3,CONRET RETURN CONTASK @V305731 01534000
- BAL R7,RSTTMR RESET TIMER REQUEST @V305731 01535000
- BAL R7,BLDTRQ GET STORAGE FOR TRQBLOK @V305731 01536000
- LA R1,TMR60VAL GET 60 SECONDS VALUE @V305731 01537000
- B SETINT FINISH SETTING UP TRQBLOK @V305731 01538000
- SPACE 1 01539000
- SETREJ EQU * PROCESS NOT ACCEPTED STATE @V305731 01540000
- BAL R3,CONRET RETURN CONTASK @V305731 01541000
- BAL R7,RSTTMR RESET TIMER REQUEST @V305731 01542000
- BAL R7,BLDTRQ GET STORAGE FOR TRQBLOK @V305731 01543000
- LA R1,TMR03VAL GET 3 SECONDS VALUE @V305731 01544000
- SETINT EQU * @V305731 01545000
- LR R3,R1 SAVE TIMER VALUE @V4M0193 01546100
- L R1,NICUSER GET ADDR OF VMBLOK @V4M0193 01546600
- BAL R7,RSWVMU1 SWITCH VMBLOK CHARGING @V4M0193 01547100
- LR R1,R3 RESTORE TIMER VALUE @V4M0193 01547600
- LA R15,TMRINT RETURN ADDRESS WHEN TIME EXPIRES @V305731 01549000
- OI NICSTAT,NICTRQ INDICATE TIMER REQUEST PENDING @V305731 01550000
- BAL R7,SCHTIME GO SCHEDULE TIMER REQUEST @V305731 01551000
- CHARGE SWITCH,ASYSVM SWITCH VMBLOK CHARGING @V407511 01552100
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01555000
- SPACE 1 01556000
- CPNATMR EQU * DETERMINE STATUS OF SCREEN @V305731 01557000
- BAL R3,CONRET RETURN CONTASK @V305731 01558000
- CPNATMR2 EQU * DETERMINE SCREEN STATUS @V305731 01559000
- BAL R4,STATUS DETERMINE STATUS OF SCREEN @V305731 01560000
- NI NICSTAT,X'FF'-NICCPNA CLEAR NOT ACCEPTED FLAG @V305731 01561000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01562000
- SPACE 1 01563000
- CONLOGOF EQU * FORCE USER OFF @V305731 01564000
- BAL R3,CONRET RETURN CONTASK @V305731 01565000
- DLEEOT EQU * DISCONNECT USER FROM SYSTEM @V346931 01565100
- TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED? @V346931 01565200
- BZ GOFORCE NO, USE THIS NICBLOK @V346931 01565300
- TM NICTYPE,NICLGRP IS THIS NICBLOK FOR A CTL UNIT? @V346931 01565400
- BZ GOFORCE NO, USE THIS NICBLOK @V346931 01565500
- LA R9,NICSIZE*8(R9) POINT TO STATION NICBLOK @V346931 01565600
- GOFORCE EQU * GO FORCE USER OF SYSTEM @V346931 01565700
- BAL R3,FORCEOFF FORCE USER OFF - LOGOFF @V305731 01566000
- TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED? @V346931 01566100
- BO LINEDROP YES, DISCONNECT STATION @V346931 01566200
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01567000
- SPACE 1 01568000
- BLDVMBLK EQU * BUILD VMBLOK FOR USER @V305731 01569000
- BAL R3,CONRET RETURN CONTASK @V305731 01570000
- CALL DMKBLDVM,AFFINITY BUILD A VMBLOK @V407511 01571100
- CALL DMKCFMBK,AFFINITY PLACE USER IN CONSOLE FUNCTION@V407511 01571600
- BAL R3,GRFCRD CCWS TO CLEAR INPUT AREA @V305731 01573000
- BAL R7,SETCAWA GO RESTART I/O TO LINE @V305731 01574000
- SPACE 1 01575000
- FMTDONE EQU * SCREEN HAS BEEN FORMATTED @V305731 01576000
- BAL R3,CONRET RETURN CONTASK @V305731 01577000
- OI NICFLAG,NICFMT SET FORMAT COMPLETED INDICATOR @V305731 01578000
- TM NICFLAG,NICDISB DID OPERATOR ISSUE DISABLE CMD @V305731 01579000
- BZ BYPCLR NO, CONTINUE @VM03133 01580000
- BAL R7,CLRTLOG CLEAR SCREEN & LOGOFF USER @V305731 01581000
- BYPCLR EQU * RESET BISYNC LINE @VM03133 01582000
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01583000
- SPACE 1 01584000
- RDEXIT1 EQU * RELEASE BUFFER & PROCESS STATUS @V305731 01585000
- BAL R3,FRETRD RELEASE READ BUFFER AREA @V305731 01586000
- B CPNATMR GO CHECK FOR SCREEN STATE @V305731 01587000
- SPACE 1 01588000
- RVIEND EQU * HANDLE RESPONSE FROM STATION @V305731 01589000
- BAL R3,CONRET RETURN CONTASK @V305731 01590000
- NI BSCFLAG,X'FF'-BSCRVI CLEAR EXPECTED FLAG @V305731 01591000
- TM BSCFLAG,BSCOPIED IS THIS A COPY REQUEST @V305731 01592000
- BZ TP09 NO, GO ANALYSE FLAG FIELD @V305731 01593000
- COPYSECT EQU * SET UP TO DO COPY FUNCTION @V305731 01594000
- XI BSCFLAG,BSCOPIED+BSCCOPY CLEAR INITIATE-SET COPY@V305731 01595000
- LR R3,R9 SAVE USER NICBLOK POINTER @V305731 01596000
- L R9,BSCUCOPY GET ADDRESS OF PRINTER NICBLOK @V305731 01597000
- ST R3,BSCUCOPY SAVE COPY REQUESTOR NICBLOK ADDR @V305731 01598000
- BAL R3,BLDCOPY GO SET UP CCW STRING FOR COPY @V305731 01599000
- LA R1,CONCCW1 GET START OF CCW STRING @V305731 01600000
- ST R1,IOBCAW SAVE POINTER TO CCW STRING @V305731 01601000
- BAL R3,SELECTCW SET UP CCW TO SELECT PRINTER @V305731 01602000
- BAL R7,RESTART GO RESTART I/O TO BISYNC LINE @V305731 01603000
- SPACE 1 01604000
- CONRETBF EQU * REMOVE WRITE CONTASKS FROM CHAIN @V305731 01605000
- NI NICTMCD,X'FF'-(NICTABF+NICSIO) CLEAR FLAGS @VM03094 01606000
- L R6,BSCSPTR GET PTR TO CCW STRING FOR WRITE @V305731 01607000
- SH R6,=AL2(CONCCW1-CONTASK) GET PTR TO TASK CHAIN @V305731 01608000
- L R0,IOBMISC GET PTR TO LAST TASK IN CHAIN @V305731 01609000
- ST R0,BSCSPTR SAVE POINTER TO CONTASK CHAIN @V305731 01610000
- SR R0,R0 CLEAR REGISTER 0 @V305731 01611000
- ST R0,IOBMISC CLEAR POINTER FIELD @V305731 01612000
- LA R7,IOBMISC-(CONPNT-CONTASK) PTR TO CHAIN ANCHOR @V305731 01613000
- RGFRETBF EQU * PROCESS CONTASKS @V305731 01614000
- SR R2,R2 SET RETURN CODE TO ZERO @V305731 01615000
- BAL R3,SETRETN SET RETURN CODE FOR USER @V305731 01616000
- L R1,CONPNT GET NEXT CONTASK @V305731 01617000
- ST R1,NICQPNT MAKE CONTASK CURRENT @V305731 01618000
- ST R0,CONPNT CLEAR CONTASK NEXT FIELD @V305731 01619000
- ST R6,CONPNT-CONTASK(,R7) SAVE PTR TO TASK IN CHAIN@V305731 01620000
- LR R7,R6 GET POINTER TO NEXT CONTASK @V305731 01621000
- TM CONPARM,LOGDROP+LOGHOLD IS LOGOUT MSG INDICATED @V305731 01622000
- BZ CHKLAST NO, CHECK FOR LAST CONTASK @V346931 01623100
- TM CONPARM,LOGDROP TERMINATE SWITCHED CONN. ? @V346931 01623200
- BAL R7,CONCLR SAVE CC, GO LOG USER OFF @V346931 01623300
- CHKLAST EQU * CHECK FOR LAST CONTASK @V346931 01623400
- CL R6,BSCSPTR IS THIS THE LAST CONTASK @V305731 01624000
- BE RETCONK YES, GO RETURN CONTASKS @VM03133 01625000
- L R6,NICQPNT GET NEXT CONTASK POINTER @V305731 01626000
- B RGFRETBF GO SET RETURN CODE FOR USER @V305731 01627000
- RETCONK EQU * RETURN CONTASKS TO SYSTEM @VM03133 01628000
- L R6,IOBMISC GET START OF CONTASK CHAIN @V305731 01629000
- CALL DMKQCNET RETURN CONTASK @V305731 01630000
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01631000
- **** NOTE: RESEOT DOES NOT RETURN 01631100
- SPACE 1 01632000
- CONCLR EQU * PROCESS LOGOFF FUNCTION @V305731 01633000
- L R6,IOBMISC GET POINTER TO CONTASK CHAIN @V305731 01634000
- CALL DMKQCNET RETURN CONTASKS @V305731 01635000
- OI BSCFLAG,BSCLOG BYPASS SENDING FORCE MESSAGE @V305731 01636000
- BAL R3,FORCEOFF LOG USER OFF SYSTEM @V305731 01637000
- NI BSCFLAG,X'FF'-BSCLOG CLEAR FORCE FLAG @V305731 01638000
- TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED? @V346931 01638100
- BNO RESEOT NO, GO RESET THE LINE @V346931 01638200
- TM NICFLAG,NICENAB IS LINE STILL ENABLED? @V346931 01638300
- BNO LINEDROP NO, GO DISCONNECT THE STATION @V346931 01638400
- SPM R7 RESTORE CC (LOGDROP ?) @V346931 01638500
- BO LINEDROP GO TERMINATE SWITCHED CONN. @V346931 01638600
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01639000
- SPACE 2 01640000
- TP12 EQU * READ REMAINING DATA FROM STATION @VM03043 01653000
- L R6,NICQPNT GET POINTER TO CURRENT CONTASK @VM03043 01654000
- CLI BSCRESP,NAK IS THIS A NAK RESPONSE? @VA05184 01654010
- BNE ACKRESP NO, CONTINUE @VA05184 01654020
- LH R1,BSCCNT CHECK RETRY HERE, THIS IS SPECIAL@VA05184 01654030
- A R1,F1 UPDATE RETRY COUNT @VA05184 01654040
- STH R1,BSCCNT SAVE THE COUNT @VA05184 01654050
- CLC BSCCNT,F6+2 HAS COUNT REACHED MAX? @VA05184 01654060
- BH REGENERR YES,SET PERMANENT STATION ERROR @VA05184 01654070
- NI BSCFLAG,X'FF'-BSCENQ CLEAR ENQ IN TEXT FLAG @VA05184 01654080
- B SENDNAK1 NO, RETRY THE READ @VA05184 01654090
- ACKRESP XI BSCSEND+1,X'11' CHANGE TO ALTERED ACK @VA05184 01655000
- XI BSCRCVD+1,X'11' CHANGE TO ALTERED ACK @VM03116 01656000
- CLI BSCREAD,STX IS THIS THE START OF TEXT @VM03043 01657000
- BNE SENDNAK NO, SEND NAK TO STATION @VM03043 01658000
- LA R2,BSCSIZE1 GET LENGTH OF BUFFER AREA @VM03043 01659000
- SH R2,IOBCSW+6 GET NUMBER OF BYTES IN BUFFER @VM03043 01660000
- L R7,F2 GET COUNTER IN REG 7 @VA05897 01661100
- BILLBCTR BCTR R2,0 EXCLUDE ENDING CHARACTER(S) @VA05897 01661200
- LA R3,BSCREAD(R2) GET ENDING ADDRESS OF DATA @VM03043 01662000
- CLI 0(R3),ETX IS ENDING CHARACTER INDICATED @VM03043 01663000
- BE BLKDATA YES, HANDLE BLOCK RECORD @VM03043 01664000
- CLI 0(R3),ETB IS ENDING CHARACTER INDICATED @VM03043 01665000
- BE BILLGO YES, SET ETB INDICATOR @VA05897 01666400
- BCT R7,BILLBCTR DECREMENT COUNT @VA05897 01666800
- B SENDNAK NO ETB,ETX FOUND @VA05897 01667200
- BILLGO OI BSCFLAG1,BSCETB SET ETB INDICATOR AND CONTINUE @VA06303 01667600
- BLKDATA EQU * HANDLE BLOCK RECORD @VM03043 01668000
- BCTR R2,R0 SUBSTRACT LENGTH OF HEADER CHARS.@VM03043 01669000
- LA R3,BSCREAD+1 GET STARTING ADDRESS OF DATA @VM03043 01670000
- TM BSCFLAG1,BSCIGN IS BUFFER IGNORE SWITCH ON @VM03043 01671000
- BO CHECKEY YES, IGNORE DATA IN BUFFER @VM03043 01672000
- BAL R7,SECOND GO HANDLE DATA IN BUFFER @VM03043 01673000
- SPACE 2 01673020
- TP13 EQU * STATUS BIDING ON A SWITCH LINE @V346931 01673040
- CLI BSCRESP,ENQ ENQ RESPONSE ? @V346931 01673060
- BE CHKENQ YES, GO RESPOND TO ENQ @V346931 01673080
- CLC BSCRESP(DLEOTLN),RGFDLEOT IS THIS DISCON SIGNAL?@V346931 01673100
- BE DLEEOT YES, GO FORCE USER OFF SYSTEM @V346931 01673120
- NI RDEVSTAT,X'FF'-RDEVWAII RESET WAIT INDICATOR @V346931 01673140
- BAL R7,RGSTART GO GET ACTIVE USER @V346931 01673160
- SPACE 1 01673180
- CHKENQ EQU * RESPOND TO ENQ FROM STATION @V346931 01673200
- MVC BSCPCCW1(TWOCCW),SW3275RD WRITE ACK0 / READ @V346931 01673220
- LA R1,BSCREAD ADDR OF RESPONSE @V346931 01673240
- STCM R1,B'0111',BSCPCCW2+1 INTO CCW @V346931 01673260
- BAL R7,RESTART RESTART I/O OPERATION TO LINE @V346931 01673280
- SPACE 2 @V346931 01673300
- TP14 EQU * DROP/DISCONNECT SWITCH LINE @V346931 01673320
- BAL R7,FRETIOB RETURN IOBLOK @V346931 01673340
- L R9,RDEVNICL POINT TO RESOURCE LIST @V346931 01673360
- LA R9,NICSIZE*8(R9) POINT TO STATION NICBLOK @V346931 01673380
- NI RDEVSTAT,X'FF'-RDEVWAII RESET BUSY @V346931 01673400
- LA R0,255 PARM TO ENABLE/DISABLE LINE @V346931 01673420
- LA R7,REINIT RETURN ADDRESS FROM ENABLE @V346931 01673440
- TM NICFLAG,NICENAB DEVICE TO BE RE-ENABLED ? @V346931 01673460
- BO REENABLE YES, ENABLE LINE @V346931 01673480
- LA R7,GODSPCH RETURN ADDRESS FROM DISABLE @V346931 01673500
- REENABLE EQU * ENABLE THE SWITCH LINE @V346931 01673520
- CALL DMKRGBEN GO ENABLE THE SWITCHED LINE @V346931 01673540
- BNZ GODSPCH EXIT TO THE DISPATCHER @V346931 01673560
- BR R7 RETURN @V346931 01673580
- SPACE 1 01673600
- REINIT EQU * INITIALIZE THE DISPLAY (LOGO) @V346931 01673620
- SR R0,R0 PARM TO INITIALIZE SCREEN @V346931 01673640
- CALL DMKRGBEN GO ENABLE THE SWITCHED LINE @V346931 01673660
- BAL R7,GODSPCH EXIT TO THE DISPATCHER @V346931 01673680
- SPACE 2 01673700
- SPACE 4 01674000
- ************************************************************* 01675000
- * ANALYZE THE STATUS MESSAGE FROM THE REMOTE STATION 01676000
- ************************************************************* 01677000
- SPACE 2 01678000
- SENSTAT EQU * PROCESS THE STATUS MESSAGE @V305731 01679000
- LA R4,LENADDR(,R4) ADR OF SS BYTES FOR SW 3275 @V346931 01680100
- TM RDEVFTR,FTRDIAL DIAL UP FEATURE INDICATED? @V346931 01680200
- BO STATSW YES, BYPASS SENSE HEADER @V346931 01680300
- LA R4,2(,R4) ADDR OF SS BYTES (NON SW) @V346931 01680400
- STATSW EQU * WE NOW POINT TO SENSE BYTES @V346931 01680500
- MVC BSCSENSE,0(R4) MOVE SENSE BYTES INTO AREA @V346931 01680600
- MVC BSCRSTRT(4),IOBCAW GET RESTART STRING ADDRESS @V305731 01681000
- L R3,RDEVNICL GET POINTER TO NICBLOK LIST @V305731 01682000
- TM NICTYPE-NICBLOK(R3),NIC3275 3275 DISPLAY @V305731 01683000
- BZ TEST3271 NO, GO CHECK FOR PRINTER @V305731 01684000
- TM BSCFLAG,BSCCOPY IS THIS A COPY FUNCTION @V305731 01685000
- BO PRT3275 YES, GET REMOTE PRINTER ADDRESS @V305731 01686000
- TM BSCSENSE,STATDE IS THIS DEVICE END @V305731 01687000
- BZ TEST3271 NO, CHECK FOR REMOTE PRINTER @V305731 01688000
- TM BSCSENSE+1,STATDC+INVREQ+STATEC PRINTER STATUS @V305731 01689000
- BZ TEST3271 NO, HANDLE DISPLAY ERROR @V305731 01690000
- PRT3275 EQU * GET ADDRESS OF REMOTE PRINTER @V305731 01691000
- CLC RDEVMAX(2),F1+2 IS RDEVMAX=1 - NO PRINTER @VA05170 01691300
- BE TEST3271 THEREFORE DO NOT BUMP REG9 @VA05170 01691700
- AH R9,=AL2(NICSIZE*8) GET POINTER TO PRINTER BLOCK @V305731 01692000
- TEST3271 EQU * SET UP TO SEND ACK RESPONSE @V305731 01693000
- CLC BSCSENSE(2),=X'C240' STANDALONE DEVICE END @V305731 01694000
- BE DEVSTAT YES, GO PROCESS DEVICE END STATUS@V305731 01695000
- RVICCW MVC BSCSCCW1(8),RSRVICCW SETUP RVI CCW @VA08734 01696500
- MVC BSCSCCW2(8),UNEPTCCW SET UP READ RESPONSE CCW @V305731 01697000
- MVI BSCSCCW2+5,X'04' SET TP-OP CODE @V305731 01698000
- LA R1,BSCRESP GET ADDRESS OF RESPONSE BUFFER @V305731 01699000
- STCM R1,7,BSCSCCW2+1 SAVE ADDRESS IN CCW @V305731 01700000
- LA R1,BSCSCCW1 GET START OF CCW STRING @V305731 01701000
- MVC IOBMISC2+1(1),IOBMISC2 SAVE CURRENT FTN FLAGS @VA08730 01701500
- BAL R7,SETCAW GO RESTART I/O TO LINE @V305731 01702000
- SPACE 2 01703000
- TP04 EQU * HANDLE STATION ERROR @V305731 01704000
- TM BSCFLAG,BSCTSTRQ IGNORE FLAG ON ? @VA08734 01704150
- BO NOCTL YES, GO GET NEXT CONTASK @VA08734 01704300
- MVC IOBMISC2(1),IOBMISC2+1 RESTORE FTN FLAGS @VA08730 01704500
- TM BSCSENSE+1,INVREQ IS IT INTERVENTION REQUIRED ? @VA08077 01705100
- BNZ REGENERR YES, PERMANENT STATION ERROR @V305731 01706000
- TM IOBMISC2,IBBSELA+IBBWRITE IS THIS A WRITE FTN. @V305731 01707000
- BZ READERR NO, HANDLE READ REQUEST @V305731 01708000
- BAL R3,RTYCOUNT CHECK COUNT FOR MAXIMUN VALUE @V305731 01709000
- XC BSCSENSE(2),BSCSENSE CLEAR SENSE AND STATUS DATA@V305731 01710000
- L R1,BSCSPTR GET ADDRESS OF WRITE CCW STRING @V305731 01711000
- ST R1,IOBCAW SAVE ADDRESS OF RESTART STRING @V305731 01712000
- BAL R3,SELECTCW SET UP CCWS FOR SELECTION @V305731 01713000
- BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01714000
- SPACE 1 01715000
- READERR EQU * HANDLE READ REQUEST @V305731 01716000
- TM RDEVFTR,FTRDIAL DIAL-UP FEATURE INDICATED? @V346931 01716200
- BO GETDUSNS YES, GO PUT READ UP ON LINE @V346931 01716400
- L R1,BSCRSTRT GET RESTART ADDRESS @V305731 01717000
- BAL R7,SETCAW RESTART I/O OPERATION TO LINE @V305731 01718000
- SPACE 1 01719000
- REGENERR EQU * SET UP CCW TO RESET LINE @V305731 01720000
- NI BSCFLAG,X'FF'-BSCOPIED CLEAR INITIATE COPY FLAG @V305731 01721000
- NI BSCFLAG1,X'FF'-(BSCIGN+BSCETB) CLEAR FLAGS @VM03043 01722000
- OI BSCFLAG,BSCREGEN SET PERMANENT STATION ERROR @V305731 01723000
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01724000
- SPACE 2 01725000
- DEVSTAT EQU * HANDLE DEVICE END STATUS @V305731 01726000
- XC BSCSENSE(2),BSCSENSE CLEAR SENSE AND STATUS DATA@V305731 01727000
- TM NICTYPE,NICRSPL REMOTE PRINTER ??? @VA05871 01728000
- BO STATRST YES, GO SEND RVI TO RESET LINE @VA08734 01729200
- L R1,ASYSVM GET SYSTEM VMBLOK POINTER @V305731 01730000
- CL R1,NICUSER IS THIS USER LOGON @V305731 01731000
- BNE CNCLDE YES, GO CLEAR SCREEN @V305731 01732000
- NI NICFLAG,X'FF'-NICFMT CLEAR FORMAT COMPLETED FLAG@V305731 01733000
- LOGUSER EQU * LOGON FUNCTION SECTION @V305731 01734000
- NI BSCFLAG1,X'FF'-BSCINBID RESET INITIAL BID FLAG @V346931 01734500
- TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER @V305731 01735000
- BO STATRST YES, IGNORE REQUEST @VA08734 01736100
- L R15,PREFIXA GET PREFIX VALUE TO ADDRESS PSA @V4M0132 01737100
- * AT ABSOLUTE ZERO @V4M0132 01737200
- CLI XTNDLOCK-PSA(R15),X'FF' IS SYSTEM EXTENDING? @V4M0132 01737300
- BE STATRST YES, IGNORE INPUT DATA FROM USER @VA08734 01738100
- TM NICFLAG,NICENAB IS THIS RESOURCE ENABLE @V305731 01739000
- BZ STATRST NO, IGNORE REQUEST @VA08734 01740100
- TM NICFLAG,NICDISB DID OPERATOR DISABLE RESOURCE @V305731 01741000
- BZ TSTFMT NO, CHECK DISPLAY FOR FORMATTING @V305731 01742000
- BAL R7,CLRTLOG CLEAR SCREEN & LOGOFF USER @V305731 01743000
- SPACE 1 01744000
- TSTFMT EQU * @V305731 01745000
- TM NICFLAG,NICFMT IS THE SCREEN FORMATTED @V305731 01746000
- BZ FMTRGF NO, GO FORMAT SCREEN @V305731 01747000
- BAL R3,GRFCLRT SET UP CCWS TO CLEAR SCREEN @V305731 01748000
- MVI CONLABEL,RTNBLDVM SET RETURN TO BUILD VMBLOK @V305731 01749000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01750000
- SPACE 1 01751000
- FMTRGF EQU * @V305731 01752000
- L R7,=A(DMKRGBIC) PUT BASE ADDR OF DMKRGB IN REG. @V305731 01753000
- L R15,=A(DMKRGBMT) GO TO FORMAT SECTION @V305731 01754000
- BR R15 GO FORMAT DISPLAY SCREEN @V305731 01755000
- SPACE 1 01756000
- TESTREQ EQU * IGNORE DATA FROM REMOTE STATION @V305731 01757000
- NI BSCFLAG,X'FF'-BSCENQ CLEAR ENQ FLAG @V305731 01758000
- OI BSCFLAG,BSCTSTRQ SET IGNORE DATA FLAG @V305731 01759000
- BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01760000
- SPACE 1 01760100
- STATRST EQU * IGNORE DATA FROM REMOTE STATION @VA08734 01760200
- OI BSCFLAG,BSCTSTRQ SET IGNORE DATA FLAG @VA08734 01760300
- B RVICCW GO SEND RVI TO RESET LINE @VA08734 01760400
- SPACE 1 01761000
- SENDNAK EQU * SEND NAK TO REMOTE STATION @V305731 01762000
- NI BSCFLAG,X'FF'-BSCENQ CLEAR ENQ IN TEXT FLAG @V305731 01763000
- BAL R3,RTYCOUNT RETRY COUNT REACH MAX. VALUE @V305731 01764000
- SENDNAK1 BAL R3,NAKSUB SET UP CCWS TO SEND NAK RESPONSE @VA05184 01765000
- LA R1,BSCECCW1 GET START OF CCW STRING @V305731 01766000
- BAL R7,SETCAW GO RESTART I/O TO LINE @V305731 01767000
- EJECT 01768000
- ******************************************************************* 01769000
- * SUBROUTINES FOR 3270 REMOTE SUPPORT 01770000
- * 01771000
- * THESE SUBROUTINES ARE DUPLICATES OF SOME IN DMKRGB. 01772000
- * ANY CHANGES MADE TO THESE SUBROUTINES SHOULD ALSO BE MADE 01773000
- * IN DMKRGB. 01774000
- ******************************************************************* 01775000
- SPACE 2 01776000
- SETCAWA EQU * GET START OF CCW STRING @V305731 01777000
- LA R1,CONCCW1 GET BEGINNING ADDR OF CCW STRING @V305731 01778000
- SETCAW EQU * I/O RESTART SECTION @V305731 01779000
- ST R1,IOBCAW SET UP CAW @V305731 01780000
- XC BSCRESP(L'BSCRESP),BSCRESP CLEAR RESPONSE BUFFER@V305731 01781000
- RESTART EQU * RESTART I/O OPERATION TO LINE @V305731 01782000
- TM IOBMISC2,IBBSPOLL DOING A SPECIFIC POLL ? @VA08730 01782100
- BO RESTARTA YES,DON'T TOUCH FLAGS @VA08730 01782200
- NI IOBMISC2,X'FF'-IBBWRITE TURN OFF WRITE FLAG @VA08730 01782300
- L R1,IOBCAW RE-LOAD CCW ADDRESS @VA09123 01782320
- CLI 5(R1),X'10' IS THIS A WRITE TEXT CCW? @VA13944 01782450
- BNE RESTARTA NO, GO RESTART THE LINE @VA08730 01782500
- ST R1,BSCSPTR SAVE WRITE CCW ADDRESS @VA08730 01782600
- MVI IOBMISC2,IBBWRITE INDICATE THIS IS A WRITE @VA08730 01782700
- RESTARTA EQU * @VA08730 01782800
- XC BSCRESP(L'BSCRESP),BSCRESP CLEAR RESPONSE FIELD @VA13944 01782900
- NI BSCFLAG,X'FF'-BSCSCAN CLEAR SECOND SCAN FLAG @V305731 01783000
- XC IOBRCNT(2),IOBRCNT CLEAR RETRY COUNT FOR I/O @V305731 01784000
- BAL R3,FRETIOER RELEASE THE IOERBLOK @V305731 01785000
- LA R2,DMKRGAIN INTERRUPT RETURN ADDRESS @V305731 01786000
- ST R2,IOBIRA SAVE INTERRUPT RETURN ADDRESS @V305731 01787000
- MVC IOBUSER,NICUSER ASSIGN VMBLOK FOR I/O @VA07391 01788150
- ST R9,BSCAUSER SAVE ADDR OF ACTIVE RESOURCE @V305731 01792000
- CL R9,RDEVNICL IS THIS THE FIRST NICBLOK @V305731 01793000
- BE *+8 YES, SKIP SAVING NICBLOK @V305731 01794000
- ST R9,BSCRROBN SAVE ACTIVE NICBLOK @V305731 01795000
- NI IOBSTAT,IOBFATAL RESET ALL BUT IOB FATAL FLAG @V349331 01796100
- MVI IOBSPEC,X'00' CLEAR SPECIAL REQUEST @V305731 01797000
- NI IOBFLAG,IOBCP+IOBRSTRT LEAVE ON THESE FLAGS @V305731 01798000
- OI RDEVSTAT,RDEVWAII LINE IS NOW ACTIVE @V305731 01799000
- BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @VA07391 01799100
- CALL DMKIOSQR QUEUE REAL I/O FOR SYSTEM @V305731 01800000
- BAL R7,GODSPCH GO TO DISPATCHER @V305731 01801000
- SPACE 1 01802000
- RGSTART EQU * GO SCAN FOR ACTIVE NICBLOK @V305731 01803000
- L R7,=A(DMKRGBIC) PUT BASE ADDR OF DMKRGB IN REG. @V305731 01804000
- L R15,=A(DMKRGBSN) SCAN FOR ACTIVE USER @V305731 01805000
- BR R15 GO TO SCAN SECTION @V305731 01806000
- SPACE 1 01807000
- RGIGNORE EQU * RELEASE IOBLOK & IOERBLOK @V305731 01808000
- BAL R7,FRETIOB RELEASE STORAGE FOR IOBLOK @V305731 01809000
- BAL R7,GODSPCH GO TO DISPATCHER @V305731 01810000
- SPACE 1 01811000
- RVIRESP EQU * SEND RVI RESPONSE TO A STATION @V305731 01812000
- BAL R7,CTLTASKB GET STORAGE FOR CONTROL CONTASK @V305731 01813000
- MVI CONLABEL,RTNRVIRP SET RETURN TO RVI RESPONSE @V305731 01814000
- OI BSCFLAG,BSCRVI SET EOT EXPECTED FLAG @V305731 01815000
- LA R1,RSRVICCW GET ADDR OF CCW FOR RVI RESPONSE @V305731 01816000
- BAL R7,SETUPCCW SET UP CCW FOR RVI RESPONSE @V305731 01817000
- MVC CONCCW1(8),RSRVICCW GET CCW FOR RVI RESPONSE @V305731 01818000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01819000
- SPACE 1 01820000
- CTLTASKB EQU * SET UP BASIC SIZE FOR CONTASK @V305731 01821000
- LA R0,CONTSIZE SIZE OF BASIC CONTASK @V305731 01822000
- B CTLTASK1 GET STORAGE FOR CONTASK @V305731 01823000
- CTLTASK EQU * ALLOCATE AND QUEUE CONTROL TASK @V305731 01824000
- LA R0,CONTSIZE+6 ...SIZE OF CONTASKS @VA08129 01825100
- CTLTASK1 EQU * @V305731 01826000
- CALL DMKFREE GET STORAGE FOR CONTASK @V305731 01827000
- XC 0(CONTSIZE*8,R1),0(R1) CLEAR THE HEADER @V305731 01828000
- LR R6,R1 PUT CONTASK ADDRESS IN REGISTER 6@V305731 01829000
- STH R0,CONTSKSZ SAVE THE CONTASK SIZE @V305731 01830000
- L R1,NICUSER VMBLOK OF RESOURCE OWNER @V305731 01831000
- ST R1,CONUSER SAVE VMBLOK PTR IN CONTASK @V305731 01832000
- MVI CONSTAT,CONCNTL INDICATE CONTROL TASK @V305731 01833000
- L R1,NICQPNT GET CURRENT CONTASK FROM CHAIN @V305731 01834000
- ST R6,NICQPNT PUT THIS TASK FIRST ON CHAIN @V305731 01835000
- ST R1,CONPNT PUT CURRENT TASK ON CHAIN @V305731 01836000
- BR R7 RETURN @V305731 01837000
- SPACE 1 01838000
- STKCPEX EQU * @V305731 01839000
- LA R0,CPEXSIZE GET SIZE OF CPEXBLOK @V305731 01840000
- CALL DMKFREE GET STORAGE FOR CPEXBLOK @V305731 01841000
- USING CPEXBLOK,R1 ADDRESSABILITY FOR CPEXBLOK @V305731 01842000
- XC CPEXBLOK(16),CPEXBLOK CLEAR THE HEADER @V305731 01843000
- LR R15,R4 GET THE EXECUTION ADDRESS @V305731 01844000
- STM R15,R14,CPEXADD SAVE ALL REGISTERS @V305731 01845000
- CALL DMKSTKMP STACK BLOCK FOR LATER PROCESSING @VA07391 01846100
- DROP R1 DROP BASE REGISTER FOR CPEXBLOK @V305731 01847000
- BR R7 RETURN @V305731 01848000
- SPACE 1 01849000
- DATAMOVE EQU * MOVE DATA INTO CONTASK @V305731 01850000
- LA R14,CONCCW4+4 GET BEGINNING ADDRESS @V305731 01851000
- AR R14,R1 UPDATE TO END OF DATA @V305731 01852000
- MVI 0(R14),ETX PUT ENDING BISYNC CHAR IN BUFFER @V305731 01853000
- DATMOVE EQU * MOVE DATA INTO CONTASK @V305731 01854000
- MVC CONCCW4+1(3),SYNCP MOVE BISYNC HEADER INTO DATA @V305731 01855000
- BCTR R1,R0 SUBTRACT - EX INSTRUCTION @V305731 01856000
- EX R1,DATA MOVE DATA INTO BUFFER AREA @V305731 01857000
- BR R7 RETURN @V305731 01858000
- SPACE 1 01859000
- GRFCLRT EQU * @V305731 01860000
- BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 01861000
- NI NICFLAG,X'FF'-(NICDIAG+NICALRM) CLEAR FLAGS @V305731 01862000
- MVI NICCORD,X'00' SET COORDINATE Y TO ZERO @V305731 01863000
- MVI NICSTAT,NICRUNN+NICNTRL SET STATUS IN NICBLOK @V305731 01864000
- LA R1,WRT77CCW SET UP CCWS FOR CLEAR FUNCTION @V305731 01865000
- BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 01866000
- MVI CONCCW1+7,CLR77L+4 SET CCW COUNT FOR CLEAR FUNC.@V305731 01867000
- LA R1,CLR77L GET THE LENGTH OF CLEAR DATA @V305731 01868000
- LA R2,CLR3277 GET ADDRESS OF CLEAR DATA @V305731 01869000
- BAL R7,DATAMOVE MOVE DATA INTO BUFFER AREA @V305731 01870000
- BR R3 RETURN @V305731 01871000
- SPACE 1 01872000
- SETUPCCW EQU * SET UP CCWS FOR BISYNC RESPONSE @V305731 01873000
- MVC CONCCW1(8),0(R1) MOVE CCW INTO CONTASK @V305731 01874000
- MVI CONCCW1+4,SILI+CC MAKE SURE CMD CHAIN FLAG IS ON@V305731 01875000
- LA R1,CONCCW4+1 GET BEGINNING ADDRESS OF DATA @V305731 01876000
- STCM R1,7,CONCCW1+1 SAVE BEGINNING ADDRESS @V305731 01877000
- MVC CONCCW2(8),READCCW1 GET READ RESPONSE CCW @V305731 01878000
- LA R1,BSCRESP GET RESPONSE BUFFER @V305731 01879000
- STCM R1,7,CONCCW2+1 SAVE RESPONSE BUFFER ADDRESS @V305731 01880000
- BR R7 RETURN @V305731 01881000
- SPACE 1 01882000
- CLRTLOG EQU * CLEAR SCREEN & LOGOFF USER @V305731 01883000
- BAL R3,GRFCLRT SET UP CCWS TO CLEAR SCREEN @V305731 01884000
- MVI CONLABEL,RTNLOGOF SET RETURN TO LOGOFF PROCESS @V305731 01885000
- BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01886000
- SPACE 2 @VA13123 01887000
- SETRETN EQU * @V305731 01907000
- TM CONSTAT,CONRESP RESPONSE EXPECTED ? @V305731 01908000
- BZR R3 NO, RETURN @V305731 01909000
- L R1,CONRETN GET RETURN SAVEAREA ADDRESS @V305731 01910000
- ST R2,SAVER2-SAVEAREA(R1) SET RETURN CODE @V305731 01911000
- BR R3 RETURN TO IN LINE CODE @V305731 01912000
- SPACE 1 01913000
- CONRET EQU * RETURN CONTASK TO SYSTEM @V305731 01914000
- L R0,CONPNT GET NEXT CONTASK (IF ANY) @V305731 01915000
- ST R0,NICQPNT SET NEXT CONTASK FOR PROCESSING @V305731 01916000
- SR R0,R0 CLEAR REGISTER 0 @V305731 01917000
- ST R0,CONPNT CLEAR NEXT POINTER @V305731 01918000
- CALL DMKQCNET RETURN CONTASK @V305731 01919000
- BR R3 RETURN TO IN LINE CODE @V305731 01920000
- SPACE 1 01921000
- RTYCOUNT EQU * CHECK RETRY FOR MAXIMUN VALUE @V305731 01922000
- LH R1,BSCCNT GET RETRY COUNT @V305731 01923000
- A R1,F1 UPDATE RETRY COUNT BY ONE @V305731 01924000
- STH R1,BSCCNT SAVE RETRY COUNT @V305731 01925000
- CLC BSCCNT(2),F6+2 HAS MAXIMUM COUNT BEEN REACHED ? @VA08077 01926100
- BH REGENERR YES, SET PERMANENT STATION ERROR @V305731 01927000
- BR R3 RETURN TO IN LINE CODE @V305731 01928000
- SPACE 1 01928100
- LDITCH EQU * HERE FOR LAST DITCH RETRY @VA08732 01928200
- MVC IOBCAW,BSCSPTR SET CCW ADDRESS @VA08732 01928300
- MVI BSCFLAG,X'00' TURN OFF ERROR FLAGS @VA08732 01928400
- MVI BSCFLAG1,X'00' DITTO @VA08732 01928500
- NI IOBSTAT,X'FF'-IOBFATAL DITTO @VA08732 01928600
- BAL R3,SELECTCW GO RESELECT TUBE @VA09031 01928710
- B RESTART GO RESTART I/O TO LINE @VA09031 01928810
- SPACE 1 01929000
- RSTTMR EQU * RESET TIMER VALUE @V305731 01930000
- TM NICSTAT,NICTRQ IS A TIMER REQUEST QUEUED @V305731 01931000
- BZR R7 NO, RETURN TO IN LINE CODE @V305731 01932000
- NI NICSTAT,X'FF'-NICTRQ RESET TIMER REQUEST FLAG @V305731 01933000
- L R1,NICATRB GET ADDRESS OF TRQBLOK @V305731 01934000
- CALL DMKSCHRT RESET ACTIVE TIMER REQUEST @V305731 01935000
- BR R7 RETURN TO IN LINE CODE @V305731 01936000
- SPACE 1 01937000
- ROUTCNS EQU * EDIT AND TRANSLATE INPUT DATA @V305731 01938000
- ST R7,TEMPR7 SAVE REGISTER 7 @V4M0193 01938100
- ST R0,TEMPR0 SAVE REG 0-DESTROYED BY RSWVMU1 @VA07580 01938200
- L R1,NICUSER LOAD ADDR NEW VMBLOK @V407511 01939100
- BAL R7,RSWVMU1 SWITCH VMBLOK CHARGING @V4M0193 01939600
- L R7,TEMPR7 RESTORE REGISTER 7 @V4M0193 01939700
- L R0,TEMPR0 RESTORE REGISTER 0 @VA07580 01939800
- CALL DMKCNSED EDIT INPUT DATA @V305731 01942000
- CHARGE SWITCH,ASYSVM SWITCH VMBLOK CHARGING @V407511 01943100
- BR R7 RETURN @V407511 01943200
- SPACE 1 01944000
- FRETCON EQU * RELEASE CONTASK AFTER EDITING @V305731 01945000
- LR R1,R6 GET CONTASK POINTER @V305731 01946000
- LA R0,CONTSIZE GET SIZE OF CONTASK @V305731 01947000
- CALL DMKFRET RELEASE CONTASK @V305731 01948000
- ST R3,BUFCNT-BUFFER(,R4) SAVE INPUT DATA COUNT @V305731 01949000
- BR R7 RETURN TO IN LINE CODE @V305731 01950000
- SPACE 1 01951000
- ROUTQCN EQU * RE-DISPLAY DATA ON SCREEN @V305731 01952000
- TM VMMLVL2-VMBLOK(R15),VMMHLITE HILIGHT REQUESTED? HRV101DK 01952700
- BZ CALLQCN NO, CONTINUE HRV101DK 01953400
- O R2,=A(HILIGHT) SET PARM ON HRV101DK 01954100
- CALLQCN EQU * HRV101DK 01954800
- O R2,=A(NOTRESP) SIGNAL NOT A COMMAND RESPONSE @V60C2B8 01955500
- CALL DMKQCNWT,AFFINITY RE-DISPLAY INPUT DATA @V407511 01955600
- B RSWVMU GO RESTORE SYSTEM TIMER VALUE @V4M0193 01957100
- SPACE 1 01958000
- ROUTCFM EQU * PUT USER IN CONSOLE FUNCTION MODE@V305731 01959000
- LR R3,R7 SAVE RETURN ADDRESS @V4M0193 01960100
- BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 01960200
- LR R7,R3 RESTORE RETURN ADDRESS @V4M0193 01960300
- CALL DMKCFMBK,AFFINITY PLACE IN CONSOLE FUNC MODE @V407511 01960600
- B RSWVMU GO RESTORE SYSTEM TIMER VALUE @V4M0193 01965100
- SPACE 1 01969000
- BLDTRQ EQU * GET STORAGE FOR TRQBLOK @V305731 01970000
- L R4,NICATRB GET TRQBLOK POINTER @V305731 01971000
- LTR R4,R4 IS THE POINTER ZERO ? @V305731 01972000
- BNZR R7 NO, RETURN @V305731 01973000
- BAL R3,TRQSETUP GET STORAGE AND SETUP TRQBLOK @V305731 01974000
- ST R4,NICATRB SAVE POINTER TO TRQBLOK @V305731 01975000
- BR R7 RETURN @V305731 01976000
- SPACE 1 01977000
- TRQSETUP EQU * GET STORAGE AND SET UP TRQBLOK @V305731 01978000
- LA R0,TRQBSIZE+CRTEXT GET SIZE OF TRQBLOK @VA13071 01979100
- CALL DMKFREE GET STORAGE FOR TRQBLOK @V305731 01980000
- LR R4,R1 GET TRQBLOK ADDRESS @V305731 01981000
- XC TRQBLOK(TRQBSIZE*8+CRTEXTSZ),TRQBLOK CLR TRQ+EXT@VA13071 01982100
- CALL DMKSCNRD GET BISYNC LINE ADDRESS @V305731 01983000
- STH R1,TRQBDEV SAVE BISYNC LINE ADDRESS @V305731 01984000
- ST R9,TRQBCRT SAVE NICBLOK ADDRESS OF USER @V305731 01985000
- BR R3 RETURN TO IN LINE CODE @V305731 01986000
- SPACE 1 01987000
- SCHTIME EQU * SCHEDULE TIMER REQUEST @V305731 01988000
- ST R15,TRQBIRA SAVE RETURN ADDRESS @V305731 01989000
- ST R11,TRQBUSER SAVE USER VMBLOK ADDRESS @V305731 01990000
- STCK TRQBVAL GET TOD CLOCK VALUE @V305731 01991000
- BC 12,CLOCKOK IS CLOCK FUNCTIONING? @VA04301 01991250
- GOTO DMKCVTAB CLOCK DAMAGED...ABEND CVT001 @VA04301 01991500
- CLOCKOK EQU * @VA04301 01991750
- LM R14,R15,TRQBVAL GET TOD VALUE @V305731 01992000
- AL R15,4(R1) ADD TO THE TOD CLOCK THE @V305731 01993000
- BC 12,BYPADJ TIME INTERVAL @VM03133 01994000
- AL R14,F1 ADJUST FOR OVERFLOW @V305731 01995000
- BYPADJ EQU * GET TIMER VALUE @VM03133 01996000
- AL R14,0(R1) HI ODER OF CLOCK VALUE @V305731 01997000
- STM R14,R15,TRQBVAL SAVE TIMER VALUE IN TRQBLOK @V305731 01998000
- LR R1,R4 GET ADDRESS OF TRQBLOK @V305731 01999000
- CALL DMKSCHST GO SCHEDULE TIMER REQUEST @V305731 02000000
- BR R7 RETURN TO IN LINE CODE @V305731 02001000
- SPACE 1 02002000
- BLDIOB EQU * GET STORAGE FOR IOBLOK @V305731 02003000
- LTR R10,R10 IS THERE AN IOBLOK POINTER ? @V305731 02004000
- BNZR R3 YES, RETURN @V305731 02005000
- LA R0,IOBSIZE GET IOBLOK SIZES @V305731 02006000
- CALL DMKFREE GET STORAGE FOR IOBLOK @V305731 02007000
- LR R10,R1 SET UP ADDRESSABILITY FOR IOBLOK @V305731 02008000
- XC IOBLOK(IOBSIZE*8),IOBLOK CLEAR IOBLOK @V305731 02009000
- BR R3 RETURN TO IN LINE CODE @V305731 02010000
- SPACE 1 02011000
- BLDCOPY EQU * CCWS TO COPY SCREEN TO PRINTER @V305731 02012000
- LA R0,CONTSIZE+1 GET SIZE OF CONTROL CONTASK @V305731 02013000
- BAL R7,CTLTASK1 GET STORAGE FOR CONTASK @V305731 02014000
- MVI CONLABEL,RTNNOCTL SET INDICATOR FOR NEXT CONTASK@V305731 02015000
- LA R1,WRT77CCW GET WRITE CCW ADDRESS @V305731 02016000
- BAL R7,SETUPCCW SET UP CCWS FOR BISYNC OPERATION @V305731 02017000
- MVI CONCCW1+7,COPY75L+4 SET LENGTH OF COPY DATA @V305731 02018000
- LA R1,COPY75L GET LENGTH OF COPY DATA @V305731 02019000
- LA R2,COPY3275 GET ADDRESS OF COPY DATA @V305731 02020000
- BAL R7,DATAMOVE MOVE DATA INTO CONTASK @V305731 02021000
- L R7,RDEVNICL GET START OF NICBLOK LIST @V305731 02022000
- TM NICTYPE-NICBLOK(R7),NIC3275 A 3275 DISPLAY @V305731 02023000
- BOR R3 YES, RETURN TO IN LINE CODE @V305731 02024000
- MVI CONCCW1+7,COPY77L+4 SET LENGTH OF COPY DATA @V305731 02025000
- LA R1,COPY77L GET LENGTH OF COPY DATA @V305731 02026000
- LA R2,COPY3277 GET ADDRESS OF COPY DATA @V305731 02027000
- BAL R7,DATAMOVE MOVE DATA INTO CONTASK @V305731 02028000
- MVI CONCCW4+3,COPYCMD SET COPY COMMAND CODE @V305731 02029000
- L R7,BSCUCOPY GET COPY REQUESTOR NICBLOK ADDR @V305731 02030000
- IC R1,NICPOLL+1-NICBLOK(R7) GET DEVICE ADDRESS @V305731 02031000
- STC R1,CONCCW4+5 PUT REQUESTOR DEVICE ADDR IN DATA@V305731 02032000
- BR R3 RETURN @V305731 02033000
- SPACE 1 02034000
- ERRMSGS EQU * ERROR MESSAGE SUBROUTINE @V305731 02035000
- LH R1,IOBRADD GET ADDRESS OF LINE @V305731 02036000
- CALL DMKCVTBH CONVERT TO HEX. VALUE @V305731 02037000
- ICM R1,8,BLANKS PUT BLANK IN HIGH ORDER BYTE @V305731 02038000
- L R0,MSGHEAD GET HEADER FOR ERROR ROUTINE @V305731 02039000
- O R2,MSGPARM SET UP PARM FIELD @V305731 02040000
- LTR R3,R3 TEST FOR MESSAGE 455 @VA13518 02040100
- BZ CALLERM IF 0, NOT 455, CALL ERM NOW @VA13518 02040200
- ST R1,0(,R3) STORE LINE ADDRESS FOR MSG @VA13518 02040300
- LR R1,R3 LOAD DATA ADDRESS FOR ERM @VA13518 02040400
- ICM R3,8,F2+3 NO. OF DW IN REG FOR ERM @VA13518 02040500
- ICM R0,1,F16+3 NO. OF BYTES IN REG FOR ERM @VA13518 02040600
- CALLERM EQU * @VA13518 02040700
- CALL DMKERMSG,AFFINITY WRITE ERROR MESSAGES @V407511 02041100
- BR R7 RETURN TO IN LINE CODE @V305731 02042000
- SPACE 1 02043000
- FRETSTG EQU * RETURN STORAGE TO SYSTEM @V305731 02044000
- LA R1,0(,R1) CLEAR HIGH ORDER BYTE @V305731 02045000
- LTR R1,R1 IS ADDRESS ZERO ? @V305731 02046000
- BZ CLREG0 YES, CLEAR REGISTER ZERO @V305731 02047000
- CALL DMKFRET RELEASE STORAGE @V305731 02048000
- CLREG0 EQU * @V305731 02049000
- SR R0,R0 CLEAR REGISTER 0 @V305731 02050000
- BR R7 RETURN TO IN LINE CODE @V305731 02051000
- SPACE 1 02052000
- FRETRD EQU * RELEASE READ BUFFER @V305731 02053000
- LA R0,BUFSIZE GET SIZE OF READ BUFFER @V305731 02054000
- L R1,BSCRPTR GET ADDRESS OF READ BUFFER @VA08730 02055100
- BAL R7,FRETSTG RELEASE STORAGE FOR READ BUFFER @V305731 02056000
- ST R0,BSCRPTR CLEAR POINTER FIELD @VA08730 02057100
- BR R3 RETURN @V305731 02058000
- SPACE 1 02059000
- FRETIOB EQU * RELEASE IOBLOK & IOERBLOK @V305731 02060000
- LTR R10,R10 IS THERE AN IOBLOK POINTER @V305731 02061000
- BZR R7 NO, RETURN @V305731 02062000
- BAL R3,FRETIOER RELEASE IOERBLOK @V305731 02063000
- LR R1,R10 GET IOBLOK POINTER @V305731 02064000
- LA R0,IOBSIZE GET SIZE OF IOBLOK @V305731 02065000
- CALL DMKFRET RELEASE STORAGE FOR IOBLOK @V305731 02066000
- SR R10,R10 CLEAR IOBLOK POINTER @V305731 02067000
- BR R7 RETURN TO IN LINE CODE @V305731 02068000
- SPACE 1 02069000
- FRETIOER EQU * RELEASE IOERBLOK STORAGE @V305731 02070000
- L R1,IOBIOER GET POINTER TO IOERBLOK @V305731 02071000
- LTR R1,R1 IS POINTER ZERO ? @V305731 02072000
- BZR R3 YES, RETURN @V305731 02073000
- LA R0,IOERSIZE GET SIZE OF IOERBLOK @V305731 02074000
- AH R0,IOEREXT-IOERBLOK(,R1) EXTENSION TO IOERBLOK @V305731 02075000
- CALL DMKFRET RELEASE STORAGE FOR IOERBLOK @V305731 02076000
- SR R0,R0 CLEAR REGISTER 0 @V305731 02077000
- ST R0,IOBIOER CLEAR POINTER TO IOERBLOK @V305731 02078000
- BR R3 RETURN @V305731 02079000
- EJECT 02080100
- **** NOTE: R7 MUST BE PRESERVED ACROSS THIS SUBROUTINE 02080200
- FORCEOFF EQU * LOGOFF USER @V305731 02081000
- LR R2,R7 SAVE R7 VALUE @V4M0193 02082100
- BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 02082200
- LR R7,R2 RESTORE R7 VALUE @V4M0193 02082300
- L R4,RDEVCON GET ADDRESS OF STACK CONTASKS @V305731 02085000
- L R2,NICQPNT GET POINTER TO CONTASK'S STACK @V305731 02086000
- LTR R2,R2 ARE THERE ANY CONTASKS @V305731 02087000
- BZ CHECKLST NO, RESTORE ADDRESS OF STACK @V305731 02088000
- ST R2,RDEVCON SAVE CONTASK POINTER FOR QCN @V305731 02089000
- CALL DMKQCNCL CANCEL EVERYTHING ON STACK @V305731 02090000
- CHECKLST EQU * SAVE ORIGINAL CONTASK POINTER @V305731 02091000
- ST R4,RDEVCON SAVE ORIGINAL CONTASK POINTER @V305731 02092000
- SR R0,R0 CLEAR REGISTER 0 @V305731 02093000
- ST R0,NICQPNT CLEAR POINTER TO CONTASK STACK @V305731 02094000
- TM VMRSTAT,VMLOGOFF IS USER IN PROCESS OF LOGOFF @V305731 02095000
- BO SIGNOFF YES, BYPASS SENDING MESSAGE @V305731 02096000
- CL R11,ASYSVM IS THIS A SYSTEM VMBLOK ? @V305731 02097000
- BE SIGNOFF YES, BYPASS @V305731 02098000
- TM BSCFLAG,BSCLOG IS BYPASS FORCE MESSAGE SET ? @V305731 02099000
- BO SIGNOFF YES, GO LOGOFF USER @V305731 02100000
- TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER @V305731 02101000
- BO SIGNOFF YES, BYPASS MESSAGE TO OPERATOR @V305731 02102000
- TM VMRSTAT,VMLOGON STILL IN LOGON PROCESS ? @V305731 02103000
- BZ BYPSLP NO, PUT USER TO SLEEP @VM03133 02104000
- ST R0,VMTERM CLEAR TERMINAL RDEVBLOK PTR. @V305731 02105000
- BYPSLP EQU * PUT USER TO SLEEP @VM03133 02106000
- CALL DMKQCNTO,AFFINITY PUT USER TO SLEEP @V407511 02107100
- SIGNOFF EQU * CLEANUP SECTION @V305731 02108000
- LR R2,R7 SAVE R7 @VA07391 02109150
- BAL R7,RSWVMU SWITCH VMBLOK CHARGING @V4M0193 02109200
- ST R11,NICUSER THIS RESOURCE NOW AVAILABLE @V305731 02112000
- BAL R7,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V305731 02114000
- NI NICSTAT,X'FF'-X'DF' RESET RESOURCE STATUS @V305731 02115000
- NI NICFLAG,X'FF'-X'D5' RESET RESOURCE FLAGS @V305731 02116000
- NI NICTMCD,X'FF'-(NICAPL+NICSIO+NICTEXT) @V387398 02117100
- L R1,NICATRB GET ADDRESS OF TRQBLOK @V305731 02118000
- LA R0,TRQBSIZE+CRTEXT GET SIZE OF TRQBLOK @VA13071 02119100
- BAL R7,FRETSTG RELEASE STORAGE FOR TRQBLOK @V305731 02120000
- ST R0,NICATRB CLEAR TRQBLOK POINTER @V305731 02121000
- LR R7,R2 RESTORE CALLERS R7 @VA07391 02122100
- TM NICFLAG,NICDISB WAS RESOURCE DISABLED ? @V305731 02123000
- BZR R3 NO, RETURN @V305731 02124000
- NI NICFLAG,X'FF'-(NICDISB+NICENAB) @V305731 02125000
- BR R3 RETURN @V305731 02126000
- EJECT 02127100
- RESEOT EQU * RESET SECTION @V305731 02128000
- XC BSCCNT(2),BSCCNT CLEAR RETRY COUNT @V305731 02129000
- LA R1,RESETEOT GET ADDRESS OF RESET CCW @V305731 02130000
- BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 02131000
- SPACE 1 02131100
- LINEDROP EQU * DISCONNECT SWITCH LINE @V346931 02131200
- XC BSCCNT,BSCCNT CLEAR RETRY COUNT @V346931 02131300
- LA R1,BKCONCCW ADDR OF BREAK CONNECTION CCW @V346931 02131400
- BAL R7,SETCAW GO START I/O OPERATION @V346931 02131500
- SPACE 1 02132000
- ENQSUB EQU * SEND ENQ TO RE-GENERATE RESPONSE @V305731 02133000
- MVC BSCECCW1(8),RSENQCCW SET UP CCW TO SEND ENQ @V305731 02134000
- MVC BSCECCW2(8),TICCCW GET TIC CCW @V305731 02135000
- L R1,IOBCSW GET CCW ADDRESS @VA07166 02136100
- LA R1,0(,R1) CLEAR HIGH-ORDER BYTE @VA07166 02136200
- SH R1,F8+2 CALCULATE READ CCW ADDRESS @VA07166 02136300
- STCM R1,7,BSCECCW2+1 SAVE ADDRESS IN CCW @V305731 02137000
- BR R3 RETURN @V305731 02138000
- SPACE 1 02139000
- NAKSUB EQU * SEND RESPONSE TO RETRANSMIT TEXT @V305731 02140000
- MVC BSCECCW1(8),RSNAKCCW GET CCW TO SEND NAK RESP. @V305731 02141000
- MVC BSCECCW2(8),TICCCW SET UP TIC CCW @V305731 02142000
- LA R1,BSCPCCW4 GET ADDRESS OF THE READ CCW @V305731 02143000
- TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED? @V346931 02143200
- BZ NOTDIAL2 NO, USE ESTABLISHED CCWS @V346931 02143400
- LA R1,BSCPCCW2 POINT TO READ BUFFER CCWS @V346931 02143600
- NOTDIAL2 EQU * PREPARE FOR I/O OPERATION @V346931 02143800
- STCM R1,7,BSCECCW2+1 SAVE ADDRESS IN TIC CCW @V305731 02144000
- XC BSCREAD(256),BSCREAD CLEAR READ BUFFER @V305798 02145000
- XC BSCREAD+256(L'BSCREAD-256),BSCREAD+256 ... @V305798 02146000
- BR R3 RETURN @V305731 02147000
- SPACE 1 02148000
- STATUS EQU * DETERMINE STATUS OF DISPLAY @V305731 02149000
- TM NICSTAT,NICREAD IS SCREEN IN READ STATE @V305731 02150000
- BO RGFREAD YES, GET CCWS FOR READ STATE @V305731 02151000
- TM NICSTAT,NICRUNN IS SCREEN IN RUNNING STATE @V305731 02152000
- BO RGFRUN YES, GET CCWS FOR RUNNING STATE @V305731 02153000
- TM NICSTAT,NICHOLD IS SCREEN IN HOLD STATE @V305731 02154000
- BO RGFHOLD YES, GET CCWS FOR HOLD STATE @V305731 02155000
- BAL R7,RSTTMR GO RESET ACTIVE TIMER REQUEST @V305731 02156000
- BAL R3,CRTMORE GET CCWS FOR MORE STATE @V305731 02157000
- BR R4 RETURN @V305731 02158000
- RGFREAD EQU * HANDLE READ STATUS @V305731 02159000
- L R6,NICQPNT GET NEXT CONTASK @V305731 02160000
- BAL R3,READSUB BUILD CCWS FOR READ STATE @V305731 02161000
- BR R4 RETURN @V305731 02162000
- RGFRUN EQU * HANDLE RUNNING STATUS @V305731 02163000
- BAL R3,CRTRUN GET CCWS FOR RUNNING STATE @V305731 02164000
- BR R4 RETURN @V305731 02165000
- RGFHOLD EQU * HANDLE HOLD STATE @V305731 02166000
- BAL R3,CRTHOLD GET CCWS FOR HOLD STATE @V305731 02167000
- BR R4 RETURN @V305731 02168000
- SPACE 1 02169000
- CRTRUN EQU * SET UP CCWS FOR RUNNING STATE @V305731 02170000
- BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02171000
- MVI NICSTAT,NICNTRL+NICRUNN SET RUNNING & CONTROL @V305731 02172000
- MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 02173000
- LA R1,WRT77CCW GET ADDRESS OF RUNNING CCWS @V305731 02174000
- BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02175000
- MVI CONCCW1+7,RUN77L+3 SET RUNNING CCW COUNT @V305731 02176000
- LA R1,RUN77L-1 GET LENGTH OF RUNNING DATA @V305731 02177000
- LA R2,RUN3277 GET ADDRESS OF RUNNING DATA @V305731 02178000
- BAL R7,DATAMOVE MOVE DATA INTO CONTASK BUFFER @V305731 02179000
- BR R3 RETURN @V305731 02180000
- SPACE 1 02181000
- CRTMORE EQU * SET UP CCWS FOR MORE STATE @V305731 02182000
- BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02183000
- MVI NICSTAT,NICMORE+NICNTRL INDICATE MORE & CONTROL @V305731 02184000
- MVI CONLABEL,RTNSTMOR SET RETURN TO MORE SECTION @V305731 02185000
- LA R1,WRT77CCW GET ADDRESS OF MORE CCWS @V305731 02186000
- BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02187000
- MVI CONCCW1+7,MOR77L+4 SET MORE CCW COUNT @V305731 02188000
- LA R1,MOR77L GET LENGTH OF MORE DATA @V305731 02189000
- LA R2,MOR3277 GET ADDRESS OF MORE DATA @V305731 02190000
- BAL R7,DATAMOVE MOVE DATA INTO CONTASK BUFFER @V305731 02191000
- BR R3 RETURN @V305731 02192000
- SPACE 1 02193000
- CRTHOLD EQU * SET UP CCWS FOR HOLD STATE @V305731 02194000
- BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02195000
- MVI NICSTAT,NICHOLD+NICNTRL INDICATE HOLD & CONTROL @V305731 02196000
- MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 02197000
- LA R1,WRT77CCW GET ADDRESS OF HOLD CCWS @V305731 02198000
- BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02199000
- MVI CONCCW1+7,HLD77L+4 SET HOLD CCW COUNT @V305731 02200000
- LA R1,HLD77L GET LENGTH OF HOLD DATA @V305731 02201000
- LA R2,HLD3277 GET ADDRESS OF HOLD DATA @V305731 02202000
- BAL R7,DATAMOVE MOVE DATA INTO CONTASK BUFFER @V305731 02203000
- BR R3 RETURN @V305731 02204000
- SPACE 1 02205000
- NOTACPT EQU * CCWS FOR NOT ACCEPTED STATUS @V305731 02206000
- BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02207000
- MVI CONLABEL,RTNSETRJ SET RETURN TO REJECT SECTION @V305731 02208000
- LA R1,WRT77CCW GET ADDRESS OF NOT ACCEPTED CCWS @V305731 02209000
- BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02210000
- MVI CONCCW1+7,NAC77L+4 SET NOT ACCEPTED CCW COUNT @V305731 02211000
- LA R1,NAC77L GET LENGTH OF NOT ACCEPTED DATA @V305731 02212000
- LA R2,NAC3277 GET ADDRESS OF NOT ACCEPTED DATA @V305731 02213000
- BAL R7,DATAMOVE MOVE DATA INTO CONTASK'S BUFFER @V305731 02214000
- BR R3 RETURN @V305731 02215000
- SPACE 1 02216000
- GRFCRD EQU * SET UP CCWS TO CLEAR INPUT AREA @V305731 02217000
- BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02218000
- MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 02219000
- LA R1,WRT77CCW GET ADDRESS OF CLEAR INPUT CCWS @V305731 02220000
- BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02221000
- MVI CONCCW1+7,CRD77L+4 SET CLEAR AREA CCW COUNT @V305731 02222000
- LA R1,CRD77L GET LENGTH OF CLEAR AREA DATA @V305731 02223000
- TM NICSTAT,NICMORE+NICHOLD MORE OR HOLD STATUS?? @VA05100 02224210
- BZ GRFCRD1 NO, RESET STATUS TO RUNNING @VA04374 02224400
- S R1,F20 ADJUST LENGTH TO LEAVE STAT AS IS@VA04374 02224600
- GRFCRD1 LA R2,CRD3277 GET @ OF CLEAR AREA DATA @VA04374 02224800
- BAL R7,DATAMOVE MOVE DATA INTO CONTASK'S BUFFER @V305731 02225000
- BR R3 RETURN @V305731 02226000
- SPACE 1 02227000
- READSUB EQU * SET UP CCWS FOR READ STATE @V305731 02228000
- LR R2,R6 SAVE CONTASK POINTER @V305731 02229000
- BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02230000
- LA R1,WRT77CCW GET CCWS FOR READ STATE @V305731 02231000
- BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02232000
- LR R15,R2 GET ORIGINAL CONTASK POINTER @V305731 02233000
- MVI CONCCW1+7,CPR77L+4 SET READ CCW COUNT @V305731 02234000
- LA R1,CPR77L GET LENGTH OF READ DATA @V305731 02235000
- LA R2,CPR3277 GET ADDRESS OF READ DATA @V305731 02236000
- BAL R7,DATAMOVE MOVE DATA INTO BUFFER AREA @V305731 02237000
- TM CONPARM-CONTASK(R15),INHIBIT NON-DISPLAY DATA @V305731 02238000
- BZ BYPATTR NO, BYPASS SETTING ATTRIBUTE BYTE@VM03133 02239000
- MVI CONDATA+1,ATTR457 SET NON-DISPLAY ATTRIBUTE BYTE@V305731 02240000
- BYPATTR EQU * CHECK FOR VIRTUAL MACHINE @VM03133 02241000
- TM CONPARM-CONTASK(R15),VMGENIO A VIRTUAL MACH READ@V305731 02242000
- BZ VMREADBF NO, BYPASS VM READ DATA @VM03133 02243000
- MVC CONDATA+7(7),VMREADS MOVE VM READ INTO BUFFER @V305731 02244000
- VMREADBF EQU * SETUP CONTROL INFORMATION @VM03133 02245000
- MVI NICSTAT,NICREAD+NICNTRL INDICATE READ & CONTROL @V305731 02246000
- OI CONSTAT-CONTASK(R15),CONESCP CONTASK PROCESSED @V305731 02247000
- MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 02248000
- BR R3 RETURN @V305731 02249000
- SPACE 1 02250000
- SELECTCW EQU * SET UP CCWS TO SELECT A STATION @V305731 02251000
- TM RDEVFTR,FTRDIAL DIAL UP FEATURE INDICATED? @V346931 02251100
- BNO NONSW NO, SET UP ADDRESSING CCWS @V346931 02251200
- MVC BSCSCCW1(THREECCW),BIDCCW LINE BID CCWS @VA05230 02251350
- B JOINSEL SET UP BUFFER FOR RESPONSE @V346931 02251400
- NONSW EQU * SET UP ADDRESSING CCSW @V346931 02251500
- MVC BSCSCCW1(8*3),WRITSEL CCW STRING FOR ADDRESSING @V305731 02252000
- LA R1,BSCSEL GET ADDRESS OF SELECTION ENTRY @V305731 02253000
- STCM R1,7,BSCSCCW2+1 SAVE ADDRESS OF SELECT ENTRY @V305731 02254000
- ICM R1,10,NICSELT GET ADDRESSING CHARACTERS @V305731 02255000
- ICM R1,5,NICSELT SET UP DOUBLE ADDRESSING CHARS. @V305731 02256000
- STCM R1,15,BSCSEL SAVE ADDRESS OF REMOTE STATION @V305731 02257000
- MVI BSCSEL+4,ENQ SET UP ADDRESSING ENTRY @V305731 02258000
- JOINSEL EQU * ENTRY POINT FOR SW LINE HANDLING @V346931 02258500
- LA R1,BSCRESP GET RESPONSE BUFFER POINTER @V305731 02259000
- STCM R1,7,BSCSCCW3+1 SAVE ADDRESS IN CCW @V305731 02260000
- XC BSCRESP(2),BSCRESP CLEAR RESPONSE BUFFER @V305731 02261000
- MVC BSCRCVD(4),RGFACK0 EXPECTED RECVD & SEND RESP. @V305731 02262000
- MVC BSCSPTR(4),IOBCAW SAVE PTR. TO WRITE CCW STRING @V305731 02263000
- MVI IOBMISC2,IBBSELA SET SELECTION INDICATOR @V305731 02264000
- LA R1,BSCSCCW1 GET START OF SELECTION CCW STRING@V305731 02265000
- ST R1,IOBCAW SET UP CAW FIELD @V305731 02266000
- BR R3 RETURN @V305731 02267000
- SPACE 1 02268000
- SPOLLCW EQU * SET UP CCWS TO DO A SPECIFIC POLL@V305731 02269000
- OI IOBMISC2,IBBSPOLL SET SPECIFIC POLL INDICATOR @V305731 02270000
- B POLLBULD GO SET UP BSCBLOK FOR POLLING @V305731 02271000
- SPACE 1 02272000
- GPOLLCW EQU * SET UP CCWS FOR GENERAL POLLING @V305731 02273000
- L R9,RDEVNICL GET ADDR OF CONTROL UNIT NICBLOK @V305731 02274000
- MVI IOBMISC2,IBBREAD SET FLAG FOR GENERAL POLLING @V305731 02275000
- POLLBULD EQU * SET UP THE BSCBLOK FOR POLLING @V305731 02276000
- TM RDEVFTR,FTRDIAL DIAL UP FEATURE INDICATED? @V346931 02276100
- BNO POLLCONT NO, SET UP POLLING CCWS @V346931 02276200
- MVC BSCPCCW1(TWOCCW),S3275EOT WRITE EOT / READ @V346931 02276300
- LA R1,BSCRESP ADDRESS OF RESPONSE BUFFER @V346931 02276400
- STCM R1,B'0111',BSCPCCW2+1 INTO CCW @V346931 02276500
- B JOINPOLL READ BUFFER @V346931 02276600
- POLLCONT EQU * NON-DIAL POLL OPERATION CONTINUE @V346931 02276700
- MVC BSCPCCW1(8*4),POLCCW GENERAL POLLING CCW STRING @V305731 02277000
- LA R1,BSCREAD GET READ BUFFER ADDRESS @V305731 02278000
- STCM R1,7,BSCPCCW4+1 SAVE ADDRESS OF READ BUFFER @V305731 02279000
- LA R1,BSCSEL GET ADDRESS OF POLLING ENTRY @V305731 02280000
- STCM R1,7,BSCPCCW2+1 SAVE ADDRESS OF POLL ENTRY @V305731 02281000
- ICM R1,10,NICPOLL GET POLLING CHARACTERS @V305731 02282000
- ICM R1,5,NICPOLL SET UP DOUBLE POLLING CHARACTERS @V305731 02283000
- STCM R1,15,BSCSEL SAVE ADDRESS OF REMOTE STATION @V305731 02284000
- MVC BSCSEL+4(3),RGFINDEQ SET UP ENQ, INDEX VAL & EOT@VA03474 02285100
- JOINPOLL EQU * CLEAR READ BUFFER @V346931 02285150
- XC BSCRESP(256),BSCRESP CLEAR READ BUFFER @V346931 02286100
- XC BSCRESP+256(L'BSCREAD+L'BSCRESP-256),BSCRESP+256 X02286700
- THIS SUPPORT CODE IS FOR THE ABOVE LINE @V346931 02287300
- MVC BSCRCVD(4),RGFACK0 SET RECEIVING & SENDING RESP @V305731 02288000
- LA R1,BSCPCCW1 GET START OF POLLING CCW STRING @V305731 02289000
- BR R3 RETURN @V305731 02290000
- SPACE 1 02291000
- BLD77TAB EQU * SET UP CCWS FOR TAB FUNCTION @V305731 02292000
- BAL R7,CTLTASKB GET STORAGE FOR CONTROL CONTASK @V305731 02293000
- MVI CONLABEL,RTNRDEXT SET RETURN TO STATUS SECTION @V305731 02294000
- LA R1,WRT77CCW GET ADDRESS OF TAB FUNCTION CCWS @V305731 02295000
- BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02296000
- MVI CONCCW1+7,X'13' SET TAB CCW COUNT @V305731 02297000
- STCM R4,7,CONCCW1+1 SAVE DATA ADDRESS @V305731 02298000
- BR R3 RETURN @V305731 02299000
- SPACE 1 02300000
- BLD77IDS EQU * CCWS TO SEND PFNN UNDEFINED MSG. @V305731 02301000
- ST R7,BALRSAVE SAVE RETURN ADDRESS @VA07391 02302100
- BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02303000
- MVI CONLABEL,RTNRDEXT SET RETURN TO STATUS SECTION @V305731 02304000
- MVC CONCCW1(8*2),WIN77CCW GET CCWS TO WRITE MESSAGE @V305731 02305000
- MVC CONCCW3(8),READCCW1 GET READ CCW FOR RESPONSE @V305731 02306000
- LA R1,BSCRESP GET RESPONSE BUFFER ADDRESS @V305731 02307000
- STCM R1,7,CONCCW3+1 SAVE RESPONSE BUFFER ADDR IN CCW @V305731 02308000
- STCM R4,7,CONCCW2+1 SAVE DATA ADDRESS OF MESSAGE @V305731 02309000
- STH R3,CONCCW2+6 SAVE DATA COUNT @V305731 02310000
- LA R3,CONCCW4+1 GET START OF DATA & MESSAGE @V305731 02311000
- STCM R3,7,CONCCW1+1 SAVE START OF DATA IN CCW @V305731 02312000
- LA R1,WIN77DL GET LENGTH OF DATA DATA @V305731 02313000
- LA R2,WIN77D GET ADDRESS OF DATA DATA @V305731 02314000
- BAL R7,DATMOVE MOVE DATA INTO BUFFER AREA @V305731 02315000
- L R7,BALRSAVE RESTORE RETURN ADDRESS @VA07391 02316100
- BR R7 RETURN @V305731 02317000
- SPACE 2 02317100
- RSWVMS DS 0H @V407511 02317110
- L R1,NICUSER LOAD ADDR NEW VMBLOK @V407511 02317120
- RSWVMS1 DS 0H @V407511 02317130
- SWTCHVM OPT=STAY SWITCH VMBLOK LOCKING & CHARGING @V4M0193 02317140
- BR R7 RETURN TO CALLER @V4M0193 02317150
- SPACE 2 @V407511 02317160
- RSWVMU DS 0H @V407511 02317170
- L R1,ASYSVM LOAD ADDR NEW VMBLOK @V407511 02317180
- RSWVMU1 DS 0H @V407511 02317190
- SWTCHVM OPT=UNLOCK SWITCH VMBLOK CHARGING @V4M0193 02317200
- BR R7 RETURN TO CALLER @V4M0193 02317210
- EJECT 02318000
- * THE EXECUTE INSTRUCTION USED THE FOLLOWING INSTRUCTIONS 02319000
- TRANSLAT TR 0(*-*,R4),0(R1) TRANSLATE TO UPPER CASE FOR CF @V305731 02320000
- TROPUT TR 0(*-*,R2),0(R7) EXECUTED TRANSLATE OUTPUT @V305731 02321000
- MOVEDATA MVC 0(*-*,R1),0(R4) MOVE DATA INTO BUFFER @V305731 02322000
- MVCRT MVC BUFFER(*-*),0(R4) EXECUTED MOVE PF DATA @V305731 02324000
- DATA MVC CONCCW4+4(*-*),0(R2) MOVE DATA INTO CONTASK @V305731 02325000
- SPACE 1 02327000
- * MESSAGE HANDLER INFORMATION 02328000
- DS 0F @V305731 02329000
- MSGHEAD DC C'RGA',X'00' SET UP HEADER FOR ERROR MESSAGE @V305731 02330000
- MSGPARM DC X'B8C90000' PARM FIELD FOR BISYNC LINE MSG. @V305731 02331000
- MSGPARM1 DC X'F8C90000' PARM FIELD FOR STATION MSG. @V305731 02332000
- PFRJM DC C'* PFNN UNDEFINED',X'03' REJECT MESSAGE @V305731 02333000
- RJL EQU *-PFRJM @V305731 02334000
- CC3 DC C' CC=3' DATA FOR MSG 455 @VA13518 02334300
- CMDRJ DC C' CMD REJECT' DATA FOR MSG 455 @VA13518 02334600
- VM370 DC CL2'VM' CONSTANT FOR WRITING 'VM READ' @VA09707 02335100
- SPACE 1 02336000
- * STORAGE FOR DATA LINK CONTROL CHARACTERS 02337000
- RGFEOT DC AL1(EOT) END OF TRANSMISSION CHARACTER @V305731 02338000
- RGFNAK DC AL1(NAK) NEGATIVE RESPONSE CHARACTER @V305731 02339000
- RGFENQ DC AL1(ENQ) INQUIRY CHARACTER @V305731 02340000
- RGFSONL DC AL1(SOH,X'6C') HEADER FOR NON-TEXT MSG. (SOH %) @V305731 02341000
- RGFWACK DC AL2(WACK) WAIT ACKNOWLEDGE CHARACTER @V305731 02342000
- RGFRVI DC AL2(RVI) REVERSE INTERRUPT CHARACTER @V305731 02343000
- RGFACK0 DC AL2(ACK0) POSITIVE ACKNOWLEDGE 0 CHARACTER @V305731 02344000
- RGFACK1 DC AL2(ACK1) POSITIVE ACKNOWLEDGE 1 CHARACTER @V305731 02345000
- RGFDLEOT DC AL1(DLE,EOT) BREAK SWITCHED CONNECTION @V346931 02345100
- DLEOTLN EQU 2 LENGTH OF DLE EOT RESPONSE @V346931 02345200
- SPACE 1 02346000
- * TIME OF DAY CLOCK VALUES FOR STATUS AND GENERAL POLLING 02347000
- DS 0D @V305731 02348000
- TMRGPOLL DC X'0000000300000000' INTERVAL IN SECS FOR GPOLL @V305731 02349000
- TMR60VAL DC X'0000003A00000000' 60 SECONDS TIMER FOR MORE @V305731 02350000
- TMR03VAL DC X'0000000300000000' 3 SECS. TIMER FOR NOT ACPTED@V305731 02351000
- SPACE 1 02352000
- * CCWS FOR POLLING AND SELECTING REMOTE STATIONS 02353000
- DS 0D @V305731 02354000
- WRITSEL DC X'01',AL3(RGFEOT),AL1(SILI+CC,X'02'),AL2(1) @V305731 02355000
- DC X'01',AL3(0),AL1(SILI+CC,X'03'),AL2(5) @V305731 02356000
- DC X'02',AL3(0),AL1(SILI,X'05'),AL2(2) @V305731 02357000
- SPACE 02358000
- POLCCW DC X'01',AL3(RGFEOT),AL1(SILI+CC,X'02'),AL2(1) @V305731 02359000
- DC X'09',AL3(0),AL1(SILI+CC,X'03'),AL2(7) @VA03474 02360100
- DC X'03',AL3(0),AL1(SILI,X'07'),AL2(1) @V305731 02361000
- ETBREAD DC X'02',AL3(0),AL1(SILI,X'0A'),AL2(BSCSIZE1) @VM03043 02362000
- SPACE 02363000
- SPACE 2 @V346931 02363050
- * INITIAL BIDDING CCWS FOR SWITCHED LINE @V346931 02363100
- BIDCCW DC X'01',AL3(RGFEOT),AL1(SILI+CC,X'02'),AL2(1) @V346931 02363150
- DC X'01',AL3(RGFENQ),AL1(SILI+CC,X'03'),AL2(1) @V346931 02363200
- DC X'02',AL3(0),AL1(SILI,X'05'),AL2(2) @V346931 02363250
- THREECCW EQU (8*3) LENGTH OF THREE CCWS @VA05230 02363275
- SPACE 1 @V346931 02363300
- * SELECTION (PSUEDO POLLING) CCWS FOR SWITCHED LINE @V346931 02363350
- S3275EOT DC X'01',AL3(RGFEOT),AL1(SILI+CC,X'02'),AL2(1) @V346931 02363400
- DC X'02',AL3(0),AL1(SILI,X'0D'),AL2(2) @V346931 02363450
- TWOCCW EQU (8*2) LENGTH OF TWO CCWS @V346931 02363500
- SPACE 1 02363550
- * READ CONTINUE CCW FOR SWITCHED LINE @V346931 02363600
- SW3275RD DC X'01',AL3(RGFACK0),AL1(SILI+CC,X'09'),AL2(2) @V346931 02363650
- DC X'02',AL3(0),AL1(SILI,X'0A'),AL2(BSCSIZE1) @V346931 02363700
- SPACE 1 02363750
- WRT77CCW DC X'01',AL3(0),AL1(SILI+CC,X'10'),AL2(0) @VA13944 02364100
- READCCW1 DC X'02',AL3(0),AL1(SILI,X'0B'),AL2(2) @V305731 02365000
- UNEPTCCW DC X'02',AL3(0),AL1(SILI+SKIP,X'08'),AL2(X'100') @VA13944 02366100
- RESETEOT DC X'01',AL3(RGFEOT),AL1(SILI,X'09'),AL2(1) @V305731 02367000
- * DISCONNECT STATION- DISABLE LINE CCWS FOR SWITCHED LINE @V346931 02367100
- BKCONCCW DC X'01',AL3(RGFDLEOT),AL1(SILI,X'0E'),AL2(2) @V346931 02367200
- DISABLE DC X'2F',AL3(0),AL1(SILI,X'00'),AL2(1) @V346931 02367300
- SPACE 1 02367400
- RSRVICCW DC X'01',AL3(RGFRVI),AL1(SILI+CC,X'06'),AL2(2) @V305731 02368000
- RSNAKCCW DC X'01',AL3(RGFNAK),AL1(SILI+CC,X'06'),AL2(1) @V305731 02369000
- RSENQCCW DC X'01',AL3(RGFENQ),AL1(SILI+CC,X'06'),AL2(1) @V305731 02370000
- RSACKCCW DC X'01',AL3(RGFACK1),AL1(SILI+CC,X'06'),AL2(2) @V305731 02371000
- TICCCW DC X'08',AL3(0),AL1(SILI,X'00'),AL2(1) @V305731 02372000
- WIN77CCW DC X'01',AL3(0),AL1(SILI+CD,X'10'),AL2(WIN77DL+3) @VA13944 02373000
- DC X'00',AL3(0),AL1(SILI+CC,X'10'),AL2(0) @VA13944 02374000
- SPACE 1 02375000
- * 3270 REMOTE DATA AND STATUS MESSAGES 02376000
- COPY3277 DC AL1(X'7B',X'40') @VA08850 02377500
- COPY77L EQU *-COPY3277 @V305731 02378000
- SPACE 1 02379000
- COPY3275 DC AL1(WCC8,SBA,X'40',X'40',IC) @V305731 02380000
- COPY75L EQU *-COPY3275 @V305731 02381000
- SPACE 1 02382000
- WIN77D DC AL1(WCC6,SBA,X'5B',X'5F') @V305731 02383000
- DC AL1(SF,ATTR7,IC,EUA,X'5D',X'6B') @V305731 02384000
- DC AL1(SBA,X'5B',X'60') @V305731 02385000
- WIN77DL EQU *-WIN77D @V305731 02386000
- SPACE 02387000
- HLD3277 DC AL1(WCC3,SBA,X'5D',X'6B',SF,ATTR2) @VA07171 02388100
- HLDSTAT DC CL20'HOLDING' @V305731 02389000
- HLD77L EQU *-HLD3277 @V305731 02390000
- SPACE 02391000
- MOR3277 DC AL1(WCC3,SBA,X'5D',X'6B',SF,ATTR2) @VA07171 02392100
- MORSTAT DC CL20'MORE...' @V305731 02393000
- MOR77L EQU *-MOR3277 @V305731 02394000
- SPACE 02395000
- NAC3277 DC AL1(WCC4,SBA,X'5D',X'6B',SF,ATTR2) @VA07171 02396100
- NACSTAT DC CL20'NOT ACCEPTED' @V305731 02397000
- NAC77L EQU *-NAC3277 @V305731 02398000
- SPACE 02399000
- CRD3277 DC AL1(WCC6,SBA,X'5B',X'5F') @V305731 02400000
- DC AL1(SF,ATTR7,IC,RA,X'5D',X'6B',X'00') @V305731 02401000
- DC AL1(SF,ATTR2) @V305731 02402000
- DC CL20'RUNNING' @VA04374 02402500
- CRD77L EQU *-CRD3277 @V305731 02403000
- SPACE 02404000
- RUN3277 DC AL1(WCC6,SBA,X'5B',X'5F',SF,ATTR7) @V305731 02405000
- DC AL1(SBA,X'5D',X'6B',SF,ATTR2) @V305731 02406000
- RUNSTAT DC CL20'RUNNING',AL1(ETX) @V305731 02407000
- RUN77L EQU *-RUN3277 @V305731 02408000
- SPACE 02409000
- CPR3277 DC AL1(WCC6,SBA,X'5B',X'5F',SF,ATTR7) @V305731 02410000
- DC AL1(SBA,X'5D',X'6B',SF,ATTR2) @V305731 02411000
- DC CL20'CP READ' @V305731 02412000
- CPR77L EQU *-CPR3277 @V305731 02413000
- SPACE 02414000
- VMREADS DC CL7'VM READ' @V305731 02415000
- SPACE 1 02416000
- CLR3277 DC AL1(WCC6,SBA,X'40',X'40') @V305731 02417000
- DC AL1(RA,X'C7',X'5F',X'00') @VA08129 02418100
- DC AL1(RA,X'4E',X'7F',X'00') @VA08129 02418200
- DC AL1(RA,X'D6',X'5F',X'00') @VA08129 02418300
- DC AL1(RA,X'5B',X'5F',X'00') @VA08129 02418400
- DC AL1(SF,ATTR7,IC) @V305731 02419000
- DC AL1(SBA,X'5D',X'6B',SF,ATTR2) @V305731 02420000
- DC CL20'RUNNING' @V305731 02421000
- CLR77L EQU *-CLR3277 @V305731 02422000
- EJECT 02423000
- SPACE 02424000
- * RETURN INDEX VALUE FOR 3270 REMOTE SUPPORT 02425000
- RTNNOCTL EQU X'00' RETURN TO GET NEXT CONTASK @V305731 02426000
- RTNSRTRD EQU X'04' RETURN TO READ SECTION @V305731 02427000
- RTNLGTST EQU X'08' RETURN TO LOGOFF USER @V305731 02428000
- RTNRFCFM EQU X'0C' RETURN TO CONS. FUNCTION PROCESS @V305731 02429000
- RTNSTMOR EQU X'10' RETURN TO MORE SECTION @V305731 02430000
- RTNSETRJ EQU X'14' RETURN TO REJECT SECTION @V305731 02431000
- RTNCPNAT EQU X'18' RETURN TO WRITE STATUS SECTION @V305731 02432000
- RTNLOGOF EQU X'1C' RETURN TO LOGOFF USER SECTION @V305731 02433000
- RTNBLDVM EQU X'20' RETURN TO BUILD VMBLOK SECTION @V305731 02434000
- RTNFMTDN EQU X'24' RETURN TO FORMATS FINISH SECTION @V305731 02435000
- RTNRETBF EQU X'28' RETURN TO WRITE COMPLETED SECTION@V305731 02436000
- RTNRDEXT EQU X'2C' RETURN TO RELEASE READ BUFFER @V305731 02437000
- RTNRVIRP EQU X'30' RETURN TO RVI RESPONSE SECTION @V305731 02438000
- SPACE 1 02439000
- * READ/WRITE OPERATION TYPES 02440000
- IBBSELA EQU X'80' ADDRESSING/SELECTING A STATION @V305731 02441000
- IBBWRITE EQU X'40' WRITE DATA TO A REMOTE STATION @V305731 02442000
- IBBREAD EQU X'20' GENERAL POLLING OF STATIONS @V305731 02443000
- IBBSPOLL EQU X'10' SPECIFIC POLLING TO A STATION @V305731 02444000
- SPACE 1 02445000
- * DATA-LINK CONTROL CHARACTERS FOR 3270 REMOTE SYSTEM 02446000
- SOH EQU X'01' START OF HEADING @V305731 02447000
- STX EQU X'02' START OF TEXT @V305731 02448000
- ETX EQU X'03' END OF TEXT @V305731 02449000
- DLE EQU X'10' DATA LINK ESCAPE @V346931 02449100
- ETB EQU X'26' END OF BLOCK @V305731 02450000
- ESC EQU X'27' ESCAPE @V305731 02451000
- EOT EQU X'37' END OF TRANSMISSION @V305731 02452000
- ENQ EQU X'2D' ENQUIRY @V305731 02453000
- NAK EQU X'3D' NEGATIVE ACKNOWLEDGMENT @V305731 02454000
- WACK EQU X'106B' WAIT BEFORE TRANSMIT @V305731 02455000
- RVI EQU X'107C' REVERSE INTERRUPT @V305731 02456000
- ACK0 EQU X'1070' EVEN ACKNOWLEDGE @V305731 02457000
- ACK1 EQU X'1061' ODD ACKNOWLEDGE @V305731 02458000
- SPACE 02459000
- * 3270 REMOTE SYSTEM COMMAND CODES 02460000
- WRTCMD EQU X'F1' WRITE COMMAND CODE @V305731 02461000
- EWRTCMD EQU X'F5' ERASE/WRITE COMMAND CODE @V305731 02462000
- COPYCMD EQU X'F7' COPY COMMAND CODE @V305731 02463000
- SPACE 1 02464000
- * 3270 DISPLAY STATION ORDERS 02465000
- SF EQU X'1D' START OF FIELD CONTROL @V305731 02466000
- SBA EQU X'11' SET BUFFER ADDRESS @V305731 02467000
- IC EQU X'13' INSERT CURSOR @V305731 02468000
- RA EQU X'3C' REPEAT TO ADDRESS (CHAR) @V305731 02469000
- EUA EQU X'12' ERASE UNPROTECTED TO ADDRESS @V305731 02470000
- SPACE 1 02471000
- * 3270 WRITE CONTROL CHARACTERS 02472000
- WCC3 EQU X'C2' RESTORE KEYBOARD @VA07171 02472400
- WCC4 EQU X'C6' RESTORE KEYBOARD, ALARM @VA07171 02472800
- WCC5 EQU X'C5' WRITE CONTROL CHAR TO SOUND ALARM@VM03116 02473000
- WCC6 EQU X'C3' W.C.C. TO RESTORE KEYBOARD @VM03116 02474000
- WCC56 EQU X'C7' W.C.C. TO SOUND ALARM & RES. KEY.@VM03116 02475000
- WCC8 EQU X'F8' W.C.C. TO PRT FOR 80-CHAR LINE @VM03116 02476000
- ATTR2 EQU X'60' PROTECTED ATTRIBUTE CHARACTER @VM03116 02477000
- ATTR7 EQU X'C1' MODIFIED DATA TAG ATTRIBUTE CHAR @VM03116 02478000
- ATTR457 EQU X'4D' PROTECTED, NONDISPLAY & MOD. DATA@VM03116 02479000
- NOMC DC X'10' DON'T ALLOW MONITOR CALL @VA09459 02479500
- SPACE 02480000
- * TABLE OF 3270 FUNCTION KEYS WITH INDEX TO KEYTBLP 02481000
- KEYTBL DC X'7D00' ENTER @V305731 02482000
- DC X'6D04' CLEAR @V305731 02483000
- DC X'6E18' PA2 (CNCL) @V305798 02484000
- DC X'6C08' PA1 @V305731 02485000
- DC X'6B0C' PA3 @V305731 02486000
- DC X'E610' CARD READER @V305731 02487000
- PFNDX DC X'F114' PF01 @V305731 02488000
- DC X'F214' PF02 @V305731 02489000
- DC X'F314' PF03 @V305731 02490000
- DC X'F414' PF04 @V305731 02491000
- DC X'F514' PF05 @V305731 02492000
- PF6NDX DC X'F614' PF06 @V305731 02493000
- DC X'F714' PF07 @V305731 02494000
- DC X'F814' PF08 @V305731 02495000
- DC X'F914' PF09 @V305731 02496000
- DC X'7A14' PF10 @V305731 02497000
- DC X'7B14' PF11 @V305731 02498000
- DC X'7C14' PF12 @V305731 02499000
- DC X'C114' PF13 HRC101DK 02499070
- DC X'C214' PF14 HRC101DK 02499140
- DC X'C314' PF15 HRC101DK 02499210
- DC X'C414' PF16 HRC101DK 02499280
- DC X'C514' PF17 HRC101DK 02499350
- DC X'C614' PF18 HRC101DK 02499420
- DC X'C714' PF19 HRC101DK 02499490
- DC X'C814' PF20 HRC101DK 02499560
- DC X'C914' PF21 HRC101DK 02499630
- DC X'4A14' PF22 HRC101DK 02499700
- DC X'4B14' PF23 HRC101DK 02499770
- DC X'4C14' PF24 HRC101DK 02499840
- KEYLENG EQU (*-KEYTBL)/2 @V305731 02500000
- SPACE 02501000
- KEYTBLP DC A(RGA3) 00 INPUT DATA INVALID @VA13123 02502000
- DC A(CLRKEY) 04 @V305798 02503000
- DC A(PA1KEY) 08 @V305731 02504000
- DC A(PA3KEY) 0C @V305731 02505000
- DC A(RGA3) 10 CARD READER INVALID @VA13123 02506000
- DC A(PFKEY) 14 @V305731 02507000
- DC A(CNCLKEY) 18 @V305798 02508000
- DC A(TESTREQ) 1C @VA09168 02508500
- SPACE 02509000
- NDXRGFFN EQU X'00' PROCESS INPUT DATA @VA13123 02509100
- NDXRGF02 EQU X'04' PROCESS DATA IN BUFFER @VA13123 02509200
- NDXRGFCC EQU X'08' GO DETERMINE ENTRY KEY @VA13123 02509300
- NDXRGFDC EQU X'0C' GO PROCESS INPUT DATA @VA13123 02509400
- SPACE 1 @VA13123 02509500
- * TABLE OF TAB POSITIONS FOR 3270 PF TAB CAPABILITY 02510000
- SPACE 02511000
- TABTBL DC X'5B5F' @V305731 02512000
- TAB01 DC X'5B605B615BE25BE35BE45BE55BE65BE75BE8' @V305731 02513000
- TAB10 DC X'5BE95B6A5B6B5B6C5B6D5B6E5B6F5BF05BF15BF2' @V305731 02514000
- TAB20 DC X'5BF35BF45BF55BF65BF75BF85BF95B7A5B7B5B7C' @V305731 02515000
- TAB30 DC X'5B7D5B7E5B7F5C405CC15CC25CC35CC45CC55CC6' @V305731 02516000
- TAB40 DC X'5CC75CC85CC95C4A5C4B5C4C5C4D5C4E5C4F5C50' @V305731 02517000
- TAB50 DC X'5CD15CD25CD35CD45CD55CD65CD75CD85CD95C5A' @V305731 02518000
- TAB60 DC X'5C5B5C5C5C5D5C5E5C5F5C605C615CE25CE35CE4' @V305731 02519000
- TAB70 DC X'5CE55CE65CE75CE85CE95C6A5C6B5C6C5C6D5C6E' @V305731 02520000
- TAB80 DC X'5C6F5CF05CF15CF25CF35CF45CF55CF65CF75CF8' @V305731 02521000
- TAB90 DC X'5CF95C7A5C7B5C7C5C7D5C7E5C7F5D405DC15DC2' @V305731 02522000
- TAB100 DC X'5DC35DC45DC55DC65DC75DC85DC95D4A5D4B5D4C' @V305731 02523000
- TAB110 DC X'5D4D5D4E5D4F5D505DD15DD25DD35DD45DD55DD6' @V305731 02524000
- TAB120 DC X'5DD75DD85DD95D5A5D5B5D5C5D5D5D5E5D5F5D60' @V305731 02525000
- TAB130 DC X'5D615DE25DE35DE45DE55DE65DE7' @V305731 02526000
- TABLST DC X'5B60' END WRAPS TO BEGINNING @V305731 02527000
- SPACE 1 02528000
- * SENSE STATUS FOR THE 3270 REMOTE STATION 02529000
- STATDC EQU X'04' DATA CHECK @V305731 02530000
- STATCC EQU X'02' CONTROL CHECK (TIMEOUT) @V305731 02531000
- STATOC EQU X'01' OPERATION CHECK @V305731 02532000
- STATEC EQU X'08' EQUIPMENT CHECK @V305731 02533000
- INVREQ EQU X'10' INTERVENTION REQUIRED FLAG @V305731 02534000
- STATCR EQU X'20' COMMAND REJECT @V305731 02535000
- STATDE EQU X'02' DEVICE END @V305731 02536000
- STATTC EQU X'01' TRANSMISSION CHECK (ONLY 3275) @V305731 02537000
- SPACE 02537100
- * SETTINGS FOR IOBMISC2+2 @VA13518 02537200
- SPACE 02537300
- COMRJ EQU X'80' COMMAND REJECT IN SENSE DATA @VA13518 02537400
- DISA EQU X'20' INDICATOR TO SET RDEVDISA @VA13518 02537500
- NONE EQU X'00' @VA13518 02537600
- SPACE 1 02538000
- RGFINDEQ DC AL1(ENQ,X'05',EOT) ENQ, INDEX & EOT - POLL ENTRY@VA03474 02539100
- SYNCP DC AL1(STX,ESC,WRTCMD) BISYNC HEADER @V305731 02540000
- LENADDR EQU 4 LENGTH OF TERM ADDR CHARS @V346931 02540100
- RESPLEN EQU 6 LENGTH OF REPLY TO ADDRESSING @V346931 02540200
- HDRSW EQU 1 LENGTH OF SWITCHED HEADER @V346931 02540300
- HDRNSW EQU 3 LENGTH OF NON-SWITCHED HEADER @V346931 02540400
- FLAGLNS EQU 2 LENGTH OF FLAG AREA @V346931 02540500
- EJECT 02544000
- LTORG @V305731 02545000
- EJECT 02546000
- COPY NETWORK @V305731 02547000
- EJECT 02548000
- COPY BSCBLOKS @V305731 02549000
- EJECT 02550000
- COPY TIMER @V305731 02551000
- SPACE 2 02552000
- EJECT 02558000
- COPY DEVTYPES @V305731 02559000
- EJECT 02560000
- COPY EQU @V305731 02561000
- EJECT 02562000
- COPY VBLOKS @V305731 02563000
- EJECT 02564000
- COPY RBLOKS @V305731 02565000
- EJECT 02566000
- COPY CONBUF @V305731 02567000
- EJECT 02568000
- COPY IOBLOKS @V305731 02569000
- EJECT 02570000
- COPY IOER @V305731 02571000
- EJECT 02572000
- COPY VMBLOK @V305731 02573000
- EJECT 02574000
- COPY SAVE @V305731 02575000
- EJECT 02576000
- PSA @V305731 02577000
- EJECT 02578000
- COPY XINTBLOK @V305798 02579000
- EJECT 02580000
- END 02581000
ibm/vm370-lib/cp/dmkrga.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator