#include <stdint.h>
#include "module.h"
#include "timer.h"
static uint64_t tick_count = 0;
static inline void outb(uint16_t port, uint8_t val) {
asm volatile ("outb %0, %1" : : "a"(val), "Nd"(port));
}
void timer_init(void) {
// PIT channel 0, mode 3 (square wave), lobyte/hibyte access
outb(0x43, 0x36);
// Frequency: 1193182 Hz / divisor = desired frequency (e.g., 100 Hz)
uint16_t divisor = 11931; // 1193182 / 100 ≈ 11931
outb(0x40, divisor & 0xFF);
outb(0x40, (divisor >> 8) & 0xFF);
}
void timer_irq_handler(void) {
tick_count++;
// Could print a dot or update something; for now just increment.
}