.TITLE BITMAP FILL UP A BITMAP FOR CORRECT RUN'S .ENABL LC .MCALL .PRINT,.EXIT,.CSIGEN,.READW,.WRITW .NLIST BEX ; This program insures that the bitmap in the CCB of an RT11 ; .SAV file is contiguous, in order to make sure that all data ; areas are always initialized in the same way. BITMAP:: .PRINT #PROMPT ;PROMPT FOR FILE NAME .CSIGEN #STRING,#DEFEXT ;ASK FOR FILE NAME .READW #AREA,#3,#BUF,#400,#0 ;READ CCB IN BLOCK 0 BCS RDERR ;IF READ ERROR, BRANCH MOV BUF+50,R0 ;GET PROGRAM HIGH LIMIT ADD #777,R0 ;ROUND UP BIC #777,R0 ;TO EVEN # OF BLOCKS SWAB R0 ;/256 BY SWAPPING BYTES ASR R0 ;/512 GIVES # OF BLOCKS MOV #BUF+360,R1 ;SET PTR TO BITMAP 1$: MOV #200,R2 ;START WITH HIGHEST BIT IN BYTE 2$: BISB R2,(R1) ;SET A BIT DEC R0 ;ALL BLOCKS MARKED? BEQ 9$ ;IF SO, BRANCH ASR R2 ;SHIFT THE MASK BNE 2$ ;IF NOT EMPTY, LOOP INC R1 ;NEXT BYTE BR 1$ 9$: .WRITW #AREA,#3,#BUF,#400,#0 ;REWRITE THE CCB BCS WRTERR .EXIT RDERR: .PRINT #RDMSG .EXIT WRTERR: .PRINT #WRTMSG .EXIT PROMPT: .ASCII /BITMAP - a program to insure correct RUN's/<15><12> .ASCII /Enter .SAV file name:/<200> RDMSG: .ASCIZ /?BITMAP-F-Error reading program file/ WRTMSG: .ASCIZ /?BITMAP-F-Error writing program file/ .EVEN DEFEXT: .RAD50 /SAVSAVSAVSAV/ AREA: .BLKW 5 BUF: .BLKW 400 STRING=. .END BITMAP