;:poke56,112:clr ;:poke672,112:poke671,. ;:sys36864 *= $7000 ;.opt oo d = 64738 dl =$d020 irqvec =$314 irqold =$ea31 dahi =$ee97 daca =$eea9 clhi =$ee85 cllo =$ee8e port =$dd00 byte =$95 dalo =$eea0 nbit =$a3 time =$dc07 sett =$dc0f timg =$dc0d left =$94 chrvec =$326 chrold =$f1ca outdev =$9a puffer =$c000 read =247 write =249 endpuf =$d000 listen =$ed11 seclist =$edb9 unlist =$edfe nbyt =$a5 jmp anfang printer .byt 4 char brk s .byt 1 anfang sei lda #irqneu sta irqvec sty irqvec+1 lda #bsneu sta chrvec sty chrvec+1 lda #puffer sta read sty read+1 sta write sty write+1 cli rts irqneu jsr irqout jmp irqold pout pha lda #$24 jsr listen lda #$60 sta $b9 jsr seclist pla jsr outbyt jmp unlist outbyt bit left bmi ja sec ror left bne nein ja pha jsr druck pla nein sta byte clc rts druck jmp d jsr dahi jsr daca jsr clhi bit nbit bpl l1 lda #5 sta dl inc dl l2 jsr daca bcc l2 lda #1 sta dl l3 jsr daca bcs l3 lda #2 sta dl l1 jsr daca bcc l1 lda #0 sta dl jsr cllo lda #8 sta nbyt lda #1 sta dl+1 jmp 64738 l4 lda port cmp port bne l4 asl sec ror byte bcs l5 jsr dalo bne l6 l5 jsr dahi l6 jsr clhi nop nop nop nop lda port and #$df ora #$10 sta port dec nbyt bne l4 lda #0 sta dl+1 lda #4 sta time lda #$19 sta sett lda timg l7 lda timg jsr daca bcs l7 rts bsneu pha lda outdev cmp printer beq neu pla jmp chrold neu pla sta char pha txa pha tya pha wait lda write clc adc #1 php cmp read bne platz lda write+1 plp adc #0 cmp #>endpuf bcc pl3 lda #>puffer pl3 cmp read+1 beq wait php platz plp ldy #0 lda char sta (write),y inc write bne pl2 inc write+1 lda write+1 cmp #>endpuf bcc pl2 lda #>puffer sta write+1 pl2 pla tay pla tax pla clc rts irqout lda read cmp write bne busy lda read+1 cmp write+1 bne busy rts busy ldy #0 lda (read),y inc read bne bu1 inc read+1 ldy read+1 cpy #>endpuf bcc bu1 ldy #>puffer sta read+1 bu1 sta $400 jsr pout rts