;:sys36864
	;.opt oo
	*= $c000
low	=$cb00
high	=$cc00
erg	=$cd00
komma	=$aefd
frmnum	=$ad8a
integer	=$b7f7
rnd	=54299
tlow	=$ce00
thigh	=$cf00
frqhi	=54287
wave	=54290
ind	=$ca00
getx	=$b7f1
	jmp init
	jmp dazu
	jmp sucht
	jmp sum
	jmp scratch
anzprg	=5
summe	.word 0
von	.word 0
bis	.word 0
anzfun	=2
stress	.word 0
getadr	jsr komma
	jsr frmnum
	jmp integer
holexp	ldx #0
hexp	lda low,x
	sta tlow,x
	lda high,x
	sta thigh,x
	inx
	bne hexp
	rts
bakexp	ldx #0
bexp	lda tlow,x
	sta low,x
	lda thigh,x
	sta high,x
	inx
	bne bexp
	rts
geduld	lda stress
	bne dek
	dec stress+1
dek	dec stress
	bne weiter
	lda stress+1
	bne weiter
	lda #0
	sta anzfun
	pla
	pla
weiter	rts
init	lda #0
	sta anzprg
	lda #100
	sta frqhi
	lda #129
	sta wave
	rts
dazu	jsr getadr
	ldx anzprg
	inc anzprg
	sta high,x
	tya
	sta low,x
	stx summe
	jsr getx
	txa
	ldx summe
	sta ind,x
	rts
sucht	jsr getadr
	sta von+1
	sty von
	jsr getadr
	sta bis+1
	sty bis
	jsr getadr
	sta stress+1
	sty stress
	sei
try	jsr holexp
	lda #0
	sta summe
	sta summe+1
	sta anzfun
try2	jsr geduld
	lda rnd
try3	cmp anzprg
	bcc try4
	sbc anzprg
	bne try3
try4	tax
	lda tlow,x
	bne try5
	lda thigh,x
	beq try2
try5	lda summe
	clc
	adc tlow,x
	sta summe
	lda summe+1
	adc thigh,x
	sta summe+1
	lda #0
	sta tlow,x
	sta thigh,x
	ldy anzfun
	lda ind,x
	sta erg,y
	inc anzfun
	lda summe+1
	cmp bis+1
	bcc try6
	bne try
	lda summe
	cmp bis
	bcc try6
	bne try
try6	lda summe+1
	cmp von+1
	bcc try2
	bne try7
	lda summe
	cmp von
	bcc try2
try7	cli
	jmp bakexp
sum	lda #0
	sta anzfun
	sta anzfun+1
	ldx anzprg
sm	dex
	lda low,x
	clc
	adc anzfun
	sta anzfun
	lda anzfun+1
	adc high,x
	sta anzfun+1
	txa
	bne sm
	rts
scratch	ldy #0
	ldx #0
s1	lda high,x
	bne goon
	lda low,x
	bne goon
	inx
	jmp goon2
goon	lda high,x
	sta high,y
	lda low,x
	sta low,y
	lda ind,x
	sta ind,y
	iny
	inx
goon2	cpx anzprg
	bcc s1
	sty anzprg
	rts
