29 lines
590 B
Go
29 lines
590 B
Go
// Copyright 2021-2024 Sebastian Lederer. See the file LICENSE.md for details
|
|
package main
|
|
import (
|
|
"time"
|
|
// "fmt"
|
|
)
|
|
|
|
const MSecsPerTick = 50
|
|
|
|
type IRQC struct {
|
|
start time.Time
|
|
}
|
|
|
|
func (i *IRQC) initialize() {
|
|
i.start = time.Now()
|
|
}
|
|
|
|
func (i *IRQC) read(byteaddr word) (word, error) {
|
|
elapsedms := time.Since(i.start).Milliseconds()
|
|
elapsedTicks := elapsedms / MSecsPerTick
|
|
result := word((elapsedTicks & 0x0FFFFFFF) << 8)
|
|
//fmt.Printf("** IRQC read: %08X (%v)\n", result, elapsedms)
|
|
return result, nil
|
|
}
|
|
|
|
func (i *IRQC) write(value word, byteaddr word) (error) {
|
|
return nil
|
|
}
|
|
|