ibm:vm370-lib:cms:dmstqq.assemble_src
Table of Contents
DMSTQQ Source
References
- Fixes Applied : 1
- This Source Date : Tuesday, December 12, 1978
- Last Fix ID : [R09011DS]
Source Listing
- DMSTQQ.ASSEMBLE.txt
- TQQ TITLE 'DMSTQQ (CMS) VM/370 - RELEASE 6' 00001000
- SPACE 2 00002000
- *. 00003000
- * MODULE NAME: 00008000
- * 00009000
- * DMSTQQ 00010000
- * 00011000
- * SUBROUTINE NAME: 00012000
- * 00013000
- * DMSTQQ 00014000
- * 00015000
- * FUNCTION: 00016000
- * 00017000
- * TO ALLOCATE A 200-BYTE FIRST CHAIN LINK (FCL) TO A 00018000
- * CALLING PROGRAM. 00019000
- * 00020000
- * ATTRIBUTES: 00021000
- * 00022000
- * REENTRANT, NUCLEUS-RESIDENT. 00023000
- * 00024000
- * ENTRY POINTS: 00025000
- * 00026000
- * DMSTQQ 00027000
- * 00028000
- * CALLING SEQUENCE: 00029000
- * 00030000
- * L R15, AQQTRK WHERE AQQTRK=V(DMSTQQ) 00031000
- * BALR R14, R15 00032000
- * 00033000
- * ENTRY CONDITIONS: 00034000
- * 00035000
- * R1 MUST POINT TO ACTIVE DISK TABLE BLOCK 00036000
- * R13 MUST POINT TO FVS AREA 00037000
- * 00038000
- * EXIT CONDITIONS: 00039000
- * 00040000
- * NORMAL RETURN 00041000
- * 00042000
- * R1 CONTAINS DISK-ADDRESS OF AVAILABLE 200-BYTE AREA. 00043000
- * (SEE FIGURE 24 FOR FORMAT) 00044000
- * R15=0 (AND CONDITION-CODE=0) 00045000
- * 00046000
- * NO 200 BYTE AREA AVAILABLE (ERROR 1) 00047000
- * 00048000
- * R1=0 00049000
- * R15=1 (AND CONDITION-CODE=2) 00050000
- * 00051000
- * ERROR BY CALLER (ERROR 2) 00052000
- * 00053000
- * R1 SAME AS AT ENTRY 00054000
- * R15=2 (AND CONDITION-CODE=2) 00055000
- * 00056000
- * CALLS TO OTHER ROUTINES: 00057000
- * 00058000
- * DMSTRKA, DMSTRKX 00059000
- * 00060000
- * EXTERNAL REFERENCES: 00061000
- * 00062000
- * ADTSECT, FVSECT, DMSNUC 00063000
- * 00064000
- * TABLES/WORKAREAS: 00065000
- * 00066000
- * NONE 00067000
- * 00068000
- * REGISTER USAGE: 00069000
- * 00070000
- * R13, FVSECT 00071000
- * R11, BASE 00072000
- * R1 , ADSTSECT 00073000
- * REST WORK 00074000
- * MACROS USED: 00075000
- * 00076000
- * ADT, FVS 00077000
- * 00078000
- * OPERATION: 00079000
- * 00080000
- * DMSTQQ FIRST CHECKS TO SEE THAT THE DISK IS LOGGED IN 00081000
- * AND READ/WRITE. THE QQMASK TABLE IN THE ADT IS THEN 00082000
- * SEARCHED FOR AN AVAILABLE ENTRY. IF ONE IS FOUND, 00083000
- * THE ADDRESS IN THE TABLE ENTRY IS RETURNED TO THE 00084000
- * CALLER IN REGISTER 1 AND THE ENTRY IN THE TABLE IS 00085000
- * ZEROED. IF NO ENTRY IS FOUND, DMSTRKA IS CALLED TO 00086000
- * GET ANOTHER 800-BYTE BLOCK ADDRESS. 00087000
- * AN ENTRY WILL BE FOUND ONLY FOR A 2314. IF THE 00088100
- * DEVICE IS NOT A 2314 OR IF THE BLOCK NUMBER IS GREATER 00088200
- * THAN 8191 THE ENTIRE BLOCK IS RETURNED TO THE CALLER. 00090000
- * IF THE BLOCK NUMBER IS NOT GREATER THAN 8191, THE 00091000
- * ADDRESS OF THE LAST 200 BYTES IS RETURNED TO THE 00092000
- * CALLER, AND THE ADDRESSES OF THE FIRST 3 SLOTS ARE 00093000
- * PUT IN THE QQMASK TABLE. 00094000
- * 00095000
- * NOTES: AT ENTRY, DMSTQQ CHECKS THAT THE POINTER TO 00096000
- * ADT BLOCK IN R1 IS POSITIVE AND NONZERO, THAT THE 00097000
- * DISK REFERENCED THEREBY IS READ-WRITE, AND THAT THE 00098000
- * USER FILE DIRECTORY, INCLUDING THE QQMSK TABLE, IS 00099000
- * INDEED IN MEMORY. 00100000
- * 00101000
- * WHEN CALLING DMSTRKA, IF DMSTQQ OBTAINS AN ERROR 4 00102000
- * INDICATING "VERY FEW" RECORDS LEFT, DMSTQQ RETURNS 00103000
- * THE RECORD JUST OBTAINED VIA DMSTRKX BEFORE 00104000
- * RETURNING WITH ERROR-CODE 1 TO THE CALLER, SO THAT 00105000
- * SUFFICIENT RECORDS ARE HELD IN RESERVE TO UPDATE THE 00106000
- * FILE DIRECTORY IN HANDLING THE FULL-DISK SITUATION. 00107000
- * 00108000
- * MODULE NAME: 00109000
- * 00110000
- * DMSTQQ 00111000
- * 00112000
- * SUBROUTINE NAME: 00113000
- * 00114000
- * DMSTQQX 00115000
- * 00116000
- * FUNCTION: 00117000
- * 00118000
- * TO MAKE A 200-BYTE AREA THAT IS NO LONGER NEEDED BY 00119000
- * ONE PROGRAM AVAILABLE FOR ALLOCATION TO ANOTHER. 00120000
- * 00121000
- * ENTRY POINTS: 00122000
- * 00123000
- * DMSTQQX 00124000
- * 00125000
- * CALLING SEQUENCE: 00126000
- * 00127000
- * L R15, AQQTRKX WHERE AQQTRKX=V(DMSTQQX) 00128000
- * BALR R14, R15 00129000
- * 00130000
- * ENTRY REQUIREMENTS: 00131000
- * 00132000
- * R0 (RIGHTMOST 16 BITS) MUST HOLD THE DISK ADDRESS 00133000
- * OF THE 200-BYTE DISK AREA BEING RETURNED. (SEE 00134000
- * FIGURE 24 FOR FORMAT.) 00135000
- * 00136000
- * R1 MUST POINT TO ACTIVE DISK TABLE BLOCK. 00137000
- * 00138000
- * R13 MUST POINT TO "FVS" AREA. 00139000
- * 00140000
- * EXIT CONDITIONS: 00141000
- * 00142000
- * NORMAL RETURN 00143000
- * 00144000
- * R15=0 (AND CONDITION-CODE=0) 00145000
- * 00146000
- * IF NO ERRORS ARE DETECTED, R15 IS ZERO. 00147000
- * 00148000
- * IF THE DISK IS NOT LOGGED IN OR IF IT IS NOT A 00149000
- * READ/WRITE DISK, R15 EQUALS 2. 00150000
- * 00151000
- * IF THE QQMASK IS FULL R15 EQUALS 1. 00152000
- * 00153000
- * CALLS TO OTHER ROUTINES: 00154000
- * 00155000
- * DMSTRKX 00156000
- * 00157000
- * EXTERNAL REFERENCES: 00158000
- * 00159000
- * ADSTSECT, FVSECT, DMSNUC 00160000
- * 00161000
- * TABLES/WORKAREAS: 00162000
- * 00163000
- * NONE 00164000
- * 00165000
- * REGISTER USAGE: 00166000
- * 00167000
- * R11, BASE 00168000
- * R13, FVSECT 00169000
- * R1 , ADTSECT 00170000
- * REST WORK 00171000
- * 00172000
- * OPERATION: 00173000
- * 00174000
- * DMSTQQX FIRST CHECKS TO SEE THAT THE DISK IS LOGGED 00175000
- * IN AND A READ/WRITE DISK. IF THE DISK IS NOT A 2314 OR 00176100
- * THE BLOCK ADDRESS INDICATES THE WHOLE BLOCK IS IN USE 00177000
- * (BIT 3=1), 00178000
- * DMSTRKX IS CALLED TO RETURN THE 800 BYTE DISK BLOCK. 00179000
- * OTHERWISE, THE BLOCK ADDRESS IS ADDED TO THE QQMASK 00180000
- * TABLE. THE TABLE IS THEN SEARCHED TO SEE IF ALL FOUR 00181000
- * 200 BYTE BLOCKS WITHIN THE SAME 800 BYTE BLOCK ARE IN 00182000
- * THE TABLE. 00183000
- * IF THEY ARE, THEY ARE REMOVED AND DMSTRKX CALLED TO 00184000
- * RELEASE THE 800 BYTE BLOCK. 00185000
- * 00186000
- * NOTES: LIKE DMSTQQ, DMSTQQX CHECKS FOR ERRORS BY THE 00187000
- * CALLER. 00188000
- * 00189000
- * IF A USER HAD AN EXTREMELY LARGE NUMBER OF FILES AND 00190000
- * ERASED THEM SPORADICALLY, IT IS THEORETICALLY 00191000
- * POSSIBLE THAT THE QQMSK TABLE COULD BECOME FULL FROM 00192000
- * THE OTHER THREE PARTS OF 800-BYTE RECORDS BEING 00193000
- * RETURNED FOR EACH RETURNED 200-BYTE RECORD. IF THIS 00194000
- * OCCURS, THE TABLE IS NOT PERMITTED TO OVERFLOW. 00195000
- * AN ERROR 3 IS GIVEN, WHICH IS NONFATAL. 00196000
- * PROCESSING CONTINUES, AND A USER'S FILES ARE INTACT 00197000
- * (EXCEPT THOSE INTENTIONALLY ERASED). THE QQMSK TABLE 00198000
- * WOULD THEN CONTAIN SOME ENTRIES FOR WHICH ALL FOUR 00199000
- * PARTS WOULD NOT SUBSEQUENTLY BE FOUND, BUT THESE 00200000
- * WOULD STILL BE AVAILABLE FOR ALLOCATION BY DMSTQQ. 00201000
- * 00202000
- * DMSTQQX IS AN ENTRY-POINT IN THE DMSTQQ ROUTINE. 00203000
- * 00204000
- *. 00205000
- EJECT 00206000
- QQTRK START 0 00207000
- SPACE 00208000
- ENTRY DMSTQQ P3035 00209000
- DMSTQQ EQU QQTRK P3035 00210000
- ENTRY DMSTQQX P3035 00211000
- ENTRY QQTRKX 00212000
- SPACE 00213000
- USING FVSECT,R13 00214000
- USING NUCON,R0 00215000
- * 00216000
- ********************************************************************** 00217000
- * 00218000
- * QQTRK 00219000
- * 00220000
- ********************************************************************** 00221000
- * 00222000
- STM R2,R14,0(R13) SAVE REGISTERS 00223000
- LR R11,R15 ADDRESSABILITY INTO R11 00224000
- USING QQTRK,R11 ... 00225000
- BAL RET,GETLOC GET LOC. OF APPROPRIATE DISK TABLE 00226000
- * 00227000
- * SEARCH FOR AVAILABLE 1/16 TRACK 00228000
- * 00229000
- LM XR1,XR3,TABSCH SET REGISTERS FOR BXLE 00230000
- SR ZERO,ZERO INITIALIZE 00231000
- LA RET,FOUND (FOR 'BCR' BELOW -- FASTER THAN 'BC') 00232000
- CLI DTADT(R6),T2314 IS THIS A 2314 ? @V2A2014 00233100
- BNE NOQQT NO...BR @V2A2014 00233200
- LOOK CH ZERO,0(QQTBL,XR1) SEARCH FOR NON-ZERO ENTRY 00235000
- BCR 7,RET 'BNZ' TO 'FOUND' IF SUCCESS. 00236000
- BXLE XR1,XR2,LOOK ... 00237000
- * 00238000
- * IF NO 16TH TRACKS LEFT, GET ANOTHER QTR-TRK FROM TRKLKP... 00239000
- * 00240000
- NOQQT L R15,ATRKLKP SET R15 = A(TRKLKP), 00241000
- LR SAVSAV,R13 SAVE ORIGINAL SAVE-AREA 00242000
- LA R13,TRKLSAVE 11-WORD SAVE-AREA FOR TRKLKP INTO 13 00243000
- BALR R14,R15 CALL TRKLKP 00244000
- LR R13,SAVSAV RESTORE R13 TO A(FVS) POST-HASTE 00245000
- BNZ CHKERR CHECK ERROR-CODE IF NOT ZERO. 00246000
- CLI DTADT(R6),T2314 IS THIS A 2314 ? @V2A2014 00247100
- BNE RETURNQ NO...BR @V2A2014 00247200
- CH R1,H8192 IS THE BLOCK-NUMBER NO MORE THAN 8191 ? 00249000
- BL STORE3 BL IF YES, USE OLD-TYPE LOGIC. 00250000
- CH R1,H16384 IF NOT, OK 'AS IS' UP TO 16383 00251000
- BL RETURNQ BL IF ALL RIGHT, R1 OK AS IS. 00252000
- CH R1,H24576 WATCH FOR RANGE 16384-24575 00253000
- BNL RETURNQ BNL IF 24576 OR MORE (R1 OK AS IS) 00254000
- AH R1,X6000 ADD +6000 (HEX) FOR 16384-24575 ONLY 00255000
- B RETURNQ GO EXIT. 00256000
- * 00257000
- STORE3 STH R1,0(,QQTBL) STORE IN FIRST 3 00258000
- STH R1,2(,QQTBL) SLOTS IN THE QQMSK 00259000
- STH R1,4(,QQTBL) (KNOWN TO BE EMPTY), AND 00260000
- OC 0(6,QQTBL),QUART 'OR' IN THE '16TH TRACK' BITS. 00261000
- RETURNQ LM R2,R14,0(R13) RESTORE R2 THRU R14 00262000
- LTR R15,R15 SET CONDITION-CODE FOR CONVENIENCE OF CALLER 00263000
- BR R14 AND EXIT (R15 ZERO OR ALL SET). 00264000
- * 00265000
- FOUND LH R1,0(QQTBL,XR1) GET DISK ADDRESS 00266000
- STH ZERO,0(QQTBL,XR1) ZERO OUT ENTRY 00267000
- * 00268000
- RETURN LM R2,R14,0(R13) RESTORE REGISTERS 00269000
- SR R15,R15 AND RETURN 00270000
- BR R14 ... 00271000
- * 00272000
- DROP R11 00273000
- EJECT 00274000
- ********************************************************************** 00275000
- * 00276000
- * QQTRKX 00277000
- * 00278000
- ********************************************************************** 00279000
- * 00280000
- USING *,15 00281000
- QQTRKX STM R2,R14,0(R13) SAVE REGISTERS 00282000
- DMSTQQX EQU QQTRKX P3035 00283000
- L R11,AQQTRK SET UP COMPATIBLE BASE REGISTER 00284000
- DROP R15 00285000
- USING QQTRK,R11 00286000
- BAL RET,GETLOC GET LOC. OF APPROPRIATE DISK TABLE 00287000
- CLI DTADT(R6),T2314 IS THIS A 2314 ? @V2A2014 00288100
- BNE LETRKX NO...BR @V2A2014 00288200
- LR SAVSAV,0 SAVE DISK ADDRESS 00290000
- LH R4,X2000 PREPARE TO CHECK 3RD BIT FROM LEFT, 00291000
- NR R4,R0 IS 3RD BIT OF BLOCK NUMBER '0' OR '1' ? 00292000
- BZ NR0 BZ IF = 0, USE REGULAR (OLD) LOGIC 00293000
- L R4,X8000 IF 1, PREPARE TO CHECK LEFTMOST BIT, 00294000
- NR R4,R0 IS IT A '0' OR '1' ? 00295000
- BZ LETRKX IF = 0, R0 OK AS IS, LET TRKLKPX DO WORK. 00296000
- N R0,F65535 MAKE SURE WE HAVE RIGHTMOST 16 BITS ONLY 00297000
- SH R0,X6000 SUBTRACT 6000 FOR SPECIAL RANGE 00298000
- B LETRKX AND LET 'TRKLKPX' FINISH THE JOB. 00299000
- * 00300000
- NR0 LH R12,RIGHT14 X'3FFF' INTO R12 (REFERENCED SEVERAL TIMES) 00301000
- NR R0,R12 REMOVE 1/4 OF 1/4-TRACK BITS 00302000
- * 00303000
- * SEARCH FOR REMAINDER OF 1/4 TRACK 00304000
- * 00305000
- LM XR1,XR3,TABSCH SET FOR BXLE 00306000
- SR ZERO,ZERO INITIALIZE 00307000
- LA COUNT,3 WE WANT 3 1/16 TRACKS 00308000
- LOOK2 CH ZERO,0(QQTBL,XR1) IS THERE A 1/16 TRACK ADDRESS 00309000
- BNE NOZERO BNE IF NOT ZERO, TEST IT 00310000
- BACK BXLE XR1,XR2,LOOK2 IF ZERO, KEEP LOOKING 00311000
- * 00312000
- * INSERT 1/16 TRACK ADDRESS INTO TABLE 00313000
- * 00314000
- SR XR1,XR1 RE-INITIALIZE XR1 FOR BXLE (XR2 & 3 OK) 00315000
- LA COUNT,L2 (FOR 'BCR' BELOW -- FASTER THAN 'BC') 00316000
- L1 CH ZERO,0(QQTBL,XR1) IS THIS SPACE AVAILABLE 00317000
- BCR 8,COUNT 'BZ' TO 'L2' IF YES. 00318000
- BXLE XR1,XR2,L1 NO, TRY THE NEXT ONE 00319000
- LA R15,3 ERROR 3 IF DROPS THRU BXLE - QQMSK FULL 00320000
- B RETURNQ 30 MAY 1969 (JAS) - HOPEFULLY NON-FATAL. 00321000
- * EMPTY HALFWORD FOUND ... 00322000
- L2 STH SAVSAV,0(QQTBL,XR1) STORE 1/16TH TRACK ADDRESS 00323000
- B RETURN RESTORE REGISTERS AND RETURN. 00324000
- * 00325000
- NOZERO LH ADDR,0(QQTBL,XR1) GET DISK ADDRESS 00326000
- NR ADDR,R12 CONVERT TO 1/4 TRACK ADDRESS 00327000
- CR R0,ADDR ARE THEY THE SAME 00328000
- BNE BACK BNE IF NOT, TRY AGAIN 00329000
- BCT COUNT,BACK YES, FIND ALL THREE OF THEM 00330000
- * ALL THREE FOUND, GET RID OF THEM 00331000
- * 00332000
- * REMOVE THE 3 1/16TH TRACKS 00333000
- * 00334000
- SR XR1,XR1 RE-INITIALIZE XR1 FOR BXLE (XR2 & 3 OK) 00335000
- LA COUNT,BUMPXR (FOR 'BCR' BELOW -- FASTER THAN 'BC') 00336000
- GETLP LH ADDR,0(QQTBL,XR1) GET 1/16TH ADDRESS 00337000
- NR ADDR,R12 CONVERT TO 1/4 TRACK ADDRESS 00338000
- CR R0,ADDR ARE THEY THE SAME 00339000
- BCR 7,COUNT 'BNE' TO 'BUMPXR' IF NO, TRY AGAIN. 00340000
- STH ZERO,0(QQTBL,XR1) ZERO OUT ENTRY 00341000
- BUMPXR BXLE XR1,XR2,GETLP FIND ALL THREE BY SEARCHING ALL 00342000
- * 00343000
- * RETURN 1/4 TRACK ADDRESS TO FREE DISK 00344000
- * STORAGE 00345000
- * 00346000
- LETRKX L R15,ATRKLKPX LET 'TRKLKPX' DO THE REST OF THE WORK! 00347000
- LM R2,R14,0(R13) RESTORE ORIGINAL REGISTERS 00348000
- * NOTE -- OK TO PASS THE R13 FROM OUR CALLER ALONG TO TRKLKPX. 00349000
- * NOTE -- R14 STILL = RETURN-ADDRESS TO OUR CALLER. 00350000
- BR R15 (TRKLKPX RETURNS DIRECTLY TO CALLER.) 00351000
- EJECT 00352000
- ********************************************************************** 00353000
- * 00354000
- * DETERMINE FROM GPR1 00355000
- * WHICH ACTIVE DISK TABLE 00356000
- * 00357000
- ********************************************************************** 00358000
- GETLOC LTR SAVPAM,R1 SAVE P-LIST POINTER & CHECK IT 00359000
- BNP ERR2 ERROR UNLESS PLUS & NONZERO 00360000
- USING ADTSECT,R1 REFERENCE ACTIVE DISK TABLE 00361000
- TM ADTFLG1,ADTFRW MUST BE A READ-WRITE DISK 00362000
- BZ ERR2 ERROR IF NOT 00363000
- L R6,ADTDTA LOAD DEVICE TABLE ADDRESS. 00364000
- CLI DTADT(R6),T2314 IS THIS A 2314 ? @V2A2014 00365100
- BCR 7,RET NO...BR @V2A2014 00365200
- TM ADTFLG2,ADTFMFD AND MFD MUST BE IN CORE 00367000
- BZ ERR2 ERROR IF NOT 00368000
- L QQTBL,ADTQQM GET LOCATION OF QQMSK TABLE 00369000
- LTR QQTBL,QQTBL MAKE SURE TABLE IS REALLY THERE 00370000
- BCR 7,RET OK IF YES, RETURN TO QQTRK OR QQTRKX. 00371000
- * 00372000
- * PROCEED TO 'ERROR 2' IF QQMSK NOT THERE AT ALL ... 00373000
- * 00374000
- ********************************************************************** 00375000
- * 00376000
- * ERROR ROUTINES 00377000
- * 00378000
- ********************************************************************** 00379000
- SPACE 00380000
- ERR2 LA R15,2 ERROR NO. 2 00381000
- DC H'0002' *****ENTER DEBUG - PROGRAM BUG SOMEPLACE******** 00382000
- B RETURNQ GO RESTORE REGISTERS & EXIT. 00383000
- * 00384000
- DROP R1 00385000
- EJECT 00386000
- ********************************************************************** 00387000
- * 00388000
- * STORAGE AND DEFINITIONS 00389000
- * 00390000
- ********************************************************************** 00391000
- PRINT DATA 00392000
- QUART DC X'C00080004000' BITS FOR '16TH TRACKS' 00393000
- * 00394000
- H8192 DC H'8192' FOR 1-8191 00395000
- H16384 DC H'16384' FOR 8192-16383 00396000
- H24576 DC H'24576' FOR 16384-24575 00397000
- X2000 EQU H8192 TO CHECK 3RD BIT FROM LEFT IN BLOCK NO. 00398000
- X6000 EQU H24576 ADJUSTER FOR BLOCK NOS. 16384-24575. 00399000
- * 00400000
- RIGHT14 DC X'3FFF' RIGHTMOST 14 BITS OF BLOCK NUMBER ONLY 00401000
- * 00402000
- F4 DC F'4' 00403000
- X8000 DC A(X'8000') TO CHECK LEFT-MOST BIT OF BLOCK-NUMBER 00404000
- * 00405000
- TABSCH DC F'0,2,198' LIMITS FOR TABLE SEARCH 00406000
- * 00407000
- * 00408000
- * THE FOLLOWING CODE (USED VERY SELDOM) IS PURPOSELY 'AT THE END' 00409000
- * FOR PAGING EFFICIENCY (IN CASE QQTRK 'SPILLS OVER' END OF PAGE) 00410000
- * 00411000
- * COMES HERE IF ERROR-CODE FROM 'TRKLKP' 00412000
- * 00413000
- CHKERR C R15,F4 IS R15 = 4 ('VERY FEW' TRACKS LEFT ? ) 00414000
- BNE SR11 BNE IF NOT, GO CLEAR R1 AND EXIT. 00415000
- L R15,ATRKLKPX IF ERROR-CODE 4, 00416000
- LR R6,R0 SAVE R0, 00417000
- LR R0,R1 SET UP R0 FOR TRKLKPX, 00418000
- LR R1,SAVPAM ALSO R1, 00419000
- LR SAVSAV,R13 SAVE R13, 00420000
- LA R13,TRKLSAVE SET UP SAVE-AREA FOR TRKLKPX, 00421000
- BALR R14,R15 GIVE THE TRACK BACK - WE WON'T BE USING IT 00422000
- LR R13,SAVSAV RESTORE R13 TOUT SUITE 00423000
- LR R0,R6 RESTORE R0, 00424000
- SR11 SR R1,R1 CLEAR R1 TO SHOW NO TRACK AVAILABLE 00425000
- LA R15,1 ERROR-CODE 1 00426000
- B RETURNQ GO RESTORE REGISTERS AND EXIT. 00427000
- * 00428000
- CANSPILL EQU *-CHKERR ****SHOWS HOW MANY BYTES CAN SPILL OVER OK**** 00429000
- EJECT 00430000
- * 00431000
- * DEFINITIONS 00432000
- * 00433000
- R0 EQU 0 00434000
- R1 EQU 1 00435000
- R2 EQU 2 00436000
- SAVPAM EQU R2 00437000
- QQTBL EQU 3 00438000
- R4 EQU 4 00439000
- ZERO EQU R4 00440000
- R5 EQU 5 00441000
- SAVSAV EQU 5 00442000
- RET EQU 5 00443000
- R6 EQU 6 00444000
- XR1 EQU 7 POINTER 00445000
- XR2 EQU 8 INCREMENT 00446000
- XR3 EQU 9 COMPARAND 00447000
- COUNT EQU 10 00448000
- R11 EQU 11 00449000
- R12 EQU 12 00450000
- R13 EQU 13 00451000
- R14 EQU 14 00452000
- R15 EQU 15 00453000
- ADDR EQU R15 00454000
- SPACE 1 00454100
- T3340 EQU X'07' @V2A2014 00454200
- T2314 EQU X'08' @V2A2014 00454300
- T3330 EQU X'09' @V2A2014 00454400
- * 00455000
- EJECT 00456000
- NUCON 00457000
- ADT 00458000
- EJECT 00459000
- FVS 00460000
- END 00461000
ibm/vm370-lib/cms/dmstqq.assemble_src.txt ยท Last modified: 2023/08/06 13:36 by Site Administrator