;:poke56,64:clr
;:sys36864
	;.opt oo
	*= $c000
buff	=$4000
	jmp start
hi	.byt 13
	.byte "\x93\x08\x97\x8e\x11\x11copyright-boy  v1  n. heusler  8.92"
	.byt 13
	.byte "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
	.byt 13
	.byte "\x11dieses utility vergleicht zwei dateien"
	.byt 13
	.byte "\x11und sucht nach gemeinsamkeiten."
	.byt 13
	.byte "\x11\x11 ab       byte uebereinstimmung melden"
	.byt 13
	.byte "\x91\x1d\x1d\x1d\x1d"
	brk
hi2	.byt 13
	.byte "\x11 dateiname 1 ? "
	brk
hi3	.byt 13
	.byte "\x11 dateiname 2 ? "
	brk
hi4	.byt 13
	.byte "\x11ausgabe auf <s>chirm oder <d>rucker ? "
	brk
err	.byt 13
	.byte "datei kann nicht geoeffnet werden!"
	brk
err2	.byt 13
	.byte "speicher voll!"
	brk
hext	.byte "0123456789abcdef"
piec	.byt 13,13
	.byte "gefundene identische bereiche"
	.byt 13
	.byte "(mind. "
	brk
pi2	.byte " bytes):"
	.byt 13,13
	.byte " datei 1    datei 2   laenge"
	.byt 13
	.byte "----------------------------"
	.byt 13,0
eoi	.byt 13
	.byte "anzahl der fundstellen: "
	brk
input	stx 2
	sta 3
	lda 211
	sta 4
in1	lda 4
	sta 211
	ldx 2
	lda #"\xa4"
in2	jsr $ffd2
	dex
	bne in2
	lda 4
	sta 211
	ldx #0
in3	lda #0
	sta 204
in4	lda 198
	beq in4
	ldy #2
	sty 205
in5	lda 207
	bne in5
	inc 204
	stx 5
	jsr 65508
	ldx 5
	cmp #13
	bne in6
	rts
in6	cmp #20
	beq in7
	cmp #"\x13"
	beq in1
	ldy 3
	beq all
	cmp #"0"
	bcc in3
	cmp #"9"+1
	bcs in3
	bcc ok
all	cmp #32
	bcc in3
	cmp #128
	bcc ok
	cmp #192
	bcc in3
ok	cpx 2
	bcs in3
	sta 820,x
	jsr $ffd2
	lda #0
	sta 212
	inx
	bne in3
in7	txa
	beq in3
	dex
	dec 211
	lda #"\xa4"
	jsr $ffd2
	dec 211
	bne in3
blink	ldx #32
	stx 211
	sta 214
	jsr 58732
	lda #0
	sta 204
	sta 198
bl	cmp 198
	beq bl
	sta 198
	lda #2
	sta 205
bl2	lda 207
	bne bl2
	inc 204
	lda #17
	sta 214
	jmp 58732
open	jsr $ffbd
	ldx #8
	lda #1
	ldy #0
	jsr $ffba
	jsr $ffc0
	ldx #1
	jmp $ffc6
hex	pha
	lsr
	lsr
	lsr
	lsr
	jsr hex1
	pla
hex1	and #15
	tax
	lda hext,x
	jmp $ffd2
bhex	pha
	lsr
	lsr
	lsr
	lsr
	jsr bhex1
	pla
bhex1	and #15
	tax
	lda hext,x
	and #63
	sta 1024,y
	lda #1
	sta $d800,y
	iny
	rts
cdole	jsr $ffd2
	lda #":"
	jsr $ffd2
	jmp $ab3f
bar	lda #"-"
	.byt $2c
anf	lda #34
	jmp $ffd2
eout	pha
	jsr hex
	tya
	jsr hex
	tya
	clc
	adc 178
	sta 158
	pla
	adc 179
	sta 159
	lda 158
	bne *+4
	dec 159
	dec 158
	jsr bar
	lda 159
	jsr hex
	lda 158
	jmp hex
sp2	jsr sp
sp	jmp $ab3f
start	jsr $ffe7
	lda #<hi
	ldy #>hi
	jsr $ab1e
	lda #15
	sta $d020
	sta $d021
	ldx #5
	lda #1
	jsr input
	lda #0
	sta 6
	sta 191
	sta 820,x
	tax
	sta 139
	sta 140
de1	lda 820,x
	beq de2
	lda 139
	sta 141
	lda 140
	asl 141
	rol
	bcs start
	asl 141
	rol
	bcs start
	sta 142
	lda 139
	adc 141
	sta 139
	lda 140
	adc 142
	bcs start
	sta 140
	asl 139
	rol 140
	bcs start
	lda 820,x
	and #15
	adc 139
	sta 139
	bcc de3
	inc 140
	beq qst
de3	inx
	bne de1
qst	jmp start
de2	lda 139
	ora 140
	beq start
	lda #<hi2
	ldy #>hi2
	jsr $ab1e
	ldx #16
	lda #0
	jsr input
	stx 155
	txa
	beq qst
co1	lda 820,x
	sta 704,x
	dex
	bpl co1
	lda #<hi3
	ldy #>hi3
	jsr $ab1e
	ldx #16
	lda #0
	jsr input
	stx 156
	txa
	beq qst
	lda #<hi4
	ldy #>hi4
	jsr $ab1e
ge	jsr 65508
	cmp #"d"
	beq ge4
	cmp #"s"
	bne ge
	ldx #3
	.byt $2c
ge4	ldx #4
	stx 143
	jsr $ffd2
	lda #12
	jsr blink
	ldx #<704
	ldy #>704
	lda 155
	jsr open
	jsr $ffc0
	ldx #1
	jsr $ffc6
	jsr 65508
	ldx 144
	beq fd
not	jsr $ffcc
	lda #<err
	ldy #>err
fehler	jsr $ab1e
	lda #0
	sta 198
wk	cmp 198
	beq wk
	sta 198
	jmp start
fd	sta 247
	sta 249
	sta 189
	jsr 65508
	sta 248
	sta 250
	sta 190
	lda #<buff
	ldy #>buff
	sta 251
	sty 252
	sta 253
	sty 254
lp1	jsr 65508
	sei
	ldy #48
	sty 1
	ldy #0
	sta (251),y
	ldy #55
	sty 1
	inc 249
	bne *+4
	inc 250
	inc 251
	bne platz
	inc 252
	bne platz
memfull	jsr $ffcc
	lda #<err2
	ldy #>err2
	bne fehler
platz	lda 144
	beq lp1
	jsr $ffcc
	lda #1
	jsr $ffc3
	lda 249
	bne *+4
	dec 250
	dec 249
	lda #14
	jsr blink
	ldx #<820
	ldy #>820
	lda 156
	jsr open
	jsr $ffc0
	ldx #1
	jsr $ffc6
	jsr 65508
	ldx 144
	beq okay
	jmp not
okay	sta 170
	sta 166
	jsr 65508
	sta 171
	sta 167
	lda 251
	ldy 252
	sta 168
	sty 169
lp2	jsr 65508
	sei
	ldy #48
	sty 1
	ldy #0
	sta (168),y
	ldy #55
	sty 1
	inc 166
	bne *+4
	inc 167
	inc 168
	bne plitz
	inc 169
	beq memfull
plitz	lda 144
	beq lp2
	jsr $ffcc
	lda #1
	jsr $ffc3
	lda 166
	bne *+4
	dec 167
	dec 166
	ldx 143
	lda #4
	ldy #0
	jsr $ffba
	sty $b7
	jsr $ffc0
	ldx #4
	jsr $ffc9
	jsr $aad7
	jsr $aad7
	lda #"1"
	jsr cdole
	lda 248
	jsr hex
	lda 247
	jsr hex
	jsr bar
	lda 250
	jsr hex
	lda 249
	jsr hex
	jsr $ab3f
	jsr anf
	ldx #0
out1	lda 704,x
	jsr $ffd2
	inx
	cpx 155
	bcc out1
	jsr anf
	jsr $aad7
	lda #"2"
	jsr cdole
	lda 171
	jsr hex
	lda 170
	jsr hex
	jsr bar
	lda 167
	jsr hex
	lda 166
	jsr hex
	jsr $ab3f
	jsr anf
	ldx #0
out2	lda 820,x
	jsr $ffd2
	inx
	cpx 156
	bcc out2
	jsr anf
	lda #<piec
	ldy #>piec
	jsr $ab1e
	ldx 139
	lda 140
	jsr $bdcd
	lda #<pi2
	ldy #>pi2
	jsr $ab1e
sea1	lda #55
	sta 1
	ldy #0
	lda 190
	jsr bhex
	lda 189
	jsr bhex
	sei
	lda #48
	sta 1
	lda 251
	ldy 252
	sta 176
	sty 177
	lda 170
	ldy 171
	sta 150
	sty 151
sea2	ldy #0
	sty 178
	sty 179
	lda 176
	sta 180
	lda 177
	sta 181
	lda 253
	sta 195
	lda 254
	sta 196
sea3	lda (180),y
	cmp (195),y
	bne diff
	inc 178
	bne *+4
	inc 179
	inc 180
	bne *+4
	inc 181
	inc 195
	bne *+4
	inc 196
	sec
	lda 195
	sbc 251
	lda 196
	sbc 252
	bcs diff
	sec
	lda 180
	sbc 168
	lda 181
	sbc 169
	bcc sea3
diff	lda 179
	cmp 140
	bcc toolit
	bne melde
	lda 178
	cmp 139
	bcc toolit
melde	inc 191
	bne *+4
	inc 6
	lda #55
	sta 1
	cli
	lda 190
	ldy 189
	jsr eout
	jsr sp2
	lda 151
	ldy 150
	jsr eout
	lda 189
	cmp 150
	bne irg
	lda 190
	cmp 151
	bne irg
	lda #"*"
	.byt $2c
irg	lda #32
	jsr $ffd2
	jsr $ab3f
	ldx 178
	lda 179
	jsr $bdcd
	jsr $aad7
	lda #48
	sei
	sta 1
	clc
	lda 178
	adc 253
	sta 253
	lda 179
	adc 254
	sta 254
	clc
	lda 178
	adc 189
	sta 189
	lda 179
	adc 190
	sta 190
	jmp done2
toolit	inc 150
	bne *+4
	inc 151
	inc 176
	bne *+4
	inc 177
	sec
	lda 176
	sbc 168
	lda 177
	sbc 169
	bcs end2
	jmp sea2
end2	inc 189
	bne *+4
	inc 190
	inc 253
	bne *+4
	inc 254
done2	sec
	lda 253
	sbc 251
	lda 254
	sbc 252
	bcs end1
	jmp sea1
end1	lda #55
	sta 1
	cli
	lda #<eoi
	ldy #>eoi
	jsr $ab1e
	lda 6
	ldx 191
	jsr $bdcd
	jsr $aad7
	jsr $ffcc
	ldx #4
	jmp $ffc3
