     .OUTPI ALFRES
     .ENTRY RDARC

LOCERR .BYTE "Error During Locate",$9B,0

RDARC    LDA #.LO.PGEND    ;CALC THE BIGGEST BUFFER
         STA ADR
         LDA #.HI.PGEND
         STA ADR+1
         LDA $02E5
         SEC
         SBC #.LO.PGEND
         STA MAXBUF
         LDA $02E6
         SBC #.HI.PGEND
         STA MAXBUF+1
RDAR01   LDA CMPSIZ
         ORA CMPSIZ+1
         ORA CMPSIZ+2
         BNE RDAR02
         RTS         ;All done
;
RDAR02   LDA CMPSIZ+2
         BNE RDAR05
         LDA MAXBUF+1
         CMP CMPSIZ+1
         BCC RDAR05  ;Read buffer size
         BEQ RDAR03
         BCS RDAR04
RDAR03   LDA MAXBUF
         CMP CMPSIZ
         BCC RDAR05
RDAR04   LDA CMPSIZ      ;READ CMP FILE
         STA LEN
         LDA CMPSIZ+1
         STA LEN+1
         JMP RDAR10
RDAR05   LDA MAXBUF
         STA LEN
         LDA MAXBUF+1
         STA LEN+1
;
RDAR10   LDX #D
         JSR BGET
         BPL RDAR11
         LDX #.LO.LOCERR
         LDY #.HI.LOCERR
         JSR SCRPRT
         JMP IOEXIT
;
RDAR11   LDA CMPSIZ
         SEC 
         SBC LEN
         STA CMPSIZ
         LDA CMPSIZ+1
         SBC LEN+1
         STA CMPSIZ+1
         LDA CMPSIZ+2
         SBC #0
         STA CMPSIZ+2
         JMP RDAR01
