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