File: USR8.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text)
RALF V50A 8-APR-92 PAGE 1 DSRN=4244 HPLACE=5200 HKEY=2761 MAXCOR=121 SECT8 USRS8 / /THIS ROUTINE SETS UP, AT THE TOP OF THE RALF PROGRAM, A /ROUTINE WHICH CALLS THE OS/8 USR (USER SERVICE ROUTINE). /IT IS NECESSARY TO DO THIS BECAUSE THE FORTRAN IV LOADER /MAY LOAD ANY ROUTINE IN THE RESERVED AREA FOR THE /OS/8 USR (10000 - 11777) AND FIELD 1 RES (17400-17777) /ALL THIS IS SKIPPED FOR THE 'RELEASE' FUNCTION AND /WE GO DIRECTLY TO THE HANDLER AND BUFFER CLEANUP CODE. / 00000 0000 0 00001 7240 CLA CMA 00002 1360 TAD #FUNCT /IF RELEASE CALL CLNHAN ONLY 00003 7650 SNA CLA 00004 5347 JMP #USCLN / /MOVE USR CALLING ROUTINE TO DEFINED LOCATION /I.E. PROTECT LOCS 10000-11777, 17400-17777 / 00005 1372 TAD #USRLC+1 00006 3367 DCA TEMQ 00007 1374 TAD #USRLD+1 00010 3371 DCA TEMQ2 00011 1220 TAD M400 00012 3343 DCA TEMQ3 00013 7402 #FUSR, HLT /**RA CDF ORIG. FIELD OF USRUSR 00014 1771 TAD% TEMQ2 00015 7402 #FD1, HLT /**RA CDF RELOCATED FIELD OF USRUSR 00016 3767 DCA% TEMQ 00017 2367 ISZ TEMQ 00020 7400 M400, -400 /NOP 00021 2371 ISZ TEMQ2 00022 7410 SKP 00023 1307 TAD K10 /IF NEW FIELD INC CDF 00024 1213 TAD #FUSR 00025 3213 DCA #FUSR 00026 2343 ISZ TEMQ3 00027 5213 JMP #FUSR RALF V50A 8-APR-92 PAGE 2 /SET FIELDS AND CALL IT 00030 7402 #FD2, HLT /**RA THIS DATA-FIELD 00031 7402 #FI1, HLT /**RA CIF TO RELOCATED 'USRUSR' 00032 1360 TAD #FUNCT 00033 4772 JMS% #USRLC+1 00034 0000 #SB, 0 /START BLOCK OF FILE AND **RA CLOSE BLKS 00035 0000 NOBLKS, 0 /LENGTH OF FILE 00036 0000 ENTPT, 0 /HANDLER ENTRY POINT 00037 0000 TWOPAG, 0 /**RA GET 0,1,2 PAGE INDICATOR 00040 7440 SZA 00041 5340 JMP USREX /GET OUT IF ERROR 00042 7346 CLA CLL CMA RTL /=-3 00043 1360 TAD #FUNCT 00044 7740 SMA SZA CLA 00045 5347 JMP #USCLN /CLOSE: CALL CLNHAN / /FOR INPUT/OUTPUT MOVE HANDLER TO APPROPRIATE BUFFER / 00046 6201 UCDF, CDF 0 00047 1236 TAD ENTPT 00050 4343 JMS SEDSRN /DSRN #1: ENTRY POINT 00051 1237 TAD TWOPAG 00052 7141 CLL CIA 00053 7450 SNA 00054 5315 JMP RESIDE /0 MEANS RESIDENT HANDLER 00055 1364 TAD #LHNDR+1 /BUMP DOWN CEILING FOR NEW HANDLER 00056 3364 DCA #LHNDR+1 00057 7420 SNL 00060 7240 CLA CMA 00061 1363 TAD #LHNDR /DON'T FORGET HIGH ORDER 00062 3363 DCA #LHNDR 00063 1363 TAD #LHNDR 00064 7106 CLL RTL 00065 7004 RAL 00066 3757 DCA% HANKEY /SAVE THESE BITS IN FIELD 0 00067 1757 TAD% HANKEY /WE NEED THEM FOR NEW HCW 00070 1246 TAD UCDF /WE HAVE TO BUILD CDF HERE 00071 3303 DCA FD3 /BECAUSE **RA IS NOT INFORMED YET. 00072 1364 TAD #LHNDR+1 00073 3367 DCA TEMQ 00074 1356 TAD KHPLC 00075 3371 DCA TEMQ2 00076 1237 TAD TWOPAG 00077 7041 CIA 00100 3343 DCA TEMQ3 00101 6201 USRL4, CDF 0 00102 1771 TAD% TEMQ2 00103 6201 FD3, CDF 0 /NEW HANDLER FIELD 00104 3767 DCA% TEMQ 00105 2371 ISZ TEMQ2 00106 2367 ISZ TEMQ 00107 0010 K10, 10 /NOP 00110 2343 ISZ TEMQ3 00111 5301 JMP USRL4 RALF V50A 8-APR-92 PAGE 3 /BUILD UP NEW DSRN TABLE FOR THIS UNIT / / /DSRN #1: DONE ON PREV PAGE 00112 6201 CDF 0 00113 1364 TAD #LHNDR+1 /THIS HANDLER IS NON-RESIDENT 00114 1757 TAD% HANKEY /FIELD BITS FROM BEFORE 00115 3757 RESIDE, DCA% HANKEY /THIS HANDLER IS RESIDENT 00116 1362 TAD #FORMS /+FORMS CONTROL 00117 1757 TAD% HANKEY /MAKES FINAL HCW 00120 4343 JMS SEDSRN /DSRN #2: HHH.HH0.FFF.0CI 00121 1365 TAD #LBUFF 00122 7106 CLL RTL 00123 7004 RAL 00124 1366 TAD #LBUFF+1 00125 4343 JMS SEDSRN /DSRN #3: BBB.B00.FFF.000 00126 1366 TAD #LBUFF+1 00127 4343 JMS SEDSRN /DSRN #4: BUFFER POINTER 00130 7146 CMA CLL RTL /-3 => AC 00131 4343 JMS SEDSRN /DSRN #5: CHARACTER COUNTER 00132 1234 TAD #SB 00133 4343 JMS SEDSRN /DSRN #6: STARTING BLOCK 00134 4343 JMS SEDSRN /DSRN #7: RELATIVE BLOCK = 0 00135 1235 TAD NOBLKS 00136 4343 JMS SEDSRN /DSRN #8: LENGTH OF FILE 00137 4343 JMS SEDSRN /DSRN #9: FLAG WORD WFU.000.000.00E 00140 3361 USREX, DCA #ERUSR /CLEAR OR SET ERROR 00141 6203 CDF CIF 0 /TRAP4 EXIT 00142 5600 JMP% USRS8 TEMQ3, 00143 0000 SEDSRN, 0 /FILL IN DSRN ENTRY 00144 3770 DCA% #LDSRN+1 00145 2370 ISZ #LDSRN+1 00146 5743 JMP% SEDSRN 00147 7402 #USCLN, HLT /**RA CIF TO 'CLNHAN' 00150 1370 TAD #LDSRN+1 /PASS OUR SLOT 00151 4776 JMS% #CLNLC+1 /GO AND FREE-UP CORE 00152 6201 CDF 0 00153 3757 DCA% HANKEY /THIS HANDLER IS NOT NICE ANY MORE 00154 5340 JMP USREX /BACK TO RALF RALF V50A 8-APR-92 PAGE 4 00155 0070 U70, 70 00156 5200 KHPLC, HPLACE /LOCATION OF HANDLER IN F0 00157 2761 HANKEY, HKEY /LOCATION OF HKEY IN FRTS /MUST AGREE WITH VERSION!! 00160 0000 #FUNCT, 0 /**RA XR 0 00161 0000 #ERUSR, 0 /**RA XR 1 00162 0002 #FORMS, 2 /**RA XR2 FORMS CONTROL 2=NO CONTROL 00163 0000 #LHNDR, ZBLOCK 2 /**RA TOP OF CORE (MODIFIED HERE) 00165 0000 #LBUFF, ZBLOCK 2 /**RA END OF PROGRAM (NEXT BUFFER) TEMQ, 00167 0000 #LDSRN, ZBLOCK 2 /**RA START LOCATION OF DSRN ENTRY TEMQ2, 00171 0000 #USRLC, ADDR USRUSR /**RA CHANGED TO REAL LOCATION OF 'USRUSR' 00172 0600 /CHANGED TO KUSR BY 'USRS8' 00173 0000 #USRLD, ADDR USRUSR /LOC OF 'USRUSR' AS LOADED 00174 0600 /FIELD PART USED BY SECT FOR CDF 00175 0000 #CLNLC, ADDR CLNHAN /**RA FIELD PART USED FOR CIF 00176 0200 ORG .+177&7600 /NEXT PAGE RALF V50A 8-APR-92 PAGE 5 /THIS IS A VERY TRICKY ROUTINE THAT RESHUFFLES THE /HANDLERS IN HIGH CORE. IT DELETES THE HANDLER COR- /RESPONDING TO THE SELECTED CHANNEL AND MOVES ALL /LOWER HANDLERS UP SO THAT WE GAIN THIS SPACE. /NATCHERLY WE ALSO CHANGE THE CORRESPONDING ENTRIES /IN THE DSRN LIST. (DSRN=DYNAMIC SORTING RATHER NOT) 00200 0000 CLNHAN, 0 00201 3347 DCA CSLOT /OUR DSRN SLOT 00202 3350 DCA #CLEN /CLEAR FOR FAST EXIT 00203 7326 CLA STL RTL /=2 00204 6214 RDF 00205 1306 TAD CCDF 00206 3333 DCA CLNRET /SET CDI RETURN 00207 6201 CDF 0 00210 1747 TAD% CSLOT 00211 7700 SMA CLA /IS IT AN INTERNAL HANDLER? 00212 5332 JMP CEXIT /YES, GIVE BACK 0 LENGTH 00213 2347 ISZ CSLOT 00214 1747 TAD% CSLOT 00215 7450 SNA 00216 5322 JMP CMBUF /RESIDENT, ONLY CLEAN BUFFER 00217 3345 DCA CLOAD /OUR LOAD ADDRESS+FIELD 00220 1755 TAD% TOPCOR /SET UPPER LIMIT OF MEMORY(BATCH) 00221 3341 DCA CTRY 00222 1341 CHLOOP, TAD CTRY 00223 3343 DCA CLAST /LAST BOTTOM 00224 1340 TAD C7600 /WALK DOWN THRU CORE 00225 1341 TAD CTRY 00226 7450 SNA 00227 5322 JMP CMBUF /STOP IT IF FIELD THROUGH 00230 3341 DCA CTRY /NEW ADDRESS TO TRY IF IN DSRN 00231 1354 TAD CDSRN 00232 3346 DCA CTEM /INIT DSRN POINTER 00233 1335 TAD C10 00234 7040 CMA /MAKES -11! 00235 3342 DCA CCNT /INIT DSRN SLOT COUNT 00236 7201 LOOKLP, CLA IAC 00237 1335 TAD C10 /ALSO 11 00240 1346 TAD CTEM 00241 3346 DCA CTEM /NEXT SLOT 00242 1746 TAD% CTEM 00243 0340 AND C7600 /GET HCW ADDRESS 00244 7041 CIA 00245 1341 TAD CTRY /IS IT AT TRIAL VALUE? 00246 7650 SNA CLA 00247 5253 JMP CGOT /YES 00250 2342 ISZ CCNT /NO - MORE SLOTS? 00251 5236 JMP LOOKLP /YES - SEE IF WE FIND IT AFTER ALL 00252 5224 JMP CHLOOP+2 /NOT IN DSRN, STEP DOWN RALF V50A 8-APR-92 PAGE 6 00253 1345 CGOT, TAD CLOAD /IN DSRN, CHECK WHERE 00254 0340 AND C7600 00255 7041 CIA 00256 1341 TAD CTRY /COMPARED TO OUR SLOT 00257 7450 SNA 00260 5314 JMP SLOTIS /OUR SLOT, DO SPECIAL THINGS 00261 7700 SMA CLA /IF -, PAST OUR SLOT: MOVE 00262 5222 JMP CHLOOP /IF +, BEFORE OUR SLOT: SET BOTTOM 00263 1343 TAD CLAST 00264 7041 CIA 00265 1341 TAD CTRY /THIS BOTTOM - LAST BOTTOM=HND SIZE 00266 3342 DCA CCNT /COUNT FOR TRANSFER 00267 1345 TAD CLOAD 00270 0336 AND C70 00271 1306 TAD CCDF 00272 3273 DCA CHANDF 00273 7402 CHANDF, HLT /HANDLER DATA FIELD 00274 7240 CLA CMA 00275 1343 TAD CLAST 00276 3343 DCA CLAST /TRANSFER FROM TOP TO BOTTOM 00277 1350 TAD #CLEN /LENGHT OF HOLE 00300 1343 TAD CLAST /+ OLD BOTTOM 00301 3344 DCA CNEW /= NEW TOP 00302 1743 TAD% CLAST 00303 3744 DCA% CNEW /CNEW WILL END UP AS NEW BOTTOM 00304 2342 ISZ CCNT 00305 5273 JMP CHANDF 00306 6201 CCDF, CDF 0 00307 1746 TAD% CTEM /CTEM STILL POINTING AT THIS HANDLERS HCW 00310 0337 AND C77 /PICK OUT FIELD AND CI BITS 00311 1344 TAD CNEW /FILL IN NEW SLOT 00312 3746 DCA% CTEM 00313 5224 JMP CHLOOP+2 /LOOP AND LEAVE 'CLAST' BOTTOM 00314 1345 SLOTIS, TAD CLOAD 00315 0340 AND C7600 00316 7041 CIA 00317 1343 TAD CLAST /OLD BOTTOM - OUR SLOT IS SIZE OF HOLE 00320 3350 DCA #CLEN /STORED POSITIVE FOR USRUSR 00321 5222 JMP CHLOOP /LOOP AND SET BOTTOM TO OUR SLOT RALF V50A 8-APR-92 PAGE 7 00322 6224 CMBUF, RIF 00323 1306 TAD CCDF 00324 3327 DCA CBFDF /FOR SETTING OUR DF 00325 2347 ISZ CSLOT /OUR BCW 00326 1747 TAD% CSLOT /TO 'CLNBUF' 00327 7402 CBFDF, HLT 00330 7402 #CBFIF, HLT /**RA CIF CLNBUF 00331 4753 JMS% #CLBLC+1 00332 3351 CEXIT, DCA #CBLEN /SET DELETED BUFFER LENGHT 00333 7402 CLNRET, HLT /CDI RETURN 00334 5600 JMP% CLNHAN 00335 0010 C10, 10 00336 0070 C70, 70 00337 0077 C77, 77 00340 7600 C7600, 7600 00341 0000 CTRY, 0 00342 0000 CCNT, 0 00343 0000 CLAST, 0 00344 0000 CNEW, 0 00345 0000 CLOAD, 0 00346 0000 CTEM, 0 00347 0000 CSLOT, 0 00350 0000 #CLEN, 0 /**RA XR 0 DELTED HANDLER LENGHT (POSITIVE) 00351 0000 #CBLEN, 0 /**RA XR 1 DELETED BUFFER LENGHT (NEGATIVE) 00352 0000 #CLBLC, ADDR CLNBUF /**RA FIELD PART USED FOR CIF 00353 0400 00354 4234 CDSRN, DSRN-11+1 /POINTING AT HCW 1 SLOT BELOW DSRN 00355 0121 TOPCOR, MAXCOR /BATCH PROTECTION ORG .+177&7600 /NEXT PAGE RALF V50A 8-APR-92 PAGE 8 /THIS IS STILL ANOTHER ROUTINE WHICH MOVES THE /BUFFERS DOWN OVER THE DELETED BUFFER. IT IS EASIER /THAN 'CLNHAN' BECAUSE ALL BUFFERS ARE 400 LONG. /BUT WATCH IT, THEY CROSS FIELDS!! / 00400 0000 CLNBUF, 0 00401 3307 DCA CBOTT /SAVE OUR BCW 00402 7126 STL RTL /=2 00403 6214 RDF 00404 1224 TAD CBCDF 00405 3242 DCA CBRET 00406 1307 TAD CBOTT /IF ZERO NO DELETION 00407 7650 SNA CLA 00410 5242 JMP CBRET /GIVE BACK LENGHT = 0 00411 7100 CBLOOP, CLL 00412 1307 TAD CBOTT 00413 1316 TAD C400 /TO NEXT BUFFER 00414 7430 SZL /NEXT FIELD? 00415 1317 TAD CB10 /YES INC FIELD BITS 00416 3310 DCA CHIGH /NEXT BUFFER ADDRESS 00417 1315 TAD CBDSRN 00420 3311 DCA CBTEM /INIT DSRN POINTER 00421 1317 TAD CB10 00422 7040 CMA /MAKES -11! 00423 3312 DCA CBCNT /INIT DSRN SLOT COUNT 00424 6201 CBCDF, CDF 0 00425 7201 CLA IAC 00426 1317 TAD CB10 /ALSO 11 00427 1311 TAD CBTEM 00430 3311 DCA CBTEM /NEXT SLOT 00431 1711 TAD% CBTEM 00432 0320 AND C7770 /GET BCW ADDRESS+FIELD 00433 7041 CIA 00434 1310 TAD CHIGH /IS IT AT TRIAL VALUE? 00435 7650 SNA CLA 00436 5244 JMP CBGOT /YES 00437 2312 ISZ CBCNT /NO - MORE SLOTS? 00440 5224 JMP CBCDF /YES - SEE IF WE FIND IT AFTER ALL 00441 1301 TAD C7400 /TRANSPORT DELETED BUFFER LENGHT 00442 7402 CBRET, HLT /NO UNIT IS END 00443 5600 JMP% CLNBUF 00444 1310 CBGOT, TAD CHIGH 00445 0321 AND CB70 00446 1224 TAD CBCDF /MAKE CDF FROM 00447 3274 DCA CBCDFF 00450 1307 TAD CBOTT 00451 0321 AND CB70 00452 1224 TAD CBCDF 00453 3276 DCA CBCDFT /MAKE CDF TO 00454 1307 TAD CBOTT 00455 0301 AND C7400 00456 3314 DCA CBTRT /BLOCK ADDRESS RALF V50A 8-APR-92 PAGE 9 00457 1307 TAD CBOTT 00460 3711 DCA% CBTEM /BUILD NEW BCW 00461 2311 ISZ CBTEM /GO TO BUFFER POINTER 00462 7040 CMA 00463 1316 TAD C400 /GIVES MASK 377 00464 0711 AND% CBTEM /MAKES POINTER 0-377 00465 1314 TAD CBTRT /+ NEW BASE 00466 3711 DCA% CBTEM /STORE BACK MODIFIED 00467 1301 TAD C7400 00470 3312 DCA CBCNT /BUFFER SIZE COUNT 00471 1314 CBTRLP, TAD CBTRT 00472 1316 TAD C400 /MAKE FROM ADDRESS 00473 3313 DCA CBTRF 00474 7402 CBCDFF, HLT /MADE HERE 00475 1713 TAD% CBTRF /FROM 00476 7402 CBCDFT, HLT 00477 3714 DCA% CBTRT /TO 00500 2314 ISZ CBTRT 00501 7400 C7400, 7400 /NOP 00502 2312 ISZ CBCNT /BUFFER DONE? 00503 5271 JMP CBTRLP /NO - LOOP 00504 1310 TAD CHIGH /SET NEW BOTTOM 00505 3307 DCA CBOTT 00506 5211 JMP CBLOOP /YES - MORE BUFFERS? 00507 0000 CBOTT, 0 00510 0000 CHIGH, 0 00511 0000 CBTEM, 0 00512 0000 CBCNT, 0 00513 0000 CBTRF, 0 00514 0000 CBTRT, 0 00515 4235 CBDSRN, DSRN-11+2 /POINTING AT BCW 1 SLOT BELOW DSRN 00516 0400 C400, 400 00517 0010 CB10, 10 00520 7770 C7770, 7770 00521 0070 CB70, 70 / SOME ROOM FOR EXPANSION!? ORG .+177&7600 /NEXT PAGE RALF V50A 8-APR-92 PAGE 10 /USR CALLING SUBROUTINE FOR FORTRAN / / THIS ROUTINE IS MOVED TO THE TOP OF RALF CODE (BUFFERS) / BY 'USR8' BEFORE EXECUTING TO AVOID BEING OVERWRITTEN BY / THE OS/8 USR ROUTINE. IMPORTANT! NO NEED TO INITIALIZE / ANY NON **RALF CONSTANTS, A FRESH COPY OF 'USRUSR' IS / USED FOR EACH CALL. / / / / ENTER WITH FUNCTION CODE IN THE AC / 1 - RELEASE (CLOSE INPUT FILE) / 2 - LOOKUP (OPEN FOR INPUT) / 3 - ENTER (OPEN FOR OUTPUT) / 4 - CLOSE (CLOSE OUTPUT FILE) / / DEVICE, FILE NAMES, ETC. ARE STUFFED BY THE CALLING / PROGRAM BEFORE THIS SUBROUTINE IS CALLED. / / CALLING SEQUENCE: / JMS USRUSR / - START BLOCK OF FILE (RETURNED FOR CODE 2 & 3) / # OF BLOCKS FOR CLOSE SUPPLIED / - NUMBER OF BLOCKS IN FILE (RETURNED FOR CODE 2 & 3) / - ENTRY POINT OF HANDLER AS READ INTO PAGE 'HPLACE' / - 0 IF RESIDENT HANDLER, 200 IF ONE PAGE HANDLER / 400 IF TWO PAGE HANDLER / <RETURN> / / AC ON EXIT CONTAINS ERROR CONDITION: / 0 - NO ERROR / 1 - NO SUCH DEVICE / 2 - NO FILE OR NO SPACE / 3 - SYS: WRITE LOCKED / 4 - I-O ERROR / RALF V50A 8-APR-92 PAGE 11 USRUSR, 00600 0000 KUSR, 0 00601 3300 DCA FUNCTY /SAVE FUNCTION CODE 00602 1600 TAD% KUSR 00603 3302 DCA BLKS 00604 7402 #USRDF, HLT /**RA SET DATA FIELD TO CURRENT FIELD 00605 6002 IOF /NOP FOR MULTI8 / / ********SWAP CORE FOR USR CALL / 00606 6202 CCIF, CIF 0 00607 4753 JMS% K7607 /CALL SYSTEM HANDLER 00610 5210 5210 / WRITE 10000-11777 & 17400-17777 00611 7400 7400 00612 0027 27 00613 5356 JMP ERR3 /SYS: WRITE-LOCKED? 00614 6202 CIF 0 00615 4753 JMS% K7607 /READ IN USR 00616 0610 610 00617 0000 ERRNO, 0 /*K* 00620 0013 13 00621 5355 JMP ERR4 /DEVICE ERROR 00622 6202 CIF 0 00623 4753 JMS% K7607 /READ IN FIELD ONE TABLES 00624 0210 210 00625 7400 7400 00626 0037 37 00627 5355 JMP ERR4 /DEVICE ERROR RALF V50A 8-APR-92 PAGE 12 / ********PERFORM USR FUNCTIONS 00630 6212 CIF 10 00631 4754 JMS% K200 /RESET 00632 0013 13 00633 0000 0 00634 6212 CIF 10 00635 4754 JMS% K200 /INQUIRE 00636 0012 12 00637 0423 #DEV, 0423 /**RA 1 FP WORD 00640 1300 DEVNO, 1300 / DSK: IS SET 00641 0000 0000 00642 5360 JMP ERR1 /ILLEGAL DEVICE 00643 1241 TAD DEVNO+1 /SEE IF RESIDENT HANDLER 00644 7440 SZA 00645 5267 JMP HANOK /YES - NO NEED TO FETCH 00646 1352 TWP, TAD HANSIZ 00647 1354 TAD K200 00650 3352 DCA HANSIZ /SET SIZE TO 200,400 00651 1240 TAD DEVNO /DEVICE TO FETCH 00652 6212 CIF 10 00653 4754 JMS% K200 00654 0001 1 /FETCH 00655 5200 ENTRY, HPLACE /FIRST TIME: ONE PAGE 00656 7610 SKP CLA /ERROR TRY 2-PAGE 00657 5267 JMP HANOK /GOT HANDLER 00660 2255 ISZ ENTRY /SET 2-PAGE 00661 1352 TAD HANSIZ 00662 7110 CLL RAR 00663 0354 AND K200 00664 7650 SNA CLA /ALREADY TRIED 2-PAGE? 00665 5246 JMP TWP /NO: TRY FOR 2-PAGE 00666 7402 HLT /YES: IMPOSSIBLE ERROR! 00667 7440 HANOK, SZA /RESIDENT? 00670 3255 DCA ENTRY /YES - SAVE ENTRY POINT 00671 7346 CLA CLL CMA RTL /=-3 00672 1300 TAD FUNCTY /IS IT ENTER ? 00673 7650 SNA CLA /IF ENTER USE BLKS WHICH 00674 1302 TAD BLKS /CONTAINS USER LENGTH 00675 1240 TAD DEVNO /GET DEVICE NUMBER 00676 6212 CIF 10 00677 4754 JMS% K200 /PERFORM FUNCTION 00700 0000 FUNCTY, 0 /**USR AC 00701 0000 #SB2, 0 /**RA ADDRESS OF '#FILE' 00702 0000 BLKS, 0 /**USR ARG 00703 5357 JMP ERR2 /FILE ERROR RALF V50A 8-APR-92 PAGE 13 / ********RESTORE CORE 00704 6202 CIF 0 00705 4753 JMS% K7607 /SAVE FIELD ONE TABLES 00706 4210 4210 00707 7400 7400 00710 0037 37 00711 7402 HLT 00712 6202 EXIT2, CIF 0 00713 4753 JMS% K7607 /RESTORE CORE 00714 1210 1210 00715 7400 7400 00716 0027 27 00717 7402 HLT 00720 6254 6254 /SKIP ON MULTI8 00721 6001 ION 00722 6203 #UEXIT, CIF CDF 0 /**RA RETURN TO #USRS8 00723 1301 TAD #SB2 /RETURN SB & #BLKS 00724 3600 DCA% KUSR 00725 2200 ISZ KUSR 00726 1302 TAD BLKS /=0 FOR NON-FILE STRUCTURED 00727 7041 CIA /WAS NEGATIVE 00730 7450 SNA /NFS? 00731 7040 CMA /YES - SET MAX NUMBER OF BLOCKS 00732 3600 DCA% KUSR 00733 2200 ISZ KUSR 00734 1255 TAD ENTRY /RETURN ENTRY POINT 00735 3600 DCA% KUSR 00736 2200 ISZ KUSR 00737 1352 TAD HANSIZ /RETURN HANDLER SIZE 00740 3600 DCA% KUSR 00741 2200 ISZ KUSR 00742 1217 TAD ERRNO 00743 5600 JMP% KUSR RALF V50A 8-APR-92 PAGE 14 00744 0000 #FILE, ZBLOCK 6 /**RA 2 FP WORDS / HANSIZ=0: RESIDENT, =200: 1-PAGE, =400: 2-PAGE 00752 0000 HANSIZ, 0 /SET BY LOOKUP,ENTER OR REL,CLOSE 00753 7607 K7607, 7607 /SYSTEM HANDLER ENTRY POINT 00754 0200 K200, 200 /USR ENTRY POINT 00755 2217 ERR4, ISZ ERRNO /I-O ERROR 00756 2217 ERR3, ISZ ERRNO /WL ERROR 00757 2217 ERR2, ISZ ERRNO /NO FILE OR NO SPACE 00760 2217 ERR1, ISZ ERRNO /NO SUCH DEVICE 00761 7346 CLA CLL CMA RTL /=-3 00762 1217 TAD ERRNO /IF WL DON'T RESTORE 00763 7650 SNA CLA 00764 5320 JMP #UEXIT-2 00765 5312 JMP EXIT2 IFNZRO #DEV-637 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #FILE-744 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #LDSRN-167 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #LHNDR-163 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #LBUFF-165 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #USRLC-171 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #USRLD-173 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #CLNLC-175 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #CLBLC-352 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #SB-34 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #FUNCT-160 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #CLEN-350 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #SB2-701 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #FD1-15 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #FD2-30 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #FI1-31 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #FUSR-13 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #USRDF-604 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #UEXIT-722 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #USCLN-147 <LISTON : CHANGE REFERENCE IN USRS.RA> IFNZRO #CBFIF-330 <LISTON : CHANGE REFERENCE IN USRS.RA> RALF V50A 8-APR-92 PAGE 15 RALF V50A 8-APR-92 PAGE 15-1 NO ERRORS 108 SYMBOLS, NO ABS REFS # C 00000 #CBFIF 00330 #CBLEN 00351 #CLBLC 00352 #CLEN 00350 #CLNLC 00175 #DEV 00637 #ERUSR 00161 #FD1 00015 #FD2 00030 #FILE 00744 #FI1 00031 #FORMS 00162 #FUNCT 00160 #FUSR 00013 #LBUFF 00165 #LDSRN 00167 #LHNDR 00163 #MAIN S 00000 #SB 00034 #SB2 00701 #UEXIT 00722 #USCLN 00147 #USRDF 00604 #USRLC 00171 #USRLD 00173 BLKS 00702 CBCDF 00424 CBCDFF 00474 CBCDFT 00476 CBCNT 00512 CBDSRN 00515 CBFDF 00327 CBGOT 00444 CBLOOP 00411 CBOTT 00507 CBRET 00442 CBTEM 00511 CBTRF 00513 CBTRLP 00471 CBTRT 00514 CB10 00517 CB70 00521 CCDF 00306 CCIF 00606 CCNT 00342 CDSRN 00354 CEXIT 00332 CGOT 00253 CHANDF 00273 CHIGH 00510 CHLOOP 00222 CLAST 00343 CLNBUF 00400 CLNHAN 00200 CLNRET 00333 CLOAD 00345 CMBUF 00322 CNEW 00344 CSLOT 00347 CTEM 00346 CTRY 00341 C10 00335 C400 00516 C70 00336 C7400 00501 C7600 00340 C77 00337 C7770 00520 DEVNO 00640 DSRN 04244 ENTPT 00036 ENTRY 00655 ERRNO 00617 ERR1 00760 ERR2 00757 ERR3 00756 ERR4 00755 EXIT2 00712 FD3 00103 FUNCTY 00700 HANKEY 00157 HANOK 00667 HANSIZ 00752 HKEY 02761 HPLACE 05200 KHPLC 00156 KUSR 00600 K10 00107 K200 00754 K7607 00753 LOOKLP 00236 MAXCOR 00121 M400 00020 NOBLKS 00035 RESIDE 00115 SEDSRN 00143 SLOTIS 00314 TEMQ 00167 TEMQ2 00171 TEMQ3 00143 TOPCOR 00355 TWOPAG 00037 TWP 00646 UCDF 00046 USREX 00140 USRL4 00101 USRS8 8 00766 USRUSR 00600 U70 00155