; OVERF\RER GRAFIKK FRA SKJERM TIL PR: 

        ORG     65031      ; legger assemblerprogrammet i poke-arean

RAD     EQU     65024      ; her ligger radnr. i grafikk-minnet
FRA     EQU     65026      ; adressen til kopi av grafikkminnedel
TIL     EQU     65028      ; adressen til string som printer mottar
TELLE   EQU     65030      ; loop-teller fra 1-4

        LD      BC,256
        LD      HL,(RAD)
        CALL    32765      ; se ABC BLADET nr. 4-5,1981 side 29
                           ; takk til Per Ahlin : Vi trenger slike tips
        LD      IX,(FRA)
        LD      DE,(TIL)
        LD      B,1

START   LD      A,0
        LD      (TELLE),A
RUTINE  LD      C,128
        PUSH    IX
        LD      H,0        ; H er radteller 

TEST    BIT     7,(IX)     ; tester om pixel er satt i grafikkminnet
        JR      NZ,SATT    ; hvis pixel er satt hoppes til SATT
        BIT     6,(IX)     ; hver pixel best}r av to bit
        JR      NZ,SATT    ; s} neste bit m} ogs} testes

NULL    SRL     C          ; deler C med 4 (to right-shift)
RETUR   SRL     C
        INC     H
        SLA     (IX)       ; shifter IX slik at de to neste bit kan testes
        SLA     (IX)
        PUSH    BC
        LD      BC,64
        ADD     IX,BC      ; |ker IX med 64
        POP     BC
        LD      A,4
        CP      H          ; er vi ferdig med de fire radene?
        JR      NZ,TEST
        LD      A,(DE)
        CP      12
        JR      NZ,IKKE
        LD      A,8
        LD      (DE),A 
        INC     DE
        LD      (DE),A 
        DEC     DE
IKKE    POP     IX
        INC     DE         ; ferdig med en byte som printeren mottar
        INC     DE
        INC     B
        LD      A,241
        CP      B          ; ferdig med en print-rad
        JR      Z,SLUTT    ; hvis ferdig tilbake til BASIC og print rad
        LD      A,(TELLE)  ; p} printeren og hent ny rad fra grafikkminne
        ADD     A,1
        LD      (TELLE),A
        CP      4
        JR      NZ,RUTINE
        INC     IX         ; flytter peker til neste byte som skal testes
        JR      START

SATT    LD      A,(DE) 
        ADD     A,C        ; se EPSON-manual side 3-75, m i manual er DE
        SRL     C          ; 2 dot-wire for hver pixel
        ADD     A,C
        LD      (DE),A 
        INC     DE         ; 2 print-byte for hver pixel
        LD      (DE),A 
        DEC     DE
        JR      RETUR

SLUTT   RET                ; ny rad skal printes p} EPSON
