1 REM Ins{nd av Kristoffer Eriksson <5357>    1986-07-09 20.57.34
; Fil: DEMON40.ASM
; Av:  Kristoffer Eriksson, "SKE" <5357>, 1986.
;
;-Ver--/-Datum----/-Sign-/-Kommentar----------------------------------
; 1.00 / 86-07-08 / SKE  /
;
; Rutinen, som l{gger sig permanent i minnet, st{ller med j{mna mellanrum
; om ABC806:ans bildsk{rm till dubbel teckenbredd.

Spt.Tic:    =     65525               ; R{knar 93-dels sekunder.
Con.Wid:    =     65364               ; Aktuell tkn/rad p} bildsk{rmen.
Screenstart:=     30720               ; Bildminnet.
AttrP:      =     53                  ; IO-port f|r attributminnet.
ELattr:     =     255                 ; Attribut f|r dubbel bredd.

Clockint:   PUSH  AF
            LD    A,(Spt.Tic)         ; Kolla att det {r dags igen.
            AND   15
            JR    NZ Clockret
            LD    A,(Con.Wid)         ; Kolla att det ska vara breda tecken.
            CP    41
            JR    NC Clockret
            PUSH  HL
            PUSH  BC
            PUSH  DE
            IN    A,(AttrP)
            PUSH  AF
            LD    HL,Screenstart+ (25 * 80) - 2 ; N{st sista position p} sk{rm
            LD    D,ELattr
            LD    C,25
Radloop:    LD    B,40
Tknloop:    LD    E,(HL)
            IN    A,(AttrP)
            CP    D                   ; Om attributet {r EL, beh|ver
            JR    Z Loopcont          ; vi inget g|ra.
            INC   HL
            LD    (HL),E              ; Kopiera tecknet och attributet till
            DEC   HL                  ; positionen bredvid.
            LD    A,D
            OUT   (AttrP),A           ; S{tt dubbelbreddsattribut p} f|rsta.
            LD    (HL),E
Loopcont:   DEC   HL
            DEC   HL
            DJNZ  Tknloop
            DEC   C
            JR    NZ Radloop
            POP   AF
            OUT   (AttrP),A
            POP   DE
            POP   BC
            POP   HL
Clockret:   POP   AF
$$Clockvek: JP    0                   ; Hopp till den gamla rutinen l{ggs in.


;_ Initiering                    _
Clockvek:   =     65494
Conwrite:   =     11
HLbuf1:     =     81
Y.Botm:     =     65292
Y.Comtop:   =     65328

Init:       LD    HL,(Clockvek)       ; L{nka in det nya clockavbrottet.
            LD    ($$Clockvek+1),HL
            LD    HL,Clockint
            LD    (Clockvek),HL

            LD    HL,Init             ; Skydda programmet fr}n |verskrivning.
            LD    (Y.Botm),HL
            LD    (Y.Comtop),HL
            LD    HL,Itext
            LD    BC,Itextend-Itext
            JP    Conwrite

Itext:      DEFM  "DEMON40 Ver 1.00 har laddats! Av Kristoffer Eriksson 1986."
Itextend:
