Mathpack routines MCCM/WR/JvdM, 00-00-00 ;Deze routine is een voorbeeld van het gebruik van de DOS-funktie #0A, ;genaamd "BUFFERED INPUT" voor ingeven van een numerieke waarde. Daarna ;wordt het resultaat aangepast tot 1 lengtebyte gevolgd door de string en ;afgesloten met 1 eindnul. Dit is een z.g. ascii-Z string. De lengtebyte is ;nodig om de string te kontroleren, zie files "MATH_LEN.GEN" en "MATH_CHK.GEN" ;Elke anders geprogrammeerde routine kan gebruikt worden, mits de 1e byte de ;stringlengte is, gevolgd door de ascii-string + een nulbyte. ;---------------------- ;INPUTSTRING INTYPEN ;Input: HL Adrespointer ;---------------------- INPUT_$ PUSH HL ;Save adrespointer INC HL ;Adres +1 LD (HL),#1D ;Set max. lengte inputstring POP DE ;Herstel adrespointer naar buffer 32 bytes lang PUSH DE ;Save LD C,#0A ;Dosfunktie: bufferd input CALL #0005 ;(String intypen) POP HL ;Herstel adrespointer LD B,#00 LD C,(HL) ;BC = lengte ingetypte string INC HL ;Adres +1 = doeladres LD D,H LD E,L ;naar DE INC HL ;Adres +2 = beginadres string LDIR ;Plaats string achter lengtebyte XOR A ;'A' = #00 LD (DE),A ;Plaats eindnul (maak er een ascii-Z string van) RET ;--------------------------------------------------------------- |