Tvůrce webu je i pro tebe! Postav třeba web. Bez grafika. Bez kodéra. Hned.
wz

Obsah / Utility / TEXT / TextAddShortTime

Zdrojový kód: INCLUDE\UTIL\TEXT.INC, UTIL\TEXT.ASM


TextAddShortTime - Přidání času v krátkém tvaru na konec textu

Funkce TextAddShortTime přidá formátovaný čas v krátkém tvaru na konec textu (tj. např. "12:35"). Čas je zadán jako absolutní čas v registrovém páru EDX:EAX (tj. počet stovek nanosekund od 1.1. roku 1).


; -----------------------------------------------------------------------------
;                     Add short time format to end of text
; -----------------------------------------------------------------------------
; INPUT:	EDX:EAX = absolute time (100-nanosec from 1/1/1 BCE 0:00)
;		EBX = pointer to destination TEXT variable
;		ECX = pointer to nationality descriptor NATIONAL (NULL=default)
; OUTPUT:	CY = memory error (text not changed)
; -----------------------------------------------------------------------------

Na vstupu funkce obsahuje registrový pár EDX:EAX absolutní čas, tj, počet stovek nanosekund od 1.1. roku 1. Registr EBX obsahuje ukazatel na cílovou textovou proměnnou, do které se zformátovaný text uloží. Registr ECX obsahuje ukazatel na popisovač národnostních informací NATIONAL. Je-li ukazatel nulový (tj. obsahuje NULL), použije se implicitní popisovač národnostních informací. V případě chyby paměti je navrácen chybový příznak CY a obsah cílové textové proměnné se nezmění.


; ------------- Push registers

TextAddShrtTime:push	ecx		; push ECX
		push	esi		; push ESI

; ------------- Det default nationality (-> ECX)

		or	ecx,ecx		; default nationality?
		jnz	TextAddShrtTim2	; nationality is valid
		DEFAULT_NAT ecx		; ECX <- get default nationality

Po úschově registrů se do registru ECX připraví implicitní popisovač národnostních informací pomocí funkce DEFAULT_NAT v případě, že ukazatel byl při vstupu do funkce nulový.


; ------------- Format text

TextAddShrtTim2:lea	esi,[ecx+NAT_ShortTime] ; ESI <- short time string
		call	TextAddAbsTime	; format text

; ------------- Pop registers

		pop	esi		; pop ESI
		pop	ecx		; pop ECX
		ret

Text je zformátován pomocí funkce TextAddAbsTime, jako formátovací řetězec je do registru ESI připraven ukazatel na formátovací řetězec času v krátkém tvaru (tj. "H:mm").


Obsah / Utility / TEXT / TextAddShortTime