;:poke56,128:clr
;:sys36864
;.opt oo
*=$8000
crlf =$aad7
setnam =$ffbd
clrchn =$ffcc
stop =$ffe1
clall =$ffe7
strout =$ab1e
right = $ab42
integer =$bc49
axout =$bdcd
intout =$bdd1
facasc =$bddf
bsout =$e10c
basin =$e112
chkin =$e11e
get =$e124
open =$e1c1
close =$e1cc
aut =$e385
setcol =$e4dd
cursor =$e50c
clrx =$e9ff
stoptest =$f6bc
setpar =$fe00
number =$100
text =$200
curscol =$286
repeat =$28a
platz =$2
count =$7
adr =$14
fac =$62
st =$90
rvs =$c7
bild =$d1
farb =$f3
spalte =$d3
quote =$d4
zeile =$d6
char =$d7
bildmsb =$d9
free =$fb
namlgt =$b7
chkout =$ffc9
space =$ab3f
start jsr clall
lda #15
sta $d020
sta $d021
lda #
title
jsr strout
action lda #ntxt
jsr strout
ldy #$ff
sty repeat
enter jsr basin
iny
cmp #13
beq endin
sta text,y
bne enter
endin jsr crlf
jsr crlf
ldx #0
stx adr
stx adr+1
tya
bne eing
jmp aut
eing ldy #2
jsr setnam
lda #1
ldy text
cpy #"$"
beq nil
ldy #2
.byt $2c
nil ldy #0
ldx #8
jsr setpar
jsr open
jsr in1
lda text
cmp #"$"
bne nodir
catalog ldx #$06
skip sta fac+1
jsr basin
sta fac
ldy st
bne abbr
dex
bne skip
jsr intout
lda #$20
ldy #$1a
dirloop jsr ascout
jsr basin
dey
bne dirloop
tay
jsr crlf
ldx #4
tya
beq skip
jsr stop
bne catalog
abbr jsr clrchn
lda #1
jsr close
jmp action
nopri lda #bri
jsr strout
nodir jsr clrchn
lda #anf
jsr strout
getprt jsr get
cmp #"\x03"
beq abbr
cmp #"n"
beq drucke
cmp #"j"
bne getprt
jsr popen
php
jsr pri0
plp
bcs nopri
lda #128
.byt $2c
drucke lda #0
sta flagprt
lda #anf2
jsr strout
getsta jsr get
cmp #"\x03"
beq abbr
cmp #"j"
beq starta
cmp #"n"
bne getsta
lda #0
starta pha
jsr in1
pla
beq ort
jsr basin
sta adr
jsr basin
sta adr+1
ort jsr crlf
main lda spalte
beq erst
cmp #40
bne ort
erst jsr newline
jsr stop
beq menue
jmp weiter
menue lda #unter
jsr strout
nocont ldx #12
modelp ldy bscpos,x
lda flagasc,x
rol
php
lda (bild),y
rol
plp
ror
sta (bild),y
dex
bpl modelp
waitunt jsr get
ldx #12
suchunt cmp keys,x
beq legal
dex
bpl suchunt
bmi waitunt
legal txa
cmp #4
beq ende
tax
lda flagasc,x
eor #$80
sta flagasc,x
lda #0
sta flagbsc+1
cpx #2
bne nocont
jsr allow
bpl nocont
bmi noend
ende jsr allow
bpl nocont
lda #1
jsr close
jmp start
allow lda flagasc
ora flagbsc
ora flagbin
ora flaghex
rts
noend jsr in1
jsr newline
weiter lda #0
sta free
lda flagadr2
bpl noadr2
lda adr+1
jsr hexout
lda adr
jsr hexout
jsr right
noadr2 lda flagadr1
bpl noadr1
ldx adr
lda adr+1
sta fac
stx fac+1
ldx #$90
sec
jsr integer
jsr facasc
ldx #0
such0 inx
lda number,x
bne such0
txa
pha
lda #0
jsr strout
pla
tax
rechts jsr right
inx
cpx #6
bcc rechts
lda platz
sbc #6
sta platz
noadr1 lda flagjot
bpl nojot
lda spalte
beq links
lda #20
jsr bsout
links lda #":"
jsr bsout
jsr right
nojot lda #41
sec
sbc spalte
sta platz
pll1 ldx #8
pll3 lda flagasc,x
bpl aus
cmp #$81
bcc aus
ldy free
beq pll4
ldy flaggap
bpl nogap
cmp #$c1
bcc nogap
pll4 dec platz
nogap and #$3f
eor #$ff
sec
adc platz
sta platz
aus dex
bpl pll3
lda platz
bmi pll2
inc free
bne pll1
pll2 ldy free
lesen jsr basin
sta text-1,y
inc adr
bne noinc
inc adr+1
noinc dey
bne lesen
lda flaghex
bpl nohex
jsr next
beq nohex
hexout pha
lsr
lsr
lsr
lsr
jsr hex1
pla
hex1 and #$f
cmp #10
bcc letter
adc #6
adc flaggro
letter adc #"0"
jsr bsout
sec
rts
;
nohex lda flagbin
bpl nobin
jsr next
beq nobin
binout ldy #8
binloop asl
pha
lda #"."
bcc zero
lda #"*"
zero jsr bsout
pla
dey
bne binloop
sec
rts
;
nobin lda flagasc
bpl noasc
jsr next
beq noasc
ascout pha
sta char
lda rvs
pha
lda char
cmp #32
bcc kl32
cmp #128
bcc kl128
cmp #160
bcs kl128
kl32 lda rvs
eor #18
sta rvs
lda char
adc #64
kl128 jsr bsout
lda #0
sta quote
pla
sta rvs
pla
rts
;
noasc lda flagbsc
bpl nobsc
jsr next
beq nobsc
bscout ldy spalte
sta (bild),y
lda curscol
sta (farb),y
jmp right
;
nobsc lda #20
jsr bsout
lda st
pha
jsr nadel
pla
bne stoer
jmp main
;
stoer jsr zu1
lda #callret
jsr strout
wk jsr get
cmp #13
bne wk
jmp start
nadel lda flagprt
bmi raus
rts
raus jsr popen
ldx #7
rand jsr space
dex
bne rand
ldy #0
hcopy lda (bild),y
and #127
cmp #32
bcs gro32
kle96 ora #64
bne convd
gro32 cmp #64
bcc convd
cmp #96
bcs kle96
ora #128
convd jsr bsout
iny
cpy #40
bcc hcopy
jsr crlf
jsr pri0
jmp in1
popen jsr clrchn
lda #4
tax
ldy #7
jsr setpar
lda #0
sta namlgt
jsr open
ldx #4
jmp chkout
newline ldx zeile
lda bildmsb,x
ora #$80
sta bildmsb,x
jsr clrx
iny
jmp cursor
;
next ldx free
stx count
gap0 pla
tax
pla
tay
pha
txa
pha
jsr byte
lda flagcol
beq nochg
lda curscol
eor #7
sta curscol
nochg dec count
beq neues
bcc gap0
lda flaggap
bpl gap0
neues lda #11
sta curscol
jsr right
lda count
bne gap0
rts
;
byte tya
pha
txa
pha
ldx count
php
lda text-1,x
plp
rts
in1 ldx #1
jmp chkin
zu1 jsr clrchn
lda #1
bne qclose
pri0 jsr clrchn
lda #4
qclose jmp close
keys .byte "abcdesghojrpx"
ntxt .byt 13
.byte "Dateiname: $\x9d"
brk
unter .byte "\x98Asc Bsc Cnt Dual End pOS GaP HeX pRt J:\x97"
brk
bscpos .byt 0,4,10,12,20,23,25,29,22,37,34,27,31
flagasc .byt $81
flagbsc .byt $1,0
flagbin .byt $48,0
flagadr1 brk
flaggap .byt $80
flaghex .byt $c2
flagadr2 .byt $80
flagjot .byt $80
flagprt brk
flagcol .byt $80
flaggro brk
title .byt 13
.byte "\x97\x0e\x93\x12 FLEXibler FileLISTer rev1\xba nh 3.92\xa0\xa0"
.byt 13
.byte "\x11 von N. Heusler nach V. Hilbig\x11"
.byt 13,0
anf .byte "Drucker? (J/N)"
.byt 13,0
anf2 .byte "\x11Startadresse? (J/N)"
.byt 13,0
bri .byte "\x11Nicht bereit!\x11"
.byt 13,0
callret .byt 13
.byte "\x98(return)"
brk