       .OUTPI ALFRES
       .ENTRY "ALL"
       *=$8000                  ;LZSTART
;ZERO PAGE AND OTHER NON-DATA EQUATES
HPTR     =   $B0     ;Hash table pointer
AX       =   $B2     ;16 bit register
BX       =   $B4     ;16 bit register
IPTR     =   $B6     ;Input buffer pointer
OPTR     =   $B8     ;Output buffer pointer
WTEMP    =   $BA     ;Temporary output register
ZPAG     =   $BC
PRECDE   =   $BE     ;Lookup code
CLEAR    =   256     ;Clear table code
FILEND   =   257     ;End of file code
FIRSTF   =   258     ;First free slot in table
MAXMAX   =   2048    ;Absolute number of slots
;hash table structure, 5 byte entries
HFIRST   =   $00     ;Code of first char in string
HNEXT    =   $02     ;Code of next char in string
HCHAR    =   $04     ;Character in the string
;Next the floaters
IFILE    *=*+80      ;Input filename
LINE     *=*+83
OFILE    *=*+80      ;Output filename
DIR      *=*+20      ;Each directory entry
HTABLE   .WORD $3000 ;Address of hash table
FIRSTU   .BYTE 0     ;First time used flag
SAVK     .BYTE 0     ;Place to save the char
MAXCDE   .WORD 0     ;Number of slots per nbits
NBITS    .BYTE 0     ;Number of bits per code
FRECDE   .WORD 0     ;Next free slot
INBUFF   .WORD 0     ;Address of input buffer
BATFLG   .BYTE 0     ;Allow command line input mask once
OUTBUF   .WORD 0     ;Output buffer address
MAXBUF   .WORD 0     ;Maximum buffer size
ZLEN     .WORD 0     ;Zero buffer counter
SAVDMA   .BYTE 0     ;Old DMA stat
NCODE    .BYTE 0,0,0 ;Overlap bytes for output code
INBUFL   .WORD 0     ;Current buffer length
BITOFF   .WORD 0     ;Number of bits written
DMAFLG   .BYTE 0     ;1=Screen Off
OLDARG   .BYTE 0
IEOF     .BYTE 0     ;Input EOF flag
;First the constants
TITLE    .BYTE 125,"V1.4          ALFCRUNCH     07/10/88",$9B,$9B,0
ASKI     .BYTE "Input filemask:",$9B,0
ASKO     .BYTE "Output filename",$9B,0
CRMSG    .BYTE "Crunching: ",0
NEWARC   .BYTE "Creating new file: ",0
OLDARC   .BYTE "Adding to file: ",0
FINIT    .BYTE "Processing complete.",$9B,0
ERRM01   .BYTE "Error reading directory",$9B,0
ERRM02   .BYTE "Can't add to a non-crunch file",$9B,0
ERRM03   .BYTE "Error reading input file",$9B,0
ERRM04   .BYTE "Error writing output file",$9B,0
ERRM05   .BYTE "Memlo must be under $3000",$9B,0
SCREEN   .BYTE "Screen off for speed ? ",0
;
;The Arc type header
HDR      .BYTE $1A,$0F ;Arc and Crunched
FILEN    .BYTE "             " ;The file name
CMPSIZ   .WORD 0,0  ;Compressed size
DATE     .BYTE $88,$05
TIME     .BYTE $13,$03
CRC      .WORD 0
LENGTH   .WORD 0,0
HDRL     =   29
OLDPTR .BYTE 0,0,0 ;Point to guy
