ibm:vm370-lib:cp:dmkgrf.assemble_src
Table of Contents
DMKGRF Source
References
- Fixes Applied : 34
- This Source Date : Wednesday, January 17, 1979
- Last Fix ID : [HRC073DK]
Source Listing
- DMKGRF.ASSEMBLE.txt
- GRF TITLE 'DMKGRF (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 VALIDATE INPUT SERIALIZATION @VM08590 00002000
- COPY OPTIONS @V200730 00003000
- COPY LOCAL @V200730 00004000
- EJECT 00005000
- DMKGRF CSECT @V200730 00006000
- *. 00007000
- * MODULE NAME - 00008000
- * 00009000
- * DMKGRF 00010000
- * 00011000
- * FUNCTION - 00012000
- * 00013000
- * TO PROVIDE SUPPORT FOR GRAPHIC DISPLAY DEVICES 00014000
- * THIS MODULE SUPPORTS THE LOCAL 3270 AND 3066 DEVICES 00015000
- * THE MODULE HANDLES INTERRUPTS AND CCW PROCESSING 00016000
- * FOR THE DEVICES INCLUDING MESSAGE HANDLING AND 00017000
- * SCREEN MANAGEMENT. 00018000
- * 00019000
- * ATTRIBUTES - 00020000
- * 00021000
- * RE-ENTERABLE, RESIDENT IF REAL MACHINE CONFIGURATION 00022000
- * INDICATES THAT 3270 OR 3066 DEVICES ARE AVAILABLE 00023000
- * 00024000
- * ENTRY POINTS - 00025000
- * 00026000
- * DMKGRFIN - TO HANDLE INTERUPT VIA IOBLOK 00027000
- * DMKGRFEN - TO ENABLE OR DISABLE DEVICE 00028000
- * DMKGRFIC - TO START CONTASK FROM DMKQCN 00029000
- * DMKGRFTI - PROCESS CLOCK COMPARATOR TIMER INTERRUPTS 00029500
- * 00030000
- * ENTRY CONDITIONS - 00031000
- * 00032000
- * R10 - ADDRESS OF IOBLOK 00033000
- * R12 - ADDRESS OF ENTRY POINT 00034000
- * 00035000
- * EXIT CONDITIONS - 00036000
- * 00037000
- * NORMAL RETURN IS TO DMKDSPCH AFTER STARTING ANY 00038000
- * QUEUED CONTASK REQUESTS FOR DEVICES AND PERFORMING 00039000
- * OTHER MESSAGE PROCESSING 00040000
- * 00041000
- * CALLS TO OTHER ROUTINES - 00042000
- * 00043000
- * DMKIOSQR - TO START IO ON DEVICES 00044000
- * DMKSCNRU - TO LOCATE REAL DEVICE BLOKS 00045000
- * DMKQCNCL - TO CLEAR CONTASK STACK AT LOGOUT 00046000
- * DMKCFMBK - TO ENTER CONSOLE FUNCTION MODE 00047000
- * DMKSTKCP - TO STACK CPEXBLOK 00048000
- * DMKSTKMP - TO STACK CPEXBLOKS FOR THE CURRENT PROCESSOR 00048100
- * DMKCNSED - TO EDIT AN INPUT LINE IF OPTION ON 00049000
- * DMKBLDVM - TO BUILD A VMBLOK FOR USER LOGON 00050000
- * DMKSCHRT - TO RESET A TIMER REQUEST 00051000
- * DMKSCHST - TO SET A TIMER REQUEST 00052000
- * DMKMSWR - TO WRITE AN ERROR MESSAGE 00053000
- * DMKSCNRD - TO GET REAL DEVICE ADDRESS 00054000
- * DMKQCNET - TO RETURN CONTASK AT COMPLETEION 00055000
- * DMKQCNTO - TO SLEEP USER AFTER GRAF ERROR 00056000
- * DMKIOERR - TO RECORD AN IO ERROR 00057000
- * DMKCFMEN - TO EXECUTE A CP CONSOLE FUNCTION 00058000
- * DMKCFMAT - TO POST AN ATTN INTERRUPT TO THE VM 00059000
- * DMKSCNVU - TO LOCATE THE VIRTUAL CONSOLE 00060000
- * DMKCPIEM - FOR EMERGENCY OPERATOR LOGON 00061000
- * DMKIOEST - TO CAUSE THE UPDATE OF STATISTICAL DATA COUNTERS 00061100
- * DMKLOKSW - SWITCH TO ANOTHER VMBLOK IF SYSTEM IS AP-MODE 00061200
- * DMKPTRAN - TO BRING IN THE TRANSLATE TABLE 00061300
- * DMKBOXMD - LIST OF LOGOS MDL 2, 3, 4, 2A HRC101DK 00061440
- * DMKGRTAB - TO BUILD DATA TO MOVE CURSOR AND PUT IN TAB CHAR 00061500
- * 00062000
- * EXTERNAL REFERENCES - 00063000
- * 00064000
- * DMKTBLUP - TRANLATE TO UPPER CASE TABLE 00065000
- * DMKTBMZI - APL 3270 COMPOUND CHARACTER TABLE 00065200
- * DMKTBMZO - APL 3270 COMPOUND CHARACTER TABLE 00065400
- * DMKTBMTI - TEXT 3270 COMPOUND CHARACTER TABLE 00065600
- * DMKTBMTO - TEXT 3270 COMPOUND CHARACTER TABLE 00065800
- * DMKRIOCN - SYSTEM CONSOLE ADDRESSES 00066000
- * DMKSYSNM - NUMBER OF USERS LOGGED ON 00067000
- * DMKGRTAI - TABLE OF ATTENTION IDENTIFICATION CODES 00067100
- * DMKGRTAC - COUNT OF ENTRIES IN DMKGRTAI HRC029DK 00067150
- * DMKGRTBL - TABLE OF 3270 STARTING BUFFER ADDRESSES 00067200
- * DMKGRTDS - DISPLAY OUTPUT AREA SIZES TABLE 00067300
- * DMKGRTFD - FORMAT DATA STREAM 00067400
- * DMKGRTFO - 'VM/370 ONLINE' DATA ADDRESS 00067500
- * DMKGRTIN - INPUT AREA COORDINATES TABLE 00067600
- * DMKGRTPF - START OF PF AID CODES IN DMKGRTAI TABLE 00067700
- * DMKGRTP6 - ADDRESS OF PF6 CODE IN DMKGRTAI TABLE 00067800
- * 00068000
- * TABLES AND WORK AREAS - 00069000
- * 00070000
- * TRQBLOK CONTROL BLOCK IS EXTENDED BY 1 DOUBLE WORD 00071000
- * TO CONTAIN EXTRA CONTROL DATA FOR THE DEVICES 00072000
- * THE BLOCK EXISTS FROM INITIAL ENABLE TO LOGOUT 00073000
- * 00074000
- * DMKGRTBL IS USED TO INDEX FOR THE SCREEN BUFFER ADDRESSES 00075000
- * 00076000
- * REGISTER USAGE - 00077000
- * 00078000
- * R5 - TRQBLOK ADDRESSING, INCLUDING EXTENSION 00079000
- * R6 - CONTASK BLOK ADDRESSING 00080000
- * R7 - CPEXBLOK ADDRESSING 00081000
- * R8 - RDEVBLOK ADDRESSING 00082000
- * R9 - EXTENDED BASE ADDRESSING 00082100
- * R10 - IOBLOK ADDRESSING 00083000
- * R11 - VMBLOK ADDRESSING 00084000
- * R12 - BASE ADDRESSING FOR MODULE 00085000
- * R13 - EXTENDED BASE ADDRESSING 00086000
- * OTHER REGISTERS USED FOR LINKAGE AND PARAMETERS 00087000
- * 00088000
- * NOTES - 00089000
- * 00090000
- * NONE 00091000
- * 00092000
- * OPERATION - 00093000
- * 00094000
- * EXECUTION FOR ALL ENTRIES MUST BE ON THE I/O PROCESSOR IF 00094100
- * THE SYSTEM IS IN AP-MODE. 00094200
- SPACE 00094300
- * CONTROL IS RECEIVED AT DMKGRFIN FROM DMKDSPCH 00095000
- * BY UNSTACKING AN IOBLOK. 00096000
- * CONTROL IS RECEIVED AT DMKGRFEN FROM DMKDSPCH 00097000
- * BY UNSTACKING A CPEXBLOK FROM DMKCPV 00098000
- * CONTROL IS RECEIVED AT DMKGRFIC FROM DMKDSPCH 00099000
- * BY UNSTACKING A CPEXBLOK FROM DMKQCN 00100000
- * 00101000
- * THE IOBLOK IS USED TO PERFORM THE PROCESSING OF ALL 00102000
- * IO REQUESTS TO THE DEVICE INCLUDING WRITES OF DATA, 00103000
- * READS OF INPUT DATA, AND THE WRITING OF STATUS WORDS. 00104000
- * 00105000
- * THE DIFFERENT PROCESSING ROUTINES ARE DETERMINED 00106000
- * BY THE AUXILIARY RETURN PROCESSING ADDRESS WHICH IS 00107000
- * SET IN THE TRQBLOK EXTENSION CALLED TRQBCRT. 00108000
- * 00109000
- * THE FOLLOWING SECTIONS STATE THE ACTION TAKEN FOR 00110000
- * VARIOUS DEVICE CONDITIONS. 00111000
- * 00112000
- * 1. ATTENTION INTERRUPT 00113000
- * GET A FREE STORAGE BLOCK FOR THE READ CCW AND A BUFFER 00114000
- * FOR THE READ DATA. CALL DMKIOS TO PERFORM A READ. 00115000
- * ANALYSE THE DATA UPON RETURN. 00116000
- * THE RETURN PROCESSING IS HANDLED BY RDMINT. 00117000
- * 00118000
- * 2. CE+DE INTERRUPT 00119000
- * PICKUP THE AUXILIARY PROCESSING ADDRESS AND CONTINUE. 00120000
- * THE PROCESSING ROUTINES FOR VARIOUS STATES ARE: 00121000
- * 00122000
- * CONRETBF - COMPLETION OF A WRITE CONTASK 00123000
- * RDMINT - COMPLETION OF A BUFFER READ 00124000
- * GRFCFM - TO EXECUTE CONSOLE FUNCTION 00125000
- * SETREJ - TO SET NOT ACCEPTED TIMER 00126000
- * SETMOR - TO SET MORE... TIMER DELAY 00127000
- * SETWNG - TO SET 10 SECOND CLEAR WARNING 00128000
- * RDEXIT _ TO CLEAR BUFFERS AFTER PF KEYS 00129000
- * STRTREAD - TO SET READ STATUS 00130000
- * NOCTL - TO PROCESS NEXT CONTASK OR GO IDLE 00131000
- * 00132000
- * 3. WRITE COMPLETE 00133000
- * FRET CONTASK AND BUFFERS. 00134000
- * SIGNOFF IF LOGOUT COMPLETE. 00135000
- * CONTINUE WITH NEXT CONTASK. 00136000
- * 00137000
- * 4. UNIT ERROR 00138000
- * RETRY OPERATION 10 TIMES. 00139000
- * LOGOUT USER AFTER RETRY FAILS. 00140000
- * 00141000
- * 5. CNCL (PA2) KEY, CLEAR KEY 00142000
- * FRET READ BUFFERS. 00143000
- * RESET ANY TIMER REQUESTS. 00144000
- * IF CLEAR KEY,SET ERASE/WRITE ALTERNATE FLAG 00144100
- * CLEAR OUTPUT SCREEN AREA. 00145000
- * CONTINUE WITH NEXT CONTASK. 00146000
- * 00147000
- * 6. PA1 KEY 00148000
- * CANCEL FUNCTION BY RETURN CODE 4 0R 8. 00149000
- * CLEAR SCREEN 00150000
- * CLEAR THE STACK OF CONTASKS. 00151000
- * 00152000
- * 6A. PF KEYS 00153000
- * GET THE USERS FUNCTION TABLE VMPFUNC 00154000
- * GET AND VERIFY THE EXISTENCE OF A FUNCTION 00155000
- * WRITE UNDEFINED MESSAGE IF NOT FOUND 00156000
- * WRITE FUNCTION DATA IF FOUND AND DELAYED 00157000
- * PROCESS DATA IF IMMEDIATE 00158000
- * CALL DMKGRTAB TO BUILD TAB DATA IF PF KEY IS TAB 00158100
- * SET RETURN TO FRET BUFFERS AT WRITE COMPLETE 00159000
- * 00160000
- * 6B. COPY COMMAND 00161000
- * CHECK FOR DEFAULT AND SEARCH FOR VALID 00162000
- * 3270 PRINTER 00163000
- * CHECK IF PRINTER BUSY 00164000
- * READ BUFFER FROM DISPLAY 00165000
- * WRITE BUFFER TO PRINTER 00166000
- * 00167000
- * 7. READ RETURN, ENTER KEY 00168000
- * ANALYSE DATA IN BUFFER TO GET LENGTH. 00169000
- * IF DATA ENTERED FROM READ STATE CONT AT RDATA. 00170000
- * IF ENTERED FROM RUNNING PROCESS BY ENVIR SETTING. 00171000
- * NULL DATA GIVES ATTN TO VM, OR ENTER CP MODE. 00172000
- * 00173000
- * DATA ENTERED GOES TO VM OR EXECUTES CONSOLE FUNCTION. 00174000
- * DATA ENTERED IS RE-DISPLAYED UNLESS PRIVATE. 00175000
- * DATA THAT IS ALREADY PENDING CAUSES 'NOT ACCEPTED'. 00176000
- * IF VIRT DATA IS #CP EXECUTE FUNCTION. 00177000
- * RDATA ENTRY FOR RESPONSE TO READ REQUEST PASSES 00178000
- * BUFFER DATA BACK TO CALLER WITH LENGTH INDICATION. 00179000
- * 00180000
- * 8. TIMER INTERRUPT 00181000
- * REBUILD IOBLOK AND RESTORE STATUS IF NOT ACCEPTED. 00182000
- * CLEAR OUTPUT AREA , CONTINUE TO NEXT CONTASK IF MORE. 00183000
- * 00184000
- * 9. BLDCCWS 00185000
- * ENTERED TO BUILD CCWS FOR A WRITE OR A READ CONTASK. 00186000
- * READ CONTASK CONTINUES AT STRTREAD. 00187000
- * WRITE CONTASK CHECKS FOR SCREEN FULL. 00188000
- * SCREEN FULL CAUSES A 'MORE...' STATUS. 00189000
- * 00190000
- *. 00191000
- EJECT 00192000
- SPACE 00193000
- USING PSA,R0 @V200730 00194000
- USING TRQBLOK,R5 @V200730 00195000
- USING CONTASK,R6 @V200730 00196000
- USING CPEXBLOK,R7 @V200730 00197000
- USING RDEVBLOK,R8 @V200730 00198000
- USING IOBLOK,R10 @V200730 00199000
- USING VMBLOK,R11 @V200730 00200000
- SPACE 00201000
- SPACE 00202000
- EXTRN DMKIOSQR,DMKSCNRU,DMKQCNCL,DMKCFMBK @V200730 00203000
- EXTRN DMKSTKCP,DMKCNSED,DMKSTKIO @V200730 00204000
- EXTRN DMKBLDVM,DMKRIOCN,DMKCPIEM,DMKSYSNM @V200730 00205000
- EXTRN DMKSCHRT,DMKSCHST,DMKCVTBD @V200730 00206000
- EXTRN DMKMSWR,DMKIOERR,DMKSCNRD,DMKCVTAB @V60A6B6 00207000
- EXTRN DMKQCNET,DMKQCNTO @V200830 00208000
- EXTRN DMKIOEST @VA03757 00208100
- EXTRN HDKD8CEN Issue READ PARTITION QRYHRC072DK 00208150
- EXTRN DMKGRTCL,DMKGRTCF HRC073DK 00208250
- EXTRN DMKCFMEN,DMKCFMAT,DMKSCNVU @V200730 00209000
- EXTRN DMKCVTBH,DMKCVTHB,DMKTBLUP,DMKCVTDB @V305798 00210000
- EXTRN DMKTBLGL,DMKTBMZI,DMKTBMZO @VA08002 00211050
- EXTRN DMKTBMTI,DMKTBMTO @V387398 00211100
- EXTRN DMKPTRAN,DMKSTKMP,DMKQCNWT @V407508 00211300
- EXTRN DMKGRTAB,DMKGRTAI,DMKGRTBL @V60A6B6 00211600
- EXTRN DMKGRTAC HRC029DK 00211650
- EXTRN DMKBOXMD HRC101DK 00211720
- EXTRN DMKGRTDS,DMKGRTFD,DMKGRTFO HRC101DK 00211740
- EXTRN DMKGRTIN,DMKGRTPF,DMKGRTP6 @V60A6B6 00211800
- EXTRN DMKGRTBF TABLE OF LAST CHARACTERS HRC310DK 00211850
- SPACE 2 00211900
- ENTRY DMKGRFIN,DMKGRFEN,DMKGRFIC,DMKGRFTI HRC101DK 00212490
- EJECT 00213000
- USING *,R12 @V200730 00214000
- DMKGRFIN DS 0H ENTRY FOR I/O INTERRUPTS @V200730 00215000
- L R9,MODBAS1 LOAD 3RD REG FOR ADDRESSABILITY @V407508 00215100
- LM R12,R13,MODBASE @V200730 00216000
- USING DMKGRF,R12,R13,R9 ESTABLISH ADDRESSABILITY @V407508 00217100
- SPACE 00218000
- SWITCH CONTINUE PROCESSING ON MAIN PROC @V407508 00218100
- TM IOBRADD,X'80' Is this a LDEV? HRC065DK 00218200
- BO LDEV000 Yes HRC065DK 00218300
- LH R1,IOBRADD ADDRESS OF INTERRUPTING DEVICE @V200730 00219000
- CALL DMKSCNRU LOCATE ALL REAL DEVICE BLOCKS @V200730 00220000
- B LDEV010 Skip over LDF support HRC065DK 00220100
- * 00220150
- LDEV000 EQU * HRC065DK 00220200
- L R8,INSTWRD1 -> LDEVCTL HRC065DK 00220250
- USING LDEVCTL,R8 HRC065DK 00220300
- ICM R1,3,IOBRADD Get LDEV number HRC065DK 00220350
- N R1,F4095 Keep only the LDEV num HRC065DK 00220400
- SLL R1,2 Make into LDEV slot idx HRC065DK 00220450
- L R8,LDEVIDX(R1) -> LDEVBLOK for LDEV HRC065DK 00220500
- USING RDEVBLOK,R8 Pseudo-RDEVBLOK for LDEVHRC065DK 00220550
- * begins at offset 0, HRC065DK 00220600
- * e.g., -> R8 HRC065DK 00220650
- LDEV010 EQU * HRC065DK 00220700
- CLI RDEVTYPE,TYP3066 IS IT A 3066 ?? @V200730 00221000
- BE GRFGO YES, CONT @V200730 00222000
- TM RDEVTYPE,TYP3277+TYP3278 3270 DISPLAY ?? @V60A6B6 00223000
- BNZ GRFGO YES, CONT @V60A6B6 00224000
- CLI RDEVTYPE,TYP3284 IS IT 3270 PRINTER ? @V305798 00225000
- BNE FRETIOB NO, IGNORE @V305798 00226000
- GRFGO L R6,RDEVCON GET CONTASK ADDRESS @V200730 00227000
- BAL R3,BLDTRQ BUILD A TIMER REQUEST BLOK @V200830 00228000
- TM RDEVFLAG,RDEVHIO INTERUPT FROM HIO @VA08085 00228300
- BO TESTHIO1 YES @VA08085 00228600
- TM IOBSPEC,IOBUNSL UNSOLICITED INTERRUPT? @VA13071 00228700
- BO TESTCSW YES, CONTINUE TESTING @VA13071 00228800
- CL R10,IOBLINK IS THIS THE FINAL INTERRUPT? @VA13071 00228900
- BNE TESTCSW NO, CONTINUE TESTING @VA13071 00229000
- TM TRQBFLG3,TRQBLOGP IS LOGOFF PENDING SET? @VA13071 00229100
- BO CONLOGOF YES, LOG USER OFF NOW @VA13071 00229200
- TESTCSW TM IOBSTAT,X'03' CC = 0 ?? @VA13071 00229300
- BNZ UNITER NO, CONSIDER A UNIT ERROR @V200730 00230000
- TM IOBCSW+5,CDC CHECK FOR CHANNEL DATA CHECK @VA03757 00230100
- BO CDCSETUP YES, HANDLE IT @VA03757 00230200
- TM IOBCSW+5,PRGC+PRTC+CHC+CCC+IFCC+CDC ANY @V200730 00231000
- BNZ CHANER YES - TROUBLED SYSTEM HERE. @V200730 00232000
- TM IOBCSW+4,UC+UE DEVICE ERRORS ?? @V200730 00233000
- BNZ UNITER YES - TROUBLE WITH DEVICE @V200730 00234000
- XC IOBRCNT,IOBRCNT ZERO OUT I/O ERROR COUNTER @V200730 00235000
- TM RDEVTFLG,RDEVCPNA NOT ACCEPTED ? @VA07690 00235100
- BNO OKCONT NO CONTINUE @VA07690 00235200
- L R4,RDEVAIOB GET ACTIVE IOBLOK @VA07690 00235300
- LTR R4,R4 IS THERE ONE ? @VA07690 00235400
- BNZ RELIOBLK YES GET RID OF THIS ONE @VA07690 00235500
- OKCONT EQU * @VA07690 00235600
- CLI IOBCSW+4,CE+DE CLEAN CE AND DE ?? @V200730 00238000
- BE RETPROC YES, DO RETURN PROCESSING @V200730 00239000
- TM IOBCSW+4,DE IS THIS A WRITE END ?? @V200730 00240000
- BO DEINT YES, MIGHT BE @V200730 00241000
- TM IOBCSW+4,ATTN OPERATOR RAPPING ON US @VA09948 00241100
- BNZ ATTNINT YES, SEE WHAT HE WANTS @VA09948 00241200
- B IDLEIOB1 NO, IGNORE AND WAIT FOR DE HRC101DK 00242490
- RETPROC EQU * @VA02040 00243000
- TM IOBSPEC,IOBUNSL UNSOL. INT.? @VA02040 00244000
- BNZ IDLEIOB GET RID OF THE IOB @VA02040 00245000
- L R1,TRQBCRT GET RETURN ADDRESS @VA02040 00246000
- BR R1 COMPLETE PROCESSING @V200730 00247000
- EJECT 00248000
- * HERE WHEN OUTPUT LINE FINISHED 00249000
- * UPDATE NEXT LINE CO-ORDINATE 00250000
- * FRET CONTASK COMPLETED, GET AND START NEXT ONE 00251000
- SPACE 00252000
- CONRETBF SR R2,R2 CLEAR RETURN CODE @V200830 00253000
- BAL R3,SETRETN SET RETURN CODE @V200830 00254000
- TM TRQBFLAG,CRTSIO WAS DIAGNOSE ISSUE TO INPUT AREA@VM03094 00255000
- BO LINBYPAS YES, BYPASS UPDATING COORDINATE @VM03094 00256000
- IC R2,RDEVCORD GET CURRENT LINE POSN @V200830 00257000
- SR R3,R3 CLEAR FOR IC @V200830 00258000
- IC R3,CONCCW1+5 GET NUMBER OF LINES WRITTEN @V200830 00259000
- ALR R2,R3 NEW LINE POSN @V200830 00260000
- STC R2,RDEVCORD SET NEXT LINE POSN @V200830 00261000
- LINBYPAS EQU * .... @VM03094 00262000
- NI TRQBFLAG,X'FF'-CRTSIO RESET DIAG TO INPUT FLAG @V60A6B6 00263000
- LOGTST TM CONPARM,LOGDROP+LOGHOLD LOGOUT MESSAGE ?? @V200830 00264000
- BNZ CONCLR YES, CLEAR REMAINING @V200830 00265000
- BAL R3,CONRET RETURN CONTASK TO QCN @V200830 00266000
- TM RDEVGRIC,GRAPHAT SHOULD WE GET AN ATTN? HRC101DK 00266300
- BO ATTNINT1 YUP - GOT SET IT UP HRC101DK 00266600
- B NOCTL CHECK FOR MORE TO DO @V200830 00267000
- CALLBRK TM CONPARM,LOGDROP+LOGHOLD LOGOUT TIME ? @VA04772 00267050
- BNZ CONCLR IF YES - FRET ALL CONTASKS @VA04772 00267100
- CL R10,IOBLINK IS THIS A COPIED BLOK @VA04772 00267150
- BNE RELIOBLK YES - RELEASE IT @VA04772 00267200
- CALL DMKCFMBK PUT USER IN CONSOLE FUNCTION MODE@VA04772 00267250
- B NOTCTL CHECK FOR MORE QUEUED REQUESTS @V407508 00267400
- CONCLR CALL DMKQCNCL CLEAR CONTASK STACK @V200830 00268000
- B SIGNOFF GET OUT @V200730 00269000
- SPACE 00270000
- DEINT TM RDEVTFLG,RDEVCTL RETURN FROM WRITE ?? 00271000
- BO WRTPROC YES, GO PROCESS 00272000
- OI TRQBFLAG,CRTUSEWA DO AN E/W OR E/W ALTERNATE @V60A6B6 00272100
- DISCUSR DS 0H HRC103DK 00272500
- L R1,ASYSVM SYSTEM VMBLOK ADDRESS 00273000
- CL R1,IOBUSER USER LOGGED ON YET ?? 00274000
- BNE CONLOGOF YES, FORCE A DISC FOR SECURITY HRC103DK 00275090
- TM IOBSPEC,IOBUNSL ? HRC103DK 00275180
- BO ONEIOBLK HRC103DK 00275270
- TM RDEVFLAG,RDEVACTV IS THERE ACTIVE I/O? HRC103DK 00275360
- BNZ IDLEIOB YES, THERE MUST BE MORE HRC103DK 00275450
- ONEIOBLK DS 0H HRC103DK 00275540
- NI TRQBFLAG,X'FF'-CRTFMT SCREEN NOT FORMATTED 00276000
- B LOGUSER GO LOGON A USER 00277000
- WRTPROC TM IOBSPEC,IOBUNSL UNSIL. INTERRUPT? @VA03472 00278000
- BZ TESTHIO NO, GO TEST FOR HIO REQUEST @VM03150 00279000
- CLI RDEVTYPE,TYP3284 IS THIS A PRINTER @VM03150 00280000
- BNE DISCUSR YES, THEN DISCONNECT THE USER HRC103DK 00281490
- B FRETIOB RELEASE IOBLOK @VM03150 00282000
- TESTHIO EQU * TEST FOR HIO REQUEST @VM03150 00283000
- TM RDEVFLAG,RDEVHIO INTERRUPT FROM HIO? @VA03675 00284000
- BZ GOPROCSS NO @VA04245 00285000
- TESTHIO1 EQU * @VA08085 00285200
- NI RDEVFLAG,X'FF'-RDEVHIO YES - TURN OFF FLAG @VA04245 00285500
- B SIGNOFF GO CLEAN UP AND EXIT @VA04245 00286000
- GOPROCSS L R1,TRQBCRT RETURN PROCESSING ADDR @VA04245 00286500
- BR R1 GO DO IT 00287000
- SPACE 00288000
- CHANER EQU * @VA13071 00289100
- TM IOBSPEC,IOBUNSL UNSOLICITED INTERRUPT? @VA13071 00289200
- BZ CONLOGOF NO, LOGOFF USER NOW @VA13071 00289300
- TM RDEVFLAG,RDEVACTV IS THERE ACTIVE I/O? @VA13071 00289400
- BZ CONLOGOF NO, LOGOFF USER NOW; ELSE WAIT @VA13071 00289500
- * UNTIL ACTIVE I/O COMPLETES 00289600
- OI TRQBFLG3,TRQBLOGP SET LOGOFF PENDING FLAG @VA13071 00289700
- B RELIOBLK RELEASE IOBLOK AND EXIT @VA13071 00289800
- EJECT 00290000
- UNITER L R1,IOBIOER GET POINTER TO IOERBLOK @VA14749 00291000
- USING IOERBLOK,R1 @V200730 00292000
- SLR R4,R4 CLEAR @V200730 00293000
- IC R4,IOBRCNT+1 LOAD VALUE IN ERROR COUNTER @V200730 00294000
- LA R4,1(,R4) INCREMENT BY 1 @V200730 00295000
- STC R4,IOBRCNT+1 STORE IT BACK @V200730 00296000
- CLI RDEVTYPE,TYP3284 IS THIS A 3270 PRINTER @VM03094 00297000
- BNE BYPPRT NO, BYPASS PRINTER COUNTER @VM03094 00298000
- CLI IOBRCNT+1,3 HAVE RETRY COUNT BEEN EXCEEDED @VM03094 00299000
- BH FATALIO YES, RELEASE BUFFER STORAGE @VM03094 00300000
- BYPPRT EQU * HANDLE ERROR FROM DISPLAY 00301000
- CLI IOBRCNT+1,10 HAVE WE EXCEEDED RETRY COUNT @V200730 00302000
- BH FATALIO YES - LOG OFF THIS USER @V200730 00303000
- TM IOBSTAT,X'03' CC=0 @VA03757 00303100
- BNZ GOFRET NO @VA03757 00303200
- CLI IOBRCNT+1,X'01' IS IT THE FIRST ERROR ?? @VA03757 00303300
- BNE GOFRET NO @VA03757 00303400
- BAL R3,SDRSETUP GO SET UP FOR COUNTER ROUTINE @VA03757 00303500
- GOFRET EQU * @VA03757 00303600
- CLI IOBRCNT+1,1 FIRST ERROR? HRC103DK 00303640
- BNE GOFRET1 NO, CONTINUE NORMALLY HRC103DK 00303680
- QRYERR01 DS 0H HRC103DK 00303720
- BAL R3,FRETIOER HRC103DK 00303760
- NI IOBSTAT,X'FF'-IOBFATAL CLEAR THE ERROR FLAG HRC103DK 00303800
- NI IOBSPEC,X'FF'-IOBSENS CLEAR THE SENSE FLAG HRC103DK 00303840
- B BLD77FMT GO SET A LOGO HRC103DK 00303880
- GOFRET1 EQU * HRC103DK 00303920
- BAL R3,FRETIOER FRET IOERBLOK @VA01632 00304000
- TSTCAW L R1,IOBCAW GET CCW ADDRESS IF ANY @V200730 00305000
- LTR R1,R1 IS THIS IOBLOK AN ACTIVE ONE ? @V200730 00306000
- BZ IDLEIOB IF NOT - FRET IT AND EXIT. @V200730 00307000
- B CALLIOS RETRY THE OPERATION. @V200730 00308000
- SPACE 00309000
- FATALIO EQU * HERE ON FATAL I/O ERROR CONDITION@V200730 00310000
- L R1,IOBCAW GET ADDRESS OF BUFFER @VM03094 00311000
- L R4,20(,R1) GET ADDRESS OF DISPLAY RDEVBLOK @V407508 00312100
- TM IOBSPEC,IOBCOPY WAS THIS A COPY REQUEST @VM03094 00313000
- BZ COPYBYP NO, DON'T FRET BUFFER @VM03094 00314000
- L R0,IOBMISC2 GET SIZE OF THE COPY BUFFER @V60A6B6 00315000
- CALL DMKFRET RELEASE STORAGE FOR BUFFER @VM03094 00316000
- NI IOBSPEC,X'FF'-IOBCOPY CLEAR COPY FLAG @VM03094 00317000
- COPYBYP EQU * ... @VM03094 00318000
- L R1,IOBIOER GET POINTER TO IOERBLOK @VM03094 00319000
- LTR R1,R1 ANY IOERBLOK ? @VM03152 00320000
- BZ FORCEOFF NO, LOGOUT USER @VM03152 00321000
- TM IOERDATA,INTREQ INTERVENTION REQUIRE ? @VM03152 00322000
- BNO BYPASS01 NO, CONTINUE @VA03757 00323000
- SETBALR EQU * @VA03757 00323050
- LA R3,FORCEOFF YES, SET UP FOR RETURN @VA03757 00323100
- B SDRSETUP GO SET UP FOR COUNTER ROUTINE @VA03757 00323150
- CDCSETUP EQU * @VA03757 00323200
- ICM R1,15,IOBIOER GET IOERBLOK ADDRESS @VA03757 00323250
- BZ FORCEOFF NO IOERBLOK, LOGOUT USER @VA03757 00323300
- MVI IOERNUM,20 SET UP FOR ERROR MSG @VA03757 00323350
- B SETUPMSG GO SEND IT @VA03757 00323400
- BYPASS01 EQU * @VA03757 00323450
- CLI RDEVTYPE,TYP3284 IS THIS A PRINTER @VM03244 00324000
- BE BYSYSOP YES, DON'T CHECK FOR SYSTEM @VM03244 00325000
- TM VMOSTAT,VMSYSOP IS THIS SYSTEM OPERATOR ? @VM03152 00326000
- BO OPSRECD YES, DON'T SEND ERROR MESSAGE @VM03152 00327000
- BYSYSOP EQU * WRITE MESSAGE TO OPERATOR @VM03244 00328000
- SLR R2,R2 CLEAR WORK REGISTER @VM03152 00329000
- ICM R2,B'1000',IOERDATA PICK UP FIRST SENSE BYTE @VM03152 00330000
- BZ FORCEOFF IF ZERO, BYPASS SENDING MESSAGE @VM03152 00331000
- SLR R3,R3 CLEAR @V200730 00332000
- SPACE 00333000
- SNSLOOP LTR R2,R2 TEST FOR HI-ORDER BIT @V200730 00334000
- BM SNSFOUND BRANCH IF ON . @V200730 00335000
- SLL R2,1 SHIFT 1 TO LEFT @V200730 00336000
- LA R3,1(,R3) INCREMENT MESSAGE NUMBER BY 1 @V200730 00337000
- B SNSLOOP KEEP LOOKING FOR THAT SENSE BIT @V200730 00338000
- EJECT 00339000
- SNSFOUND IC R2,MSGNUM(R3) GET MESSAGE NUMBER INDEX @V200730 00340000
- STC R2,IOERNUM STORE IN IOERBLOK FOR DMKMSW @V200730 00341000
- SETUPMSG EQU * @VA03757 00341100
- ST R1,RDEVIOER DMKMSW NEEDS POINTER IN RDEVBLOK @V200730 00342000
- ICM R0,B'1110',=C'GRF' MODULE IDENTIFER @VM03152 00343000
- CALL DMKMSWR,AFFINITY CALL MESSAGE WRITER TO PRINT @V407508 00344050
- TM IOERCSW+5,CDC IS IT A CHANNEL DATA CHECK ?? @VA03757 00344100
- BO SETBALR YES, GO SET UP FOR RETURN @VA03757 00344200
- OPSRECD EQU * CALL ERROR RECORDER @VM03152 00345000
- OI IOBSTAT,IOBFATAL SET PERMANENT ERROR FLAG @VM03152 00346000
- XC RDEVIOER,RDEVIOER CLEAR IOERBLOK POINTER @VM03152 00347000
- CALL DMKIOERR,AFFINITY CALL ERROR RECORDER TO RECORD @V407508 00348100
- NI IOBSTAT,X'FF'-IOBFATAL CLEAR FATAL FLAG @VM03152 00349000
- FORCEOFF EQU * FORCE USER OFF SYSTEM @VM03152 00350000
- TM IOBSPEC,IOBSENS WAS THE SENSE COMMAND ISSUED @VM03244 00351000
- BO FRETSEN YES, SEND MESSAGE TO USER @VM03244 00352000
- CLI RDEVTYPE,TYP3284 IS THIS A PRINTER @VM03152 00353000
- BNE CONLOGOF NO, LOG USER OFF SYSTEM @VM03152 00354000
- TM IOBSPEC,IOBUNSL UNSOL. INTERRUPT @VM03202 00355000
- BO SIGNOFF YES, GO RESET USER @VM03202 00356000
- FRETSEN EQU * SEND MESSAGE TO USER @VM03244 00357000
- NI IOBSPEC,X'FF'-IOBSENS CLEAR SENSE FLAG @VM03244 00358000
- BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 00358500
- BAL R3,FRETTRQ RELEASE TRQBLOK @VM03152 00359000
- MVI RDEVTFLG,X'00' CLEAR FLAG FIELD @VM03152 00360000
- MVI IOBRCNT+1,X'00' CLEAR RETRY COUNT @VM03152 00361000
- LR R8,R4 GET RDEVBLOK ADDRESS FOR DISPLAY @V407508 00362100
- BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00363100
- BAL R3,BLDTRQ GET TRQBLOK FOR DISPLAY @VM03152 00364000
- OI RDEVTFLG,RDEVCPNA+RDEVCTL NOT ACCEPTED & CTL @VM03152 00365000
- LA R1,SETREJ GET RETURN ADDRESS @VM03152 00366000
- ST R1,TRQBCRT SAVE RETURN ADDRESS @VM03152 00367000
- B BLD77NAC GO WRITE NOT ACCEPTED MSG @VM03152 00368000
- SPACE 00369000
- CONLOGOF DS 0H HRC103DK 00370190
- TM IOBCSW+5,PRGC PROGRAM CHECK HRC103DK 00370380
- BO QRYERR01 GO CLEANUP AND EXIT HRC103DK 00370570
- CALL DMKQCNCL CANCEL EVERYTHING ON CONSOLE HRC103DK 00370760
- TM VMRSTAT,VMLOGOFF IS THIS USER IN PROCESS OF @V200730 00371000
- BNZ SIGNOFF YES - @V200730 00372000
- CL R11,ASYSVM IS IOBLOK USER = SYSTEM @V200730 00373000
- BE SIGNOFF YES - FORGET IT @V200730 00374000
- TM RDEVSTA2,RDEVDROP USER WILL BE LOGOFF? @VA05110 00374300
- BO SIGNOFF YES--PREVENT DOUBLE FRET VMBLOK @VA05110 00374600
- CALL DMKQCNTO,AFFINITY PUT USER TO SLEEP @V407508 00375100
- SPACE 00376000
- SIGNOFF EQU * HRC001DK 00377090
- ICM R1,15,VMHRCALL RECALL LAST LINE HRC001DK 00377180
- BZ DCCSGNOF NOBODY HOME ? - VANILLA HRC001DK 00377270
- LA R0,(130*3+8)/8 SIZE OF RECALL BUFFER HRC001DK 00377360
- CALL DMKFRET RELEASE BUFFER HRC001DK 00377450
- XC VMHRCALL,VMHRCALL CLEAR POINTER HRC001DK 00377540
- CLI CPUID,X'FF' IS THIS A VIRTUAL MACHINE HRC029DK 00377543
- BNE CHKDISAG NO CONTINUE HRC029DK 00377546
- TM VMSVSTAT,VMLGHOLD WAS THIS A HOLD ? HRC029DK 00377549
- BO CHKDISAG YES, CONTINUE HRC029DK 00377552
- NI VMSVSTAT,X'FF'-VMLGHOLD CLEAR FLAG HRC029DK 00377555
- STM R0,R6,TEMPSAVE SAVE REGS TO BE USED HRC029DK 00377558
- LA R0,4 4 DOUBLE WORDS OF STOR HRC029DK 00377561
- CALL DMKFREE GO GET IT HRC029DK 00377564
- LR R3,R1 ADDRESS OF BUFFER HRC029DK 00377567
- CALL DMKSCNRD GET REAL ADDRESS HRC029DK 00377570
- CALL DMKCVTBH CONVERT TO HEX HRC029DK 00377573
- MVC 0(9,R3),=C'RESET CUU' FORMAT COMMAND HRC029DK 00377576
- STCM R1,B'0111',6(R3) ADD UNIT ADDRESS HRC029DK 00377579
- LA R4,16(R3) ADDRESS OF RESPONSE HRC029DK 00377582
- LA R5,9 LENGTH OF COMMAND HRC029DK 00377585
- LA R6,12 LENGTH OF RESPONSE HRC029DK 00377588
- ICM R5,B'1000',=X'40' TELL CP TO RETURN RESPONSE HRC029DK 00377591
- DC X'83350008' GO DO IT HRC029DK 00377594
- LR R1,R3 ADDRESS OF BUFFER HRC029DK 00377597
- LA R0,4 NUMBER OF DWORDS HRC029DK 00377600
- CALL DMKFRET RETURN STORAGE HRC029DK 00377603
- LM R0,R6,TEMPSAVE RESTORE REGS HRC029DK 00377606
- CHKDISAG EQU * HRC029DK 00377609
- DCCSGNOF EQU * HRC001DK 00377630
- L R1,ASYSVM GET ADDRESS OF SYSTEM'S VMBLOK HRC001DK 00377720
- ST R1,RDEVUSER THIS DEVICE NOW BELONGS TO SYSTEM@V200730 00378000
- MVI IOBRCNT+1,0 ZERO OUT RETRY COUNTER @V200730 00379000
- BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00380100
- MVI RDEVTFLG,X'00' RESET TERMINAL FLAGS @V200830 00381000
- NI RDEVSTA2,255-RDEVDROP TRUN OFF THE LOGDROP FLAG @VA05110 00381500
- NI RDEVTMCD,255-RDEVAPLP-RDEVTEXT TRAN OFF @V387398 00382200
- BAL R3,FRETTRQ RELEASE TRQBLOK @VM03152 00383000
- TM RDEVFLAG,RDEVDISB DEVICE DISABLED ?? @V200730 00384000
- BZ FRETIOB NO, LEAVE DEVICE IDLE @V200730 00385000
- NI RDEVFLAG,X'FF'-RDEVENAB-RDEVDISB DEV DISABLED @V200730 00386000
- B FRETIOB NOW RELEASE THIS IOBLOK @V200730 00387000
- DROP R1 @V200730 00388000
- SDRSETUP EQU * @VA03757 00388010
- LTR R10,R10 IS THERE AN IOBLOK ? @VA05739 00388013
- BZR R3 NO, GET OUT @VA05739 00388016
- LTR R1,R1 IS THERE AN IOERBLOK? @VA07242 00388021
- BZR R3 NO RETURN @VA05873 00388026
- LR R2,R1 LOAD ADDRESS OF IOERBLOK @VA07242 00388031
- USING IOERBLOK,R2 SET ADDRESSABILITY @VA07242 00388032
- NI IOERFLG3,X'FF'-IOERREAD RESET FLAG @VA03757 00388040
- ST R2,RDEVIOER COUNTER UPDATE NEEDS THIS PTR @VA07242 00388051
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00388060
- BNZ DEVDEP YES,GO TO DEVICE DEPENDENT RTN @V60A6B6 00388070
- L R1,IOERCSW PICK UP CCW ADDRESS PLUS 8 @VA07242 00388081
- LA R1,0(,R1) CLEAR HI-ORDER BIT @VA07242 00388091
- S R1,F8 GET CCW ADDRESS @VA07242 00388101
- BM BYPASS02 NO CCW @VA03757 00388110
- TM 0(R1),X'01' IS IT A WRITE OR CONTROL CCW? @VA07242 00388121
- BO BYPASS02 YES, DONT TURN ON READ FLAG @VA03757 00388130
- TM 0(R1),X'02' IS IT A READ OP? @VA07242 00388141
- BZ BYPASS02 NO, FORGET READ FLAG @VA03757 00388150
- OI IOERFLG3,IOERREAD TURN ON READ FLAG FOR SDR @VA03757 00388160
- BYPASS02 SLR R1,R1 CLEAR PARMETER REG, FOR 3066 @VA03757 00388170
- SPACE 1 00388180
- GOCOUNT EQU * @VA03757 00388190
- CALL DMKIOEST,AFFINITY GOTO STATISTICAL CNTR UPDATE @V407508 00388205
- XC RDEVIOER,RDEVIOER CLEAR IOERBLOK POINTER @VA03757 00388210
- LTR R1,R1 WAS A PARAMETER LIST PASSED ?? @VA03757 00388220
- BZ NOPARM NO, MUST HAVE BEEN 3066 @VA03757 00388230
- LA R0,PARMLEN GET PARM LIST LENGTH @VA03757 00388240
- CALL DMKFRET RELEASE STORAGE USED BY PARM LIST@VA03757 00388250
- NOPARM BR R3 RETURN @VA03757 00388260
- SPACE 2 00388270
- DEVDEP EQU * @VA03757 00388280
- LA R0,PARMLEN GET LENGTH OF PARM LIST @VA03757 00388290
- CALL DMKFREE GET STORAGE FOR PARM LIST @VA03757 00388300
- SPACE 1 00388310
- MVC 0(16,R1),PARM3277 GET READY TO PASS PARM LIST @VA03757 00388320
- TM IOERDATA,US+DC UNIT SPECIFY & DATA CHECK @VA03757 00388330
- BNO TESTCT13 NO, CHECK NEXT COUNTER @VA03757 00388340
- MVI 11(R1),X'2F' TURN ON DEVICE DEPENDENT COUNTER @VA03757 00388350
- TESTCT13 TM IOERDATA,US+IR UNIT SPECIFY & INTERVENTION REQ @VA03757 00388360
- BNO TESTCT14 NO, CHECK NEXT COUNTER @VA03757 00388370
- MVI 12(R1),X'2F' TURN ON DEVICE DEPENDENT COUNTER @VA03757 00388380
- TESTCT14 TM IOERDATA,US+IR+EC UNIT SPECIFY & INTERVENTION @VA03757 00388390
- * REQUIRED & EQUIPMENT CHECK 00388400
- BNO TESTCT15 NO, CHECK NEXT COUNTER @VA03757 00388410
- MVI 13(R1),X'2F' TURN ON DEVICE DEPENDENT COUNTER @VA03757 00388420
- TESTCT15 TM IOERDATA,US+EC UNIT SPECIFY & EQUIPMENT CHECK @VA03757 00388430
- BNO GOCOUNT GO TO COUNTER UPDATE ROUTINE @VA03757 00388440
- MVI 14(R1),X'2F' TURN ON DEVICE DEPENDENT COUNTER @VA03757 00388450
- B GOCOUNT GO TO COUNTER UPDATE ROUTINE @VA03757 00388460
- DROP R2 DROP ADDRESSABILITY TO IOERBLOK @VA07242 00388471
- SPACE 00389000
- EJECT 00390000
- USING DMKGRFEN,R12 @V200830 00391000
- DMKGRFEN DS 0H @V200830 00392000
- L R9,MODBAS1 LOAD 3RD REG FOR ADDRESSABILITY @V407508 00392100
- LM R12,R13,MODBASE SET MODULE BASE REGS @V200830 00393000
- USING DMKGRF,R12,R13,R9 ESTABLISH ADDRESSABILITY @V407508 00394100
- TM RDEVFLAG,RDEVACTV I/O IN PROGRESS ? @VA01983 00395000
- BO GRFEXIT YES, SKIP IT @V200830 00396000
- L R1,RDEVUSER GET ADDR OF VMBLOK FOR NEW USER @V407508 00397100
- SWTCHVM SWITCH TO NEW VMBLOK @V407508 00398100
- SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 00399100
- BAL R3,BLDIOB BUILD AN IOBLOK @V200830 00400000
- BAL R3,BLDTRQ BUILD A TIMER REQUEST BLOK @V200830 00401000
- B LOGUSER GO TRY TO LOGON A USER @V200830 00402000
- SPACE 2 00403000
- USING DMKGRFIC,R12 @V200830 00404000
- DMKGRFIC DS 0H @V200830 00405000
- L R9,MODBAS1 LOAD 3RD REG FOR ADDRESSABILITY @V407508 00405100
- LM R12,R13,MODBASE SET MODULE BASE REGS @V200830 00406000
- USING DMKGRF,R12,R13,R9 ESTABLISH ADDRESSABILITY @V407508 00407100
- L R6,RDEVCON GET CONTASK STACK @V200830 00408000
- LTR R6,R6 ARE THERE ANY ?? @V200830 00409000
- BNP GRFEXIT NO, STRANGE .... BUT CONT @V200830 00410000
- TM RDEVFLAG,RDEVACTV IS THERE AN ACTIVE IOBLOK ? @VM08871 00411000
- BO GRFEXIT YES - JUST EXIT NOW @VM08871 00412000
- SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 00412100
- L R10,RDEVAIOB ACTIVE IOBLOK POINTER @VA03036 00413000
- LTR R10,R10 IS THERE ONE ALREADY? @VA03036 00414000
- BNZ GRFEXIT YES--EXIT NOW @VA03036 00415000
- BAL R3,BLDIOB BUILD AN IOBLOK @V200830 00416000
- BAL R3,BLDTRQ BUILD A TIMER REQUEST BLOK @V200830 00417000
- B BLDCCWS GO START CONTASK @V200830 00418000
- EJECT 00418025
- * 00418050
- * CLOCK COMPARATOR INTERRUPTS ARE PROCESSED HERE 00418075
- * 00418100
- SPACE 2 00418125
- USING DMKGRFTI,R12 ADDRESSABILITY @VA04772 00418150
- DMKGRFTI DS 0H HERE WHEN TIMER EXPIRES @VA04772 00418175
- L R9,MODBAS1 LOAD 3RD REG FOR ADDRESSABILITY @V407508 00418180
- LM R12,R13,MODBASE @VA04772 00418200
- USING DMKGRF,R12,R13,R9 ESTABLISH ADDRESSABILITY @V407508 00418210
- SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 00418220
- TM TRQBDEV-TRQBLOK(R10),X'80' Is this an LDEV? HRC065DK 00418230
- BO LDEV100 Yes HRC065DK 00418235
- LH R1,TRQBDEV-TRQBLOK(R10) GET GRAF DEV ADDRESS @VA04772 00418250
- CALL DMKSCNRU LOCATE READ DEVICE CONTROL BLOKS @VA04772 00418275
- B LDEV110 Skip over LDF support HRC065DK 00418278
- LDEV100 EQU * HRC065DK 00418280
- L R8,INSTWRD1 -> LDEVCTL HRC065DK 00418282
- USING LDEVCTL,R8 HRC065DK 00418284
- ICM R1,3,TRQBDEV-TRQBLOK(R10) Get LDEV number HRC065DK 00418286
- N R1,F4095 Keep only the LDEV num HRC065DK 00418288
- SLL R1,2 Make into LDEV slot idx HRC065DK 00418290
- L R8,LDEVIDX(R1) -> LDEVBLOK for LDEV HRC065DK 00418292
- USING RDEVBLOK,R8 Pseudo-RDEVBLOK for LDEVHRC065DK 00418294
- LDEV110 EQU * HRC065DK 00418296
- NI RDEVTFLG,X'FF'-RDEVTRQ RESET TIMER PENDING @VA04772 00418300
- L R5,RDEVAIRA GET ADDRESS OF TRQBLOK @VA04772 00418325
- L R6,RDEVCON GET POINTER TO NEXT CONTASK @VA04772 00418350
- TM RDEVFLAG,RDEVACTV IS THERE IO ACTIVE? @VA04433 00418352
- BNO CONTINUE IF NOT, PROCEED NORMALLY @VA04433 00418354
- OI TRQBFLAG,CRTAIO FLAG FOR LATER TIMER INTERRUPT @VA04433 00418356
- MVC TMRVALUE,=X'0000000100000000' @VA04433 00418358
- B SETINT RESET INTERRUPT FOR LATER @VA04433 00418360
- * PROCESSING 00418362
- CONTINUE EQU * @VA04433 00418364
- BAL R3,BLDIOB BUILD AN IOBLOK @VA04772 00418375
- TM RDEVTFLG,RDEVCPNA NOT ACCEPTED TIME INT ?? @VA04772 00418400
- BO CPNATMR YES, HANDLE THAT @VA04772 00418425
- TM TRQBFLAG,CRTWNG 10 SECOND WARNING END ?? @VA04772 00418450
- BO GRFCLR YES, CLEAR SCREEN @VA04772 00418475
- OI TRQBFLAG,CRTWNG SET 10 SECOND WARNING @VA04772 00418500
- OI RDEVTFLG,RDEVCTL TERM IN CTL MODE @VA04772 00418525
- LA R1,SETWNG RETURN PROCESSING @VA04772 00418550
- ST R1,TRQBCRT SET RETURN @VA04772 00418575
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00418600
- BNZ BLD77WNG 3270 WARNING @V60A6B6 00418625
- B BLD66WNG 3066 WARNING @VA04772 00418650
- SPACE 1 00418675
- MODBASE DC A(DMKGRF,DMKGRF+4096) @VA04772 00418700
- MODBAS1 DC A(DMKGRF+8192) VALUE FOR 3RD BASE REGISTER @V407508 00418750
- EJECT 00419000
- ATTNINT1 NI RDEVGRIC,255-GRAPHAT TURN ATTN FLAG OFF HRC101DK 00419300
- NI RDEVTFLG,255-RDEVCTL TURN OFF CNTRL FLAG HRC101DK 00419600
- ATTNINT TM RDEVTFLG,RDEVCPNA+RDEVCTL NOT ACCEP OR CONTROL @V200730 00420000
- BNZ RELIOBLK YES,FRET THIS IOBLOK AND EXIT @VA09463 00421000
- TM RDEVSTA3,RDEVATSW ARE WE STILL IN RECONN? @VA10462 00421400
- BO RELIOBLK YES....BRANCH @VA10462 00421800
- L R1,ASYSVM GET SYSTEM VMBLOK ADDRESS @V200730 00422000
- CL R1,IOBUSER UNSOL. INTERRUPT ? @V200730 00423000
- BE LOGUSER YES - GO LOG ON USER @V200730 00424000
- TM RDEVSTAT,RDEVSCED+RDEVBUSY I/O SCHEDULED OR .00424001
- ACTIVE FOR THIS DEVICE @VA09930 00424003
- BNZ RELIOBLK YES, IGNORE THIS INTERRUPT @VA09930 00424005
- TM RDEVTFLG,RDEVMORE+RDEVHOLD MORE OR HOLDING @VA08015 00424021
- * STATUS? 00424041
- BNZ CTLACTV YES, DON'T FRET IOB @VA08015 00424061
- TM RDEVFLAG,RDEVACTV IS THERE AN ACTIVE IOBLOK? @VA05730 00424100
- BO RELIOBLK YES-FRET THIS IOBLOK & EXIT. @VA05730 00424200
- CTLACTV EQU * @VA07047 00425100
- TM RDEVSTA3,RDEVFULL In DIAG58 full screen? HRC062DK 00425110
- BO PASSATTN Yes pass attn to v.m. HRC061DK 00425120
- OI RDEVTFLG,RDEVCTL CRT NOW IN CTRL MODE @VA07047 00425200
- LA R0,6 SIZE FOR READ CCWS @V200730 00426000
- CALL DMKFREE GET STOREAGE @V200730 00427000
- ST R1,IOBCAW SET CCW ADDRESS @V200730 00428000
- LA R0,BUFSIZE READ BUFFER SIZE @V200730 00429000
- CLI RDEVTYPE,TYP3066 IS THIS A 3066 DEVICE @VM03043 00430000
- BE BYSIZE YES, BYPASS DOUBLING SIZES @VM03043 00431000
- LA R0,2*BUFSIZE DOUBLE SIZE OF READ BUFFER @VM03043 00432000
- OI TRQBFLAG,CRTAPL SET APL BUFFER ALLOCATED FLAG @VM03043 00433000
- BYSIZE EQU * GET STORAGE FOR READ BUFFER @VM03043 00434000
- CALL DMKFREE GET STORAGE @V200730 00435000
- ST R1,IOBMISC SAVE ADDRESS @V200730 00436000
- XC 0(BUFINLTH+6,R1),0(R1) CLEAR BUFFER @V200730 00437000
- CLI RDEVTYPE,TYP3066 IS THIS A 3066 DEVICE @VM03043 00438000
- BE BYCLEAR YES, BYPASS SECOND CLEAR @VM03043 00439000
- XC BUFNORM(BUFAPL-BUFNORM,R1),BUFNORM(R1) CLEAR @VM03043 00440000
- BYCLEAR EQU * READ DATA FROM DISPLAY @VM03043 00441000
- LA R1,RDMINT SPECIAL RETURN ADDRESS @V200730 00442000
- ST R1,TRQBCRT SET RETURN PROCESSING @V200730 00443000
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00444000
- BNZ BLD77RMI 3270 READ @V60A6B6 00445000
- B BLD66RMI 3066 READ @V200730 00446000
- SPACE 00447000
- USING BUFFER,R3 @V200730 00448000
- CNCLKEY BAL R3,FRETRD FRET BUFFERS @V407508 00449100
- TM RDEVTMCD,RDEVAPLP APL ON ? @V305798 00450000
- BZ CNCLDE NO, CONT @V305798 00451000
- TM VMQSTAT,VMPA2APL IS PA2 FLAG ON ? @VM03116 00452000
- BZ CNCLDE NO, CONTINUE NORMAL PROCESSING @VM03094 00453000
- TM RDEVTFLG,RDEVHOLD+RDEVMORE IS THIS MORE/HOLD @VM03094 00454000
- BNZ XINCONT YES, REFLECT EXTERNAL INTERRUPT @VM03094 00455000
- TM RDEVTFLG,RDEVREAD IS READ STATUS INDICATED @VM03094 00456000
- BZ CNCLDE NO, JUST CLEAR DISPLAY SCREEN @VM03094 00457000
- L R3,RDEVCON GET READ CONTASK POINTER @VM03094 00458000
- TM CONPARM-CONTASK(R3),VMGENIO IS THIS VM READ @VM03094 00459000
- BZ CNCLDE NO, BYPASS REFLECTING INTERRUPT @VM03094 00460000
- XINCONT EQU * REFLECT EXTERNAL INTERRUPT @VM03094 00461000
- SLR R3,R3 CLEAR INDEX REGISTER @VM03094 00462000
- STM R5,R6,TEMPSAVE SAVE REGISTERS @VM03094 00463000
- L R4,=X'00400040' EXTERNAL INTERRUPT KEY @VM03094 00464000
- LA R2,VMPXINT START OF EXT INT BLOCKS @V305798 00465000
- USING XINTBLOK,R2 @V305798 00466000
- XINTLOOP LR R6,R2 @V305798 00467000
- L R2,XINTNEXT-XINTBLOK(,R6) NEXT ? @V305798 00468000
- LTR R2,R2 TEST IT @V305798 00469000
- BZ XINTADD NOPE, ADD END OF CHAIN @V305798 00470000
- C R3,XINTSORT CHECK FOR COLLATING SEQ @V305798 00471000
- BH XINTLOOP KEEP LOOKING... @V305798 00472000
- BL XINTADD THIS EES THE PLACE @V305798 00473000
- O R4,XINTCODE MUST BE INDICATED TOGETHER @V305798 00474000
- ST R4,XINTCODE OR ONE AT A TIME @V305798 00475000
- B XINTEXIT GET OUT @V305798 00476000
- XINTADD EQU * @V305798 00477000
- LA R0,XINTSIZE NO. OF DOUBLE WORDS @V305798 00478000
- CALL DMKFREE @V305798 00479000
- ST R1,XINTNEXT-XINTBLOK(,R6) @V305798 00480000
- SLR R5,R5 PARM IS MEANINGLESS HERE @V305798 00481000
- STM R2,R5,XINTNEXT-XINTBLOK(R1) BUILD NEW INTRPT BLK@V305798 00482000
- XINTEXIT EQU * RESTORE REGISTERS @V305798 00483000
- LM R5,R6,TEMPSAVE RESTORE BASE REGS @V305798 00484000
- DROP R2 DROP BASE REGISTER @V305798 00485000
- CNCLDE BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00486100
- TM RDEVTFLG,RDEVRUN+RDEVMORE IN RUN OR MORE @V200730 00487000
- BZ CNCLREAD NO - CHECK FOR READ STATE @V200730 00488000
- GRFCLR LA R1,NOCTL RETURN PROCESSING @V200730 00489000
- ST R1,TRQBCRT SET RETURN PROCESSING @V200730 00490000
- GRFCLRT EQU * @VA08898 00491100
- BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 00491300
- MVI RDEVTFLG,RDEVRUN+RDEVCTL RUN & CNTRL @VA08898 00491500
- MVC RDEVCORD,ZEROES NEXT LINE AT TOP OF SCREEN @V200730 00492000
- NI TRQBFLAG,X'FF'-CRTDIAG-CRTALRM-CRTWNG RESET @V200730 00493000
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00494000
- BNZ BLD77CLR 3270 CLEAR SCREEN @V60A6B6 00495000
- B BLD66CLR 3066 CLEAR SCREEN @V200730 00496000
- CLD58FUL EQU * HRC058DK 00496100
- NI RDEVSTA3,255-RDEVFULL Exit full screen mode HRC062DK 00496110
- OI TRQBFLAG,CRTUSEWA USE ERASE/WRITE CCW HRC058DK 00496120
- B GRFCLR AND GO BUILD DISPLAY HRC058DK 00496130
- CLD58PA1 EQU * HRC058DK 00496140
- NI RDEVSTA3,255-RDEVFULL Exit full screen mode HRC062DK 00496150
- OI TRQBFLAG,CRTUSEWA USE ERASE/WRITE CCW HRC058DK 00496160
- LA R1,PA1KEY58 SET RETURN ADDR AFTER CLRHRC058DK 00496170
- ST R1,TRQBCRT SET IT IN TRQB HRC058DK 00496180
- B GRFCLRT AND GO BUILD CP DISPLAY HRC058DK 00496190
- SPACE 00497000
- CNCLREAD TM RDEVTFLG,RDEVREAD IS USER CANCELING A READ @V200730 00498000
- BZ CNCLHOLD NO, CANCEL FROM HOLDING STATE @V200730 00499000
- LA R1,STRTREAD RETURN PROCESSING @V200730 00500000
- ST R1,TRQBCRT SET RETURN @V200730 00501000
- B GRFCLRT CLEAR SCREEN @V200730 00502000
- SPACE 00503000
- CNCLHOLD LA R2,4 SINGLE ATTN RETURN CODE @V200730 00504000
- TM VMMLEVEL,VMMCPENV CP ENVIRONMENT ?? @V200730 00505000
- BZ CLRTST NO, TEST DEVICE TYPE @V200730 00506000
- LA R2,8 DOUBLE ATTN RETURN CODE @V200730 00507000
- B PA1CNCL HANDLE AS PA1 CANCEL FUNCTION @V200730 00508000
- CLRTST TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00509000
- BNZ GRFCLR YES, CLEAR SCREEN ONLY @V60A6B6 00510000
- PA1CNCL BAL R3,SETRETN SET RETURN CODE @VM08599 00511000
- LA R1,LOGTST RETURN ADDRESS @VM08599 00512000
- ST R1,TRQBCRT SET IT IN TIMER BLOK @VM08599 00513000
- B GRFCLRT NOW CLEAR SCREEN. @VM08599 00514000
- SPACE 2 00515000
- CLRKEY EQU * @V305798 00516000
- OI TRQBFLAG,CRTUSEWA INDICATE E/WA OP-CODE NEEDED @V60A6B6 00517000
- BAL R3,FRETRD FRET BUFFERS @V407508 00517100
- BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUESTS @VA08689 00518010
- TM RDEVTFLG,RDEVREAD IS USER CANCELING A READ? @VA08689 00518020
- BZ GRFCLR NO... BACK TO MAINLINE @VA08689 00518030
- LA R1,STRTREAD SET UP RETURN ADDRESS @VA08689 00518040
- ST R1,TRQBCRT AND STUFF IT IN TRQBCRT @VA08689 00518050
- B GRFCLRT BACK TO MAINLINE @VA08689 00518060
- EJECT 00519000
- PA1KEY BAL R3,FRETRD FRET BUFFERS @V407508 00520100
- TM RDEVSTA3,RDEVFULL In DIAG58 full screen? HRC062DK 00520110
- BO CLD58PA1 YES, RESET DISPLAY FIRST HRC058DK 00520120
- * HRC058DK 00520130
- PA1KEY58 EQU * HRC058DK 00520140
- TM RDEVTFLG,RDEVRUN RUNNING ?? @V200730 00521000
- BO CFMBK YES, GO TO CP MODE @V200730 00522000
- TM RDEVTFLG,RDEVMORE+RDEVHOLD MORE OR HOLD ?? @V200730 00523000
- BZ PA1READ NO, MUST BE READ @V200730 00524000
- BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00525100
- LA R2,8 DOUBLE ATTENTION RETURN CODE @VA04772 00526250
- LA R1,LOGTST SET UP RETURN ADDRESS @VA04772 00526500
- ST R1,TRQBCRT SAVE IT FOR LATER @VA04772 00526750
- TM CONPARM,VMGENIO WAS OUTPUT FROM VIRTUAL SIO @VA04772 00527000
- BO SETBRK YES - CONDITION FOR CP BREAK @VA04772 00527250
- BAL R3,SETRETN SET UP RETURN CODE @VA04772 00527500
- B GRFCLRT NOW GO CLEAR THE SCREEN @VA04772 00527750
- SETBRK LA R1,CALLBRK RETURN ADDRESS FOR BREAK @VA04772 00528000
- ST R1,TRQBCRT SET UP CRT IRA @VA04772 00528250
- B GRFCLRT NOW CLEAR THE SCREEN @VA04772 00528500
- SPACE 00531000
- PA1READ LA R2,8 SET 2 ATTN RETURN @V200830 00532000
- LA R3,0 ZERO DATA ENTERED @V200730 00533000
- B RDRTN RETURN STATUS @V200730 00534000
- SPACE 00535000
- PA3KEY EQU * @V60A6B6 00536100
- L R1,=A(DMKGRTP6) HANDLE AS IF PF KEY 6 HIT. @V60A6B6 00536200
- PFKEY S R1,=A(DMKGRTPF) ADJUST TO KEY INDEX NUMBER @V60A6B6 00536300
- SLL R1,2 TIMES 4 FOR INDEX @V200730 00538000
- L R2,VMPFUNC GET USER FUNCTION TABLE @V200730 00539000
- LTR R2,R2 ANY DEFINED ?? @V200730 00540000
- BZ PFREJ NO, REJECT FUNCTION @V200730 00541000
- LA R2,0(R1,R2) INDEX FOR FUNCTION @V200730 00542000
- L R4,4(R2) GET PF DATA ADDRESS @V200730 00543000
- LTR R4,R4 ANY DATA DEFINED ?? @V200730 00544000
- BZ PFREJ NO, REJECT FUNCTION @V200730 00545000
- CLC 0(4,R4),=CL4'TAB ' IS IT THE TAB FUNCTION ?? @V200730 00546000
- BE PFTAB YES, DO IT @V200730 00547000
- CLC 0(4,R4),=CL4'COPY' IS IT COPY FUNCTION ? @V305798 00548000
- BNE PFSIZ NO, GET PF FUNCTION @V305798 00549000
- LH R1,2(,R2) SET PF SIZE @V305798 00550000
- CLI 4(R4),X'40' IS THIS A BLANK ? @V305798 00551000
- BE *+12 YES, CHECK LENGTH @V305798 00552000
- C R1,F4 JUST COPY SPECIFIED ? @V305798 00553000
- BNE PFSIZ NO, RE-DISPLAY DATA @V305798 00554000
- C R1,F8 LENGTH OF EIGHT ? @V305798 00555000
- BH PFSIZ NO, RE-DISPLAY DATA @V305798 00556000
- BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00557100
- LR R14,R8 SAVE ADDRESS OF DISPLAY RDEVBLOK @V407508 00558100
- LH R1,2(,R2) GET PF DATA LENGTH @V305798 00559000
- C R1,F5 IS COPY ONLY INDICATED @V305798 00560000
- BH PFCOPY YES, COPY FUNC(COPY CUU) @V305798 00561000
- L R7,RDEVCUA GET ADDR OF RCUBLOK @V305798 00562000
- USING RCUBLOK,R7 @V305798 00563000
- TM RCUTYPE,RCUSUB IS THIS A SUBORDINATE CU? @V3M5015 00563100
- BZ SCNCU NO, GET RCU TABLE @V3M5015 00563200
- SPACE 1 00563300
- L R7,RCUPRIME GET PRIMARY CU ADDRESS @V3M5015 00563400
- SPACE 1 00563500
- SCNCU EQU * SCAN THRU OFFSETS IN THIS CUB @V3M5015 00563600
- LA R7,RCUDVTBL GET RCU TABLE @V305798 00564000
- LA R3,30(,R7) END OF BXLE @V3M5015 00565000
- LA R2,2 INCREMENT @V305798 00567000
- LR R4,R7 SAVE ADDRESS OF CONTROL UNIT @V3M5015 00567500
- PRTRNDV EQU * @V305798 00568000
- LH R8,0(,R7) OFFSET TO RDEVBLOK @V305798 00569000
- LTR R8,R8 IS THERE AN OFFSET VALUE @VM03116 00570000
- BM PRTRDVI NO, GET NEXT OFFSET VALUE @VM03116 00571000
- SLL R8,3 OFFSET IN BYTES @V305798 00572000
- A R8,ARIODV GET ACTUAL ADDR @V305798 00573000
- CLI RDEVTYPC,CLASGRAF IN 3270 FAMILY ? @V305798 00574000
- BNE PRTRDVI NO, KEEP LOOKING @V305798 00575000
- CLI RDEVTYPE,TYP3284 IS IT A PRINTER ? @V305798 00576000
- BNE PRTRDVI NO, PRESS ON @V305798 00577000
- TM RDEVSTAT,RDEVDED+RDEVDISA AVAILABLE ? @V305798 00578000
- BNZ PRTRDVI NO, LETS FIND ANOTHER @V305798 00579000
- TM RDEVFLAG,RDEVENAB IS IT ENABLED ? @V305798 00580000
- BZ PRTRDVI NOPE, GOT TO FIND ONE @V305798 00581000
- TM RDEVTFLG,RDEVCTL BOOKED UP ? @V305798 00582000
- BZ PFCOPYDF NO, TIME TO MOVE IN @V305798 00583000
- PRTRDVI EQU * @V305798 00584000
- BXLE R7,R2,PRTRNDV LOOP THRU RDEVBLOKS @V305798 00585000
- CL R4,ARIOCH END OF CONTROL BLOCKS ? @V3M5015 00585100
- BNL REJECTV YES, NONE AVAILABLE @V3M5015 00585200
- TM RCUTYPE-RCUBLOK(R4),RCUSUB SUB CONTRL UNIT? @V3M5015 00585300
- BO REJECTV YES, ALREADY PROCESSED @V3M5015 00585400
- LR R4,R7 SAVE ADDRESS OF NEW CONTROL UNIT @V3M5015 00585500
- TM RCUTYPE-RCUBLOK(R4),RCUSUB NEW SUB CNTRL UNIT? @V3M5015 00585600
- BO SCNCU YES, MUST SCAN THIS ONE @V3M5015 00585700
- DROP R7 @V3M5015 00585800
- B REJECTV NONE AVAILABLE @V305798 00586000
- PFSIZ LH R1,2(R2) GET PF DATA SIZE @V200730 00587000
- C R1,F8 HRC001DK 00587040
- BNE CHKRECAL HRC001DK 00587080
- CLC =C'RETRIEVE',0(R4) IS IT RETRIEVE HRC001DK 00587120
- BE DORECAL HRC001DK 00587160
- CHKRECAL EQU * HRC001DK 00587200
- C R1,F6 IS IT 'RECALL' ? HRC001DK 00587240
- BNE DCC002 IMPOSSIBLE ... HRC001DK 00587280
- CLC =C'RECALL',0(R4) PERHAPS ... HRC001DK 00587320
- BNE DCC002 DEFINITELY NOT HRC001DK 00587360
- DORECAL EQU * HRC001DK 00587400
- XC BUFFER(BUFINLTH+6),BUFFER CLEAR BUFFER DATA HRC001DK 00587440
- ICM R14,15,VMHRCALL RECALL LAST LINE HRC001DK 00587480
- BZ DCC002 NOBODY HOME ? - VANILLA HRC001DK 00587520
- MVC BUFFER(130),1(R14) MOVE LAST LINE TO BUFFERHRC001DK 00587560
- MVC 1(130,R14),130+1(R14) AND HERE WE GO ROUNHRC001DK 00587600
- MVC 130+1(130,R14),130+130+1(R14) THE HRC001DK 00587640
- MVC 130+130+1(130,R14),BUFFER MULBERRY BUSHHRC001DK 00587680
- LR R4,R3 BUFFER ADDRESS TO R4 HRC001DK 00587720
- L R3,=F'130' SIZE OF MSG FOR WRITE HRC001DK 00587760
- OI VMMLVL2,X'01' INDICATE RECALL FUNCTIONHRC001DK 00587800
- B BLD77IDS WRITE TO INPUT AREA HRC001DK 00587840
- DCC002 EQU * VANILLA ESCAPE HATCH HRC001DK 00587880
- XC BUFFER(BUFINLTH+6),BUFFER CLEAR BUFFER DATA @V200730 00588000
- BCTR R1,R0 LESS 1 FOR EXECUTE @V200730 00589000
- EX R1,MVCRT MOVE FUNCTION DATA TO BUFFER @V200730 00590000
- LA R1,1(R1) RESTORE COUNT @V200730 00591000
- LR R4,R3 BUFFER ADDRESS TO R4 @V200730 00592000
- LR R3,R1 DATA COUNT TO R3 @V200730 00593000
- TM 0(R2),X'80' IMMED EXECUTION ?? @V200730 00594000
- BO DATACNT YES, CONT @V200730 00595000
- LR R2,R4 BUFFER DATA START @V200730 00596000
- NXTIDS CLI 0(R2),X'15' IS IT A CR ?? @V200730 00597000
- BNE NOTLCR NO, CONT @V200730 00598000
- IC R0,VMTLEND GET LINEND CHARACTER @V200830 00599000
- STC R0,0(R2) SET FOR DISPLAY @V200730 00600000
- NOTLCR LA R2,1(R2) NEXT POSITION @V200730 00601000
- BCT R1,NXTIDS LOOP FOR ALL DATA @V200730 00602000
- L R14,=A(DMKTBLGL) ADDR OF GRAF TRANS TABLE @VA08002 00603200
- MVC X'05'(1,R14),VMGRFTAB SET LOGICAL TAB @V60A6B6 00603300
- BCTR R3,R0 MINUS 1 FOR EXECUTE @V200730 00604000
- EX R3,TRIDS TRANSLATE DATA @V200730 00605000
- MVI X'05'(R14),X6A RESTORE TAB CHARACTER @V60A6B6 00605100
- LA R1,1(R3,R4) POINT PAST LAST BYTE @V200730 00606000
- MVI 0(R1),X'13' PUT CURSOR AT END @V200730 00607000
- LA R3,2(R3) COUNT WITH CURSOR @V200730 00608000
- B BLD77IDS DISPLAY IN INPUT AREA @V200730 00609000
- SPACE 00610000
- PFREJ XC BUFFER(BUFINLTH+6),BUFFER CLEAR BUFFER @V200730 00611000
- MVC BUFFER(RJL),PFRJM REJECT MESSAGE @V200730 00612000
- SRL R1,3 PF NUMBER BINARY @V200730 00613000
- LA R1,1(R1) .. @V200730 00614000
- CALL DMKCVTBD CONVERT @V200730 00615000
- STH R1,BUFFER+4 SET PF NUMBER @V200730 00616000
- LR R4,R3 BUFFER ADDRESS TO R4 @V200730 00617000
- LA R3,RJL SIZE OF MSG FOR WRITE @V200730 00618000
- B BLD77IDS WRITE IN INPUT AREA @V200730 00619000
- SPACE 00620000
- PFRJM DC C'* PFNN UNDEFINED' REJECT MESSAGE @V200730 00621000
- RJL EQU *-PFRJM @V200730 00622000
- SPACE 00623000
- PFTAB SLR R0,R0 CLEAR THE PARAMETER REGISTER @V60A6B6 00624000
- IC R0,RDEVGRTY LOAD DISPLAY SCREEN INDEX @V60A6B6 00625000
- LR R1,R3 SET ADDRESS OF OUTPUT AREA @V60A6B6 00626000
- CALL DMKGRTAB GO FIGURE OUT WHAT TO DO. 00627000
- L R1,IOBCAW LOAD ADDRESS OF CCW BUFFER @V60A6B6 00628000
- LA R4,TAB77CCW GET ADDRESS OF MODEL CCWS @V60A6B6 00629000
- MVC 0(16,R1),0(R4) MOVE THEM INTO THE BUFFER @V60A6B6 00630000
- STH R2,14(,R1) AND PUT IN DATA COUNT @V60A6B6 00631000
- STCM R3,7,9(R1) SET DATA ADDRESS INTO THE CCW @V60A6B6 00632000
- B BLDRDEX GO SET RETURN ADDR AND START I/O @V60A6B6 00633000
- SPACE 2 00634000
- MVCRT MVC BUFFER(*-*),0(R4) EXECUTED MOVE PF DATA @V200730 00693000
- TRIDS TR 0(0,R4),0(R14) EXECUTED TRANSLATE @V407508 00694100
- SPACE 00695000
- EJECT 00696000
- PFCOPY EQU * @V305798 00697000
- LR R3,R14 SAVE RDEVBLOK ADDR ACROSS CALLS @V407508 00697100
- LA R0,3 SIZE TO CONVERT @V305798 00698000
- LA R1,5(,R4) DATA TO CONVERT @V305798 00699000
- CALL DMKCVTHB CONVERT DEVICE ADDR @V305798 00700000
- BNZ REJECT BAD ADDRESS @V305798 00701000
- CALL DMKSCNRU GET RDEVBLOK ADDR @V305798 00702000
- BNZ REJECTR BAD ADDR @V407508 00703100
- CLI RDEVTYPC,CLASGRAF 3270 DEVICE ? @V305798 00704000
- BNE REJECTR NO, REJECT @V407508 00705100
- CLI RDEVTYPE,TYP3284 3284 PRINTER ? @V305798 00706000
- BNE REJECTR NO, REJECT @V407508 00707100
- TM RDEVSTAT,RDEVDED+RDEVDISA AVAILABLE ? @V305798 00708000
- BNZ REJECTR NO, REJECT @V407508 00709100
- TM RDEVFLAG,RDEVENAB DEVICE MUST BE ENABLED @V305798 00710000
- BZ REJECTR NO, REJECT @V407508 00711100
- TM RDEVTFLG,RDEVCTL IS IT BUSY NOW ?? @V305798 00712000
- BO REJECTR YES, REJECT @V407508 00713100
- LR R14,R3 RESTORE RDEVBLOK ADDR AFTER CALLS@V407508 00713200
- PFCOPYDF EQU * @V305798 00714000
- OI IOBSPEC,IOBSENS SET SENSE COMMAND FLAG @VM03244 00715000
- L R1,IOBCAW GET CCW ADDRESS @VM03244 00716000
- MVC 0(8,R1),SNSCCW GET SENSE CCW @VM03244 00717000
- LA R2,8(,R1) GET ADDRESS OF DATA AREA @VM03244 00718000
- STCM R2,7,1(R1) SAVE SENSE DATA AREA ADDRESS @VM03244 00719000
- ST R14,20(,R1) SAVE ADDRESS OF DISPLAY RDEVBLOK @V407508 00720100
- LA R2,COPYSNS GET RETURN ADDRESS @VM03244 00721000
- OI RDEVTFLG,RDEVCTL MARK PRINTER BUSY @VM03244 00722000
- BAL R3,BLDTRQ GET A TRQBLOK (IF NECESSARY) @VM03244 00723000
- ST R2,TRQBCRT SAVE RETURN ADDRESS @VM03244 00724000
- L R1,IOBCAW GET ADDRESS OF CCW STRING @VM03244 00725000
- B CALLIOS GO DO SENSE OPERATION @VM03244 00726000
- SPACE 2 00727000
- COPYSNS EQU * RETURN HERE FROM SENSE OPERATION @VM03244 00728000
- NI RDEVTFLG,X'FF'-RDEVCTL CLEAR BUSY FLAG @VM03244 00729000
- NI IOBSPEC,X'FF'-IOBSENS CLEAR SENSE COMMAND FLAG @VM03244 00730000
- L R1,IOBCAW GET ADDRESS OF CCW STRING @VM03244 00731000
- LR R4,R8 GET ADDRESS OF PRINTER'S RDEVBLOK@VM03244 00732000
- L R8,20(,R1) GET DISPLAY'S RDEVBLOK ADDRESS @VM03244 00733000
- BAL R3,BLDTRQ GET TRQBLOK FOR DISPLAY @VM03244 00734000
- TM 8(R1),INTREQ IS PRNTER READY @VM03244 00735000
- BO REJECT NO, WRITE 'NOT ACCEPTED' MSG @VM03244 00736000
- OI RDEVTFLG-RDEVBLOK(R4),RDEVCTL MAKE PRINTER BUSY @VM03244 00737000
- BAL R3,FRETRD GET RID OF READ BUFFER @V407508 00738100
- SLR R2,R2 CLEAR INDEX REGISTER @V60A6B6 00739100
- IC R2,RDEVGRTY GET DISPLAY SCREEN INDEX VALUE @V60A6B6 00739200
- L R0,COPYDWSZ(R2) AND APPROPRIATE BUFFER SIZE. @V60A6B6 00739300
- ST R0,IOBMISC2 SAVE THE SIZE OF COPY BUFFER @V60A6B6 00739400
- CALL DMKFREE @V305798 00740000
- MVC 0(2*8,R1),RDCOPY SET READ CCWS @V305798 00741000
- OI IOBSPEC,IOBCOPY SET COPY REQUEST FLAG @VM03094 00742000
- ST R8,20(,R1) SAVE DISPLAY'S RDEVBLOK ADDRESS @VM03094 00743000
- LA R2,28(,R1) ADDRESS OF DATA AREA FOR READ @VM03116 00744000
- STCM R2,7,9(R1) SET CCW ADDR @V305798 00745000
- ST R4,16(,R1) SAVE PRINTER RDEVBLOK @V305798 00746000
- LA R2,COPYRD RETURN ADDR @V305798 00747000
- ST R2,TRQBCRT SET RETURN ADDR @V305798 00748000
- B CALLIOS READ FROM 3277 SCREEN @V305798 00749000
- SPACE 2 00750000
- COPYRD L R4,IOBCAW GET BUFFER ADDR @V305798 00751000
- L R3,16(,R4) GET PRINTER'S RDEVBLOK ADDRESS @V407508 00752100
- LA R7,3848 MAXIMUM LENGTH OF READ DATA @VM03244 00753000
- SH R7,IOBCSW+6 GET ACTUAL LENGTH OF DATA @VM03244 00754000
- STH R7,24(,R4) SAVE LENGTH OF READ DATA @VM03244 00755000
- NI IOBSPEC,X'FF'-IOBCOPY CLEAR COPY REQUEST FLAG @VM03244 00756000
- USING CPEXBLOK,R7 SETUP ADDRESSABILITY FOR CPEXBLOK@VM03244 00757000
- LA R0,CPEXSIZE CPEXBLOK SIZE @VM03244 00758000
- CALL DMKFREE GET STORAGE FOR BLOCK @VM03244 00759000
- L R2,IOBMISC2 KEEP COPY BUFFER SIZE HERE @V60A6B6 00759100
- LR R7,R1 ADDRESSING @VM03244 00760000
- STM R0,R15,CPEXR0 SAVE REQISTERS IN CPEXBLOK @VM03244 00761000
- LA R15,COPYWT GET RETURN ADDRESS @VM03244 00762000
- ST R15,CPEXADD SAVE RETURN ADDRESS @VM03244 00763000
- CALL DMKSTKMP STACK CPEXBLOK FOR CURRENT PROC @V407508 00764100
- B CPNATMR RESET USER'S STATUS @VM03244 00765000
- SPACE 2 00766000
- COPYWT EQU * WRITE READ DATA TO PRINTER @VM03244 00767000
- * ENTERED FROM CPEXBLOK UNSTACKED ON THE I/O PROCESSOR 00767100
- LR R8,R3 GET ADDR OF PRINTER'S RDEVBLOK @V407508 00768100
- BAL R3,BLDIOB GET AN IOBLOK @VM03244 00769000
- BAL R3,BLDTRQ GET PRINTER'S TRQBLOK @VM03244 00770000
- MVC 0(2*8,R4),WTCOPY SET UP WRITE CCWS @VM03244 00771000
- OI IOBSPEC,IOBCOPY SET COPY REQUEST INDICATOR @VM03244 00772000
- ST R2,IOBMISC2 SAVE SIZE OF COPY BUFFER @V60A6B6 00772100
- LA R2,27(,R4) GET ADDRESS OF DATA AREA @VM03244 00773000
- STCM R2,7,9(R4) SET CCW ADDRESS @VM03244 00774000
- LH R3,24(,R4) GET LENGTH OF READ DATA @VM03244 00775000
- S R3,=F'22' SUBSTRACT LENGTH OF STATUS AREA @VM03116 00776000
- STH R3,14(,R4) CHANGE LENGTH OF WRITE CCW @VM03116 00781000
- MVC 0(4,R2),CPY77D COPY CONTROL CHARS @V305798 00782000
- LR R1,R4 CCW ADDRESS @V305798 00783000
- LA R2,COPYEND RETURN ADDR @V305798 00784000
- ST R2,TRQBCRT SAVE IN TRQBLOK @V305798 00785000
- B CALLIOS START YOUR PRINTERS... @V305798 00786000
- SPACE 2 00787000
- COPYEND L R0,IOBMISC2 GET THE SIZE OF THE COPY BUFFER @V60A6B6 00788000
- L R1,IOBCAW BUFFER ADDR @V305798 00790000
- CALL DMKFRET GET RID OF IT @V305798 00791000
- NI IOBSPEC,X'FF'-IOBCOPY CLEAR COPY REQUEST FLAG @VM03094 00792000
- BAL R3,FRETTRQ RELEASE TRQBLOK @VM03152 00793000
- B NOCTL ALL DONE WITH PRINTER @VM03244 00794000
- EJECT 00795000
- TESTREQ LA R3,BUFFER+7 DATA START @V200730 00796000
- LR R4,R3 SAVE START ADDRESS @V200730 00797000
- LA R1,BUFINLTH SET MAX COUNT @V200730 00798000
- TREQ0 CLI 0(R3),X'00' AT END OF BUFFER ?? @V200730 00799000
- BE FREQ0 YES, CONT @V200730 00800000
- LA R3,1(R3) BUMP TO NEXT POSITION @V200730 00801000
- BCT R1,TREQ0 LOOP SEARCH FOR END @V200730 00802000
- FREQ0 SR R3,R4 FORM COUNT OF DATA @V200730 00803000
- LTR R0,R3 ANY READ ?? @V200730 00804000
- BZ RDEXIT NO, GET OUT @V200730 00805000
- LR R1,R4 DATA ADDRESS @V200730 00806000
- SLR R2,R2 CLEAR PARM REG HRC101DK 00807122
- TM VMMLVL2,VMMHLITE HILIGHT REQUESTED? HRC101DK 00807124
- BZ CALLQCN1 NO, CONTINUE CALL HRC101DK 00807126
- L R2,=A(HILIGHT) SET HILIGHT PARM HRC101DK 00807128
- CALLQCN1 EQU * HRC101DK 00807130
- O R2,=A(NOTRESP) SIGNAL NOT A COMMAND RESPONSE HRC101DK 00807132
- CALL DMKQCNWT,PARM=NORET(,R2),AFFINITY @V60C2B8 00807140
- B RDEXIT FINISHED @V200730 00808000
- EJECT 00809000
- RDMINT L R3,IOBMISC GET BUFFER ADDRESS @V200730 00810000
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00811000
- BNZ RD3277 YES @V60A6B6 00812000
- TM BUFFER+2,CANCEL 3066 CANCEL ?? @V200730 00813000
- BO CNCLKEY YES @V200730 00814000
- CLC BUFFER(2),=AL1(33,00) DID CURSOR MOVE ?? @V200730 00815000
- BNE SETBUF YES, SET DATA ADDRESS @V200730 00816000
- MVI BUFFER+6,X'00' MARK BUFFER NULL DATA @V200730 00817000
- B SETBUF SET BUFFER ADDRESS @V200730 00818000
- SPACE 00819000
- RD3277 EQU * REMOVE COMP. CHARS. FROM BUFFER @VM03043 00820000
- LA R0,BUFAPL GET SIZE OF APL BUFFER @VM03094 00821000
- L R1,=A(DMKTBMZI) TRANSLATE COMPOUND CHARACTERS @VM03172 00822000
- TM RDEVTMCD,RDEVTEXT 3270 TEXT CHARACTER SET? @V387398 00822200
- BZ RDTRANS NO -> TRANSLATE TABLE ALL SET @V387398 00822400
- L R1,=A(DMKTBMTI) TRANSLATE TEXT COMPOUND CHAR. @V387398 00822600
- RDTRANS EQU * @V387398 00822800
- TRANS 7,1,OPT=(BRING,DEFER,SYSTEM),AFFINITY GET TABLE @V407508 00823100
- LR R2,R3 RESTORE START OF BUFFER POINTER @VM03172 00824000
- LR R1,R3 SAVE START OF BUFFER PTR @V387398 00825000
- BAL R14,FAKESUB REMOVE THE FAKE ATTRIBUTE CHAR. @VM03094 00829000
- SR R2,R1 GET NUMBER OF CHARS. IN BUFFER @V387398 00830000
- LA R0,BUFSIZE GET NORMAL READ BUFFER @VM03043 00839000
- CALL DMKFREE GET STORAGE FOR BUFFER @VM03043 00840000
- XC 0(BUFNORM,R1),0(R1) CLEAR READ BUFFER @VM03043 00841000
- LR R3,R1 SAVE NORMAL BUFFER ADDRESS @VM03043 00842000
- L R1,IOBMISC GET APL BUFFER ADDRESS @VM03043 00843000
- LA R14,BUFNORM GET MAX LENGTH OF DATA @VM03110 00844000
- CLR R14,R2 IS LENGTH GREATER THAN MAX. @VM03110 00845000
- BNL NOTMAX NO, BYPASS GETTING MAX. @VA05459 00846000
- LR R2,R14 @VA05976 00846100
- NOTMAX LTR R2,R2 TEST FOR ZERO LENGTH @VA05976 00846200
- BZ ZEROLNG @VA05976 00846300
- BCTR R2,R0 DECREMENT BY ONE @VA05976 00846400
- EX R2,READBUF MOVE DATA INTO NORMAL BUFFER @VM03043 00849000
- ZEROLNG DS 0H NO NEED TO MOVE DATA IF LENGTH=0 @VM13277 00849500
- ST R3,IOBMISC SAVE NORMAL BUFFER ADDRESS @VM03043 00850000
- LA R0,2*BUFSIZE GET SIZE OF APL BUFFER @VM03043 00851000
- CALL DMKFRET RELEASE APL BUFFER STORAGE @VM03043 00852000
- NI TRQBFLAG,X'FF'-(CRTAPL+CRTCARD) RESET CARD INPUT@VM03094 00854000
- L R1,=A(DMKGRTAC) LOAD TABLE ENTRY COUNT ADDRESS HRC029DK 00855120
- LH R0,0(R1) COUNT OF ENTRIES IN AID TABLE HRC029DK 00855140
- L R1,=A(DMKGRTAI) ADDRESS OF AID DECODE TABLE @V60A6B6 00855200
- TM RDEVSTA3,RDEVFULL In DIAG58 full screen? HRC062DK 00855210
- BZ KEYCLC NO HRC058DK 00855220
- TM VMRSTAT,VMLOGON USER NOT YET LOGGED ON? HRC059DK 00855224
- BO KEYCLCFS Y, LET DMKGRF HANDLE HRC059DK 00855226
- CLI BUFFER,X'6C' PA1 KEY? HRC058DK 00855230
- BE CLD58PA1 Y, SET UP FOR IT HRC058DK 00855240
- BAL R3,FRETRD FRET BUFFERS HRC058DK 00855250
- PASSATTN EQU * HRC061DK 00855253
- CALL DMKCFMAT POST ATTN INTRPT TO V.M. HRC059DK 00855260
- BZ NOCTL EXIT IF ATTN IS SET OK HRC059DK 00855280
- NI RDEVSTA3,255-RDEVFULL Else exit full screen HRC062DK 00855285
- B CTLACTV And let CP handle attn HRC061DK 00855290
- SPACE 00855300
- KEYCLCFS EQU * NO ATTN SET, OR RECONNECTHRC059DK 00855500
- NI RDEVSTA3,255-RDEVFULL Exit full screen mode HRC062DK 00855510
- KEYCLC CLC BUFFER,0(R1) THIS KEY MATCH ?? @V200730 00856000
- BE KEYPROC YES, OK @V200730 00857000
- LA R1,2(R1) INDEX TO NEXT ENTRY @V200730 00858000
- BCT R0,KEYCLC LOOP THROUGH TABLE 00859000
- RDEXIT BAL R3,FRETRD FRET READ BUFFERS @V407508 00860100
- B CPNATMR SET RETURN AND TEST FOR STATE @V200730 00861000
- SPACE 00862000
- KEYPROC SR R2,R2 CLEAR @V200730 00863000
- IC R2,1(R1) GET ADCON INDEX @V200730 00864000
- L R2,KEYTBLP(R2) GET PROCESSING ADDRESS @V200730 00865000
- BR R2 GO DO IT @V200730 00866000
- SPACE 00867000
- CRDREAD OI TRQBFLAG,CRTCARD DATA FROM CARD READER 00868000
- DATA77 ICM R1,15,VMHRCALL GET A(RECALL BUFFER) HRC001DK 00869030
- BNZ DCC001 GOTTEN ? - GOOD HRC001DK 00869060
- TM VMRSTAT,VMLOGOFF IS HE LOGGING OFF ? HRC001DK 00869090
- BO DCC013 YES - FORGET IT HRC001DK 00869120
- LA R0,(130*3+8)/8 SIZE OF RECALL BUFFER HRC001DK 00869150
- CALL DMKFREE GET HIM A RECALL BUFFER HRC001DK 00869180
- ST R1,VMHRCALL AND REMEMBER WHERE IT IS HRC001DK 00869210
- MVI 0(R1),0 CLEAR OPTION BYTE HRC001DK 00869240
- MVC 1(130,R1),0(R1) CLEAR HRC001DK 00869270
- MVC 130+1(130,R1),0(R1) THE HRC001DK 00869300
- MVC 130+130+1(130,R1),0(R1) RECALL BUFFER HRC001DK 00869330
- DCC001 TM 0(R1),INHIBIT IS INHIBIT ON ? HRC001DK 00869360
- BO DCC012 YES, WE DONT KEEP PASSWOHRC001DK 00869390
- CLI BUFFER+6,0 NULL LINE ENTERED ? HRC001DK 00869420
- BE DCC012 WE DONT KEEP THOSE EITHEHRC001DK 00869450
- MVC 130+130+1(130,R1),130+1(R1) SHUFFLE LAST 2 LINEHRC001DK 00869480
- MVC 130+1(130,R1),1(R1) BACK A BIT HRC001DK 00869510
- MVC 1(130,R1),BUFFER+6 AND REMEMBER THE NEW ONEHRC001DK 00869540
- DCC012 MVI 0(R1),0 CLEAR OLD OPTION BYTE HRC001DK 00869570
- DCC013 CLI BUFFER+6,X'00' ANY DATA ? @V200730 HRC001DK 00869600
- BNE SETBUF YES, CONT @V200730 00870000
- TM RDEVTFLG,RDEVREAD DATA FROM READ @V200730 00873000
- BZ SETBUF NO, CONT @V200730 00874000
- L R1,RDEVGRTB GET ADDRESS OF GRTBLOK @V60A6B6 00874100
- CLC BUFFER+1(2),GRTCLRIA-GRTBLOK(R1) CURSOR BACK 1? @V60A6B6 00874200
- BNE SETBUF NO, CONT @V60A6B6 00874300
- LA R2,4 SINGLE ATTN RETURN WITH NULL DATA@V200730 00875000
- LA R3,0 NO DATA @V200730 00876000
- B RDRTN RETURN DATA @V200730 00877000
- SETBUF LA R3,BUFFER+6 DATA ADDRESS @V200730 00878000
- LR R4,R3 SAVE START ADDRESS @V200730 00879000
- LA R1,BUFINLTH MAX BUFFER INPUT ALLOWED @V200730 00880000
- IC R2,VMGRFTAB LOAD LOGICAL TAB CHARACTER @V60A6B6 00880100
- ZEROCHAR CLI 0(R3),X'00' LOOK FOR END CHAR @V200730 00881000
- BE ZEROFND BRANCH IF FOUND (X'00') @V200730 00882000
- CLM R2,B'0001',0(R3) IS THIS A LOGICAL TAB ? @V60A6B6 00883000
- BNE *+8 NO, CONT 00884000
- MVI 0(R3),X'05' REPLACE WITH REAL TAB 00885000
- CLI 0(R3),X'11' SBA FROM CARD READER ?? 00886000
- BNE NXTBUF NO, CONT 00887000
- EX R1,SHFTBUF SHIFT OUT THE BUFFER ADDRESS 00888000
- S R1,F3 SUBSTRACT THREE FROM BUFFER COUNT@VM03040 00889000
- BNP ZEROFND IF ZERO, GET OUT @VM03040 00890000
- B ZEROCHAR CHECK THIS POSN AGAIN 00891000
- NXTBUF LA R3,1(R3) NEXT BUFFERPOSN 00892000
- BCT R1,ZEROCHAR KEEP LOOKING FOR THAT ZERO @V200730 00893000
- ZEROFND SLR R3,R4 GET BYTE COUNT @V200730 00894000
- L R1,IOBMISC GET BUFFER ADDRESS @V200730 00895000
- EX R3,MOVEDATA SHIFT DATA IN BUFFER @V200730 00896000
- LR R4,R1 SET R4 TO BUFFER DATA @V200730 00897000
- DATACNT ST R3,BUFCNT-BUFFER(R4) SET COUNT IN BUFFER @V200730 00898000
- TM RDEVTFLG,RDEVREAD WAS IT A READ STATE ?? @V200730 00899000
- BO RDATA YES @V200730 00900000
- TM TRQBFLAG,CRTCARD DATA FROM CARD READER ?? 00901000
- BO EDNULL YES, DONT ACCEPT IT !! 00902000
- LTR R3,R3 ANY DATA ENTERED ?? @V200730 00903000
- BNP NULLDATA NO @V200730 00904000
- LA R0,CONTSIZE SMALL CONTASK SIZE @V200830 00905000
- CALL DMKFREE GET ONE FOR EDIT FUNCTION @V200830 00906000
- LR R6,R1 CONTASK ADDRESSING @V200830 00907000
- XC CONTASK(CONTSIZE*8),CONTASK CLEAR BLOK @V200830 00908000
- MVI CONPARM,EDIT+UCASE SET PARMS FOR EDIT @V200830 00909000
- ST R4,CONADDR DATA ADDRESS FOR EDIT @V200830 00910000
- STH R3,CONCNT DATA COUNT FOR EDIT @V200830 00911000
- TM VMRSTAT,VMLOGON+VMCFWAIT LOGON OR SLEEPING ?? @V200730 00912000
- BNZ EDATA YES, EDIT DATA @V200730 00913000
- TM VMMLEVEL,VMMCPENV CP ENVIR ?? @V200730 00914000
- BZ VIRTBUFF NO, VIRTUAL BUFFER @V200730 00915000
- EDATA EQU * EDIT FUNCTION @V305798 00916000
- TM RDEVTMCD,RDEVAPLP+RDEVTEXT TRANS INDICATED? @V387398 00917000
- BNZ EDTAPL YES, BYPASS EDIT FUNCTION @V387398 00918000
- CALL DMKCNSED EDIT INPUT DATA @V305798 00919000
- EDTAPL EQU * BYPASS EDIT FUNCTION @V305798 00920000
- LR R1,R6 CONTASK ADDRESS @V200830 00921000
- LA R0,CONTSIZE SMALL CONTASK SIZE @V200830 00922000
- CALL DMKFRET ALL DONE WITH DUMMY CONTASK @V200830 00923000
- ST R3,BUFCNT-BUFFER(,R4) SAVE EDITED COUNT @VM08588 00924000
- LTR R3,R3 DID EDIT RESULT IN ZERO LENGTH ? @V200730 00925000
- BP TESTCF TEST FOR CONSOLE FUNCTION @V200830 00926000
- EDNULL BAL R3,FRETRD YES, FRET BUFFERS @V407508 00927100
- LA R1,NOCTL RETURN PROCESSING @V200730 00928000
- ST R1,TRQBCRT SET RETURN @V200730 00929000
- B GRFCRD CLEAR DATA @V200730 00930000
- SPACE 00931000
- TESTCF TM VMOSTAT,VMCF EXECUTING CONS FUNC NOW ?? @V200730 00932000
- BO REJECT YES, CANT HANDLE THAT @V200730 00933000
- CLC BUFCNT-BUFFER(4,R4),F0 CR CP ENTERED? @VA02350 00934000
- BE CALLQCN YES, VMCF AND VMCFWAIT OFF @VA02992 00935000
- OI VMOSTAT,VMCF INDICATE CONSOLE FUNCTION @VA02350 00936000
- OI VMRSTAT,VMCFWAIT MAKE USER NON-DISPATCHABLE @VA02992 00937000
- CALLQCN LR R1,R4 SET DATA ADDRESS @VA02992 00938000
- LR R0,R3 SET DATA COUNT @V200730 00939000
- SLR R2,R2 CLEAR PARM REG HRC101DK 00940122
- TM VMMLVL2,VMMHLITE HILIGHT REQUEST? HRC101DK 00940124
- BZ CALLQCN2 NO, CONTINUE HRC101DK 00940126
- L R2,=A(HILIGHT) SET PARM HRC101DK 00940128
- CALLQCN2 EQU * HRC101DK 00940130
- O R2,=A(NOTRESP) SIGNAL NOT A COMMAND RESPONSE HRC101DK 00940132
- CALL DMKQCNWT,PARM=NORET(,R2),AFFINITY @V60C2B8 00940140
- LA R1,GRFCFM RETURN PROCESSING @V200730 00941000
- ST R1,TRQBCRT SET RETURN @V200730 00942000
- SETCLR BAL R3,FRETCCW FRET READ CCWS @V407508 00943100
- GRFCRD TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00944000
- BNZ BLD77CRD CLEAR READ AREA @V60A6B6 00945000
- B BLD66CRD 3066 CLEAR READ AREA @V200730 00946000
- SPACE 2 00947000
- NULLDATA BAL R3,FRETRD FRET BUFFERS @V407508 00948100
- TM VMRSTAT,VMLOGON LOGGING ON NOW ?? @V200730 00949000
- BO CFMBK YES @V200730 00950000
- TM RDEVTFLG,RDEVRUN IN A RUNNING STATE ?? @V200730 00951000
- BO POSTINT YES, SET INT @V200730 00952000
- TM RDEVTFLG,RDEVMORE IS CRT IN A 'MORE' STATE @V200730 00953000
- BZ CRTMORE NO, HOLDING GOING TO MORE @V200730 00954000
- CRTHOLD EQU * @VA08898 00954400
- BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 00954800
- MVI RDEVTFLG,RDEVHOLD+RDEVCTL HOLD & CTL @VA08898 00955200
- LA R1,NOCTL RETURN PROCESSING @V200730 00957000
- ST R1,TRQBCRT SET RETURN PROCESSING @V200730 00958000
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00959000
- BNZ BLD77HLD 3270 HOLDING @V60A6B6 00960000
- B BLD66HLD 3066 HOLDING @V200730 00961000
- SPACE 2 00962000
- CRTMORE BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00963100
- MVI RDEVTFLG,RDEVMORE+RDEVCTL MORE... AND CTL @V200730 00964000
- LA R1,SETMOR RETURN PROCESSING ADDRESS @V200730 00965000
- ST R1,TRQBCRT SET RETRUN PROCESSING @V200730 00966000
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00967000
- BNZ BLD77MOR 3270 MORE @V60A6B6 00968000
- B BLD66MOR 3066 MORE @V200730 00969000
- SPACE 2 00970000
- GRFCFM L R4,IOBMISC GET DATA BUFFER @V200730 00971000
- L R3,BUFCNT-BUFFER(R4) GET DATA COUNT @V200730 00972000
- LTR R3,R3 TEST FOR COMMAND OR CP READ @V200730 00973000
- BNP GRFBK ZERO, DO CP READ @V200730 00974000
- LA R0,CPEXSIZE GET A CPEXBLOK @V200730 00975000
- CALL DMKFREE .. @V200730 00976000
- USING CPEXBLOK,R7 SETUP ADDRESSABILITY FOR CPEXBLOK@VM03152 00977000
- LR R7,R1 CPEXBLOK ADDRESSING @V200730 00978000
- LR R1,R4 BUFFER ADDRESS IN R1 @V200730 00979000
- LR R0,R3 BUFFER DATA COUNT IN R0 @V200730 00980000
- STM R0,R15,CPEXR0 SAVE REGS @V200730 00981000
- LA R15,CALLCFM CPEXBLOK EXECUTE ADDRESS @V200730 00982000
- ST R15,CPEXADD SET ADDRESS @V200730 00983000
- LR R1,R7 CPEXBLOK ADDRESS @V200730 00984000
- CALL DMKSTKCP STACK CPEXBLOK @V200730 00985000
- B NOCTL RETURN @V200730 00986000
- SPACE 00987000
- CALLCFM CALL DMKCFMEN EXECUTE CONSOLE FUNCTION @V200730 00988000
- GOTO DMKDSPCH RETURN TO DISPATCH @V200730 00989000
- EJECT 00990000
- GRFBK LA R0,BUFSIZE SIZE OF DATA BUFFER @V200730 00991000
- LR R1,R4 BUFFER ADDRESS @V200730 00992000
- CALL DMKFRET FRET IT @V200730 00993000
- CALL DMKCFMBK TO CP READ @V200730 00994000
- B NOTCTL RETURN @V407508 00995100
- SPACE 00996000
- POSTINT TM VMMLEVEL,VMMCPENV CP ENVIR ?? @V200730 00997000
- BO CFMBK CALL FOR CONSOLE FUNC MODE @V200730 00998000
- TM VMRSTAT,VMCFWAIT SLEEPING ?? @V200730 00999000
- BO CFMBK YES, WAKE UP @V200730 01000000
- CALL DMKCFMAT CALL TO POST ATTN INT FOR MACH @V200730 01001000
- BZ NOCTL ATTN POSTED, CONT @V200730 01002000
- CFMBK CALL DMKCFMBK CALL TO PLACE IN CONS FUNC MODE @V200730 01003000
- B NOTCTL CONTINUE @V407508 01004100
- SPACE 01005000
- FRETRD LA R0,BUFSIZE DATA BUFFER SIZE @V200730 01006000
- TM TRQBFLAG,CRTAPL IS APL BUFFER ALLOCATED FLAG ON @VM03043 01007000
- BZ NOAPLBUF NO, BYPASS UPDATING SIZE OF BUF. @VM03043 01008000
- LA R0,2*BUFSIZE GET APL READ BUFFER SIZE @VM03153 01009000
- NOAPLBUF EQU * ... @VM03043 01010000
- L R1,IOBMISC DATA BUFFER ADDRESS @V200730 01011000
- LTR R1,R1 ANY BUFFER ?? @V200730 01012000
- BNP FRETCCW NO, CONT @V200730 01013000
- CALL DMKFRET FRET IT @V200730 01014000
- SR R0,R0 ZERO REG @V200730 01015000
- ST R0,IOBMISC CLEAR BUFFER ADDRESS @V200730 01016000
- FRETCCW LA R0,6 CCW PACKAGE SIZE @V200730 01017000
- L R1,IOBCAW CCW OACKAGE ADDRESS @V200730 01018000
- LTR R1,R1 TSET FOR CCW PACKAGE @V200730 01019000
- BCR 8,R3 NO, EXIT @V407508 01020100
- CALL DMKFRET FRET IT @V200730 01021000
- SR R0,R0 ZERO REG @V200730 01022000
- ST R0,IOBCAW CLEAR ADDRESS @V200730 01023000
- BR R3 RETURN @V407508 01024100
- SPACE 2 01025000
- EJECT 01026000
- VIRTBUFF TM VMMLEVEL,VMMLINED VIRTUAL LINE EDIT ON ?? @V200730 01027000
- BO VIRTBFRT YES, EDIT INPUT DATA @VA06260 01028100
- LR R1,R6 GET CONTASK ADDRESS @VA06260 01028200
- LA R0,CONTSIZE GET CONTASK SIZE @VA06260 01028300
- CALL DMKFRET ALL DONE WITH DUMMY CONTASK @VA06260 01028400
- B SAVRDEV BYPASS EDITING INPUT DATA @VA06260 01028500
- VIRTBFRT EQU * @VA06260 01028600
- MVI CONPARM,EDIT EDIT ONLY @V200830 01029000
- CALL DMKCNSED YES, EDIT INPUT DATA @V200730 01030000
- LR R1,R6 CONTASK ADDRESS @V200830 01031000
- LA R0,CONTSIZE SMALL CONTASK SIZE @V200830 01032000
- CALL DMKFRET ALL DONE WITH DUMMY CONTASK @V200830 01033000
- LTR R3,R3 EDIT RESULT IN NULL DATA ?? @V200730 01034000
- BZ EDNULL CLEAR AND IGNORE @V200730 01035000
- ST R3,BUFCNT-BUFFER(,R4) SAVE EDITED COUNT @VM08588 01036000
- L R14,0(R4) GET 1ST 4 BYTES OF DATA ENTERED @V407508 01037100
- O R14,=X'00404040' UPPER CASE AND BLANK @V407508 01038100
- CL R14,=X'15C3D740' IS IT CR CP BLANK ?? @V407508 01039100
- BNE SAVRDEV NO, CONT @V200730 01040000
- CL R3,F3 IS IT JUST CR CP @V200730 01041000
- BNE TRDATA NO, TRANS TO UCASE AND CONT @V200730 01042000
- SR R0,R0 CLEAR @V200730 01043000
- ST R0,BUFCNT-BUFFER(R4) SET ZERO DATA @V200730 01044000
- TRDATA L R1,=A(DMKTBLUP) UCASE TRANSLATE TABLE @V200830 01045000
- EX R3,TRANSLAT TRANSLATE TO UCASE FOR CF @V200830 01046000
- B TESTCF TEST FOR CONSOLE FUNCTION @V200830 01047000
- EJECT 01048000
- SAVRDEV LR R14,R8 SAVE RDEVBLOK ADDRESS @V407508 01049100
- LH R8,VMVTERM GET VIRT TERM DISP @V200830 01050000
- LTR R8,R8 TEST FOR TERM DEFINED @V200830 01051000
- BM REJECTV NO, REJECT DATA @V200830 01052000
- AL R8,VMDVSTRT SET R8 TO VDEVBLOK @V200830 01053000
- USING VDEVBLOK,R8 @V200730 01054000
- L R2,VDEVCON GET POINTER TO VIRTUAL CONTASK @V200730 01055000
- USING VCONCTL,R2 @V200730 01056000
- L R1,VCONRBUF SEE IF VIRTUAL BUFFER IS ALREADY @V200730 01057000
- LTR R1,R1 STACK... @V200730 01058000
- BNZ REJECTV ERROR IF ONE THERE @V200730 01059000
- MVC VCONRBSZ,=AL2(BUFSIZE) SIZE OF VIRTUAL BUFFER HRC101DK 01060490
- STH R3,VCONRCNT SAVE NUMBER OF BYTES READ @V200730 01061000
- ST R4,VCONRBUF BUFFER ADDRESS @V200730 01062000
- DROP R2 @V200730 01063000
- LA R2,NORET+NOTIME PARMS FOR QCNWT 01064000
- TM TRQBFLAG,CRTDIAG SCREEN WRITTEN WITH DIAG ?? 01065000
- BZ TSTHLITE NO, CONT HRC101DK 01066490
- LA R2,INHIBIT(R2) ADD INHIBIT TO SPOOL NOT PRINT 01067000
- B SETDATAD HRC101DK 01067100
- TSTHLITE DS 0H HRC101DK 01067200
- TM VMMLVL2,VMMHLITE HILIGHT REQUESTED ? HRC101DK 01067300
- BZ SETDATAD NO, CONTINUE HRC101DK 01067400
- O R2,=A(HILIGHT) SET PARM HRC101DK 01067500
- SETDATAD DS 0H HRC101DK 01067600
- LR R1,R4 SET DATA ADDRESS @V200730 01068000
- LR R0,R3 SIZE OF DATA @V200730 01069000
- MC MNCOERD,MNCLRESP RESPONSE CLASS, END READ @VA05418 01069500
- LR R3,R14 SAVE RDEVBLOK ADDR ACROSS CALL @V407508 01070100
- O R2,=A(NOTRESP) SIGNAL NOT A COMMAND RESPONSE @V60C2B8 01070120
- CALL DMKQCNWT,AFFINITY PARMS IN R2 @V407508 01070200
- CALL DMKCFMAT POST ATTN TO VIRT MACHINE @VA11787 01071000
- LR R8,R3 RESTORE RDEVBLOK ADDRESS @V407508 01072100
- USING RDEVBLOK,R8 @V200730 01073000
- LA R1,NOCTL RETURN PROCESSING @V200730 01074000
- ST R1,TRQBCRT SET RETURN @V200730 01075000
- B SETCLR CLEAR READ DATA @V200730 01076000
- SPACE 01077000
- REJECTR LR R8,R3 RESTORE RDEVBLOK ADDRESS @V407508 01078100
- B REJECT CONTINUE @V407508 01078200
- REJECTV LR R8,R14 RESTORE RDEVBLOK ADDRESS @V407508 01078300
- REJECT BAL R3,FRETRD FRET BUFFERS @V407508 01078400
- OI RDEVTFLG,RDEVCPNA+RDEVCTL NOT ACCEPTED AND CTL @V200730 01080000
- LA R1,SETREJ RETURN PROCESSING @V200730 01081000
- ST R1,TRQBCRT SET RETURN PROCESSING @V200730 01082000
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01083000
- BNZ BLD77NAC 3270 NOT ACCEPTED @V60A6B6 01084000
- B BLD66NAC 3066 NOT ACCEPTED @V200730 01085000
- SPACE 01086000
- EJECT 01087000
- RDATA LTR R3,R3 ANY DATA READ ?? @V200830 01088000
- BNP NOEDIT NO - THEN NO EDIT REQUIRED @V200730 01089000
- CLI CONPARM,INHIBIT INHIBIT, NOEDIT CPREAD ?? 01090000
- BNE RDATA1 NO, TEST FOR CARD DATA 01091000
- TM TRQBFLAG,CRTCARD DATA MUST COME FROM CARD RDR 01092000
- BO NOEDIT YES, OK, CONT 01093000
- ZDATA SR R3,R3 NO DATA MUST BE GIVEN 01094000
- B NOEDIT CONT WILL NULL DATA 01095000
- RDATA1 TM TRQBFLAG,CRTCARD DATA FROM CARD READER ?? 01096000
- BO ZDATA YES, DONT ACCEPT IT !! 01097000
- TM CONPARM,EDIT+UCASE ANY EDITING WANTED ?? @V200830 01098000
- BZ NOEDIT NO, SKIP IT @V200830 01099000
- TM VMOSTAT,VMCF IN CP READ? @VA09444 01099100
- BO RDATA2 YES, EDIT THIS LINE @VA09444 01099200
- TM VMMLEVEL,VMMCPENV TERM MODE CP??? @VA09444 01099300
- BZ RDATA2 NO, MUST BE VMREAD @VA09444 01099400
- TM RDEVTMCD,RDEVAPLP+RDEVTEXT TRANS INDICATED? @V387398 01100000
- BNZ NOEDIT YES, BYPASS EDIT FUNCTION @V387398 01101000
- RDATA2 DS 0H INSURE EDIT OF CP INPUT @VA09444 01101100
- L R2,CONADDR GET CALLERS BUFFER ADDRESS @V407508 01102100
- LH R0,CONCNT GET CALLERS BUFFER COUNT @V200830 01103000
- ST R4,CONADDR ADDRESS OF BUFFER FOR EDIT @V200830 01104000
- STH R3,CONCNT COUNT FOR EDIT @V200830 01105000
- CALL DMKCNSED EDIT THE INPUT LINE @V200730 01106000
- ST R2,CONADDR RESTORE CALLERS BUFFER ADDRESS @V407508 01107100
- STH R0,CONCNT RESTORE CALLERS COUNT @V200830 01108000
- SR R2,R2 SET ZERO RETURN CODE @V200730 01109000
- LTR R3,R3 ANY DATA AFTER EDIT ?? @V200730 01110000
- BNP RDATA3 NO, RELEASE READ BUFFER @VA09444 01111100
- L R7,0(R4) GET FIRST WORD OF DATA ENTERED @VA09444 01111150
- O R7,=X'00404040' CONVERT TO UPPER CASE @VA09444 01111200
- CL R7,=X'15C3D740' IS THIS CR CP???? (#CP) @VA09444 01111250
- BNE RDRTN PASS DATA TO CALLER @VA09444 01111300
- CL R3,F3 IS IT JUST CR CP?? @VA09444 01111350
- BNE TRDATA1 NO TRANSLATE TO UPPER CASE @VA09444 01111400
- SR R0,R0 SET DATA COUNT TO ZERO @VA09444 01111450
- ST R0,BUFCNT-BUFFER(R4) *** @VA09444 01111500
- TRDATA1 DS 0H TRANSLATE CHARACTERS TO UP CASE @VA09444 01111550
- L R1,=A(DMKTBLUP) UPPERCASE XLATE TABLE @VA09444 01111600
- EX R3,TRANSLAT TRANSLATE CONSOLE FUNCTION @VA09444 01111650
- B RDRTN MOVE DATA TO USER BUFFER @VA09444 01111700
- RDATA3 DS 0H CONTINUE AS BEFORE @VA09444 01111750
- BAL R3,FRETRD FRET BUFFERS @V407508 01112100
- LA R1,STRTREAD RETURN PROCESSING, REPEAT READ @V200730 01113000
- ST R1,TRQBCRT SET RETURN @V200730 01114000
- B GRFCRD CLEAR READ DATA AND REPEAT @V200730 01115000
- SPACE 01116000
- NOEDIT SR R2,R2 SET ZERO RETURN CODE @V200730 01117000
- RDRTN LH R1,CONCNT GET COUNT ASKED FOR @V200730 01118000
- CLR R1,R3 IS IT LESS THAN WE HAVE ?? @V200730 01119000
- BNL *+6 NO, CONT @V200730 01120000
- LR R3,R1 SET DATA COUNT TO MAX EXPECTED @V200730 01121000
- STH R3,CONCNT SET DATA COUNT @V200830 01122000
- L R1,CONRETN GET RETURN SAVEAREA ADDRESS @V200830 01123000
- ST R3,SAVER0-SAVEAREA(R1) SET RETURN BYTE COUNT @V200830 01124000
- LTR R3,R3 ANY DATA RETURNED ?? @V200830 01125000
- BZ NODATA NO, DONT MOVE ANYTHING @V200830 01126000
- B BUFMOVE MOVE DATA TO CALLERS BUFFER @V200830 01127000
- SPACE 01128000
- TRANSLAT TR 0(*-*,R4),0(R1) EXECUTE TRANSLATE @V200730 01129000
- MOVEDATA MVC 0(0,R1),0(R4) MOVE DATA @V200730 01130000
- TROPUT TR 0(*-*,R2),0(R7) EXECUTED TRANSLATE OUTPUT @V200830 01131000
- SHFTBUF MVC 0(*-*,R3),3(R3) SHIFT OUT BUFFER ADDRESS 01132000
- TRTTST TRT 0(*-*,R4),0(R7) @V305798 01133000
- MOVEAPL MVC 0(*-*,R5),0(R4) @V305798 01134000
- TXTTRAN TR 0(*-*,R1),SNGLCHAR(R2) TRANSLATE TEXT OUTPUT @V387398 01135000
- READBUF MVC 0(*-*,R3),0(R1) MOVE DATA INTO NORMAL BUFFER @VM03043 01136000
- EJECT 01137000
- BUFMOVE L R1,CONADDR GET CALLERS BUFFER ADDRESS @V200830 01138000
- BCTR R3,0 LENGTH MINUS 1 FOR MOVE. @VA05754 01138100
- EX R3,MOVEDATA MOVE DATA TO BUFFER @V200730 01139000
- NODATA BAL R3,SETRETN SET RETURN CODE @V200830 01140000
- SETSZ LA R0,4 SIZE FOR BLANKS @V200730 01141000
- LA R1,BLANKS WRITE BLANKS FOR NULL/PROTECTED @V200730 01142000
- TM CONPARM,INHIBIT NON-DISPLAY DATA ?? @V200830 01143000
- BO BLNKDSP YES, DISPLAY BLANKS @V200730 01144000
- L R2,CONRETN GET BYTE COUNT FROM SAVEAREA @V200830 01145000
- L R3,SAVER0-SAVEAREA(R2) BYTE COUNT .. @V200830 01146000
- LTR R3,R3 IS IT ZERO ?? @V200730 01147000
- BZ BLNKDSP YES, DISPLAY BLANKS @V200730 01148000
- LR R0,R3 SET DATA COUNT @V200730 01149000
- LR R1,R4 DATA ADDERSS @V200730 01150000
- BLNKDSP LA R2,NORET DMKQCNWT PARM 01151000
- TM CONPARM,VMGENIO VIRT MACH DATA ?? @V200830 01152000
- BZ *+8 NO, CONT 01153000
- LA R2,NORET+NOTIME DMKQCNWT PARM 01154000
- TM TRQBFLAG,CRTDIAG SCREEN WRITTEN WITH DIAG ?? 01155000
- BZ REDSPLY NO...CONTINUE @VA04810 01156000
- LA R2,INHIBIT(R2) ADD INHIBIT TO SPOOL NOT PRINT 01157000
- ICM R2,B'0100',NOMC BYPASS THE MONITOR CALL IN QCN @VA04810 01158000
- REDSPLY EQU * @V4M0107 01158650
- TM VMMLVL2,VMMHLITE HILIGHT REQUESTED ? HRC101DK 01158720
- BZ MCENDRD HRC101DK 01158790
- O R2,=A(HILIGHT) SET PARM HRC101DK 01158860
- MCENDRD EQU * HRC101DK 01158930
- MC MNCOERD,MNCLRESP RESPONSE CLASS, END READ @VA05418 01159000
- O R2,=A(NOTRESP) SIGNAL NOT A COMMAND RESPONSE @V60C2B8 01159100
- CALL DMKQCNWT,AFFINITY RE-DISPLAY THE DATA @V4M0107 01159550
- LA R1,NOCTL RETURN FROM CLEARING INPUT AREA @V60A6B6 01162200
- ST R1,TRQBCRT SET RETURN PROCESSING 01163000
- NODSP BAL R3,FRETRD FRET READ BUFFERS @V407508 01164100
- OI CONPARM,INHIBIT QCNET WILL NOT SPOOL IT @VA05374 01164500
- OI CONSTAT,CONACTV REMEMBER TO RETURN THE READ @VM08587 01166000
- BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 01166500
- MVI RDEVTFLG,RDEVRUN+RDEVCTL RUNNING AND CTL @V200730 01167000
- B GRFCRD CLEAR READ DATA INPUT AREA @VM08590 01168000
- EJECT 01169000
- SETCCWS L R2,RDEVGRTB GET ADDRESS OF GRTBLOK @V60A6B6 01169100
- ALR R1,R2 ADD OFFSET TO THE CCWS @V60A6B6 01169200
- SPACE 01169300
- CALLIOS ST R1,IOBCAW SET CCW ADDRESS @V200730 01170000
- L R1,RDEVUSER GET CORRECT VMBLOK ADDRESS @V407508 01171100
- SWTCHVM OPT=STAY SWITCH TO THIS VMBLOK @V407508 01172100
- ST R11,IOBUSER SET USER FOR IO @V200730 01174000
- NI IOBSPEC,X'FF'-IOBUNSL TURN OFF UNSOL. INT. FLAG @VA02040 01175000
- OI RDEVFLAG,RDEVACTV MARK DEVICE ACTIVE @VA03036 01176000
- BAL R3,FRETIOER FRET IOERBLOK @VA01632 01177000
- CALLQR CALL DMKIOSQR CALL IOS TO SCHEDULE IO REQUEST @V200730 01178000
- GOTO DMKDSPCH WAIT FOR INTERRUPT. @V200730 01179000
- EJECT 01180000
- LOGUSER EQU * HERE TO LOGON A USER @V200730 01181000
- CLI RDEVTYPE,TYP3284 IS THIS A 3270 PRINTER @VM03094 01182000
- BE FRETIOB YES, IGNORE REQUEST @VM03094 01183000
- L R15,PREFIXA GET PREFIX VALUE TO ADDRESS PSA @V4M0132 01184100
- * AT ABSOLUTE ZERO @V4M0132 01184200
- CLI XTNDLOCK-PSA(R15),X'FF' IS SYSTEM EXTENDING? @V4M0132 01184300
- BE IDLEIOB YES - WAIT TILL EXTEND FINISHES. @VM08952 01185000
- TM RDEVTFLG,RDEVLOG IS LOGON IN PROGRESS? @VA02316 01186000
- BO IDLEIOB IF YES,EXIT @VA02316 01187000
- TM RDEVTFLG,RDEVTRQ TIMER REQUEST QUEUED ?? @VA05176 01187100
- BNO NOTIMER NO, PROCEED NORMALLY @VA05176 01187200
- BAL R3,RSTTMR YES, RESET TRQ BLOKS @V407508 01187350
- LR R10,R1 GET ADRESS OF TRQBLOK @VA05176 01187400
- LA R12,DMKGRFTI ADDRESS TRQ HANDLER @VA05176 01187500
- BR R12 AND GO THERE @VA05176 01187600
- NOTIMER EQU * @VA05176 01187700
- L R4,=A(DMKSYSNM) ADDRESS OF TOTAL USER'S LOGGED @V200730 01188000
- L R4,0(,R4) GET COUNT OF LOGGED ON USER'S @V200730 01189000
- LTR R4,R4 ANY LOGGED ON YET ? @V200730 01190000
- BNZ TSTENAB TEST FOR ENABLE @V200730 01191000
- CLC CPID(4),=CL4'CPCP' ARE WE THROUGH THE IPL @V200730 01192000
- BNE ALTCONS NO - MUST BE ALTERNATE CONSOLE @V200730 01193000
- TSTENAB TM RDEVFLAG,RDEVENAB IS IT ENABLED ?? @V200730 01194000
- BZ FRETIOB NO, IGNORE DEVICE @V200730 01195000
- TM RDEVFLAG,RDEVDISB DID OPERATOR 'DISABLE' DEVICE @V200730 01196000
- BZ TSTFMT NO, TEST FOR SCREEN FORMATTED @V200730 01197000
- DISABLE EQU * DISABLE DEV -- NO USER LOGGED ON @VA01983 01198000
- LA R1,CONLOGOF RETURN PROCESSING 01199000
- ST R1,TRQBCRT SET RETURN ADDRESS 01200000
- B GRFCLRT CLEAR SCREEN FOR DISABLE 01201000
- TSTFMT EQU * CHECK FOR VM LOGO ON SCREEN @V60A6B6 01202100
- TM RDEVGRIC,RDEVERPQ Device eligible for RPQ?HRC072DK 01202130
- BZ NORPQ No HRC072DK 01202140
- CALL HDKD8CEN Go issue RPQ sequence HRC072DK 01202150
- NORPQ EQU * HRC072DK 01202160
- LA R1,BLDVMBLK ASSUME IT HAS BEEN WRITTEN @V60A6B6 01202200
- TM TRQBFLAG,CRTFMT IS SCREEN FORMATTED ?? @V60A6B6 01202300
- BO FMTOK YES, THEN IT IS TIME TO CLEAR IT @V60A6B6 01202400
- LA R1,FMTGRF RETURN ADDRESS TO WRITE VM LOGO @V60A6B6 01204000
- OI TRQBFLAG,CRTUSEWA NEED E/W E/W ALT FIRST... @V60A6B6 01205100
- FMTOK ST R1,TRQBCRT SET RETURN PROCESSING @V60A6B6 01205200
- B GRFCLRT CLEAR VM LOGO FROM SCREEN @V60A6B6 01205300
- BLDVMBLK TM RDEVTFLG,RDEVLOG IS LOGON IN PROGRESS? @VA02316 01207000
- BO IDLEIOB IF YES, EXIT @VA02316 01208000
- OI RDEVTFLG,RDEVLOG LOGON IN PROGRESS @VA02316 01209000
- CALL DMKBLDVM,AFFINITY BUILD VMBLOK FOR THIS USER @V407508 01210100
- ST R11,IOBUSER GIVE HIM THIS IOBLOK @V200730 01211000
- NI RDEVTFLG,255-RDEVLOG RESET LOGON FLAG @VA02316 01214000
- B CFMBK CALL DMKCFMBK FOR A CP READ @V60A6B6 01215000
- EJECT 01216000
- FMTGRF LA R1,FMTDONE RETURN PROCESSING @V200730 01217000
- ST R1,TRQBCRT SET RETURN PROCESSING @V200730 01218000
- BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 01218100
- MVI RDEVTFLG,RDEVRUN+RDEVCTL RUNNING AND CTL @V200730 01219000
- MVI RDEVCORD,X'01' NEXT LOGICAL LINE IS LINE 2 @V200730 01220000
- OI TRQBFLAG,CRTUSEWA SET E/W A FLAG FOR CLEAR @V60A6B6 01220100
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01221000
- BNZ BLD77FMT 3270 FORMAT @V60A6B6 01222000
- B BLD66FMT 3066 FORMAT @V200730 01223000
- SPACE 01224000
- FMTDONE OI TRQBFLAG,CRTFMT SCREEN FORMATTED @V200730 01225000
- TM RDEVFLAG,RDEVDISB DID OPER ISSUE DISABLE WHILE @VA01983 01226000
- * SCREEN WAS BEING FORMATTED ? 01227000
- BNZ DISABLE YES -- GO DISABLE @VA01983 01228000
- B NOCTL ALL DONE @V200730 01229000
- EJECT 01230000
- ALTCONS L R2,=A(DMKRIOCN) GET POINTER TO ALTERNATE CONSOLE@V200730 01231000
- LH R3,2(R2) GET CONS ADDRESS @V200730 01232000
- CH R3,IOBRADD IS THIS A CONSOLE ?? @V200730 01233000
- BE GOCPI YES, GO TO CPINIT @V200730 01234000
- LA R2,4(R2) POINT TO COUNT OF ALT. CONSOLES @V60BCAA 01234200
- L R1,0(R2) ACCESS COUNT OF ALT CONSOLES @V60BCAA 01234400
- ALTLOOP LTR R1,R1 ANY MORE ALTERNATE CONSOLES? @V60BCAA 01234600
- BZ FRETIOB NO, IGNORE @V60BCAA 01234800
- BCTR R1,0 DECREMENT COUNT FOR NEXT TIME @V60BCAA 01235000
- * THROUGH LOOP 01235200
- LA R2,4(R2) POINT TO NEXT ALT CONSOLE DATA @V60BCAA 01235400
- LH R3,2(R2) GET ALT CONSOLE ADDRESS @V60BCAA 01235600
- CH R3,IOBRADD IS THIS AN ALTERNATE CONSOLE? @V60BCAA 01235800
- BNE ALTLOOP NOT THIS ONE @V60BCAA 01236000
- GOCPI TM RDEVFLAG,RDEVENAB DEVICE ENABLED? @V60BCAA 01236200
- BZ FRETIOB NO -- IGNORE @V60BCAA 01236400
- LA R0,IOBSIZE GET IOBSIZE @VA04217 01238600
- LR R1,R10 IOBLOK ADDRESS @V200830 01239000
- CALL DMKFRET ALL DONE WITH BLOK @V200830 01240000
- GOTO DMKCPIEM ALT CONSOLE IPL @V200830 01241000
- SPACE 01242000
- SETWNG DS 0H HRC101DK 01243190
- ICM R15,1,VMMORECL LENGTH OF MORE TIME HRC101DK 01243380
- BNZ SETINT LEAVE 10 SECONDS IF NOT THERE HRC101DK 01243570
- LA R15,10 HRC101DK 01243760
- B SETINT SET TIMER INT @V200730 01244000
- SETREJ LA R15,3 3 SECOND HOLD HRC101DK 01245490
- B SETINT SET TIMER INT @V200730 01246000
- SETMOR DS 0H HRC101DK 01247190
- ICM R15,1,VMMOREBP LENGTH OF MORE TIME HRC101DK 01247380
- BNZ SETINT LEAVE 50 SECONDS IF NOT THERE HRC101DK 01247570
- LA R15,50 HRC101DK 01247760
- SETINT DS 0H HRC101DK 01247950
- XC TMRVALUE,TMRVALUE CLEARA TMRVALUE HRC101DK 01248140
- STC R15,TMRVALUE+3 STORE TIME HRC101DK 01248330
- LA R15,DMKGRFTI TIMER INTERRUPT RETURN ADDRESS HRC101DK 01248520
- ST R15,TRQBIRA SET TIMER RETURN @V200730 01249000
- ST R11,TRQBUSER SET USER FOR TIMER @V200730 01250000
- BAL R3,RSTTMR RESET ANY ACTIVE TRQ REQUEST @V407508 01251100
- STCK TRQBVAL GET CLOCK VALUE @V200730 01252000
- BC 12,CLOCKOK IS CLOCK FUNCTIONING? @VA04301 01252250
- GOTO DMKCVTAB CLOCK DAMAGED...ABEND CVT001 @VA04301 01252500
- CLOCKOK EQU * @VA04301 01252750
- LM R14,R15,TRQBVAL GET CLOCK VALUE @V200730 01253000
- AL R15,TMRVALUE+4 ADD TO THE (TOD) CLOCK THE @V200730 01254000
- BC 12,*+8 TIME INTERVAL @V200730 01255000
- AL R14,F1 ADJUST FOR OVERFLOW @V200730 01256000
- AL R14,TMRVALUE HI ORDER OF CLOCK VALUE @V200730 01257000
- STM R14,R15,TRQBVAL SET CLOCK COMP VALUE @V200730 01258000
- OI RDEVTFLG,RDEVTRQ TIMER REQ PENDING @V200730 01259000
- LR R1,R5 R1 FOR TIMER SET @V200730 01260000
- CALL DMKSCHST QUEUE UP THIS TIMER REQUEST @V200730 01261000
- TM TRQBFLAG,CRTAIO IS TIMER INTERRUPT PENDING? @VA04433 01262100
- BNO NOCTL IF NOT, PROCEED NORMALLY @VA04433 01262200
- NI TRQBFLAG,X'FF'-CRTAIO RESET INTERRUPT FLAG @VA04433 01262300
- B GRFEXIT EXIT AND WAIT UNTIL IO COMPLETES @VA04433 01262400
- EJECT 01263000
- RSTTMR EQU * HERE TO RESET TIMER REQUEST BLOKS@V200730 01264000
- TM RDEVTFLG,RDEVTRQ IS A TIMER REQUEST QUEUED @V200730 01265000
- BCR 8,R3 NONE, RETURN TO CALLER @V407508 01266100
- NI RDEVTFLG,X'FF'-RDEVTRQ RESET FLAG BIT @V200730 01267000
- L R1,RDEVAIRA GET ADDRESS OF TRQBLOK @V200730 01268000
- CALL DMKSCHRT RESET ACTIVE TIMER REQUEST @V200730 01269000
- BR R3 RETURN, ALL DONE @V407508 01270100
- SPACE 01271000
- CPNATMR LA R1,NOCTL RETURN PROCESSING @V200730 01296000
- ST R1,TRQBCRT SET RETURN PROCESSING @V200730 01297000
- NI RDEVTFLG,X'FF'-RDEVCPNA RESET NOT ACCEPTED @V200730 01298000
- OI RDEVTFLG,RDEVCTL CTL MODE FOR STATUS WRITE @V200730 01299000
- TM RDEVTFLG,RDEVRUN RUNNING ?? @V200730 01300000
- BO GRFRUN YES @V200730 01301000
- TM RDEVTFLG,RDEVHOLD HOLDING ?? @V200730 01302000
- BO CRTHOLD YES, RESET HOLDING @V200730 01303000
- TM RDEVTFLG,RDEVREAD IN READ STATE ? @V305798 01304000
- BO STRTREAD YES, SET READ STATUS @V305798 01305000
- B CRTMORE RESET MORE... STATE @V200730 01306000
- GRFRUN TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01307000
- BNZ BLD77RUN 3270 RUNNING @V60A6B6 01308000
- B BLD66RUN 3066 RUNNING @V200730 01309000
- SPACE 01310000
- SETRETN TM CONSTAT,CONRESP RESPONSE EXPECTED ?? @V200830 01311000
- BCR 8,R3 NO, RETURN @V200830 01312000
- L R1,CONRETN GET RETURN SAVEAREA ADDRESS @V200830 01313000
- ST R2,SAVER2-SAVEAREA(R1) SET RETURN CODE @V200830 01314000
- BR R3 RETURN @V200830 01315000
- SPACE 01316000
- CONRET L R14,CONPNT GET NEXT CONTASK, IF ANY @V407508 01317100
- ST R14,RDEVCON SET NEXT CONTASK TO DO @V407508 01318100
- SR R0,R0 CLEAR @V200830 01319000
- ST R0,CONPNT CLEAR CONTASK POINTER @V200830 01320000
- CALL DMKQCNET RETURN CONTASK @V200830 01321000
- BR R3 RETURN @V200830 01322000
- SPACE 01323000
- WRTSCN L R2,CONADDR GET DATA ADDRESS @V200730 01324000
- LH R3,CONCNT GET DATA COUNT @V200830 01325000
- LTR R3,R3 ZERO COUNT??? @VA01603 01326000
- BZR R14 YES - RETURN @V407508 01327100
- BCTR R3,R0 DECREMENT FOR EXECUTE @V200830 01328000
- L R7,=A(DMKTBLGL) GRAF DEVICE TRANS TABLE @VA08002 01329100
- IC R0,VMTLEND GET LOGICAL LINE END CHAR @VA02554 01330000
- STC R0,X'15'(0,R7) ** MODIFY TRANS TABLE ***** @VA02554 01331000
- MVC X'05'(1,R7),VMGRFTAB SET LOGICAL TAB CHAR @V60A6B6 01331100
- TM TRQBFLAG,CRTSIO WAS DIAGNOSE ISSUE TO INPUT AREA@VM03094 01332000
- BZ *+8 NO, BYPASS PUTTING CHAR. IN TABLE@VM03094 01333000
- MVI X'13'(R7),IC PUT INSERT CURSOR CHAR IN TABLE @VM03094 01334000
- TRTST CL R3,F256 LESS THAN 256 ?? @V200830 01335000
- BL TRLST YES, DO LAST PART @V200830 01336000
- TR 0(256,R2),0(R7) TRANSLATE DATA @V200830 01337000
- LA R2,256(R2) NEXT DATA POSITION @V200830 01338000
- S R3,F256 DECREMENT COUNT @V200830 01339000
- B TRTST TEST FOR MORE TO DO @V200830 01340000
- TRLST EX R3,TROPUT TRANSLATE LAST PART OF OUTPUT @V200830 01341000
- MVI X'15'(R7),X'15' RESTORE TRANS TABLE @VA02554 01342000
- MVI X'13'(R7),X'40' PUT BLANK BACK IN TABLE @VM03094 01343000
- MVI X'05'(R7),X6A SET DEFAULT LOGICAL TAB CHAR @V60A6B6 01344000
- BR R14 ALL DONE, RETURN @V407508 01344100
- EJECT 01345000
- BLDTRQ L R5,RDEVAIRA GET ADDRESS OF TRQBLOK @V200830 01346000
- LTR R5,R5 IS THERE ONE NOW ?? @V200830 01347000
- BCR 7,R3 YES, RETURN @V200830 01348000
- LA R0,TRQBSIZE+CRTEXT GET TRQBLOK SIZE + EXTENSION @VA13071 01349100
- CALL DMKFREE GET A TRQBLOK @V200830 01350000
- ST R1,RDEVAIRA SAVE ADDRESS @V200830 01351000
- LR R5,R1 TRQBLOK ADDRESSING @V200830 01352000
- XC TRQBLOK(TRQBSIZE*8+CRTEXTSZ),TRQBLOK CLR TRQ+EXT@VA13071 01353100
- LA R1,IDLEIOB SET RETURN ADDRESS @VM03152 01354000
- ST R1,TRQBCRT SAVE RETURN ADDRESS @VM03152 01355000
- TM RDEVADD,RDEVLDEV Is this an LDEV? HRC065DK 01355100
- BO LDEV200 Yes HRC065DK 01355200
- CALL DMKSCNRD GET DEVICE ADDRESS @V200830 01356000
- STH R1,TRQBDEV SAVE DEV ADDRESS @V200830 01357000
- BR R3 RETURN @V200830 01358000
- LDEV200 EQU * HRC065DK 01358100
- MVC TRQBDEV,RDEVADD Put LDEV addr in TRQBLOKHRC065DK 01358200
- BR R3 Return HRC065DK 01358300
- SPACE 01359000
- FRETTRQ EQU * RELEASE TRQBLOK @VM03152 01360000
- L R1,RDEVAIRA GET POINTER TO TRQBLOK @VM03152 01361000
- LTR R1,R1 IS THERE A TRQBLOK POINTER @VM03152 01362000
- BNPR R3 RETURN TO IN LINE CODE @VM03152 01363000
- LA R0,TRQBSIZE+CRTEXT SIZE OF TRQBLOK + EXTENSION @VA13071 01364100
- CALL DMKFRET RELEASE STORAGE @VM03152 01365000
- SR R0,R0 CLEAR REGISTER @VM03152 01366000
- ST R0,RDEVAIRA CLEAR TRQBLOK POINTER FIELD @VM03152 01367000
- BR R3 RETURN TO IN LINE CODE @VM03152 01368000
- SPACE 2 01369000
- BLDIOB LA R0,IOBSIZE IOBLOK SIZE @V200830 01370000
- CALL DMKFREE GET A BLOK @V200830 01371000
- LR R10,R1 IOBLOK ADDRESSING @V200830 01372000
- XC IOBLOK(IOBSIZE*8),IOBLOK CLEAR BLOK @V200830 01373000
- ST R11,IOBUSER USER OF IOBLOK @V200830 01374000
- LA R1,DMKGRFIN INTERRUPT RETURN ADDRESS @V200830 01375000
- ST R1,IOBIRA SET RETURN ADDRESS @V200830 01376000
- MVC IOBRADD,RDEVADD Device address to IOB HRC065DK 01376100
- BR R3 RETURN @V200830 01378000
- SPACE 1 01379000
- FRETIOER EQU * @VA01632 01380000
- L R1,IOBIOER PICK UP IOERBLOK @VA01632 01381000
- LTR R1,R1 IS THERE AN IOERBLOK @VA01632 01382000
- BCR 8,R3 NO, RETURN TO IN LINE CODE @VA01632 01383000
- LA R0,IOERSIZE @VA01632 01384000
- AH R0,IOEREXT-IOERBLOK(,R1) EXTENSION, IF ANY @VA01632 01385000
- CALL DMKFRET @VA01632 01386000
- SLR R1,R1 @VA01632 01387000
- ST R1,IOBIOER CLEAR OUT THE IOBLOK FIELD @VA01632 01388000
- NI IOBFLAG,X'FF'-IOBERP IND ERP NOT IN CTL @VA03381 01389000
- BR R3 RETURN @VA01632 01390000
- SPACE 01391000
- EJECT 01392000
- * THESE ROUTINES BUILD VARIOUS CHANNEL PROGRAMS FOR GRAF 01393000
- * 01394000
- * R6 = ADDRESS OF CONTASK 01395000
- * R8 = ADDRESS OF RDEVBLOK 01396000
- * R10= ADDRESS OF IOBLOK 01397000
- * FIELDS DEFINED IN CONCCW HAVE THE FOLLOWING MEANING 01398000
- * CONADDR = ADDRESS OF INPUT/OUTPUT AREA 01399000
- * CONFLAG = (F1 FOR WRITE; F6 FOR READ) 01400000
- * CONCNT = NUMBER OF BYTES IN CHANNEL PROGRAM 01401000
- * 01402000
- * 01403000
- SPACE 2 01404000
- BLDCCWS EQU * HRC071DK 01405000
- TM RDEVSTA3,RDEVEWRT Erase/write required? HRC071DK 01405100
- BO NOFMT Y, skip logo redraw HRC071DK 01405200
- TM TRQBFLAG,CRTFMT Screen formatted? HRC071DK 01405300
- BZ FMTGRF NO, DO IT NOW 01406000
- NOFMT EQU * HRC071DK 01406500
- CLI RDEVTFLG,RDEVRUN RUNNING STATE ?? 01407000
- BE BLDCONT YES - START UP THIS TASK @VM08871 01408000
- TM RDEVTFLG,RDEVREAD IS THERE A READ ACTIVE ? @VM01089 01409000
- BO READPRI YES, CHECK FOR PRIORITY WRITE @VM01089 01410000
- TM RDEVTFLG,RDEVHOLD IS SCREEN IN HOLD STATUS @VM01089 01411000
- BZ IDLEIOB NO, DON'T INTERRUPT @VM01089 01412000
- L R1,RDEVUSER GET USER VMBLOK POINTER @VM01089 01413000
- TM VMRSTAT-VMBLOK(R1),VMLOGOFF IS LOGOFF ACTIVE @VM01089 01414000
- BZ IDLEIOB NO, DON'T INTERRUPT @VM01089 01415000
- B GRFCLR CLEAR SCREEN @VM01089 01416000
- SPACE 2 01417000
- READPRI EQU * @VM01089 01418000
- L R1,CONPNT POINTER TO NEXT TASK, IF ANY @VM08871 01419000
- LTR R1,R1 MAKE SURE THERE IS ONE @VM08871 01420000
- BNP IDLEIOB NOPE -- JUST EXIT @VM08871 01421000
- TM CONPARM-CONTASK(R1),PRIORITY BREAK-IN SITUATION@VM08871 01422000
- BZ IDLEIOB NO -- CONTINUE @VM08871 01423000
- ST R1,RDEVCON REMOVE THE READ TASK FROM CHAIN @VM08871 01424000
- NI CONSTAT,255-CONESCP TASK IS NOT ACTIVE @VM08871 01425000
- READBRK EQU * RE-INSERT THE READ CONTASK @VM08871 01426000
- L R2,CONPNT-CONTASK(,R1) ADDRESS OF NEXT TASK @VM08871 01427000
- LTR R2,R2 IS THERE ANOTHER ONE ? @VM08871 01428000
- BNP READINS NO -- INSERT THE READ HERE @VM08871 01429000
- TM CONPARM-CONTASK(R2),PRIORITY MORE PRIORITY ? @VM08871 01430000
- BZ READINS NO -- INSERT HERE @VM08871 01431000
- LR R1,R2 SAVE A BACK POINTER @VM08871 01432000
- B READBRK . . .AND KEEP LOOKING @VM08871 01433000
- READINS EQU * RE-CHAIN THE READ CONTASK @VM08871 01434000
- ST R2,CONPNT POINTER TO NEXT TASK @VM08871 01435000
- ST R6,CONPNT-CONTASK(,R1) PATCH THE FORWARD CHAIN@VM08871 01436000
- L R6,RDEVCON SET GR6 = ADDRESS OF TOP TASK @VM08871 01437000
- * B BLDCONT START UP PRIORITY TASK @VM08871 01438000
- EJECT 01439000
- BLDCONT EQU * START UP A CONSOLE REQUEST @VM08871 01440000
- TM CONSTAT,CONOUTPT IS THIS AN OUTPUT REQUEST ?? @V200730 01441000
- BZ STRTREAD NO, DO A READ CONTASK @V200730 01442000
- TM CONDWC,X'40' DIAG. CONSOLE WRITE ?? @VA07542 01443100
- BZ CORD NO, CONT NORMALLY @V200730 01444000
- TM VMMLVL2,VMMNHOLD ALLOWED TO HOLD SCREEN? HRC101DK 01444300
- BO TSTWRITE NO, NEVER HOLD HRC101DK 01444600
- TM TRQBFLAG,CRTALRM SCREEN HAVE ALARM MESSAGE ?? 01445000
- BO CRTHOLD YES, FORCE TO HOLDING FIRST 01446000
- TSTWRITE DS 0H HRC101DK 01446500
- TM CONDWC,X'80' ERASE BEFORE WRITE ?? @VA07542 01447100
- BO DIAGCLR YES, CHECK IT OUT 01448000
- DIAGRUN NI CONDWC,X'3F' TURN OFF DIAGNOSE FLAG @VA07542 01449100
- IC R0,CONDWC GET LINE COORDINATOR @VA07542 01450100
- SLR R2,R2 CLEAR INDEX REGISTER @V60A6B6 01451100
- IC R2,RDEVGRTY GET DISPLAY SCREEN INDEX VALUE @V60A6B6 01451200
- L R3,=A(DMKGRTIN) ADDRESS THE INPUT LINE NOS. @V60A6B6 01451300
- L R3,0(R2,R3) INDEX TO CORRECT SET OF ADDR @V60A6B6 01451400
- CLM R3,B'1000',CONDWC IS LINE NUMBER STARTING @V60A6B6 01451500
- BE DIAGSIO AT THE INPUT AREA ? @VM03094 01452000
- CLM R3,B'0100',CONDWC OR IS IT BOTTOM LINE ? @V60A6B6 01453200
- BE DIAGSIO IF YES, TAKE SPECIAL PATH @VM03094 01454000
- STC R0,RDEVCORD SET LINE CO-ORDINATE @V200730 01455000
- OI TRQBFLAG,CRTDIAG FLAG DIAG WRITE @V200730 01456000
- LH R1,CONCNT GET BYTE COUNT @VA08261 01456100
- B SETCORD SET NEW CO-ORDINATE @V200830 01457000
- DIAGSIO EQU * HANDLE WRITING TO INPUT AREA @VM03094 01458000
- OI TRQBFLAG,CRTSIO SET WRITING TO INPUT AREA FLAG @VM03094 01459000
- STC R0,TRQBLINE SAVE LINE COORDINATE @VM03094 01460000
- LA R0,BUFINLTH GET BUFFER SIZE @VM03116 01461000
- CH R0,CONCNT IS THIS GREATER THAN COUNT @VM03116 01462000
- BNL *+8 YES, BYPASS SAVING VALUE @VM03116 01463000
- STH R0,CONCNT SAVE MAX. SIZE OF BUFFER @VM03116 01464000
- B SETCORD SET NEW CO-ORDINATE @VM03094 01465000
- SPACE 01466000
- DIAGCLR CLI CONDWC,X'FF' ERASE CLEAR DIAGNOSE ?? @VA07542 01467100
- BE CNCLDIAG YES, NO OUTPUT TO DO 01468000
- NI CONDWC,X'7F' TURN OFF ERASE BIT @VA07542 01469100
- CLI RDEVCORD,X'00' AT TOP NOW ?? @V200730 01470000
- BE DIAGRUN YES, CONT @V200730 01471000
- B CRTMORE NO, FORCE TO MORE... 01472000
- SPACE 01473000
- CNCLDIAG SR R2,R2 SET RETURN CODE 01474000
- BAL R3,SETRETN SET RETURN CODE @V200830 01475000
- BAL R3,CONRET RETURN CONTASK @V200830 01476000
- B GRFCLR CLEAR SCREEN 01477000
- SPACE 01478000
- CORD TM TRQBFLAG,CRTDIAG WRITTEN WITH DIAG BEFORE ?? @V200730 01479000
- BO CRTFULL YES, FORCE TO MORE... @V200730 01480000
- TM RDEVSTA3,RDEVFULL In DIAG58 full screen? HRC062DK 01480100
- BO CLD58FUL Y, CLEAR AFTER FULL SCR HRC058DK 01480110
- LH R1,CONCNT GET BYTE COUNT @V200830 01481000
- SLR R15,R15 GET CURRENT OUTPUT LINE HRC073DK 01482000
- IC R15,RDEVCORD PICK UP CURRENT LINE.... HRC073DK 01482200
- SR R14,R14 CLEAR HRC073DK 01482400
- SR R4,R4 CLEAR HRC073DK 01482600
- IC R4,RDEVLLEN GET LINE LENGTH HRC073DK 01482800
- MR R14,R4 CONVERT TO BYTE COORDINATES HRC073DK 01483000
- LR R4,R15 COORDINATES TO R4 HRC073DK 01483200
- ALR R4,R1 TOTAL BYTES ON SCREEN @V200830 01485000
- LA R3,2640 SIZE FOR 3066 @V60A6B6 01486100
- CLI RDEVTYPE,TYP3066 GOING TO WRITE TO A 3066 ? @V60A6B6 01486200
- BE TESTSIZE YES, SIZE IN REGISTER 3 IS OK @V60A6B6 01486300
- SLR R2,R2 CLEAR INDEX REGISTER @V60A6B6 01486400
- IC R2,RDEVGRTY DISPLAY ALT. SCREEN SIZE INDEX @V60A6B6 01488000
- L R3,=A(DMKGRTDS) ADDRESS THE SCREEN SIZE TABLE @V60A6B6 01489100
- L R3,0(R2,R3) LOAD APPROPRIATE DISPLAY SIZE @V60A6B6 01489200
- TESTSIZE CLR R4,R3 WILL THE DATA FIT THE SCREEN ? @V60A6B6 01489300
- BH CRTFULL NO, SCREEN FULL @V200730 01491000
- SETCORD SR R0,R0 CLEAR FOR DIVIDE @V200830 01492000
- SLR R15,R15 CLEAR FOR IC HRC073DK 01492200
- IC R15,RDEVLLEN GET LINE LENGTH HRC073DK 01492400
- LR R14,R15 COPY HRC073DK 01492600
- BCTR R14,0 LINE LEN LESS 1 FOR ROUND UP HRC073DK 01492800
- ALR R1,R14 ROUND UP TO NEXT LINE HRC073DK 01493000
- DR R0,R15 DIVIDE TO GET NUMBER OF LINES HRC073DK 01494000
- LR R4,R1 REMEMBER NUMBER OF LINES @V200830 01495000
- BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 01495500
- MVI RDEVTFLG,RDEVRUN+RDEVCTL RUN & CTL @VA08898 01496000
- BAL R14,WRTSCN SCAN FOR LOGICAL CHARS. @V407508 01497100
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01498000
- BZ NOAPLW NO, BYPASS APL FUNCTION @V60A6B6 01499000
- LH R3,CONCNT LOAD DATA COUNT @V305798 01500000
- LTR R3,R3 IS COUNT VALUE ZERO @V305798 01501000
- BZ NOAPLW YES, BYPASS APL TRANSLATION @V305798 01502000
- TM RDEVTMCD,RDEVAPLP+RDEVTEXT TRANS INDICATED? @V387398 01503000
- BZ NOAPLW NO, BYPASS TRANSLATION @V387398 01504000
- LH R0,CONTSKSZ GET SIZE OF CURRENT CONTASK @V305798 01505000
- AR R0,R0 DOUBLE CONTASK SIZE @V305798 01506000
- CALL DMKFREE GET STORAGE FOR NEW CONTASK @V305798 01507000
- MVC 0(CONDATA-CONTASK,R1),0(R6) GET HEADER DATA @V305798 01508000
- ST R1,RDEVCON SAVE POINTER TO NEW CONTASK @V305798 01509000
- L R1,=A(DMKTBMZO) COMPOUND TRANSLATE TABLE @VM03172 01510000
- TM RDEVTMCD,RDEVTEXT 3270 TEXT CHARACTER SET? @V387398 01510200
- BZ WRTRANS NO -> TRANSLATE TABLE ALL SET @V387398 01510400
- L R1,=A(DMKTBMTO) TEXT COMPOUND TRANSLATE TABLE @V387398 01510600
- WRTRANS EQU * @V387398 01510800
- TRANS 2,1,OPT=(BRING,DEFER,SYSTEM),AFFINITY GET TABLE @V407508 01511100
- STM R1,R10,TEMPSAVE SAVE CURRENT REGISTERS @VM03172 01512000
- LR R7,R2 REAL ADDRESS FOR TRANSLATE TABLE @VM03172 01513000
- L R1,RDEVCON RESTORE ADDRESS OF NEW CONTASK @VM03172 01514000
- LA R5,CONDATA-CONTASK(,R1) GET POINTER TO DATA AREA@V305798 01515000
- L R4,CONADDR POINTER TO CURRENT DATA AREA @V305798 01516000
- ST R5,CONADDR-CONTASK(,R1) SAVE DATA AREA POINTER @VM03040 01517000
- STH R0,CONTSKSZ-CONTASK(,R1) SAVE SIZE OF CONTASK @VM03040 01518000
- SR R14,R14 CLEAR COUNT REGISTER @V407508 01519100
- BAL R10,TRANSTST TRANSLATE & TEST FOR COMP. CHAR. @V305798 01520000
- B FRETNEW RELEASE NEW CONTASK STORAGE @V305798 01521000
- APLCOMP EQU * PUT FAKE CHAR. BEFORE COMP. CHAR @V305798 01522000
- MVI 0(R5),X'1D' PUT FAKE ATTRIBUTE IN AREA @V305798 01523000
- STC R2,1(,R5) PUT COMPOUND CHAR. INTO BUFFER @V305798 01524000
- LA R5,2(,R5) UPDATE PASS COMPOUND CHARACTER @V305798 01525000
- LA R4,1(,R4) UPDATE PASS COMPOUND CHARACTER @V305798 01526000
- LA R14,1(,R14) KEEP COUNT OF FAKE ATTR. CHARS. @V407508 01527100
- SR R3,R1 DECREMENT BYTE COUNT @V305798 01528000
- S R3,F1 SUBSTRACT ONE - COMPOUND CHAR. @V305798 01529000
- BNP FRETOLD GET OUT - FINISH @V305798 01530000
- BAL R10,TRANSTST TRANSLATE & TEST FOR COMP. CHAR. @V305798 01531000
- B FRETOLD RELEASE OLD CONTASK STORAGE @V305798 01532000
- B APLCOMP PUT FAKE ATTR. CHAR IN BUFFER @V305798 01533000
- FRETNEW EQU * RELEASE NEW CONTASK STORAGE @V305798 01534000
- L R1,RDEVCON GET POINTER TO NEW CONTASK @V305798 01535000
- ST R6,RDEVCON SAVE CURRENT/OLD CONTASK PTR. @V305798 01536000
- B FRETCONT RELEASE NEW CONTASK @V305798 01537000
- FRETOLD EQU * RELEASE CURRENT CONTASK STORAGE @V305798 01538000
- LR R1,R6 GET CURRENT CONTASK POINTER @V305798 01539000
- LH R0,CONTSKSZ GET SIZE OF OLD CONTASK @V305798 01540000
- AH R14,CONCNT ADD NUMBER OF FAKE CHAR TO COUNT @V407508 01541100
- L R6,RDEVCON GET POINTER TO NEW CONTASK @V305798 01542000
- STH R14,CONCNT UPDATE DATA COUNT @V407508 01543100
- FRETCONT EQU * RELEASE CONTASK @V305798 01544000
- CALL DMKFRET RELEASE CONTASK @V305798 01545000
- LM R1,R10,TEMPSAVE RESTORE REGISTERS @V305798 01546000
- L R6,RDEVCON GET CONTASK POINTER @V305798 01547000
- TM RDEVTMCD,RDEVTEXT 3270 TEXT? @V387398 01547070
- BZ NOAPLW BR IF NOT @V387398 01547140
- LH R0,CONCNT DATA LENGTH @V387398 01547210
- LA R1,CONDATA POINT TO DATA @V387398 01547280
- TXTLP LR R3,R0 REMAINING BYTE COUNT @V387398 01547350
- BCTR R3,0 - 1 FOR EXECUTE @V387398 01547420
- N R3,F255 MASK @V387398 01547490
- EX R3,TXTTRAN TRANSLATE TEXT OUTPUT @V387398 01547560
- LA R3,1(,R3) BYTE COUNT JUST TRANSLATED @V387398 01547630
- AR R1,R3 POINT TO NEXT BYTE TO TRANSLATE @V387398 01547700
- SR R0,R3 BYTES REMAINING @V387398 01547770
- BP TXTLP LOOP IF MORE TO TRANSLATE @V387398 01547840
- NOAPLW EQU * @V305798 01548000
- OI CONSTAT,CONESCP CONTASK PROCESSED @V200830 01549000
- LA R1,CONRETBF FRET AFTER WRITE DONE @V200730 01550000
- ST R1,TRQBCRT SET RETURN PROCESSING @V200730 01551000
- LA R1,CONCCW1 CCW START ADDRESS @V200830 01552000
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01554000
- BNZ BLD77WRT WRITE DATA @V60A6B6 01555000
- B BLD66WRT 3066 WRITE DATA @V200730 01556000
- EJECT 01557000
- CRTFULL EQU * @VM01089 01558000
- TM CONPARM,LOGDROP+LOGHOLD IS THIS A LOGOFF REQ. @VM01089 01559000
- BNZ CRTMORE YES, PUT SCREEN IN MORE STATUS @VM01089 01560000
- TM VMMLVL2,VMMNHOLD ALLOWED TO HOLD? HRC101DK 01560300
- BO CRTMORE NOPE, NEVER HOLD HRC101DK 01560600
- TM TRQBFLAG,CRTALRM ALARM MESSAGE DISPLAYED ? @VM01089 01561000
- BO CRTHOLD YES, HOLD SCREEN @V200730 01562000
- B CRTMORE SCREEN TO MORE... @V200730 01563000
- SPACE 2 01564000
- STRTREAD EQU * READ OR CONTROL CONTASK @V200830 01565000
- TM CONSTAT,CONSYNC SYNCHRONIZATION TASK ? @V200830 01566000
- BZ STRTREDY NO -- MUST BE A READ @V200830 01567000
- BAL R3,CONRET RETURN CONTASK TO DMKQCN @V200830 01568000
- B NOCTL CHECK FOR MORE CONTASK'S @V200830 01569000
- STRTREDY EQU * BUILD CCW'S FOR READ @V200830 01570000
- MVI RDEVTFLG,RDEVREAD+RDEVCTL READ AND CONTROL @V200830 01571000
- OI CONSTAT,CONESCP CONTASK PROCESSED @V200830 01572000
- LA R1,NOCTL RETURN PROCESSING @V200730 01573000
- ST R1,TRQBCRT SET RETURN PROCESSING @V200730 01574000
- TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01575000
- BZ TST66CP NO, TEST FOR 3066 @V60A6B6 01576000
- TM CONPARM,INHIBIT NON-DISPLAY DATA ?? @V200830 01577000
- BO SETPRO YES @V200730 01578000
- TM CONPARM,VMGENIO VIRT MACH READ DATA ?? @V200830 01579000
- BO BLD77VMR YES @V200730 01580000
- B BLD77CPR CP READ @V200730 01581000
- SETPRO TM CONPARM,VMGENIO VIRT MACH READ DATA ?? @V200830 01582000
- TM CONPARM,INHIBIT NON-DISPLAY DATA ?? HRC001DK 01582100
- BNO DCC014 HRC001DK 01582200
- ICM R1,15,VMHRCALL GET A(RECALL BUFFER) HRC001DK 01582300
- BZ *+4+4 NONE, FORGET IT HRC001DK 01582400
- OI 0(R1),INHIBIT DON'T KEEP THIS ONE ... HRC001DK 01582500
- DCC014 TM CONPARM,VMGENIO V.MACH READ ? @V200830 HRC001DK 01582600
- BO BLD77VMP YES @V200730 01583000
- B BLD77CPP CP READ @V200730 01584000
- SPACE 01585000
- TST66CP TM CONPARM,VMGENIO VIRT MACH READ DATA ?? @V200830 01586000
- BO BLD66VMR YES @V200730 01587000
- B BLD66CPR CP READ @VM03094 01588000
- SPACE 2 01589000
- FAKESUB EQU * REMOVE FAKE ATTRIBUTE CHARACTER @VM03094 01590000
- CLI 0(R3),X'00' LOOKING FOR ENDING CHARACTER @VM03094 01591000
- BER R14 YES, RETURN TO IN LINE CODE @VM03094 01592000
- CLI 0(R3),X'1D' IS FAKE ATTRIBUTE CHAR. INDICATED@VM03094 01593000
- BNE NOFAKE NO, BYPASS TRANSLATION @VM03094 01594000
- BCT R0,XLATE2 TRANSLATE THE CMPD CHAR IF ANY @VM13277 01594100
- BR R14 RETURN IF NO MORE CHARS @VM13277 01594200
- XLATE2 DS 0H @VM13277 01594300
- TR 1(1,R3),0(R7) TRANSLATE THE COMPOUND CHAR. @V387398 01594450
- LA R3,1(,R3) SKIP X'1D' CHAR @V387398 01594900
- B NOTEXT CONTINUE WITH NEXT CHARACTER @VM13277 01595350
- SPACE 1 @V387398 01596250
- SNGLCHAR EQU 256 OFFSET TO SINGLE CHARACTER XLATE TABLE @V387398 01596700
- SPACE 1 @V387398 01597150
- NOFAKE TM RDEVTMCD,RDEVTEXT 3270 TEXT? @V387398 01597600
- BZ NOTEXT NO, DON'T DO EXTRA TRANSLATE @V387398 01598050
- C R3,IOBMISC IS THIS FIRST LOOK AT BUFFER? @VA09496 01598100
- BNE XLATE NO, TRANSLATE AS USUAL @VA09496 01598150
- CLC 0(4,R3),TSTRQMSG IS IT TEST REQ MESSAGE? @VA09496 01598200
- BE NOTEXT YES, NO XLATE FOR AID X'01' @VA09496 01598250
- XLATE DS 0H @VA09496 01598300
- TR 0(1,R3),SNGLCHAR(R7) TRANSLATE NON-CMPD. TEXT @V387398 01598500
- NOTEXT MVC 0(1,R2),0(R3) SQUEEZE OUT X'1D' CHARS. @V387398 01598950
- LA R2,1(,R2) POINT TO NEXT CHAR. POS. @V387398 01599400
- LA R3,1(,R3) UPDATE BUFFER POINTER BY ONE @VM03094 01600000
- BCT R0,FAKESUB LOOP IF ANOTHER CHARACTER @V387398 01601000
- BR R14 RETURN TO IN LINE CODE @VM03094 01602000
- TSTRQMSG DC XL4'016C6102' SOH % / STX -TEST REQ MSG FORMAT @VA09496 01602050
- SPACE 2 01603000
- TRANSTST EQU * TRANSLATE & TEST FOR COMP. CHAR. @V305798 01604000
- CL R3,F256 LESS THAN 256 ? @V305798 01605000
- BNH APLTST YES, ONLY TRANSLATE & TEST ONCE @V305798 01606000
- TRT 0(256,R4),0(R7) TRANSLATE & TEST DATA @V305798 01607000
- BNZ APLMOVE FOUND COMP. CHAR. - MOVE DATA @VM03094 01608000
- MVC 0(256,R5),0(R4) MOVE DATA TO NEW BUFFER @V305798 01609000
- LA R4,256(,R4) UPDATE CURRENT CONTASK BUFFER PTR@V305798 01610000
- LA R5,256(,R5) UPDATE NEW CONTASK BUFFER PTR @V305798 01611000
- S R3,F256 DECREMENT DATA COUNT @V305798 01612000
- BNPR R10 IF ZERO, RETURN TO IN LINE CODE @VM03040 01613000
- B TRANSTST CONTINUE TRANSLATING DATA @V305798 01614000
- APLMOVE EQU * MOVE DATA INTO NEW CONTASK BUFFER@V305798 01615000
- SR R1,R4 GET LENGTH OF DATA @V305798 01616000
- EX R1,MOVEAPL MOVE DATA INTO NEW BUFFER @VM03040 01617000
- AR R5,R1 UPDATE NEW BUFFER POINTER @V305798 01618000
- AR R4,R1 UPDATE CURRENT BUFFER POINTER @V305798 01619000
- B 4(R10) MOVE FAKE ATTR CHAR. INTO BUFFER @V305798 01620000
- SPACE 01621000
- APLTST EQU * TRANSLATE & TEST FOR COMP. CHAR. @V305798 01622000
- BCTR R3,R0 SUBSTRACT ONE - EX INSTR. @VM03040 01623000
- EX R3,TRTTST TRANSLATE & TEST DATA @VM03040 01624000
- LA R3,1(,R3) UPDATE COUNTER - EX INSTR. @VM03040 01625000
- BNZ APLMOVE FOUND COMPOUND CHARACTER @VM03094 01626000
- BCTR R3,0 SUBTRACT ONE FOR EXECUTE @VA09182 01627100
- EX R3,MOVEAPL MOVE DATA TO BUFFER @VA09182 01627200
- LA R3,1(,R3) RESET BYTE COUNT @VA09182 01627300
- BR R10 RETURN TO IN LINE CODE @V305798 01628000
- EJECT 01629000
- NOTCTL DS 0H @V407508 01630100
- SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 01630200
- NOCTL DS 0H @V407508 01630300
- NI RDEVTFLG,X'FF'-RDEVCTL RESET CTL FLAG @V407508 01630400
- L R6,RDEVCON GET CONTASK STACK @V200730 01631000
- LTR R6,R6 ANY TO DO ?? @V200730 01632000
- BZ FRETIOB NO -- CLEAN UP AND EXIT @VM08587 01633000
- TM CONSTAT,CONACTV FINISHED INPUT CONTASK ? @VM08587 01634000
- BZ BLDCCWS NO -- TRY TO START IT UP @VM08587 01635000
- BAL R3,CONRET RETURN THE FINISHED TASK @VM08587 01636000
- B NOCTL TAKE ANOTHER LOOK @VM08587 01637000
- FRETIOB EQU * @VA01632 01638000
- CLRCTL NI RDEVTFLG,X'FF'-RDEVCTL NO CTL MODE @V200730 01640000
- IDLEIOB EQU * FRET IOBLOK AND SIT IDLE UNLESS @VA02361 01641000
- * COPIED IOBLOK 01642000
- TM RDEVGRIC,GRAPHAT ATTN PENDING? HRC101DK 01642200
- BO ATTNINT1 YES - GO TAKE CARE OF IT HRC101DK 01642400
- IDLEIOB1 EQU * HRC101DK 01642600
- C R10,IOBLINK COPIED IOBLOK ? @VA02361 01643000
- BNE *+8 YES -- SOME IOBLOK STILL ACTIVE @VA02361 01644000
- NI RDEVFLAG,X'FF'-RDEVACTV NO -- NO ACTIVE IOBLOK @VA02361 01645000
- RELIOBLK BAL R3,FRETIOER FRET ANY IOERBLOK @VA04772 01645500
- LR R1,R10 ADDRESS OF IOBLOK TO FRET @VA02361 01646000
- LA R0,IOBSIZE AND SIZE OF IT. @VA02361 01647000
- CALL DMKFRET @VA02361 01648000
- GRFEXIT GOTO DMKDSPCH DISPATCH @V200830 01649000
- SPACE 3 01650000
- SPACE 1 01651000
- SPACE 2 01652000
- EJECT 01653000
- BLD77WRT EQU * BUILD WRITE CCWS @V305798 01654000
- LA R0,4 WRITE CCW CONTROL CHARS. SIZE @V60A6B6 01655100
- AH R0,CONCNT ADD IN THE CONTASK DATA COUNT @V60A6B6 01655200
- SLR R2,R2 CLEAR THE INDEX REGISTER @V60A6B6 01655300
- L R2,RDEVGRTB LOAD GRTBLOK START ADDRESS... @V60A6B6 01655400
- MVC CONCCW1(24),GRTWRTCP-GRTBLOK(R2) GET MODELS @V60A6B6 01655500
- MVI CONCCW4+4,WCC0 SET UP WRITE CONTROL CHARACTER HRC310DK 01655660
- MVI CONCCW4+5,SBA ADD A SET BUFFER ADDRESS ORDER @V60A6B6 01655700
- TM RDEVSTA3,RDEVEWRT Erase/write required? HRC071DK 01655710
- BZ NOEWA No HRC071DK 01655720
- NI RDEVSTA3,255-RDEVEWRT Turn off flag HRC071DK 01655730
- MVI CONCCW4+4,WCC6 Use unlock WCC HRC071DK 01655740
- MVI CONCCW2,EWR Set CCW to Erase Write HRC071DK 01655750
- CLI RDEVMDL,X'02' Model num > 2 ? HRC071DK 01655760
- BNH NOEWA No, its 2 or less HRC071DK 01655770
- MVI CONCCW2,EWA CCW to Erase Write Alt HRC071DK 01655780
- NOEWA EQU * HRC071DK 01655790
- STH R0,CONCCW2+6 SET TOTAL DATA COUNT INTO CCW. @V60A6B6 01655800
- STC R4,CONCCW1+5 SAVE NUMBER OF LINES @V200830 01657000
- LA R3,CONCCW4+4 DATA START @V200830 01661000
- STCM R3,7,CONCCW2+1 SET CCW ADDRESS @V200830 01662000
- SR R3,R3 CLEAR @V200830 01663000
- IC R3,RDEVCORD GET LINE POSN @V200730 01664000
- TM TRQBFLAG,CRTSIO IS USER WRITING TO INPUT AREA @VM03094 01665000
- BZ *+8 NO,BYPASS GETTING LINE COORDINATE@VM03094 01666000
- IC R3,TRQBLINE GET INPUT AREA LINE COORDINATE @VM03094 01667000
- SLL R3,1 TIMES 2 @V200730 01668000
- LH R2,CONCCW4+8 GET SBA FROM DATA HRC301DK 01669105
- CH R2,=X'1DE8' IS THIS A HIGHLIGHT SBA HRC301DK 01669110
- BNE BLD77REG NO, CONTINUE HRC301DK 01669115
- LTR R3,R3 ON FIRST LINE? HRC310DK 01669120
- BZ BLD77LST YUP, PUT ON LAST LINE HRC310DK 01669125
- L R2,=A(DMKGRTBF) TABLE OF LAST CHARS HRC310DK 01669130
- S R3,F2 BACK UP ONE HRC310DK 01669135
- B BLD77SBA AND INSERT SBA HRC310DK 01669140
- BLD77LST L R2,RDEVGRTB GET THE RIGHT GRT BLOCK HRC310DK 01669145
- LA R3,GRTLAST-GRTBLOK POINT AT THE ADDR'S HRC310DK 01669150
- B BLD77SBA HRC301DK 01669155
- BLD77REG EQU * HRC310DK 01669160
- L R2,=A(DMKGRTBL) HRC301DK 01669165
- BLD77SBA EQU * HRC301DK 01669170
- * The following code thru label NOTMD5 allows this update to HRC073DK 01669200
- * be applied and operate correctly with or without the HRC073DK 01669250
- * presence of modification HRC310DK. HRC073DK 01669300
- CLI RDEVMDL,X'05' IS THIS A 3278-5? HRC073DK 01669350
- BNE NOTMD5 NO; NO SPECIAL PROCESSING HRC073DK 01669400
- C R2,=V(DMKGRTBF) USING 'LAST CHAR' TABLE? HRC073DK 01669450
- BE MD5LAST YES, SWITCH IT TO MOD 5 VERSION HRC073DK 01669500
- C R2,=A(DMKGRTBL) USING NORMAL SBA TABLE? HRC073DK 01669550
- BNE NOTMD5 NO; NO FURTHER ACTION REQUIRED HRC073DK 01669600
- L R2,=A(DMKGRTCL) USE MODEL 5 'NORMAL' SBA TABLE HRC073DK 01669650
- B NOTMD5 REJOIN ORIGINAL CODE HRC073DK 01669700
- MD5LAST EQU * HRC073DK 01669750
- L R2,=A(DMKGRTCF) USE MODEL 5 'LAST CHAR' TABLE HRC073DK 01669800
- NOTMD5 EQU * HRC073DK 01669850
- LH R3,0(R2,R3) LOAD CORRECT EBCDIC DATA @VA60A6B6 HRC073DK 01669900
- STH R3,CONCCW4+6 SET BUFFER ADDRESS @V200830 01670000
- TM CONPARM,ALARM ALARM WITH MESSAGE ?? @V200830 01671000
- BZ CALLIOS NO, CONT @V200730 01672000
- OI TRQBFLAG,CRTALRM FLAG SCREEN ALARM @V200730 01673000
- OI CONCCW4+4,WCC5 SET ALARM BIT @V200830 01674000
- B CALLIOS CONT @V200730 01675000
- SPACE 01676000
- BLD77IDS L R1,IOBCAW GET CCW ADDRESS FOR BUILD @V200730 01677000
- SLR R2,R2 CLEAR THE INDEX REGISTER @V60A6B6 01678100
- L R2,RDEVGRTB GET GRTBLOK START ADDRESS... @V60A6B6 01678200
- MVC 0(24,R1),GRTWINCP-GRTBLOK(R2) MOVE IN CCWS @V60A6B6 01678300
- STCM R4,7,17(R1) SET DATA ADDRESS @V200730 01680000
- STH R3,22(R1) SET DATA COUNT @V200730 01681000
- BLDRDEX LA R1,RDEXIT RETURN PROCESSING 01684000
- ST R1,TRQBCRT SET RETURN ADDRESS @V200730 01685000
- L R1,IOBCAW GET CCW START @V200730 01686000
- B CALLIOS DO IO @V200730 01687000
- SPACE 01693000
- BLD77RMI L R1,IOBCAW GET CCW ADDRESS @V200730 01694000
- L R2,RDEVGRTB GET GRTBLOK START ADDRESS... @V60A6B6 01695100
- MVC 0(24,R1),GRTRMICP-GRTBLOK(R2) MOVE IN CCWS @V60A6B6 01695200
- L R3,IOBMISC GET BUFFER ADDRESS @V200730 01696000
- STCM R3,7,17(R1) SET DATA ADDRESS @V200730 01697000
- B CALLIOS CONT @V200730 01698000
- EJECT 01699000
- BLD77FMT EQU * @V60A6B6 01701000
- SR R3,R3 HRC101DK 01702990
- IC R3,RDEVGRTY GET THE INDEXED VALUE HRC101DK 01703980
- L R1,=A(DMKBOXMD) HRC101DK 01704970
- L R1,0(R3,R1) GET ADDRESS OF LOGO HRC101DK 01705960
- SLL R3,2 Multiply index by 4 HRC071DK 01705963
- LA R3,FMT77M2(R3) -> CCW for this model # HRC071DK 01705965
- * If we are running on Hercules-380, then update the "VM/370 HRC370DK 01705970
- * Online" message to say "VM/380 Online". HRC370DK 01705980
- MVC 748(R1,1),INSTWRD1 zap with 7 or 8 from PSA HRC370DK 01705990
- MVC 14(2,R3),0(R1) Move logo size to CCW HRC071DK 01706951
- LA R1,2(,R1) HRC101DK 01707940
- STCM R1,7,9(R3) Move logo addr to CCW HRC071DK 01708931
- * We update the "VM/370" message on the logo screen as well. HRC370DK 01708940
- L R1,FMT77CCW get address of big logo screen HRC370DK 01708950
- MVC 8(1,R1),INSTWRD1 zap with 7 or 8 from PSA HRC370DK 01708960
- LR R1,R3 R1 -> Final CCW for IOS HRC071DK 01714100
- TM VMOSTAT,VMSYSOP IS USER SYSTEM OPERATOR @VM08601 01717100
- BZ CALLIOS NO - FORMAT CCW'S OK @VM08601 01717200
- B GRFCLRT YES - CLEAR THE SCREEN @V60A6B6 01718000
- SPACE 2 01719000
- * OF THE OPERATIONS BELOW, THOSE WHICH BRANCH TO 'SETCCWS' 01720000
- * HAVE AN OFFSET FROM THE START OF THE GRTBLOK RATHER THAN 01721000
- * AN ADDRESS OF A CCW STRING LOADED INTO REGISTER 1. 01722000
- SPACE 01723000
- BLD77HLD LA R1,HLD77CCW CCW ADDRESS @V200730 01724000
- B SETCCWS @V60A6B6 01725000
- BLD77MOR LA R1,MOR77CCW CCW ADDRESS @V200730 01726000
- B SETCCWS @V60A6B6 01727000
- BLD77WNG LA R1,WNG77CCW CCW ADDRESS @V200730 01728000
- B CALLIOS @V200730 01729000
- BLD77NAC LA R1,NAC77CCW CCW ADDRESS @V200730 01730000
- B SETCCWS @V60A6B6 01731000
- BLD77CRD LA R1,CRD77CCW CCW ADDRESS @VA04374 01732200
- TM RDEVTFLG,RDEVMORE+RDEVHOLD IN MORE OR HOLD @VA05100 01732410
- BZ SETCCWS @V60A6B6 01732700
- LA R1,MRD77CCW ELSE, LEAVE STATUS AS IS ... @VA04374 01732800
- B SETCCWS @V60A6B6 01733100
- BLD77RUN LA R1,RUN77CCW CCW ADDRESS @V200730 01734000
- B SETCCWS @V60A6B6 01735100
- BLD77CLR EQU * 01735200
- TM TRQBFLAG,CRTUSEWA DO WE NEED A E/W? 01735300
- BZ BLD77CLS 01735400
- NI TRQBFLAG,X'FF'-CRTUSEWA RESET THE E/W FLAG 01735500
- LA R1,EWR77CCW CCW ADDRESS 01735600
- B SETCCWS 01735700
- BLD77CLS EQU * 01735800
- LA R1,CLR77CCW CCW ADDRESS @V60A6B6 01735900
- MVI RDEVKEYC,0 CLEAR LAST INTERRUPT KEY HRC310DK 01735950
- B SETCCWS @V60A6B6 01736000
- BLD77VMR LA R1,VMR77CCW CCW ADDRESS @V200730 01738000
- B SETCCWS @V60A6B6 01739000
- BLD77CPR LA R1,CPR77CCW CCW ADDRESS @V200730 01740000
- B SETCCWS @V60A6B6 01741000
- BLD77CPP LA R1,CPP77CCW CCW ADDRESS @V200730 01742000
- B SETCCWS @V60A6B6 01743000
- BLD77VMP LA R1,VMP77CCW CCW ADDRESS @V200730 01744000
- B SETCCWS @V60A6B6 01745000
- BLD77RST LA R1,RST77CCW CCW ADDRESS HRC310DK 01745100
- B SETCCWS HRC310DK 01745200
- EJECT 01746000
- * LOCAL 3270 CHANNEL PROGRAMS FOR ALL DISPLAY SIZES 01747000
- SPACE 01748000
- TAB77CCW CCW X'0B',0,SILI+CC,1 01763000
- CCW X'01',*-*,SILI,9 01764000
- SPACE 01765000
- SNSCCW CCW X'04',*-*,SILI,1 SENSE FOR PRINTER @V305798 01766000
- RDCOPY CCW X'0B',0,SILI+CC,1 SELECT CCW @V305798 01767000
- CCW X'02',*-*,SILI,3848 READ SCREEN DATA @VM03116 01768000
- WTCOPY CCW X'0B',0,SILI+CC,1 SELECT CCW @V305798 01769000
- CCW X'05',*-*,SILI,*-* WRITE TO PRINTER @VA09763 01770000
- SPACE 01776000
- FMT77M2 CCW X'01',DMKGRTFD,SILI+CD,24 Model 2 HRC071DK 01777000
- CCW X'00',*-*,SILI,792 HRC071DK 01777200
- FMT77M3 CCW X'01',DMKGRTFD,SILI+CD,24 Model 3 HRC071DK 01777400
- CCW X'00',*-*,SILI,792 HRC071DK 01777600
- FMT77M4 CCW X'01',DMKGRTFD,SILI+CD,24 Model 4 HRC071DK 01777800
- CCW X'00',*-*,SILI,792 HRC071DK 01778000
- FMT77M2A CCW X'01',DMKGRTFD,SILI+CD,24 Model 2A HRC071DK 01778200
- CCW X'00',*-*,SILI,792 HRC071DK 01778400
- FMT77M5 CCW X'01',DMKGRTFD,SILI+CD,24 Model 5 HRC073DK 01778500
- CCW X'00',*-*,SILI,792 HRC073DK 01778510
- FMT77CCW EQU FMT77M2 HRC071DK 01778600
- MODEL2 EQU X'00' SCREEN DISP FOR 3278 MOD 2 IS 00 HRC101DK 01780030
- MODEL3 EQU X'04' SCREEN DISP FOR 3278 MOD 3 IS 04 HRC101DK 01780040
- MODEL4 EQU X'08' SCREEN DISP FOR 3278 MOD 4 IS 08 HRC101DK 01780050
- MODEL2A EQU X'0C' SCREEN DISP FOR 3278 MOD 2A IS 12 @V60A6B6 01780100
- SPACE 01781000
- WNG77CCW CCW X'0B',0,SILI+CC,1 @V200730 01805000
- CCW X'01',WNG3277,SILI,1 @V200730 01806000
- EJECT 01816000
- COPYDWSZ DC A(3848/8,5120/8,6880/8,3200/8) HRC101DK 01830990
- SPACE 2 01836000
- KEYTBLP DC A(DATA77) 00 @V200730 01911000
- DC A(CLRKEY) 04 @V305798 01912000
- DC A(PA1KEY) 08 @V200730 01913000
- DC A(PA3KEY) 0C @V200730 01914000
- DC A(CRDREAD) 10 @V60A6B6 01915000
- DC A(PFKEY) 14 @V200730 01916000
- DC A(CNCLKEY) 18 @V60A6B6 01917000
- DC A(TESTREQ) 1C @V60A6B6 01918000
- SPACE 2 01919000
- CPY77D DC AL1(WCCP,SBA,X'40',X'40') COPY CONTROL CHARS. @V60A6B6 01920000
- WNG3277 DC AL1(WCC4) @VA07171 01921000
- WCCP EQU X'F8' FOR STARTING PRINTER OPERATION @V60A6B6 01922000
- NOMC DC X'10' DON'T ALLOW MONITOR CALL @VA09459 01925000
- DS 0H @V60A6B6 01926000
- EJECT 01939000
- BLD66WRT EQU * BUILD 3066 WRITE CCW STRING @V305798 01940000
- LH R3,CONCNT DATA COUNT @V200830 01941000
- MVC CONCCW1(3*8),WRT66CCW SET CCWS @V200830 01942000
- STC R4,CONCCW1+5 SAVE NUMBER OF LINES @V200830 01943000
- STH R3,CONCCW2+6 SET DATA COUNT @V200830 01944000
- LA R3,CONDATA DATA START @V200830 01945000
- STCM R3,7,CONCCW2+1 SET CCW ADDRESS @V200830 01946000
- MVC CONCCW4(2),RDEVCORD SET BUFFER ADDRESS @V200830 01947000
- LA R3,CONCCW4 DATA ADDRESS @V200830 01948000
- STCM R3,7,CONCCW1+1 SET CCW ADDESS @V200830 01949000
- MVI WRT66ALM,X'03' ASSUME NO ALARM @V200830 01950000
- TM CONPARM,ALARM ALARM WITH THIS MESSAGE @V200830 01951000
- BZ CALLIOS NO, CONT @V200730 01952000
- OI TRQBFLAG,CRTALRM FLAG SCREEN ALARM @V200730 01953000
- MVI WRT66ALM,X'0B' SOUND ALARM @V200830 01954000
- B CALLIOS CONT @V200730 01955000
- SPACE 01956000
- BLD66RMI L R1,IOBCAW GET CCW ADDRESS @V200730 01957000
- MVC 0(32,R1),RMI66CCW GET MODEL CCWS @V200730 01958000
- L R3,IOBMISC GET BUFFER ADDRESS @V200730 01959000
- STCM R3,7,1(R1) SET CURSOR DATA ADDRESS @V200730 01960000
- LA R3,6(R3) DATA ADDRESS @V200730 01961000
- STCM R3,7,17(R1) SET ADAT CCW ADDRESS @V200730 01962000
- B CALLIOS @V200730 01963000
- SPACE 01964000
- BLD66FMT LA R1,FMT66CCW CCW ADDRESS @V200730 01965000
- B CALLIOS @V200730 01966000
- BLD66HLD LA R1,HLD66CCW CCW ADDRESS @V200730 01967000
- B CALLIOS @V200730 01968000
- BLD66MOR LA R1,MOR66CCW CCW ADDRESS @V200730 01969000
- B CALLIOS @V200730 01970000
- BLD66WNG LA R1,WNG66CCW CCW ADDRESS @V200730 01971000
- B CALLIOS @V200730 01972000
- BLD66NAC LA R1,NAC66CCW CCW ADDRESS @V200730 01973000
- B CALLIOS @V200730 01974000
- BLD66CRD MVI CLRDATA,C' ' BLANK AN AREA @V200730 01975000
- MVC CLRDATA+1(159),CLRDATA CLEAR TO BLANKS @V200730 01976000
- LA R1,CRD66CCW POINT TO RUN MSG CCW @VA04374 01976200
- TM RDEVTFLG,RDEVMORE+RDEVHOLD IN MORE OR HOLD ?? @VA05100 01976410
- BZ CALLIOS NO, SET STATUS TO RUNNING @VA04374 01976600
- LA R1,MRD66CCW ELSE, LEAVE SCREEN STAT AS IS @VA04374 01976800
- B CALLIOS @V200730 01978000
- BLD66RUN LA R1,RUN66CCW CCW ADDRESS @V200730 01979000
- MVI WRT66ALM,X'03' SET END TO NOP @V200830 01980000
- B CALLIOS @V200730 01981000
- BLD66CLR LA R1,CLR66CCW CCW ADDRESS @V200730 01982000
- B CALLIOS @V200730 01983000
- BLD66VMR LA R1,VMR66CCW CCW ADDRESS @V200730 01984000
- B CALLIOS @V200730 01985000
- BLD66CPR LA R1,CPR66CCW CCW ADDRESS @V200730 01986000
- B CALLIOS @V200730 01987000
- EJECT 01988000
- * 3066 CCW PACKAGES 01989000
- SPACE 01990000
- WRT66CCW CCW X'27',*-*,SILI+CC,2 @V200730 01991000
- CCW X'01',*-*,SILI+CC,*-* @V200730 01992000
- CCW X'08',RUN66CCW,0,0 TIC TO WRITE RUNNING @V200830 01993000
- SPACE 01994000
- RMI66CCW CCW X'0E',*-*,SILI+CC,3 @V200730 01995000
- CCW X'27',SBA3300,SILI+CC,2 @V200730 01996000
- CCW X'06',*-*,SILI+CC,BUFINLTH @V200730 01997000
- CCW X'03',0,SILI,1 @V200730 01998000
- SPACE 01999000
- FMT66CCW CCW X'07',0,SILI+CC,1 @V200730 02000000
- CCW X'27',SBA0000,SILI+CC,2 @V200730 02001000
- CCW X'01',DMKGRTFO,SILI+CC,20 @V60A6B6 02002000
- CCW X'27',SBA3460,SILI+CC,2 @V200730 02003000
- CCW X'01',RUNNING,SILI+CC,20 @V60A6B6 02004000
- CCW X'0F',SBA3300,SILI+CC,2 @V200730 02005000
- CCW X'03',0,SILI,1 @V200730 02006000
- SPACE 02007000
- HLD66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02008000
- CCW X'01',HOLDING,SILI+CC,20 @V60A6B6 02009000
- CCW X'03',0,SILI,1 @V200730 02010000
- SPACE 02011000
- MOR66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02012000
- CCW X'01',MOREMSG,SILI+CC,20 @V60A6B6 02013000
- CCW X'03',0,SILI,1 @V200730 02014000
- SPACE 02015000
- NAC66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02016000
- CCW X'01',NOTACCPT,SILI+CC,20 @V60A6B6 02017000
- WNG66CCW CCW X'0B',0,SILI+CC,1 02018000
- CCW X'03',0,SILI,1 02019000
- SPACE 02020000
- CRD66CCW CCW X'27',SBA3300,SILI+CC,2 02021000
- CCW X'01',CLRDATA,SILI+CC,140 @V200730 02022000
- CCW X'27',SBA3460,SILI+CC,2 @VA04374 02023200
- CCW X'01',RUNNING,SILI+CC,20 @V60A6B6 02023400
- CCW X'0F',SBA3300,SILI+CC,2 @VA04374 02023600
- CCW X'03',0,SILI,1 @V200730 02024000
- SPACE 2 02024100
- MRD66CCW CCW X'27',SBA3300,SILI+CC,2 @VA04374 02024200
- CCW X'01',CLRDATA,SILI+CC,140 @VA04374 02024300
- CCW X'0F',SBA3300,SILI+CC,2 @VA04374 02024400
- CCW X'03',0,SILI,1 @VA04374 02024500
- SPACE 02025000
- RUN66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02026000
- CCW X'01',RUNNING,SILI+CC,20 @V60A6B6 02027000
- WRT66ALM CCW X'03',0,SILI,1 @V200830 02028000
- SPACE 02029000
- CLR66CCW CCW X'0E',CLRMI,SILI+CC,3 @V200730 02030000
- CCW X'0F',SBA0000,SILI+CC,2 @V200730 02031000
- CCW X'27',SBA3300,SILI+CC,2 @V200730 02032000
- CCW X'06',CLRDATA,SILI+CC,160 @V200730 02033000
- CCW X'07',0,SILI+CC,1 @V200730 02034000
- CCW X'27',SBA3300,SILI+CC,2 @V200730 02035000
- CCW X'01',CLRDATA,SILI+CC,160 @V200730 02036000
- CCW X'0F',CLRMI,SILI+CC,2 @V200730 02037000
- CCW X'03',0,SILI,1 @V200730 02038000
- CLRMI DC CL3' ' @V200730 02039000
- CLRDATA DC CL160' ' @V200730 02040000
- SPACE 02041000
- VMR66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02042000
- CCW X'01',VMREAD,SILI+CC,20 @V60A6B6 02043000
- CCW X'03',0,SILI,1 @V200730 02044000
- SPACE 02045000
- CPR66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02046000
- CCW X'01',CPREAD,SILI+CC,20 @V60A6B6 02047000
- CCW X'03',0,SILI,1 @V200730 02048000
- SPACE 3 02049000
- * CONSTANTS 02050000
- RUNNING DC CL20'RUNNING' @V60A6B6 02050010
- HOLDING DC CL20'HOLDING' @V60A6B6 02050020
- MOREMSG DC CL20'MORE...' @V60A6B6 02050030
- NOTACCPT DC CL20'NOT ACCEPTED' @V60A6B6 02050040
- CPREAD DC CL20'CP READ' @V60A6B6 02050050
- VMREAD DC CL20'VM READ' @V60A6B6 02050060
- SPACE 02050070
- ENTER EQU X'80' 3066 ENTER MASK @V60A6B6 02050080
- CANCEL EQU X'40' 3066 CANCEL MASK @V60A6B6 02050090
- SPACE 02050100
- SBA0000 DC AL1(00,00) CORDINATES FOR TOP OF CRT @V200730 02051000
- SBA3300 DC AL1(33,00) COORDINATES FOR READ INPUT DATA @V200730 02052000
- SBA3460 DC AL1(34,60) COORDINATES FOR SYSTEM STATUS @V200730 02053000
- SPACE 02054000
- MSGNUM DC AL1(0,1,2,3,4,30,31,32) ...DMKMSWR MSG NUMBERS @VA08135 02055100
- SPACE 02056000
- DS 0D ALIGN TO DOUBLE WORD BOUNDARY @V200730 02057000
- RDEVKEYC DS 0X Dummy field to accommodate whether HRC101DK HRC072DK 02057500
- * is present or not. HRC072DK 02057510
- TMRVALUE DC D'0' TIME INTERVAL VALUE @V200730 02058000
- PARM3277 DC X'04040102030F060F0F0F0F0F0F0F0F3F' @VA10802 02058110
- PARMLEN EQU 2 LENGTH IN DOUBLEWORDS OF PARM LST@VA03757 02058200
- SPACE 1 02058300
- * BITS DEFINED IN 3277 SENSE BYTE 02058400
- IR EQU X'40' INTERVENTION REQUIRED @VA03757 02058600
- EC EQU X'10' EQUIPEMENT CHECK @VA03757 02058700
- DC EQU X'08' DATA CHECK @VA03757 02058800
- US EQU X'04' UNIT SPECIFY @VA03757 02058900
- SPACE 02059100
- X6A EQU X'6A' @V60A6B6 02059200
- H784 DC H'0784' @V60A6B6 02059300
- H792 DC H'0792' @V60A6B6 02059400
- EJECT 02061000
- LTORG @V200730 02062000
- EJECT 02063000
- GRTBLOK 02063010
- * 3270 CCW OFFSETS INTO THE GRTBLOK 02063020
- SPACE 02063030
- CLR77CCW EQU GRTCLRCP-GRTBLOK @V60A6B6 02063040
- CNC77CCW EQU GRTCNCCP-GRTBLOK HRC310DK 02063045
- CPP77CCW EQU GRTCPPCP-GRTBLOK @V60A6B6 02063050
- CPR77CCW EQU GRTCPRCP-GRTBLOK @V60A6B6 02063060
- CRD77CCW EQU GRTCRDCP-GRTBLOK @V60A6B6 02063070
- EWR77CCW EQU GRTEWRCP-GRTBLOK 02063080
- HLD77CCW EQU GRTHLDCP-GRTBLOK @V60A6B6 02063090
- MOR77CCW EQU GRTMORCP-GRTBLOK @V60A6B6 02063100
- MRD77CCW EQU GRTMRDCP-GRTBLOK @V60A6B6 02063110
- NAC77CCW EQU GRTNACCP-GRTBLOK @V60A6B6 02063120
- RUN77CCW EQU GRTRUNCP-GRTBLOK @V60A6B6 02063130
- RST77CCW EQU GRTRSTCP-GRTBLOK HRC310DK 02063135
- VMP77CCW EQU GRTVMPCP-GRTBLOK @V60A6B6 02063140
- VMR77CCW EQU GRTVMRCP-GRTBLOK @V60A6B6 02063150
- SPACE 3 02063160
- COPY TIMER @V200730 02064000
- SPACE 2 02065000
- EJECT 02081000
- COPY DEVTYPES @V200730 02082000
- COPY EQU @V200730 02083000
- COPY VBLOKS @V200730 02084000
- COPY RBLOKS @V200730 02085000
- COPY CONBUF @V200730 02086000
- BUFNORM EQU BUFINLTH+6 SIZE OF NORMAL READ BUFFER @VM03043 02087000
- COPY IOBLOKS @V200730 02089000
- COPY IOER @V200730 02090000
- COPY VMBLOK @V200730 02091000
- COPY SAVE @V200730 02092000
- PSA @V200730 02093000
- COPY XINTBLOK @V305798 02094000
- END 02095000
ibm/vm370-lib/cp/dmkgrf.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator