;:sys36864
	;.opt oo
	*= 51200
	jmp init
strout	=$ab1e
getkey	=65508
zpz1	=94
zpz2	=71
screen	=53281
frame	=53280
input	=$ffcf
write	=$ffd2
cr	=13
return	=$aad7
name	=820
chr	=122
chrgot	=121
byte	=$65
ascflt	=$bcf3
round	=$bc1b
integer	=$bc9b
kopfz	=247
fussz	=248
zeig	=249
latch	=704
maxlin	=251
space	=$ab3f
ga	=$ba
sa	=$b9
fnlen	=$b7
lf	=$b8
log	=55
txt	=43
open	=$ffc0
chkout	=$ffc9
line	=252
page	=253
axout	=$bdcd
clrchn	=$ffcc
close	=$ffc3
mem	=254
runstop	=$a82c
quot	=255
basic	=$a09e
table	.byte "0100773333333333"
t1	.byte "\x93      \xa6\xa6\xa6\xa6 nss  programlister \xa6\xa6\xa6\xa6\x11\x11"
	.byt 13,0
t2	.byt 13
	.byte "\x91name des programms ? superl.demo\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d"
	.byt 0
t3	.byte "\x91geraeteadresse ? 4\x9d"
	.byt 0
t4	.byte "\x91kopfzeilen ? 4\x9d"
	.byt 0
t5	.byte "\x91fusszeilen ? 4\x9d"
	.byt 0
t6	.byte "\x91zeilen pro inch (am drucker) ? \x126\x92/\x128\x9d\x9d\x9d\x92"
	.byt 0
t7	.byte "\x91sekundaeradresse ? "
	.byt 0
t8	.byte "\x11eingaben okay ? \x12j\x92/\x12n\x92\x9d\x9d\x9d"
	.byt 0
head	.byte "  **** list of "
	.byt 0
head2	.byte " page "
	.byt 0
m1	.byte "\x93\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
	.byt 13,0
m2	.byte "     drucker kontrollieren:"
	.byt 13
	.byte "\x11 - angeschaltet"
	.byt 13,0
m3	.byte " - angeschlossen"
	.byt 13
	.byte " - papier eingelegt"
	.byt 13
	.byte " - perforierung am druckkopf\x11"
	.byt 13,0
m4	.byte "    * taste druecken *"
	.byt 13
	.byte "\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4"
	.byt 13,0
m5	.byte "     floppy kontrollieren:"
	.byt 13
	.byte "\x11 - angeschaltet"
	.byt 13,0
m6	.byte " - angeschlossen"
	.byt 13
	.byte " - richtige disk eingelegt\x11"
	.byt 13,0
prot	.byt 13
	.byte "-- programm geschuetzt --"
	.byt 13,0
getname	lda #<t2
	ldy #>t2
	jsr strout
	ldx #0
inpt	jsr input
	cmp #cr
	beq carr
	sta name,x
	inx
	bne inpt
carr	cpx #0
	beq getname
	lda #0
	sta name,x
	jsr return
	jmp return
getnum	lda chr
	pha
	lda chr+1
	pha
	ldx #0
numb	jsr input
	cmp #cr
	beq carig
	sta latch,x
	inx
	bne numb
carig	lda #0
	sta latch,x
	lda #<latch
	ldy #>latch
	sta chr
	sty chr+1
	jsr chrgot
	jsr ascflt
	jsr integer
	jsr round
	pla
	sta chr+1
	pla
	sta chr
	ldx byte
	jmp return
getkopf	lda #<t4
	ldy #>t4
	jsr strout
	jsr getnum
	cpx #50
	bcs getkopf
	stx kopfz
	jmp return
getfuss	lda #<t5
	ldy #>t5
	jsr strout
	jsr getnum
	cpx #50
	bcs getfuss
	stx fussz
	jmp return
mass	lda #<t6
	ldy #>t6
	jsr strout
lpi	jsr getkey
	cmp #"8"
	beq lp8
	cmp #"6"
	bne lpi
	ldy #zpz2
	bne stuff
lp8	ldy #zpz1
stuff	sty maxlin
	jsr write
	jsr space
	jsr write
	tya
	sec
	sbc fussz
	sta fussz
	jsr return
	jmp return
pgs	jsr return
	inc line
	ldx line
	cpx maxlin
	bcc pgs
	jmp pages
geraet	lda #<t3
	ldy #>t3
	jsr strout
	jsr getnum
	cpx #1
	bcc geraet
	cpx #16
	bcs geraet
	stx ga
	jmp return
get	inc zeig
	bne noinc
	inc zeig+1
noinc	ldy #0
	lda (zeig),y
	rts
setdev	lda #log
	sta lf
	lda #0
	sta fnlen
	rts
header	ldx kopfz
	stx line
kopp	jsr return
	dex
	bpl kopp
	lda #<head
	ldy #>head
	jsr strout
	lda #<name
	ldy #>name
	jsr strout
	lda #<head2
	ldy #>head2
	jsr strout
	inc page
	ldx page
	lda #0
	jsr axout
	inc line
	inc line
	jsr space
	lda #"*"
	ldx #4
stern	jsr write
	dex
	bne stern
	jsr return
	jmp return
sen	lda #<t7
	ldy #>t7
	jsr strout
	ldx ga
	lda table,x
	jsr write
	lda #"\x9d"
	jsr write
	jsr getnum
	stx sa
	jmp return
sure	lda #<t8
	ldy #>t8
	jsr strout
yn	jsr getkey
	cmp #"j"
	beq ja
	cmp #"n"
	bne yn
	jsr ja
	clc
	rts
ja	jsr write
	jsr space
	jsr space
	sec
	rts
check	lda #<m1
	ldy #>m1
	jsr strout
	lda ga
	cmp #4
	bcc nurok
	cmp #6
	bcs floppy
	lda #<m2
	ldy #>m2
	jsr strout
	lda #<m3
	ldy #>m3
	jsr strout
	jmp nurok
floppy	lda #<m5
	ldy #>m5
	jsr strout
	lda #<m6
	ldy #>m6
	jsr strout
nurok	lda #<m4
	ldy #>m4
	jsr strout
wait	jsr getkey
	beq wait
	rts
prepare	jsr open
	ldx #log
	jsr chkout
	lda #0
	sta page
	lda txt
	sec
	sbc #1
	sta zeig
	lda txt+1
	sbc #0
	sta zeig+1
	rts
init	lda #0
	sta frame
	sta screen
	lda #<t1
	ldy #>t1
	jsr strout
	jsr getname
	jsr getkopf
	jsr getfuss
	jsr mass
	jsr geraet
	jsr sen
	jsr setdev
	jsr sure
	bcc init
	jsr check
	jsr prepare
pages	jsr header
lines	ldx line
	inc line
	cpx fussz
	bcc no
	jmp pgs
no	jsr get
	sta mem
	jsr get
	bne noend
	lda mem
	bne noend
gugge	jsr clrchn
	lda #log
	jmp close
noend	jsr get
	tax
	jsr get
	jsr axout
	jsr space
	jsr runstop
	lda #0
	sta quot
loop	jsr get
	bne such
	jsr return
	jmp lines
such	cmp #$22
	bne noquot
	lda quot
	eor #255
	sta quot
	lda #34
noquot	cmp #128
	bcs inter
pi	jsr write
	jmp loop
inter	cmp #255
	beq pi
	bit quot
	bmi pi
	sec
	sbc #$7f
	tax
	ldy #255
ruf	dex
	beq first
finsft	iny
	lda basic,y
	bpl finsft
	bmi ruf
first	iny
	lda basic,y
	bmi last
	jsr write
	bne first
	lda #<prot
	ldy #>prot
	jsr strout
	jmp gugge
last	and #$7f
	jsr write
	jmp loop
