         .OUTPI ALFRES
         .ENTRY START,DEXIT
;INITIALIZATION AND STARTUP

START    JSR SUBINI  ;Open the channels
         LDA $022F
         STA SAVDMA
         LDA $02E8
         CMP #$30
         BCS DZ031
         LDX #.LO.TITLE
         LDY #.HI.TITLE
         JSR SCRPRT
         LDA #$40
         STA 702     ;Uppercase
DZ001    JSR LOCARG  ;On command line ?
         BCS DZ002
         JSR CPYARG
         LDA #1
         STA DMAFLG
         JMP DZ030
DZ002    LDA #$9B
         JSR PRCHAR
         LDX #.LO.ASKI
         LDY #.HI.ASKI
         JSR SCRPRT
         JSR GETLIN
DZ030    LDA LINEL
         BNE DZ032
DEXIT    JSR SUBXIT
         LDX #.LO.FINIT
         LDY #.HI.FINIT
         JSR SCRPRT
         LDA SAVDMA
         STA $022F
         LDX #D2
         JSR CLOSE
         LDA $0700
         CMP #$53
         BEQ EXIT1
         JMP ($0A)
EXIT1    RTS
DZ031    LDX #.LO.ERRM10
         LDY #.HI.ERRM10
         JSR SCRPRT
         JMP DEXIT
;
DZ032    JSR CAPLIN ;Just to be sure
         JSR FQUAL
         JSR FXTN
         LDX LINEL
DZ040    LDA LINE,X
         STA IFILE,X
         DEX
         BPL DZ040
         JSR LOCARG  ;Look for output drive
         BCS DZ003
         JSR CPYARG
         JMP DZ004
DZ003    LDX #.LO.ASKO
         LDY #.HI.ASKO
         JSR SCRPRT
         JSR GETLIN
DZ004    LDA LINEL
         BEQ DEXIT
         LDA #0                 ;BUILD MIGHT BE REQUIRED
         STA BLDFLG
         JSR CAPLIN
         JSR FQUAL
         JSR VALPTH
         BCC DZ005
         LDX #.LO.ERRM03
         LDY #.HI.ERRM03
         JSR SCRPRT
         JMP DEXIT
DZ005    LDX LINEL
DZ041    LDA LINE,X
         STA IDIR,X
         DEX
         BPL DZ041
         LDX DMAFLG
         BNE DZ006
         LDX #.LO.ASKDMA
         LDY #.HI.ASKDMA
         JSR SCRPRT
         JSR GETLIN
         LDA LINE
         JSR CAPS
         CMP #"Y"
         BNE DZ007
DZ006    LDX #0
         STA $022F
         INX
         STX DMAFLG
DZ007    LDX #D
         LDA #.LO.IFILE
         LDY #.HI.IFILE
         JSR OPNIN
         BPL DZ009
DZ008    LDX #.LO.ERRM04
         LDY #.HI.ERRM04
         JSR SCRPRT
         JMP DEXIT
DZ009    LDA #.LO.HDR
         STA ADR
         LDA #.HI.HDR
         STA ADR+1
         LDA #.LO.HDRL
         STA LEN
         LDA #.HI.HDRL
         STA LEN+1
         LDX #D
         JSR BGET    ;Get the header
         BPL DZ011
         CPY #$88
         BNE DZ008
         LDA LEN+1
         BNE DZ011
         LDA LEN
         BEQ DZ010
         CMP #.LO.HDRL
         BCS DZ011
         LDA HDRCHK
         BEQ DZ008
         LDX #.LO.ERRM05
         LDY #.HI.ERRM05
         JSR SCRPRT
DZ010    JMP DEXIT
DZ011    LDA HDR
         CMP #$1A    ;Arc ?
         BEQ DZ013
DZ012    LDX #.LO.ERRM01
         LDY #.HI.ERRM01
         JSR SCRPRT
         JMP DEXIT
DZ013    LDA HDR+1
         CMP #$0F    ;My kind ?
         BNE DZ012
         LDA BLDFLG
         BNE DZ014
         JSR DIRBLD
         LDA #1
         STA BLDFLG
DZ014    LDX #0
DZ015    LDA IDIR,X
         CMP #$9B
         BEQ DZ016
         INX
         BPL DZ015
         LDX #.LO.ERRM02
         LDY #.HI.ERRM02
         JSR SCRPRT
         JMP DEXIT
DZ016    LDA IDIR,X
         CMP #">"
         BEQ DZ017
         CMP #":"
         BEQ DZ017
         DEX
         BPL DZ016
         LDX #.LO.ERRM03
         LDY #.HI.ERRM03
         JSR SCRPRT
         JMP DEXIT
DZ017    TXA
         TAY
DZ018    LDA IDIR,X
         STA OFILE,X
         DEX
         BPL DZ018
         INY
         LDX #0
DZ019    LDA FILEN,X
         STA OFILE,Y
         BEQ DZ020
         INX
         INY
         BPL DZ019
         BMI DZ012
DZ020    LDA #$9B
         STA OFILE,Y
         LDA #0
         STA OFILE+1,Y
         JSR FNDEXT
         BCC DZ023
         JMP DZ009
DZ023    LDX #D2
         LDA #.LO.OFILE
         LDY #.HI.OFILE
         JSR OPNOUT
         BPL DZ021
         LDX #.LO.ERRM06
         LDY #.HI.ERRM06
         JSR SCRPRT
         JMP DEXIT
DZ021    LDX #.LO.CRMSG
         LDY #.HI.CRMSG
         JSR SCRPRT
         LDX #.LO.OFILE
         LDY #.HI.OFILE
         JSR SCRPRT
         LDA #1
         STA HDRCHK
         LDA CMPSIZ
         ORA CMPSIZ+1
         ORA CMPSIZ+2
         ORA CMPSIZ+3
         BEQ DZ022
         JSR DZCOMP
DZ022    LDX #D2
         JSR CLOSE
         JMP DZ009
