     .OUTPI ALFRES
     .ENTRY XOLD,XSTORE
     .VIRT8 SPTR,WTEMP

;This routine unpacks a stored file which is one that has not been compressed.
;Old format needs to update length
XOLD   LDA SIZE
       STA LENGTH
       LDA SIZE+1
       STA LENGTH+1
       LDA SIZE+2
       STA LENGTH+2
       LDA SIZE+3
       STA LENGTH+3

;XSTORE simply copies the file from
;the archive to the output file. We
;bypass the fgetx code for speed, and
;call addcrc directly

XSTORE LDA $02E7
       STA IBUFF
       LDA $02E8
       STA IBUFF+1
       LDA #.LO.DZTOP
       SEC
       SBC ADR
       STA IBMAX
       LDA #.HI.DZTOP
       SBC ADR+1
       STA IBMAX+1
XST003 LDA IBUFF
       STA ADR
       LDA IBUFF+1
       STA ADR+1
       LDA IBMAX
       STA LEN
       LDA IBMAX+1
       STA LEN+1
       LDX #D
       JSR RELOAD
       STY IEOF
XST005 LDA TMPSIZ
       CLC
       ADC LEN
       STA TMPSIZ
       LDA TMPSIZ+1
       ADC LEN+1
       STA TMPSIZ+1
       LDA TMPSIZ+2
       ADC #0
       STA TMPSIZ+2
       LDA LEN
       ORA LEN+1
       BEQ XST011
XST006 LDA LEN
       STA WTEMP
       LDA LEN+1
       STA WTEMP+1
       LDA IBUFF
       STA SPTR
       LDA IBUFF+1
       STA SPTR+1
XST007 LDY #0
       LDA (SPTR),Y
       JSR ADDCRC
       INC SPTR
       BNE XST008
       INC SPTR+1
XST008 LDX WTEMP
       BNE XST009
       DEC WTEMP+1
XST009 DEC WTEMP
       LDA WTEMP
       ORA WTEMP+1
       BNE XST007
       LDX #D2
       JSR BPUT
       BPL XST010
       LDX #.LO.OUTERR
       LDY #.HI.OUTERR
       JSR SCRPRT
       JMP ARCXIT
XST010 LDA IEOF
       BMI XST011
       JMP XST003
XST011 JSR CHKFIL     CHECK CRC
       RTS
