Reply 80 of 151, by superfury
One thing that's odd is this: even though the Generic Turbo XT BIOS shows it exists, it doesn't supply anything for it. It just detects it, displays it's there and continues doing other things. Couldn't the maker have added full BIOS support for that RTC chip if he already planned on displaying it (seemingly 'supporting' it by the BIOS)? He could just as easily implement an interrupt 1Ah BIOS interrupt for that chip(actually all three chips seem upwards compatible at least)?
All it has is this simple routine:
;---------------------------------------------------------------------------------------------------; Interrupt 1Ah - Time Of Day Clock;---------------------------------------------------------------------------------------------------entry 0FE6Eh ; IBM entry, time_of_day clockproc int_1A farsti ; User time_of_day BIOS servicepush dspush axmov ax, 40hmov ds, axpop ax ; Get request typecli ; pause clockor ah, ahjz @@read ; Read time, ah=0dec ahjnz @@end ; invalid request@@set:mov [ds:6Ch], dx ; Set time, ah=1mov [ds:6Eh], cx ; set time highmov [byte ds:70h], 0 ; not a new dayjmp short @@end@@read:mov cx, [ds:6Eh] ; Read low order timemov dx, [ds:6Ch] ; high order timecall @@reset ; Read resets overflow@@end: sti ; Resume clockpop dsiret@@reset:mov al, [ds:70h] ; Zero the overflow and returnxor [ds:70h], al ; previous status in flagsretnendp int_1A
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io