BIOS Kernel Timer/Event Functions

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 (32 bits, incremented at 300Hz)
 BD10 KL_TIME_SET        ;in:  hl=low, de=high (32 bits, incremented at 300Hz)