.TITLE BLKEXT .IDENT /V1.0/ .PSECT BLKEXT ; FUNCTION: CORRECT TKB LIMIT OF 4K BLOCKS FOR OVERLAYS ; DATE: 7/78 ; AUTHOR: O.K.OLMSTEAD ; INPUT: ; R2 = ADRS OF SEG DES (FROM RDSEG) ; 2(SP) = FIRST WORD OF SGDS (IE. STATUS AND BLK #) ; OUTPUT: ; 2(SP) = CORRECT BLOCK NUMBER FOR OVERLAY ; ; LOCAL VARIABLE DEFINITION ; ; OVERLAY NUMBER OF - BOUND1:: .WORD 60. ;FIRST TRANSITION PAS 4K BOUND2:: .WORD 121. ;SECOND TRANSITION PAST 4K BOUND3:: .WORD 183. ;THIRD TRANSITION PAST 4K ; BLKEXT:: BIC #170000,2(SP) ;CLEAR STATUS FIELD MOV R0,-(SP) ;SAV R0 AND R1 MOV R1,-(SP) CLR R0 MOV R2,R1 ;COMPUTE OVERLAY # SUB #SGDES,R1 SUB #12.,R1 ;ALLOW FOR ROOT BLE 3$ ;JIF ROOT OR FUNNY STUFF DIV #12.,R0 ;6 WORDS PER SGDES CMP R0,BOUND1 BLT 3$ ADD #10000,6(SP) CMP R0,BOUND2 BLT 3$ ADD #10000,6(SP) CMP R0,BOUND3 BLT 3$ ADD #10000,6(SP) 3$: MOV (SP)+,R1 MOV (SP)+,R0 RETURN ; ; CREATE PSECT SO WE KNOW WHERE ROOT SEGMENT DESCRIPTOR IS. .PSECT $$SGD1,RW,D,LCL,REL,CON SGDES: ;ADRS OF ROOT SEG DES .END