TITLE Display My Name, ID, Date and Time     (PROj.asm)
Include Irvine16.inc
Write PROTO char:BYTE
.data
  str1 BYTE "HELLO",0
  str2 BYTE "CUSTOMER, 123",0
  str3 BYTE " ",0
.code
main PROC
  pushad
  mov ax,@data
  mov ds,ax
  mov ax,0600h	
  mov bh,red+(white*16)
  mov cx,0000h
  mov dx,184Fh
  int 10h
  mov dl, 34
  mov dh, 5
  call GoToXY
  mov dx, OFFSET str1
  call WriteString
  mov bh,white+(blue*16)
  mov cx,0A00h	
  mov dx,0C20h	
  int 10h
  mov bh,white+(blue*16)
  mov cx,0A30h	
  mov dx,0C4Fh	
  int 10h
  mov dl, 50
  mov dh, 11
  call GoToXY
  mov dx, OFFSET str2
  call WriteString
  mov dl,1
  mov dh,11
  call gotoxy
  mov dx,OFFSET str3
  call WriteString
  mov ah,2Ah	
  int 21h
  movzx eax,dh	
  call WriteDec
  INVOKE Write,'-'
  movzx eax,dl	
  call WriteDec
  INVOKE Write,'-'
  movzx eax,cx	
  call WriteDec
  mov dx,OFFSET str3
  call WriteString
  mov ah,2Ch	
  int 21h
  movzx eax,ch	
  call WritePaddedDec
  INVOKE Write,':'
  movzx eax,cl	
  call WritePaddedDec
  INVOKE Write,':'
  movzx eax,dh	
  call WritePaddedDec
  INVOKE Write,'.'
  movzx eax,dl	
  call WritePaddedDec
  call Crlf
  popad
exit
main ENDP

Write PROC char:BYTE
  push eax
  push edx
  mov ah,2
  mov dl,char
  int 21h
  pop edx
  pop eax
  ret
Write ENDP

WritePaddedDec PROC
  .IF eax < 10
    push eax
    push edx
    mov ah,2
    mov dl,'0'
    int 21h
    pop edx
    pop eax
  .ENDIF
  call WriteDec
  ret
WritePaddedDec ENDP
  exit
END main