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 ;--------------------------------------------------------------- |