.TITLE LDBTMP .IDENT /01/ .PSECT CODE,RO ; ; VERSION 01 ; ; TOM GETZINGER 30-MAY-80 ; ; INPUTS: ; ; R1 = PSECT # TO LOAD ; ; EFFECTS: ; ; R0,R1 DESTROYED ; ; SYSTEM MACRO CALLS ; .MCALL READ$ WAIT$ WRITE$ LDBTMP:: CMP R1,BMPSCT ; IS THE RIGHT BITMAP LOADED? BEQ 20$ ; YES TST CHANGD ; NO, HAS THE OLD BITMAP CHANGED? BEQ 10$ ; NO MOV BMPSCT,R0 ; YES ASH #4,R0 ; CONVERT THE BITMAP PSECT NUMBER INC R0 ; INTO A BLOCK NUMBER MOV R0,F.BKVB+2+FDBTMP WRITE$ #FDBTMP ; OUTPUT THE OLD BITMAP BCS 30$ ; WRITE ERROR WAIT$ ; WAIT FOR THE WRITE TO FINISH BCS 30$ ; ERROR CLR CHANGD ; THE NEW BITMAP HASN'T CHANGED YET 10$: MOV R1,BMPSCT ; CHANGE THE BITMAP PSECT NUMBER ASH #4,R1 ; CONVERT THE PSECT NUMBER INC R1 ; INTO A BLOCK NUMBER MOV R1,F.BKVB+2+FDBTMP READ$ #FDBTMP ; READ THE BITMAP BCS 30$ ; ERROR WAIT$ ; WAIT FOR THE READ TO FINISH BCS 30$ ; ERROR 20$: RETURN ; AND WE'RE DONE 30$: TRAP TMPERR ; I/O ERROR ON TEMP FILE .END