.TITLE REGION .SBTTL REGION/WINDOW ATTACH AND DETACH ROUTINES ;*************************************************************************** ; ; REGION ATTACH AND DETACH ROUTINES ; REGION FOR INDEX BUFFER AND REGION FOR CORE IMAGE ; ;*************************************************************************** INDX1: RDBBK$ 200,INDEX1,, ;4K REGION INDXW1: WDBBK$ APR7,200,0,0,0, ;4K WINDOW INDX2: RDBBK$ 200,INDEX2,, ;4K REGION INDXW2: WDBBK$ APR6,200,0,0,0, ;4K WINDOW ; INDEXC::CRRG$C INDX1 ;CREATE A REGION FOR INDEX BUFFER BCC .+6 ;OKAY? JMP INSCOR ;ERROR, INSUFFICENT CORE MOV INDX1+R.GID,INDXW1+W.NRID ;SEND ID TO WINDOW CRAW$C INDXW1 ;MAP A WINDOW TO THE REGION BCC .+6 ;OKAY? JMP ATTERR ;ERROR, ATTACH ERROR CRRG$C INDX2 ;CREATE A REGION FOR INDEX BUFFER BCC .+6 ;OKAY? JMP INSCOR ;ERROR, INSUFFICENT CORE MOV INDX2+R.GID,INDXW2+W.NRID ;SEND ID TO WINDOW CRAW$C INDXW2 ;MAP A WINDOW TO THE REGION BCC .+6 ;OKAY? JMP ATTERR ;ERROR, ATTACH ERROR RETURN ; INXDET::BIS #RS.MDL,INDX1+R.GSTS ;SET FOR DELETE ON DETACH DTRG$C INDX1 ;DETACH THE REGION BIS #RS.MDL,INDX2+R.GSTS ;SET FOR DELETE ON DETACH DTRG$C INDX2 ;DETACH THE REGION RETURN ; CILRD:: CALL READ ;READ FROM CIL INTO REGION ADD #BLKSIZ,F.BKDS+2(R0) ;SKIP UP TO NEXT BLOCK SUB #BLKSIZ,R2 ;COUNT BUFFER JUST READ BGT CILRD ;LOOP TIL DONE RETURN .PAGE ;**************************************************************************** ; ; LOCAL ROUTINES ; ;**************************************************************************** INSCOR: MOV #INSMG,R1 ;MESSAGE POINTER CALL PRINT ;PRINT ERROR JMP RESTAR ;RESTART INSMG: .WORD INSMGL ;LENGTH .ASCII /CCM> *** INSUFFICENT CORE ***/ INSMGL = .-INSMG-2 .EVEN ATTERR: MOV #ATTMG,R1 ;MESSAGE POINTER CALL PRINT ;PRINT ERROR JMP RESTAR ;RESTART ATTMG: .WORD ATTMGL ;LENGTH .ASCII ?CCM> *** REGION/WINDOW ATTACH ERROR ***? ATTMGL = .-ATTMG-2 .EVEN .END