25 lines
1.4 KiB
Markdown
25 lines
1.4 KiB
Markdown
## MODIFIED Requirements
|
|
|
|
### Requirement: Ereigniszustellung an Anweisungsgrenzen
|
|
Die VM SHALL an Anweisungsgrenzen prüfen, ob ein Ereignis zuzustellen
|
|
ist, und in diesem Fall das `GOSUB`-Ziel des zugehörigen Traps
|
|
ausführen. Der unterbrochene Zustand — Aufrufkette, Schleifen, Locals,
|
|
`GOSUB`-Stapel und Fehlerzustand — MUST dabei erhalten bleiben; mit
|
|
`RETURN` SHALL die Ausführung an der unterbrochenen Stelle fortfahren.
|
|
Die Prüfung MUST NOT pro Opcode erfolgen; solange kein Trap definiert ist,
|
|
MUST sie auf einen einzelnen Test hinauslaufen und MUST NOT die Uhr lesen.
|
|
|
|
Ohne klassische Traps, aktive Forms-Timer oder zeitabhängige Mausauswertung SHALL auch die Forms-Integration keine Hostzeit abfragen.
|
|
|
|
#### Scenario: Trap aus einer Prozedur heraus
|
|
- **WHEN** ein Ereignis zugestellt wird, während eine `SUB` läuft, und das Trap-Ziel im Modulrumpf liegt
|
|
- **THEN** läuft der Handler und nach `RETURN` setzt die `SUB` an der unterbrochenen Anweisung fort
|
|
|
|
#### Scenario: Ohne aktiven Trap wird die Uhr nicht gelesen
|
|
- **WHEN** ein Programm ohne jede `ON …`-Trap-Definition ausgeführt wird
|
|
- **THEN** fragt die Ausführung an keiner Anweisungsgrenze die Zeit ab, und der Durchsatz bleibt im Rahmen der Messgenauigkeit unverändert
|
|
|
|
#### Scenario: Einfaches Programm liest keine Ereigniszeit
|
|
- **WHEN** ein Programm nur Zuweisungen und END ausführt und ein Testhost Zeitabfragen zählt
|
|
- **THEN** ist der Zähler am Ende 0
|