Note: This IBM PC BIOS API call is for DOS/Win16 personality only. Use Family API for portability.

Note: osFree Macro Library provides macros for most of functions

2022/03/13 07:41 · prokushev

Int 1AH, AH=00H


IBM 5150 and higher



Family API


  • AH = 00h


  • CX:DX = number of clock ticks since midnight
  • AL = midnight flag, nonzero if midnight passed since time last read




  • there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs (except on Tandy 2000, where the clock runs at 20 ticks per second)
  • IBM and many clone BIOSes set the flag for AL rather than incrementing it, leading to loss of a day if two consecutive midnights pass without a request for the time (e.g. if the system is on but idle)
  • since the midnight flag is cleared, if an application calls this function after midnight before DOS does, DOS will not receive the midnight flag and will fail to advance the date
  • Modern releases of MS-DOS/PC DOS (5.0+???) assume that AL is a day rollover counter rather than a flag, as expected by older releases. DOS 5 - 7.10 (Windows 98 SE) provide an undocumented CONFIG.SYS SWITCHES=/T option to force the old behaviour of the day advancing code, that is using a flag instead of a counter.
  • DR DOS 3.31 - DR-DOS 7.03 handle AL as a flag.


en/docs/bios/api/int1a/00.txt · Last modified: 2022/03/26 18:00 by prokushev