23 lines
1.2 KiB
Markdown
23 lines
1.2 KiB
Markdown
## MODIFIED Requirements
|
||
|
||
### Requirement: Compile-Zeit-Abweisung deklarierter Non-Features
|
||
Die Semantik MUST jede Verwendung der in docs/sprachreferenz.md
|
||
(„Abweichungen") deklarierten Non-Features — Hardware-Nähe (`PEEK`,
|
||
`POKE`, `INP`, `OUT`, `WAIT`, `BLOAD`/`BSAVE`, `VARPTR`-Familie, `CALL
|
||
ABSOLUTE`/`INTERRUPT`, `IOCTL`), `CHAIN`, die weiterhin ausgeschlossenen Grafik-Anweisungen (`PSET`,
|
||
`PRESET`, `CIRCLE`, `DRAW`, Grafik-`GET`/`PUT`, `PALETTE`, `WINDOW`,
|
||
`PMAP`, `PCOPY`, `POINT`), `SOUND`/
|
||
`PLAY` und die Event-Geräte `COM`/`PEN`/`PLAY`/`STRIG` — zur Compile-Zeit
|
||
mit der Meldung „Feature unavailable" abweisen. Dokumentierte Features
|
||
außerhalb dieser Liste MUST NOT abgewiesen werden (Guiding Principle).
|
||
|
||
Die dokumentierte Zellenpuffer-Untermenge SCREEN 0–13, LINE, PAINT und VIEW SHALL verfügbar bleiben.
|
||
|
||
#### Scenario: Hardware-Zugriff
|
||
- **WHEN** `POKE 100, 1` oder `x = PEEK(100)` kompiliert wird
|
||
- **THEN** erscheint die Compile-Diagnose „Feature unavailable"
|
||
|
||
#### Scenario: Erlaubte Grafikuntermenge
|
||
- **WHEN** ein Programm SCREEN 1, LINE, PAINT und VIEW in gültiger Syntax verwendet
|
||
- **THEN** wird es ohne Feature-unavailable-Diagnose übersetzt
|