; PROGRAMMED BY   : MOHAMMAD ALJADA
; DOWNLOADED FROM : WWW.GEOCITIES.COM/MOHJADA
; PROGRAM         : Print Text On One Line

page 60,132
title a09ctrnm (exe) accept names,center on screen
;----------------------------------------------------
;PROGRAMM NO : A1
.model small
.stack 64
;----------------------------------------------------
.data
parlist         label   byte
maxnlen         db      20
actulen         db      ?
kbname          db      21 DUP(' ')
prompt          db      'name?','$'
;----------------------------------------------------
.code
.386

a10main         proc far
        mov ax,@data
        mov ds,ax
        mov es,ax
        call q10clr
a20loop:
        mov dx,0000
        call q20curs
        call b10prmpt
        call c10inpt
        call q10clr
        cmp actulen,00
        je a30
        call d10code
        call e10cent
        jmp a20loop
a30:
        mov ax,4ch
        int 21h
a10main endp


;display prompt
;--------------
b10prmpt        proc near
        mov ah,09h
        lea dx,prompt
        int 21h
        ret
b10prmpt endp

;accept input of name
;--------------------
c10inpt         proc near
        mov ah,0ah
        lea dx,parlist
        int 21h
        ret
c10inpt endp

;set bell and '$' delimiter
;--------------------------
d10code         proc near
        movzx bx,actulen
        mov kbname[bx],07
        mov kbname[bx+1],'$'
        ret
d10code endp

;center and display name
;-----------------------
e10cent         proc near
        mov dl,actulen
        shr dl,1
        neg dl
        add dl,40
        mov dh,12
        call q20curs
        mov ah,09h
        lea dx,kbname
        int 21h
        ret
e10cent endp

;clear screen
;------------
q10clr          proc near
        mov ax,0600h
        mov bh,30
        mov cx,0000
        mov dx,184fh
        int 10h
        ret
q10clr endp

;set cursor row-column
;---------------------
q20curs         proc near
        mov ah,02h
        mov bh,00
        int 10h
        ret
q20curs endp

end a10main

        

