--------------------------- SETTIME.DOC (cut here) ---------------------------- SETTIME.COM is a program to set the BIOS timer to the correct time of day. It is useful mostly for programs like REMIND.COM, which require the BIOS timer to accurately reflect the time, even though DOS may be getting the time directly from a clock card, via the clock.sys device driver. The syntax is: SETTIME. SETTIME gets the time from DOS, and writes it to the BIOS timer. Written by Robert Lenoil; August 1985. ----------------------- end of SETTIME.DOC (cut here) ------------------------- --------------------------- SETTIME.ASM (cut here) ---------------------------- ;Program to set BIOS timer to correct time of day. If using the Microsoft ;system card with the clock.sys device driver, this is not done automatically, ;as DOS gets and sets the time directly from/to the card. REMIND.COM needs ;the BIOS timer to be accurate. ;Robert Lenoil - August, 1985 ;Placed in the public domain, June 1986. ;Author's electronic mail address: ;USENET: lenoil@mit-eddie.uucp ARPA: lenoil@eddie.mit.edu BIOSDAT SEGMENT AT 40H ORG 6CH TIMER_LOW DW ? ;low word of timer count TIMER_HIGH DW ? ;high word of timer count TIMER_OFL DB ? ;timer has rolled over since last read BIOSDAT ENDS ASSUME ES:BIOSDAT RESDNT SEGMENT ;handle timer interrupt ASSUME CS:RESDNT,DS:RESDNT ORG 100h ENTRY: MOV AX,BIOSDAT ;get segment of timer in ES MOV ES,AX MOV AH,2CH ;get time from clock card (via DOS) INT 21H MOV AL,CH ;convert hours to timer ticks SUB AH,AH MOV DX,65520 MUL DX MOV TIMER_HIGH,DX MOV TIMER_LOW,AX MOV AL,CL ;convert minutes to timer ticks SUB AH,AH MOV DX,1092 MUL DX ADD TIMER_LOW,AX ;and add to hours ADC TIMER_HIGH,DX MOV AH,9 ;print msg so user knows something happened MOV DX,OFFSET MSG INT 21H MOV AX,4C00H MOV TIMER_OFL,AL ;null timer_ofl INT 21H ;exit MSG DB "BIOS timer set.",13,10,"$" RESDNT ENDS END ENTRY ----------------------- end of SETTIME.ASM (cut here) -------------------------