;***** ; ; INITL.SLP implements pre-allocation of QIO packets ; during a virgin system boot under 11M V4.0 in the ; same manner as a RSX-11M V3.2 correction file submitted ; by Dan Steinberg in 1980...prior to deallocating itself ; to free pool, INITL will allocate "Q$$OPT" contiguous ; QIO packets into the list headed by $PKAVL. In a standard ; 11M system, QIO packets are allocated and relinked into ; the $PKAVL list as they are requested. If a temporary ; (and potentially small) block of pool has been allocated ; prior to the request for a QIO packet and is subsequently ; released, the "pre-allocated" packet prevents this free ; space from being consolidated into a larger free block. ; Judging by the February 1982 MULTI-TASKER, pool fragmentation ; problems are still plaguing 11M users. ; ; ; NOTE: To flag the system as a non-standard 11M executive, ; edit the "SYSID:" message which is displayed on ; each virgin boot. ; ;***** [11,10]INITL.MAC/AU:72./-BF=[11,10]INITL.VGN \ -2,2,/;PRS01/ .IDENT /14.30P/ -/VERSION/,., ; VERSION 14.30P -/HH131/+2,, ; ; P. R. SORENSON 16-MAY-82 ; PRS01 -- ADD PREALLOCATION OF QIO PACKETS IN SAME MANNER ; AS DONE BY D. STEINBERG (SEE [307,23] FALL '80 ; RSXSIG TAPE) FOR V3.2 ; % -/SYSID:/,.,/;PRS01/ SYSID: .ASCII /XXXX/<15><12><12> .ENABL LC .ASCII %System configured for Mayo Clinic Pulmonary Research % .ASCIZ %PDP-11's -- PRS, June 1982%<15><12><12> .DSABL LC -/CALLR...$DEACB/,.,/;PRS01/ .IFDF Q$$OPT ;PRE-ALLOCATE PACKETS BEFORE RELEASE ; INITL CODE TO POOL CLR R4 ;CLEAR COUNT OF PACKETS ALLOCATED MOVB #Q$$OPT,R3 ;FETCH NUMBER TO PREALLOCATE FROM RSXMC.MAC BLE ALLD ;TOO MANY...KEEP $PKNUM 0 MOV #$PKAVL,R2 ;SET UP DUMMY LAST PACKET MOV R0,R5 ;COPY ADDRESS OF CURRENT PACKET PREA: ADD #I.LGTH,R5 ;CALC ADDRESS OF NEXT PACKET CMP R5,#PREA ;DON'T OVERLAY THIS CODE!!!! BHIS ALLD ; $PKNUM WAS INITIALIZED TOO LARGE! MOV R0,(R2) ;POINT LAST PACKET TO CURRENT CLR (R0) ;SET THIS ONE AS LAST MOV R0,R2 ;SET NEW LAST MOV R5,R0 ;AND NEW CURRENT SUB #I.LGTH,R1 ;SUBTRACT FROM WHAT WILL BE FREED INC R4 ;COUNT ANOTHER PACKET PRE-ALLOCATED SOB R3,PREA ;AND LOOP TO MAX ALLD: MOVB R4,$PKNUM ;SET NUMBER PRE-ALLOCATED .ENDC ;DF,Q$$OPT CALLR $DEACB ;DEALLOCATE INITIALIZATION CODE /