2026-01-19 07:28:14 +00:00

4.9 KiB

< Back | Summary | Next >

Events and Interrupts

1. Overview

PROMETEU clearly distinguishes between normal execution, events, and interrupts.

Nothing occurs "out of time".

Nothing interrupts the system without cost.

Nothing happens without a well-defined point in the execution cycle.

Events are signals. Interrupts are machine decisions.

This chapter defines:

  • what PROMETEU considers an event
  • how interrupts are modeled
  • when they can occur
  • how they relate to cycles, CAP, and determinism

2. Event Philosophy in PROMETEU

PROMETEU does not use invisible asynchronous callbacks.

Every event:

  • is registered
  • is delivered at a predictable moment
  • is handled within the main loop

This model avoids:

  • implicit concurrency
  • hidden race conditions
  • non-deterministic side effects

PROMETEU favors:

explicit control over reactivity.


3. Events

3.1 Definition

An event in PROMETEU is a logical signal generated by the system or the program, indicating that something has occurred.

Examples of events:

  • end of frame
  • timer expired
  • system state change
  • execution error

Events do not execute code automatically.

They only inform.


3.2 Event Queue

PROMETEU maintains an event queue:

  • events are queued
  • the queue is processed in order
  • processing occurs at defined points in the frame

Events:

  • do not interrupt execution arbitrarily
  • do not execute outside the loop

4. Interrupts

4.1 Definition

An interrupt is a special event, treated by the system as priority, which can:

  • change the normal flow of execution
  • execute specific system code
  • impact cycles and budget

Interrupts are rare and explicit.


4.2 What is NOT an interrupt

In PROMETEU, the following are not interrupts:

  • button input
  • collisions
  • common timers
  • game logic

These are treated as state or normal events.


5. Types of Interrupts in PROMETEU

PROMETEU defines a small and well-controlled set of interrupts.

5.1 Frame Interrupt (Conceptual VBlank)

The end of each frame generates a logical synchronization interrupt, responsible for:

  • framebuffer swap
  • audio commit
  • state synchronization

This interrupt:

  • occurs at SYNC
  • has a fixed cost
  • does not execute user code

5.2 System Interrupt

Generated by exceptional conditions:

  • fatal VM error
  • memory violation
  • invalid instruction

Result:

  • execution is halted
  • VM state is preserved
  • detailed report is generated

5.3 Timed Interrupts (Timers)

PROMETEU can offer system timers, modeled as:

  • counters based on frames
  • signals generated upon reaching zero

Timers:

  • do not trigger code automatically
  • generate queryable events

Conceptual example:

if (timer.expired(T1)) {
// handle event
}

6. Relationship between Events, Interrupts, and the Loop

The complete flow can be represented as follows:

FRAME N
──────────────
SAMPLEINPUT
PROCESS EVENTS
UPDATE
DRAW
AUDIO
INTERRUPT: VBLANK
SYNC
──────────────

Important:

  • events are processed before main logic
  • interrupts occur only at safe points
  • no interrupt occurs "in the middle" of an instruction

7. Costs and Budget

Events and interrupts:

  • consume cycles
  • participate in the CAP
  • appear in certification

Example report:

Frame 18231:
Event processing:120cycles
VBlank interrupt:80cycles

Nothing is free.


8. Determinism and Reproducibility

PROMETEU guarantees:

  • same sequence of events → same behavior
  • interrupts always at the same point in the frame
  • timers based on frame count, not real time

This allows:

  • reliable replays
  • precise debugging
  • fair certification

9. Best Practices

PROMETEU encourages:

  • treating events as data
  • querying events explicitly
  • avoiding heavy logic in handlers
  • using timers instead of excessive polling

PROMETEU discourages:

  • simulating asynchronous callbacks
  • depending on implicit order
  • using events as a "shortcut" for complex logic

10. Relationship with Microcontrollers

The model reflects real MCUs:

MCU PROMETEU
ISR Explicit interrupt
Main Loop PROMETEU Loop
Flags Events
Timers Per-frame timers

But without:

  • real concurrency
  • unpredictable interrupts

PROMETEU teaches the concept, not the chaos.


11. Pedagogical Implications

This model allows teaching:

  • the difference between event and interrupt
  • safe synchronization
  • flow control in reactive systems
  • the impact of temporal decisions

Everything with order, clarity, and measurement.


12. Summary

  • events inform, they do not execute
  • interrupts are rare and controlled
  • no execution occurs outside the loop
  • costs are explicit
  • behavior is deterministic

< Back | Summary | Next >