;:poke56,8000/256:clr ;:sys36864 ;.opt oo *=8000 tmp =2 setlfs =$ffba setnam =$ffbd open =$e1c1 close =$e1cc chkin =$e11e chkout =$e118 clrchn =$ffcc chrout =$ffd2 load =$ffd5 get =$ffe4 clrscn =$e544 crscol =646 text =$41 alpctr =$92 bild =$9b quality =$a7 style =$a8 fontlen =$b5 fget =$e124 jsr $ffe7 jsr colors lda #titel jsr $ab1e jsr lab0a9b jsr lab08c9 jmp colors bufhome lda #buf sta tmp sty tmp+1 rts hol ldy #0 lda (tmp),y pha inc tmp bne noinc inc tmp+1 noinc pla rts ; colors lda #15 sta $d020 sta $d021 lda #11 sta crscol jmp clrscn ; lab08c9 jsr testlen sta fontlen lab08cf jsr lab0916 lab08d2 jsr get beq lab08d2 cmp #13 beq qde1 cmp #20 beq delete cmp #"_" beq ei2 jsr lab08f4 jmp lab08cf ; delete jsr ei3 jmp lab08cf ; qde1 jmp de1 ; lab08f4 ldx fontlen cpx #16 bcs ei2 sta font+1,x lda #"<" sta font+2,x inc fontlen ei2 rts ; ei3 ldx fontlen beq ei1 lda #32 sta font+1,x lda #"<" sta font,x dec fontlen ei1 rts ; lab0916 ldx #font stx text+1 ldx #$a8 stx bild ldx #6 stx bild+1 jmp strout ; testlen ldx #0 ei5 lda font+1,x cmp #"<" beq ei4 inx bne ei5 ei4 txa st2 rts ; strout ldy #0 st1 lda (text),y beq st2 and #$bf sta (bild),y iny bne st1 ; initdisk ldx #run1 stx text sty text+1 ldx #<1824 ldy #>1824 stx bild sty bild+1 jsr strout jsr testlen ldx #<(font+1) ldy #>(font+1) jsr setnam lda #3 ldx #8 ldy #0 jsr setlfs jsr open ldx #3 jsr chkin jsr bufhome jsr fget ldx 144 beq rein ldx #4 jmp $a437 fillin lda 144 bne filled jsr fget rein ldy #0 sta (tmp),y inc tmp bne fillin inc tmp+1 bne fillin filled jsr clrchn lda #3 jmp close de1 jsr initdisk jsr bufhome jsr initptr de2 jsr hol beq fertig pha jsr esc lda #"&" jsr print jsr nil pla jsr defchr jmp de2 ; fertig jsr alfabet jsr clrchn lda #4 jmp close ; mal3 sta text asl clc adc text sta text inc text rts ; defchr jsr print jsr print jsr hol jsr print jsr hol jsr print jsr mal3 loop jsr hol jsr print dec text bne loop rts ; initptr ldx #run2 stx text sty text+1 ldx #<1904 ldy #>1904 stx bild sty bild+1 jsr strout lda #0 jsr setnam lda #4 ldx #4 ldy #1 jsr setlfs jsr open ldx #4 jsr chkout jsr esc lda #120 ; kleines x jsr print lda quality jsr print jsr esc lda #"!" jsr print lda style jsr print jsr esc lda #":" jsr print jsr nil jsr print jsr print jsr esc lda #"%" jsr print lda #1 .byt $2c esc lda #27 .byt $2c nil lda #0 print jmp chrout ; alfabet lda #$1f sta alpctr lda #13 a1 jsr print inc alpctr lda alpctr cmp #$80 bne a1 lda #13 jmp print ; lab0a9b ldx #lqanf stx text sty text+1 jsr lab0b42 jsr strout jsr loedef lab0aaf jsr get beq lab0aaf cmp #"j" beq qu1 cmp #"n" bne lab0aaf jsr strout lda #0 beq qu0 ; qu1 ldx #$4b stx bild jsr strout lda #1 qu0 sta quality ldx #proanf stx text sty text+1 ldx #$b8 stx bild jsr strout jsr loedef lab0ae3 jsr get beq lab0ae3 cmp #"j" beq lab0afd cmp #"n" beq lab0af3 jmp lab0a9b ; lab0af3 jsr strout lda #0 sta style beq lab0b08 ; lab0afd ldx #$c5 stx bild jsr strout lda #2 sta style lab0b08 ldx #kuanf stx text sty text+1 ldx #$30 ldy #6 stx bild sty bild+1 jsr strout jsr loedef lab0b1e jsr get beq lab0b1e cmp #"j" beq lab0b34 cmp #"n" beq lab0b2e jmp lab0a9b ; lab0b2e jsr strout jmp lab0b41 ; lab0b34 ldx #$37 stx bild jsr strout lda style ora #$40 sta style lab0b41 rts ; lab0b42 ldx #$40 ldy #5 stx bild sty bild+1 rts ; loedef ldx #loeanf stx text sty text+1 rts ; font .byte ">< " brk titel .byte "\x93\x97zeichensatzlader dl 900/wiesemann" .byt 13 .byte "verbessert von n. heusler, 4.92" .byt 13 .byte "drucker auf \x12epson-emul.\x92 schalten!" .byt 13 .byte "\x12puffer\x92 im drucker ausreichend waehlen!" .byt 13 .byte "(maximal 8 kilobyte im hardware-menue)" .byt 13,0 loeanf .byte " " brk .byt $20,$20,$20,$20,$00 lqanf .byte "lq-schrift (j/n)" brk proanf .byte "proportional (j/n)" brk kuanf .byte "kursiv (j/n)" brk run1 .byte "datei wird geladen" brk run2 .byte "zeichensatz wird zum drucker gesendet" brk buf =*