hello,
i wrote a function to input a number with max. 2 chars like 99 but with one char, too... I didn't translate the comments in english yet, but I'll say you, what it does:
It write "Number:" on the screen and then you may input your number...
If you press ENTER the input ends... then it gives the number in decimal in CX... On this way you may examply get the number of sectors to read in an OS or so on... Here it is:
;*********************************
;get_number
;input: ---
;output: cx enthällt die zahl
;Diese Funktion ließt eine Zahl in CX von der Tastatur
;*********************************
get_number:
push bx
push axx
push dx
mov al,0x4E
mov bl,0x07
mov ah,0x0E
int 10h
mov al,0x75
mov bl,0x07
mov ah,0x0E
int 10h
mov al,0x6D
mov bl,0x07
mov ah,0x0E
int 10h
mov al,0x62
mov bl,0x07
mov ah,0x0E
int 10h
mov al,0x65
mov bl,0x07
mov ah,0x0E
int 10h
mov al,0x72
mov bl,0x07
mov ah,0x0E
int 10h
mov al,0x3A
mov bl,0x07
mov ah,0x0E
int 10h
xor cx,cx
;einerstelle abfragen
mov ax,0x0000
int 0x16
cmp ah,0x1C
jz end_get_number
dec ah
call change_to_0
add cl,ah
mov bl,0x07
mov ah,0x0E
int 10h
;zehnerstelle machen
mov ax,0x0000
int 0x16
cmp ah,0x1C
jz end_get_number
dec ah
call change_to_0
mov bl,0x0A
mov dx,ax
mov ax,cx
mul bl
mov cx,ax
mov ax,dx
add cl,ah
mov bl,0x07
mov ah,0x0E
int 10h
end_get_number:
mov si,break
call putstr
pop dx
pop ax
pop bx
ret
change_to_0:
cmp ah,0x0A
jz change
change_back:
ret
change:
mov ah,0x00
jmp change_back
much luck and fun with it...
JOACHIM NEU