       .OUTPI ALFRES
       .ENTRY START,ALFXIT
;INITIALIZATION CODE AND COMMAND LINE PROCESSING
START    JSR SUBINI
         LDA #$40
         STA 702     ;Force uppercase
         LDA $022F
         STA SAVDMA
         LDA $02E8   ;Check memlo
         CMP #$30
         BCS ALF004
         LDX #.LO.TITLE
         LDY #.HI.TITLE
         JSR SCRPRT
         JSR LOCARG  ;See if it's a batch file
         BCS ALF001
         JSR CPYARG
         LDA #1
         STA DMAFLG
         JMP ALF002
ALF001   LDX #.LO.ASKO          ;ASK FOR OUTPUT FILENAME
         LDY #.HI.ASKO
         JSR SCRPRT
         JSR GETLIN
ALF002   LDA LINEL   ;Did anything ?
         BNE ALF010
ALFXIT   LDX #.LO.FINIT
         LDY #.HI.FINIT
         JSR SCRPRT
         JSR SUBXIT ;Close channels
         LDX #D2
         JSR CLOSE   ;Close output file
         LDX #D3
         JSR CLOSE
         LDA SAVDMA
         STA $022F
         LDA $0700
         CMP #$53
         BEQ ALF003
         JMP ($0A)
ALF003   RTS
ALF004   LDX #.LO.ERRM05
         LDY #.HI.ERRM05
         JSR SCRPRT
         JMP ALFXIT
;
ALF010   JSR CAPLIN
         LDX LINEL
         LDA #$9B
         STA LINE,X
         JSR FQUAL
         JSR FXTN
         LDX LINEL
         INX
         LDA #0
         STA LINE,X
ALF100   LDA LINE,X
         STA OFILE,X
         DEX
         BPL ALF100
         LDX #D2
         LDA #.LO.OFILE
         LDY #.HI.OFILE
         JSR OPNIN
         BMI ALF013
         LDA #.LO.LINE
         STA ADR
         LDA #.HI.LINE
         STA ADR+1
         LDA #2
         STA LEN
         LDA #0
         STA LEN+1
         JSR BGET
         BMI ALF013
         LDA LINE
         CMP #$1A
         BNE ALF011
         LDA LINE+1
         CMP #$0F
         BEQ ALF012
ALF011   LDX #.LO.ERRM02
         LDY #.HI.ERRM02
         JSR SCRPRT
         JMP ALFXIT
ALF012   LDX #.LO.OLDARC
         LDY #.HI.OLDARC
         JSR SCRPRT
         LDX #.LO.OFILE
         LDY #.HI.OFILE
         JSR SCRPRT
         LDX #D2
         LDA #.LO.OFILE
         LDY #.HI.OFILE
         JSR OPNAPP
         BPL ALF014
         LDX #.LO.ERRM04
         LDY #.HI.ERRM04
         JSR SCRPRT
         JMP ALF018
ALF013   LDX #.LO.NEWARC
         LDY #.HI.NEWARC
         JSR SCRPRT
         LDX #.LO.OFILE
         LDY #.HI.OFILE
         JSR SCRPRT
         LDX #D2
         LDA #.LO.OFILE
         LDY #.HI.OFILE
         JSR OPNOUT
         BPL ALF014
         LDX #.LO.ERRM04
         LDY #.HI.ERRM04
         JSR SCRPRT
         JMP ALF018
ALF014   LDA BATFLG
         BNE ALF015
         JSR LOCARG
         BCS ALF015
         JSR CPYARG
         JMP ALF016
ALF015   LDX #.LO.ASKI
         LDY #.HI.ASKI
         JSR SCRPRT
         LDA #$40
         STA 702     ;Force again
         JSR GETLIN
ALF016   LDA LINEL
         BEQ ALF018
         JSR CAPLIN
         LDX LINEL
         LDA #$9B
         STA LINE,X
         JSR FQUAL
         LDX LINEL
         INX
         LDA #0
         STA LINE,X
ALF101   LDA LINE,X
         STA IFILE,X
         DEX
         BPL ALF101
         LDA #1
         STA BATFLG
ALF017   LDX #D3
         LDA #.LO.IFILE
         LDY #.HI.IFILE
         JSR OPNDIR ;Open the input file
         BPL ALF019
         LDX #.LO.ERRM01
         LDY #.HI.ERRM01
         JSR SCRPRT
ALF018   JMP ALFXIT
ALF019   LDA DMAFLG
         BNE ALF020
         LDX #.LO.SCREEN
         LDY #.HI.SCREEN
         JSR SCRPRT
         JSR GETLIN
         LDA LINE
         JSR CAPS
         CMP #"Y"
         BNE ALF020
         LDA #1
         STA DMAFLG
ALF020   JSR GETFIL ;Get the first file to process
         BCS ALF022  ;Look for type
         LDX #.LO.CRMSG
         LDY #.HI.CRMSG
         JSR SCRPRT
         LDX #.LO.LINE
         LDY #.HI.LINE
         JSR SCRPRT
         LDA DMAFLG
         BEQ ALF021
         LDA #0
         STA $022F
ALF021   JSR LZCOMP   ;Go do the compressing
         JMP ALF020
ALF022   LDA SAVDMA
         STA $022F
         JMP ALF014
