;:poke56,8000/256:clr
;:sys36864
	;.opt oo
	*=8000
tmp	=2
setlfs	=$ffba
setnam	=$ffbd
open	=$e1c1
close	=$e1cc
chkin	=$e11e
chkout	=$e118
clrchn	=$ffcc
chrout	=$ffd2
load	=$ffd5
get	=$ffe4
clrscn	=$e544
crscol	=646
text	=$41
alpctr	=$92
bild	=$9b
quality	=$a7
style	=$a8
fontlen	=$b5
fget	=$e124
	jsr $ffe7
	jsr colors
	lda #<titel
	ldy #>titel
	jsr $ab1e
	jsr lab0a9b
	jsr lab08c9
	jmp colors
bufhome	lda #<buf
	ldy #>buf
	sta tmp
	sty tmp+1
	rts
hol	ldy #0
	lda (tmp),y
	pha
	inc tmp
	bne noinc
	inc tmp+1
noinc	pla
	rts
;
colors	lda #15
	sta $d020
	sta $d021
	lda #11
	sta crscol
	jmp clrscn
;
lab08c9	jsr testlen
	sta fontlen
lab08cf	jsr lab0916
lab08d2	jsr get
	beq lab08d2
	cmp #13
	beq qde1
	cmp #20
	beq delete
	cmp #"_"
	beq ei2
	jsr lab08f4
	jmp lab08cf
;
delete	jsr ei3
	jmp lab08cf
;
qde1	jmp de1
;
lab08f4	ldx fontlen
	cpx #16
	bcs ei2
	sta font+1,x
	lda #"<"
	sta font+2,x
	inc fontlen
ei2	rts
;
ei3	ldx fontlen
	beq ei1
	lda #32
	sta font+1,x
	lda #"<"
	sta font,x
	dec fontlen
ei1	rts
;
lab0916	ldx #<font
	stx text
	ldx #>font
	stx text+1
	ldx #$a8
	stx bild
	ldx #6
	stx bild+1
	jmp strout
;
testlen	ldx #0
ei5	lda font+1,x
	cmp #"<"
	beq ei4
	inx
	bne ei5
ei4	txa
st2	rts
;
strout	ldy #0
st1	lda (text),y
	beq st2
	and #$bf
	sta (bild),y
	iny
	bne st1
;
initdisk	ldx #<run1
	ldy #>run1
	stx text
	sty text+1
	ldx #<1824
	ldy #>1824
	stx bild
	sty bild+1
	jsr strout
	jsr testlen
	ldx #<(font+1)
	ldy #>(font+1)
	jsr setnam
	lda #3
	ldx #8
	ldy #0
	jsr setlfs
	jsr open
	ldx #3
	jsr chkin
	jsr bufhome
	jsr fget
	ldx 144
	beq rein
	ldx #4
	jmp $a437
fillin	lda 144
	bne filled
	jsr fget
rein	ldy #0
	sta (tmp),y
	inc tmp
	bne fillin
	inc tmp+1
	bne fillin
filled	jsr clrchn
	lda #3
	jmp close
de1	jsr initdisk
	jsr bufhome
	jsr initptr
de2	jsr hol
	beq fertig
	pha
	jsr esc
	lda #"&"
	jsr print
	jsr nil
	pla
	jsr defchr
	jmp de2
;
fertig	jsr alfabet
	jsr clrchn
	lda #4
	jmp close
;
mal3	sta text
	asl
	clc
	adc text
	sta text
	inc text
	rts
;
defchr	jsr print
	jsr print
	jsr hol
	jsr print
	jsr hol
	jsr print
	jsr mal3
loop	jsr hol
	jsr print
	dec text
	bne loop
	rts
;
initptr	ldx #<run2
	ldy #>run2
	stx text
	sty text+1
	ldx #<1904
	ldy #>1904
	stx bild
	sty bild+1
	jsr strout
	lda #0
	jsr setnam
	lda #4
	ldx #4
	ldy #1
	jsr setlfs
	jsr open
	ldx #4
	jsr chkout
	jsr esc
	lda #120 	; kleines x
	jsr print
	lda quality
	jsr print
	jsr esc
	lda #"!"
	jsr print
	lda style
	jsr print
	jsr esc
	lda #":"
	jsr print
	jsr nil
	jsr print
	jsr print
	jsr esc
	lda #"%"
	jsr print
	lda #1
	.byt $2c
esc	lda #27
	.byt $2c
nil	lda #0
print	jmp chrout
;
alfabet	lda #$1f
	sta alpctr
	lda #13
a1	jsr print
	inc alpctr
	lda alpctr
	cmp #$80
	bne a1
	lda #13
	jmp print
;
lab0a9b	ldx #<lqanf
	ldy #>lqanf
	stx text
	sty text+1
	jsr lab0b42
	jsr strout
	jsr loedef
lab0aaf	jsr get
	beq lab0aaf
	cmp #"j"
	beq qu1
	cmp #"n"
	bne lab0aaf
	jsr strout
	lda #0
	beq qu0
;
qu1	ldx #$4b
	stx bild
	jsr strout
	lda #1
qu0	sta quality
	ldx #<proanf
	ldy #>proanf
	stx text
	sty text+1
	ldx #$b8
	stx bild
	jsr strout
	jsr loedef
lab0ae3	jsr get
	beq lab0ae3
	cmp #"j"
	beq lab0afd
	cmp #"n"
	beq lab0af3
	jmp lab0a9b
;
lab0af3	jsr strout
	lda #0
	sta style
	beq lab0b08
;
lab0afd	ldx #$c5
	stx bild
	jsr strout
	lda #2
	sta style
lab0b08	ldx #<kuanf
	ldy #>kuanf
	stx text
	sty text+1
	ldx #$30
	ldy #6
	stx bild
	sty bild+1
	jsr strout
	jsr loedef
lab0b1e	jsr get
	beq lab0b1e
	cmp #"j"
	beq lab0b34
	cmp #"n"
	beq lab0b2e
	jmp lab0a9b
;
lab0b2e	jsr strout
	jmp lab0b41
;
lab0b34	ldx #$37
	stx bild
	jsr strout
	lda style
	ora #$40
	sta style
lab0b41	rts
;
lab0b42	ldx #$40
	ldy #5
	stx bild
	sty bild+1
	rts
;
loedef	ldx #<loeanf
	ldy #>loeanf
	stx text
	sty text+1
	rts
;
font	.byte "><                "
	brk
titel	.byte "\x93\x97zeichensatzlader dl 900/wiesemann"
	.byt 13
	.byte "verbessert von n. heusler, 4.92"
	.byt 13
	.byte "drucker auf \x12epson-emul.\x92 schalten!"
	.byt 13
	.byte "\x12puffer\x92 im drucker ausreichend waehlen!"
	.byt 13
	.byte "(maximal 8 kilobyte im hardware-menue)"
	.byt 13,0
loeanf	.byte "                  "
	brk
	.byt $20,$20,$20,$20,$00
lqanf	.byte "lq-schrift (j/n)"
	brk
proanf	.byte "proportional (j/n)"
	brk
kuanf	.byte "kursiv (j/n)"
	brk
run1	.byte "datei wird geladen"
	brk
run2	.byte "zeichensatz wird zum drucker gesendet"
	brk
buf	=*
