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