4 title CP
/DOS DosSetDateTime mapper
6 dosxxx
segment byte public 'dos'
7 assume
cs:dosxxx
,ds:nothing
,es:nothing
,ss:nothing
9 ;**********************************************************************
11 ;* MODULE: dossetdatetime
13 ;* FILE NAME: dos050.asm
17 ;* push@ struc date/time
18 ;* call dossetdatetime
20 ;* MODULES CALLED: PC-DOS Int 21h, ah=2bh, set date
23 ;*********************************************************************
29 error_ts_datetime equ
0002h
34 Data dd ?
; TOD data pointer
37 dossetdatetime proc
far
38 Enter dossetdatetime
; push registers
40 lds si,[bp].data ; set TOD data pointer and load
42 mov ch,byte ptr [si] ; load hour
43 mov cl,byte ptr [si]+1 ; minutes
44 mov dh,byte ptr [si]+2 ; seconds
45 mov dl,byte ptr [si]+3 ; hundredths
47 mov ah,2
dh ; set time opcode
48 int 21h
; set new time
49 push ax ; check for error later
51 mov dl,byte ptr [si]+4 ; load day
52 mov dh,byte ptr [si]+5 ; month
53 mov cx,word ptr [si]+6 ; year
55 mov ah,2
bh ; new date opcode
56 int 21h
; set new date
60 cmp bl,cl ; return code from time set
62 cmp al,0 ; return code from date set
65 error: mov ax,error_ts_datetime
; set error code
68 exit: sub ax,ax ; set good return code
69 exit1: Mexit
; pop registers
70 ret size
str - 6 ; return