;:poke56,111:clr
;:open15,8,15,"s:okimate.pdr":close15
;:open2,8,2,"okimate.pdr,p,w
;:sys9*4096
	;.opt o2
	*=$6f00
;
;
port	=1
tmp	=2
mem	=10
sz	=$e
len	=$10
flg	=$14
;
	lda #3
	sta oft
	lda #0
	sta $fe
	sta $94
	sta $95
	ror $4
	ror $fd
	ldx #4
	lda $8
	beq is4
	ldx #5
is4	ldy #1
	lda #$b
	jsr $ffba
	lda #0
	jsr $ffbd
	jsr $ffc0
	ldx #$b
	jsr $ffc9
	cmp #5
	bne lab6f18
	jsr close
	sec
	rts
;
lab6f18	lda #>pg2
	sta sz+1
	lda #<pg2
	sta sz
	lda #3
	jsr strout
	lda tmp
	sta $fb
	bne lab6f36
	ror tmp+1
	ror $fe
	sec
	ror $fe
	jsr card
	bit flg
	bmi fertig
	bit $fe
	bvs abort
	bvc fertig
;
lab6f36	cmp #1
	bne no1
	jsr sign
	jmp fertig
;
no1	cmp #2
	bne no2
	jsr station
	jmp fertig
;
no2	cmp #4
	bne no4
	jsr banner
	jmp fertig
;
no4	cmp #5
	bne no5
	jsr graphic
	jmp fertig
;
no5	cmp #6
	bne fertig
	jsr test
fertig	jsr ff
abort	jsr close
	clc
	rts
;
close	lda #$b
	jmp $ffc3
;
esc2	lda #1
	sta oft
esc1	ldx #<et1
	lda #>et1
	bne out5
esc3	lda #1
	sta oft
	ldx #<et3
	lda #>et3
	bne out5
esc4	lda #1
	sta oft
	ldx #<et4
	lda #>et4
	bne out5
esc5	ldx #<et5
	lda #>et5
	bne out5
;
pg2	.byt 8,65,27
et1	.byt 5,$40,39,42,27
et3	.byt 5,$a0,39,42,27
et4	.byt 2,$a0,39,42,27
et5	.byt 0,24,39,42,27
;
out5	sta sz+1
	stx sz
	lda #5
strout	sta len
	dec len
l3	ldy len
	lda (sz),y
	jsr $ffd2
	dec len
	bpl l3
	rts
;
print8	ldx #0
l2	txa
	pha
	lda adr702b,x
	jsr out24
	pla
	tax
	inx
	cpx #8
	bne l2
	rts
;
adr702b	.word 0,0
adr702f	.word 0,0
adr7033	.word 0,0
adr7037	.word 0,0
crlf	lda #$d
	jsr $ffd2
	bit $fd
	bpl l4
	lda #$a
	jsr $ffd2
l4	rts
;
ff	lda #13
	jsr $ffd2
	jsr $ffd2
	jmp $ffd2
ram	lda #$34
	.byt $2c
rom	lda #$36
	sta port
	rts
;
test	lda #>tstr
	sta sz+1
	lda #<tstr
	sta sz
	lda #$37
	jmp strout
;
tstr	.byt 13
	.byte "19.21 )c( ,relsueh .n"
	.byt 13
	.byte "retsam.p rebiertrekcurd-ledan 42"
jump	bit flg
	bvc ret
	lda #>(ret-1)
	pha
	lda #<(ret-1)
	pha
	jmp ($12)
drehr	ldx #7
l8	ror
	ror adr702b,x
	dex
	bpl l8
ret	rts
drehl	ldx #7
l9	rol
	rol adr702b,x
	dex
	bpl l9
	rts
drehrr	ldx #3
l11	ror $4
	ror adr702f,x
	ror $4
	ror adr7037,x
	ror $5
	ror adr702b,x
	ror $5
	ror adr7033,x
	dex
	bpl l11
	rts
;
drehll	ldx #3
l10	rol $4
	rol adr702b,x
	rol $4
	rol adr7033,x
	rol $5
	rol adr702f,x
	rol $5
	rol adr7037,x
	dex
	bpl l10
	rts
;
lab7150	sei
	jsr ram
	ldy #3
lab7156	lda (tmp),y
	pha
	jsr drehr
	pla
	jsr drehr
	dey
	bpl lab7156
	jsr rom
	cli
	rts
;
lab7168	sei
	jsr ram
lab716c	lda (tmp),y
	sta $4
	tya
	pha
	clc
	adc #8
	tay
	lda (tmp),y
	sta $5
	pla
	tay
	bit $fe
	bpl lab7182
	bvs lab7188
lab7182	jsr drehrr
	jmp lab718b
;
lab7188	jsr drehll
lab718b	dey
	bpl lab716c
	jsr rom
	cli
	rts
;
adr71c4	.byt $8
adr71c5	.byt $0,$1,$7,$2,$6,$3,$5,$4
	.byt $4,$5,$3,$6,$2,$7,$1
coding	sei
	jsr ram
	ldy #7
l5	lda (mem),y
	bit $fe
	bpl lab71e2
	bvs l6
lab71e2	jsr drehr
	jmp l7
;
l6	jsr drehl
l7	dey
	bpl l5
	jsr rom
	cli
	rts
;
sign	jsr crlf
	lda #$8b
	sta tmp+1
	lda #0
	sta tmp
	lda #$5c
	sta $8
lab7202	jsr esc1
	lda #$38
	sta $9
lab7209	jsr lab7150
	jsr print8
	clc
	lda #8
	adc tmp
	sta tmp
	bcc lab721a
	inc tmp+1
lab721a	dec $9
	bne lab7209
	jsr crlf
	jsr jump
	bit flg
	bmi lab7250
	ror $8
	bcs lab723d
	rol $8
	sec
	lda tmp
	sbc #$b8
	sta tmp
	lda tmp+1
	sbc #1
	sta tmp+1
	ror $8
lab723d	rol $8
	sec
	lda tmp
	sbc #4
	sta tmp
	lda tmp+1
	sbc #0
	sta tmp+1
	dec $8
	bne lab7202
lab7250	rts
;
banner	ldx #3
lab7256	ror $7
	ror $6
	dex
	bne lab7256
	inc $6
	lda $6
	sta $7
	lda #$ae
	sta tmp+1
	lda #0
	sta tmp
lab726f	jsr lab7286
	bit flg
	bmi lab7285
	clc
	lda #8
	adc tmp
	sta tmp
	bcc lab7281
	inc tmp+1
lab7281	dec $7
	bne lab726f
lab7285	rts
;
lab7286	lda #7
	sta $4
lab728a	lda tmp+1
	pha
	lda tmp
	pha
	jsr lab72d8
	lda $fc
	beq lab72ba
	jsr esc1
	pla
	sta tmp
	pla
	sta tmp+1
	lda #7
	sta $6
lab72a4	jsr lab72f5
	sec
	lda tmp
	sbc #0
	sta tmp
	lda tmp+1
	sbc #5
	sta tmp+1
	dec $6
	bpl lab72a4
	bmi lab72bc
lab72ba	pla
	pla
lab72bc	jsr crlf
	jsr jump
	bit flg
	bmi lab72d7
	clc
	lda #0
	adc tmp
	sta tmp
	lda #$28
	adc tmp+1
	sta tmp+1
	dec $4
	bpl lab728a
lab72d7	rts
;
lab72d8	lda #0
	sta $fc
	lda #7
	sta $6
lab72e0	jsr lab7312
	sec
	lda tmp
	sbc #0
	sta tmp
	lda tmp+1
	sbc #5
	sta tmp+1
	dec $6
	bpl lab72e0
	rts
;
lab72f5	lda #7
	sta $5
lab72f9	ldy $5
	sei
	jsr ram
	lda (tmp),y
	pha
	jsr rom
	pla
	cli
	jsr lab7332
	jsr mprint
	dec $5
	bpl lab72f9
	rts
;
lab7312	lda #7
	sta $5
lab7316	ldy $5
	sei
	jsr ram
	lda (tmp),y
	pha
	jsr rom
	pla
	cli
	jsr lab7332
	lda $fc
	ora $8
	sta $fc
	dec $5
	bpl lab7316
	rts
;
lab7332	ldx $4
lab7334	ror
	dex
	bpl lab7334
	lda #$fe
	bcs lab733e
	lda #0
lab733e	sta $8
	rts
;
mprint	ldx #6
	lda $8
l12	jsr out24
	dex
	bpl l12
lab7368	rts
;
station	jsr crlf
	lda #$8b
	sta mem+1
	lda #0
	sta mem
	jsr lab7369
	bit flg
	bmi lab7368
	jsr rutsch
;
lab7369	lda #$2e
	bit $fe
	bmi lab7371
	lda #$a
lab7371	sta $8
lab7373	lda #$70
	bit $fe
	bpl lab737a
	lsr
lab737a	sta $9
	jsr lab738b
	jsr jump
	bit flg
	bmi lab738a
	dec $8
	bne lab7373
lab738a	rts
;
lab738b	bit $fe
	bpl lab739b
	jsr esc3
	jsr lab7479
	jsr lab7479
	jmp lab739e
;
lab739b	jsr esc2
lab739e	lda #3
	sta tmp+1
	lda #$80
	sta tmp
	bit $fe
	bpl lab73b2
	lda #1
	sta tmp+1
	lda #$c0
	sta tmp
lab73b2	lda mem
	clc
	adc tmp
	sta tmp
	lda mem+1
	adc tmp+1
	sta tmp+1
	jsr coding
	jsr print8
	clc
	lda #8
	adc mem
	sta mem
	bcc lab73d0
	inc mem+1
lab73d0	dec $9
	bne lab739e
	jmp crlf
;
rutsch	jsr crlf
	lda #$45
	sta $4
l1	lda #$a
	jsr $ffd2
	dec $4
	bne l1
lab7426	rts
;
card	bit $fe
	bvs lab741c
	lda #$8b
	sta mem+1
	lda #0
	sta mem
	jmp lab7369
;
lab741c	jsr lab7427
	bit flg
	bmi lab7426
	jmp crlf
;
lab7427	lda #$db
	sta mem+1
	lda #$78
	sta mem
	lda #$2e
	sta $8
lab7433	lda #$38
	sta $9
	jsr lab7446
	jsr jump
	bit flg
	bmi lab7445
	dec $8
	bne lab7433
lab7445	rts
;
lab7446	jsr esc4
lab7449	lda #1
	sta tmp+1
	lda #$c0
	sta tmp
	lda mem
	clc
	adc tmp
	sta tmp
	lda mem+1
	adc tmp+1
	sta tmp+1
	jsr coding
	jsr print8
	sec
	lda mem
	sbc #8
	sta mem
	lda mem+1
	sbc #0
	sta mem+1
	dec $9
	bne lab7449
	jmp crlf
;
lab7479	lda #0
	beq lab747f
	lda #$80
lab747f	sta tmp
lab7481	lda #0
	jsr out24
	dec tmp
	bne lab7481
	rts
;
graphic	lda #$d
	sta $8
lab748f	lda #$16
	sta $9
lab7493	jsr esc5
	lda #1
	sta tmp+1
	lda #$40
	sta tmp
	lda mem
	clc
	adc tmp
	sta tmp
	lda mem+1
	adc tmp+1
	sta tmp+1
	jsr coding
	jsr lab74d6
	jsr print8
	clc
	lda #8
	adc mem
	sta mem
	bcc lab74bf
	inc mem+1
lab74bf	dec $9
	bne lab7493
	jsr crlf
	clc
	lda #$90
	adc mem
	sta mem
	bcc lab74d1
	inc mem+1
lab74d1	dec $8
	bne lab748f
	rts
;
lab74d6	ldx #7
lab74d8	lda #$ff
	eor adr702b,x
	sta adr702b,x
	dex
	bpl lab74d8
	rts
byte	brk
by1	brk
by2	brk
by3	brk
sleep	brk
oft	brk
out24	pha
	pha
	lda oft
	cmp #3
	beq lll
	eor #3
	sta oft
lll	pla
	sty sleep
	ldy #7
l24	sta byte
	asl
	rol by1
	rol by2
	rol by3
	lda byte
	asl
	rol by1
	rol by2
	rol by3
	lda byte
	asl
	rol by1
	rol by2
	rol by3
	dey
	bpl l24
	ldy oft
nh	lda by3
	jsr $ffd2
	lda by2
	jsr $ffd2
	lda by1
	jsr $ffd2
	dey
	bne nh
	ldy sleep
	pla
	sta 53280
	rts
