MILC logo

IndexVorigeVolgendeLeeg

Mathpack routines
MCCM/WR/JvdM, 00-00-00


    
;Als er 1 of meer eindspaties waren getypt, mag dit een programma niet
;verstoren. De volgende routine maakt een programma dus beter "gek bestendig"
;(DOS-routines verwijderen om dezelfde reden overtollige spaties)
;------------------------------------
;EINDSPATIES INPUT-STRING VERWIJDEREN
;Input: HL = Pointer naar input-$ (lengte byte)
;(Preserves HL)
;------------------------------------
LENGTE  PUSH HL         ;Save pointer $-lengte
        LD   B,#00
        LD   C,(HL)     ;BC = Lengte ingetypte string
        ADD  HL,BC      ;Bereken eindadres string
        LD   A,#20      ;Ascii voor spatie
LENG_1  CP   (HL)       ;Is laatste karakter een spatie ?
        JR   NZ,LENG_2  ;Nee
        INC  B          ;Ja, tel eindspaties
        DEC  HL         ;Pointer -1
        JR   LENG_1     ;Check next karakter
LENG_2  EX   (SP),HL    ;HL <-- pointer $-lengte, pointer einde-$  ---> stack
        LD   A,B        ;Aantal gevonden eindspaties
        OR   A          ;Spaties gevonden ?
        JR   Z,LENG_3   ;Nee
        NEG             ;Verander positief in negatief
LENG_3  LD   C,(HL)     ;Lengte ingetypte string
        ADD  A,C        ;Korrigeer lengte als er eindspaties waren
        LD   (HL),A     ;Al of niet aangepaste lengte weer opslaan
        EX   (SP),HL    ;HL <-- pointer eind-$, pointer $-lengte --> stack
        INC  HL         ;Einde string +1
        LD   (HL),#00   ;Plaats eindnul (Ascii-Z string)
        POP  HL         ;Herstel pointer $-lengte
        RET
;---------------------------------------------------------------

    

Index

Vorige

Volgende