BIOS Kernel Timer/Event Functions

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

Interrupt Vectors

 0038 300HZ INTERRUPT (RST7)
 003B EXT_INTERRUPT_VECTOR
 0066 GARBAGE (THERE'S NO NMI HANDLER IN ROM)

Kernel Timer/Event Functions

 B921 KL_POLL_SYNCHRONOUS
 B92A KL_SCAN_NEEDED_664    ;force ticker on next IRQ (664 and up only)
 BCD7 KL_NEW_FRAME_FLY      ;in: HL=kaffc, DE=proc,B=prio,C=ROMcfg ;\vsync
 BCDA KL_ADD_FRAME_FLY      ;in: HL=kaffc                          ; 50Hz/60Hz
 BCDD KL_DELETE_FRAME_FLY   ;in: HL=kaffc, out: CY=0=failed        ;/
 BCE0 KL_NEW_FAST_TICKER    ;in: HL=kaftc, DE=proc,B=prio,C=ROMcfg ;\fast
 BCE3 KL_ADD_FAST_TICKER    ;in: HL=kaftc                          ; 300Hz
 BCE6 KL_DELETE_FAST_TICKER ;in: HL=kaftc, out: CY=0=failed        ;/
 BCE9 KL_ADD_TICKER         ;in: HL=katc, DE=count, BC=reload      ;\50Hz div
 BCEC KL_DELETE_TICKER      ;in: HL=katc, out: DE=count, CY=0=fail ;/count
 BCEF KL_INIT_EVENT
 BCF2 KL_EVENT
 BCF5 KL_SYNC_RESET
 BCF8 KL_DEL_SYNCHRONOUS
 BCFB KL_NEXT_SYNC
 BCFE KL_DO_SYNC
 BD01 KL_DONE_SYNC
 BD04 KL_EVENT_DISABLE
 BD07 KL_EVENT_ENABLE
 BD0A KL_DISARM_EVENT
 BD0D KL_TIME_PLEASE     ;out: hl=low, de=high (64bit, incremented at 300Hz)
 BD10 KL_TIME_SET        ;in:  hl=low, de=high (64bit, incremented at 300Hz)