;  TSAVE SUPERBS.TXT
;
;86-11-30
;
;L[NKAR IN RUTIN S] ATT BAK]TPIL I SUPER-SMARTAID OCH SMARTAID-MAGNUM
;FUNGERAR SOM BAK]TPIL I EDITORN TED. OM MAN ST]R I B\RJAN P] EN
;RAD S] G]R MAN ETT STEG UPP]T.
;
;
;
TLIST   EQU 20740       ;ROT TILL TANGETLISTA I CMOS
;
;
        ORG 21466       ;LEDIGT MINNE I SMARTAIDS CMOS
;
;
INIT:   LD HL,(TLIST)   ;ROT TANGENTLISTA
        PUSH HL
        LD DE,NYLIST    ;TANGENTLISTA SOM SKA L[NKAS IN
        AND A           ;CLEAR CARRY
        SBC HL,DE       ;KOLLA OM NY TANGENTLISTA REDAN INL[NKAD
        POP HL
        RET Z           ;OK OM (TLIST)=NYLIST, REDAN INL[NKAD
        LD (LINK),HL    ;S[TT L[MK TILL GAMLA TANGENTLISTAN
        LD (TLIST),DE   ;S[TT ROTEN TILL NYA TANGENTLISTAN
        RET
;
;
;HANTERA BAK]TPIL
;----------------
;B=ANTAL TECKEN TILL BUFFERTSLUT
;C=MAX ANTAL TECKEN I BUFFERT
;HL=PEKAR I BUFFERTEN
;RUTINEN F]R INTE S[TTA CARRYFLAGGAN
;
BAKSTP LD A,B
       XOR C            ;[R B=C, D] [R MAN I B\RJAN P] EN RAD
       JR Z,UPP         ;HOPPA OM I B\RJAN P] EN RAD
       CALL V[NST       ;FLYTTA MARK\REN ]T V[NSTER
       DEC HL           ;FLYTTA PEKAREN I BUFFERTEN
       INC B            ;\KA ANTAL TECKEN TILL BUFFERTSLUT
       RET
;
V[NST  DEC (IX+1)       ;MINSKA KOLUMNPOSITION
       RET P            ;OK, OM POSITIONEN EJ BLEV NEGATIV
       LD A,(874)       ;A=39 ELLER 79
       LD (IX+1),A      ;S[TT KOLUMNPOSITION L[NGST TILL H\GER
;
UPP    DEC (IX+0)       ;MINSKA RADPOSITION (FLYTTA UP MARK\REN)
       RET P            ;OK, OM EJ NEGATIV
       INC (IX+0)       ;OVANF\R \VERSTA RADEN, \KA POSITION TILL 0 IGEN
       RET
;
;
;
NYLIST: DEFB 8          ;ASCII BACKSPACE (BAK]TPIL)
        DEFW BAKSTP     ;RUTIN ATT K\RA VID BAK]TPIL
        DEFB 255        ;SLUT P] LISTA
LINK:   ;DEFW 0         ;L[NK TILL FORTS P] TANGETLISTA
;
;
        END
