;:print:print:print
;:sys65418
poke56,128
	clr
	printfre(0)"bytes	free"
open1,8,15,"s:print.obj"
	close1
open2,8,2,"print.obj,p,w"
sys36864
	;.opt o2,oo
	*= $8000
outvec	=$326
goon	=$f1ca
outadr	=$9a
drucker	=4
iecout	=$eddd
ptr	=2
puffer	=$a000
konf	=1
tmp	=4
ende	=$e6b0
endpuf	=$a400
cr	=13
	jmp init
vec	sta temp
	pha
	txa
	pha
	tya
	pha
	lda temp
	jsr newvec
	pla
	tay
	jmp ende
char	=*
	.byt $00,$00,$00,$00,$00,$00,$00,$00,$5f,$00,$00,$00	; !
	.byt $00,$07,$00,$07,$00,$00,$14,$7f,$14,$7f,$14,$00	;"#"
	.byt $24,$2a,$7f,$2a,$12,$00,$63,$13,$08,$64,$63,$00	;$%
	.byt $30,$4e,$59,$26,$50,$00,$00,$04,$02,$01,$00,$00	;&'
	.byt $00,$1c,$22,$41,$00,$00,$00,$41,$22,$1c,$00,$00	;()
	.byt $2a,$1c,$7f,$1c,$2a,$00,$08,$08,$3e,$08,$08,$00	;*+
	.byt $00,$40,$30,$00,$00,$00,$08,$08,$08,$08,$08,$00	;,-
	.byt $00,$60,$60,$00,$00,$00,$60,$10,$08,$04,$03,$00	;./
	.byt $1e,$21,$21,$1e,$00,$00,$00,$22,$3f,$20,$00,$00	;01
	.byt $22,$31,$29,$25,$32,$00,$12,$21,$25,$25,$1e,$00	;23
	.byt $08,$0c,$0a,$3f,$08,$00,$17,$25,$25,$25,$19,$00	;45
	.byt $1c,$26,$25,$25,$19,$00,$03,$01,$31,$09,$07,$00	;67
	.byt $16,$29,$29,$29,$16,$00,$26,$29,$29,$19,$0e,$00	;89
	.byt $00,$00,$12,$00,$00,$00,$00,$40,$32,$00,$00,$00	;
		;
	.byt $08,$14,$22,$41,$41,$00,$14,$14,$14,$14,$14,$00	;<=
	.byt $41,$41,$22,$14,$08,$00,$02,$01,$51,$09,$06,$00	;">?"
;
	.byt $3e,$41,$5d,$55,$5e,$00,$7e,$09,$09,$09,$7e,$00	;@a grossbuchst
	.byt $41,$7f,$49,$49,$36,$00,$3e,$41,$41,$41,$22,$00	;bc
	.byt $41,$7f,$41,$41,$3e,$00,$7f,$49,$49,$49,$41,$00	;de
	.byt $7f,$09,$09,$09,$01,$00,$3e,$41,$41,$49,$3a,$00	;fg
	.byt $7f,$08,$08,$08,$7f,$00,$00,$41,$7f,$41,$00,$00	;hi
	.byt $20,$40,$41,$3f,$01,$00,$7f,$08,$14,$22,$41,$00	;jk
	.byt $7f,$40,$40,$40,$40,$00,$7f,$02,$0c,$02,$7f,$00	;lm
	.byt $7f,$04,$08,$10,$7f,$00,$3e,$41,$41,$41,$3e,$00	;no
	.byt $7f,$09,$09,$09,$06,$00,$3e,$41,$51,$21,$5e,$00	;pq
	.byt $7f,$09,$19,$29,$46,$00,$26,$49,$49,$49,$32,$00	;rs
	.byt $01,$01,$7f,$01,$01,$00,$3f,$40,$40,$40,$3f,$00	;tu
	.byt $07,$18,$60,$18,$07,$00,$7f,$20,$18,$20,$7f,$00	;vw
	.byt $63,$14,$08,$14,$63,$00,$07,$08,$78,$08,$07,$00	;xy
	.byt $61,$51,$49,$45,$43,$00,$00,$7f,$41,$41,$00,$00	;z[
	.byt $48,$7e,$49,$49,$42,$00,$00,$41,$41,$7f,$00,$00	;\]
	.byt $00,$04,$02,$7f,$02,$04,$08,$1c,$2a,$08,$08,$08	;^_
;
	.byt $08,$08,$08,$08,$08,$08,$1c,$4e,$7f,$4e,$1c,$00
	.byt $00,$00,$7f,$00,$00,$00,$04,$04,$04,$04,$04,$04
	.byt $02,$02,$02,$02,$02,$02,$01,$01,$01,$01,$01,$01
	.byt $20,$20,$20,$20,$20,$20,$00,$7f,$00,$00,$00,$00
	.byt $00,$00,$00,$00,$7f,$00,$08,$08,$10,$60,$00,$00
	.byt $00,$00,$00,$03,$04,$08,$08,$08,$04,$03,$00,$00
	.byt $7f,$40,$40,$40,$40,$40,$02,$04,$08,$10,$20,$40
	.byt $40,$20,$10,$08,$04,$02,$7f,$01,$01,$01,$01,$01
	.byt $01,$01,$01,$01,$01,$7f,$3c,$7e,$7e,$7e,$3c,$00
	.byt $20,$20,$20,$20,$20,$20,$1c,$3e,$7c,$3e,$1c,$00
	.byt $00,$7f,$00,$00,$00,$00,$00,$00,$00,$60,$10,$08
	.byt $42,$24,$18,$18,$24,$42,$3c,$42,$42,$42,$3c,$00
	.byt $1c,$0a,$7f,$0a,$1c,$00,$00,$00,$00,$00,$7f,$00
	.byt $18,$3c,$7e,$3c,$18,$00,$08,$08,$08,$7f,$08,$08
	.byt $55,$2a,$55,$00,$00,$00,$00,$00,$00,$7f,$00,$00
	.byt $08,$7c,$04,$7c,$04,$00,$01,$03,$07,$0f,$1f,$3f
;
	.byt $00,$00,$00,$00,$00,$00,$7f,$7f,$7f,$00,$00,$00
	.byt $78,$78,$78,$78,$78,$78,$01,$01,$01,$01,$01,$01
	.byt $40,$40,$40,$40,$40,$40,$7f,$00,$00,$00,$00,$00
	.byt $55,$2a,$55,$2a,$55,$2a,$00,$00,$00,$00,$00,$7f
	.byt $50,$28,$50,$28,$50,$28,$3f,$1f,$0f,$07,$03,$01
	.byt $00,$00,$00,$00,$00,$7f,$00,$00,$00,$7f,$08,$08
	.byt $00,$00,$00,$78,$78,$78,$00,$00,$00,$0f,$08,$08
	.byt $08,$08,$08,$78,$00,$00,$60,$60,$60,$60,$60,$60
	.byt $00,$00,$00,$78,$08,$08,$08,$08,$08,$0f,$08,$08
	.byt $08,$08,$08,$78,$08,$08,$08,$08,$08,$7f,$00,$00
	.byt $7f,$00,$00,$00,$00,$00,$7f,$7f,$00,$00,$00,$00
	.byt $00,$00,$00,$00,$7f,$7f,$01,$01,$01,$01,$01,$01
	.byt $03,$03,$03,$03,$03,$03,$70,$70,$70,$70,$70,$70
	.byt $40,$40,$40,$40,$40,$7f,$78,$78,$78,$00,$00,$00
	.byt $00,$00,$00,$07,$07,$07,$08,$08,$08,$0f,$00,$00
	.byt $07,$07,$07,$00,$00,$00,$07,$07,$07,$78,$78,$78
temp	.byt 0
breit	.byt 0
rvs	.byt 0
old	.byt 0
rom	pha
	lda #55
	sta konf
	cli
	pla
	rts
ram	pha
	sei
	lda #54
	sta konf
	pla
	rts
resptr	lda #<puffer
	ldy #>puffer
	sta ptr
	sty ptr+1
	rts
incptr	inc ptr
	bne i1
	inc ptr+1
i1	rts
inc6ptr	lda ptr
	clc
	adc #6
	sta ptr
	lda ptr+1
	adc #0
	sta ptr+1
	rts
init	lda #<vec
	ldy #>vec
	sta outvec
	sty outvec+1
clrptr	jsr resptr
	lda #0
	tay
clp	sta (ptr),y
	jsr incptr
	ldx ptr+1
	cpx #>endpuf
	bcc clp
	sta rvs
	sta breit
	jmp resptr
newvec	pha
	lda outadr
	cmp #drucker
	beq neu
	pla
	jmp goon
neu	pla
	cmp #cr
	bne nocr
	lda #8
	jsr iecout
	jsr resptr
loop	ldy #0
	jsr ram
	lda (ptr),y
	jsr rom
	beq fin
	ora #$80
	jsr iecout
	jsr incptr
	jmp loop
fin	lda #cr
	jsr iecout
	lda #15
	jsr iecout
	jmp clrptr
nocr	cmp #14
	bne no1
	lda #-1
	bne setbr
no1	cmp #15
	bne no2
	lda #0
setbr	sta breit
	rts
no2	cmp #18
	bne no3
	lda #-1
	bne setrv
no3	cmp #18+$80
	bne no4
	lda #0
setrv	sta rvs
	rts
no4	cmp #cr+$80
	bne no5
	jmp resptr
no5	cmp #32
	bcs gehtnoch
imp	rts
gehtnoch	tax
	bpl klar
	cmp #160
	bcc imp
	cmp #192
	bcc klar
	cmp #224
	bcs cl1
	sec
	sbc #96
	jmp klar
cl1	cmp #255
	beq imp
	sec
	sbc #64
klar	tax
	bpl no6
	sec
	sbc #32
no6	sec
	sbc #32
	ldx #0
	stx tmp+1
	sta old
	asl
	rol tmp+1
	clc
	adc old
	pha
	lda tmp+1
	adc #0
	sta tmp+1
	pla
	asl
	rol tmp+1
	clc
	adc #<char
	sta tmp
	lda tmp+1
	adc #>char
	sta tmp+1
	ldy #5
	jsr ram
l1	lda (tmp),y
	bit rvs
	bpl l2
	eor #127
l2	sta old
	lda (ptr),y
	ora old
	ora #$80
	sta (ptr),y
	dey
	bpl l1
	jsr rom
	jmp inc6ptr
	.end
	close2
