11. Gry s4 5 gier. 509 bajtów.
Start typu "system crash". Na ekranie jest listing przesunięty w pierwszej linii, w ostatniej linii bzdury: dziwny numer linii, znaki zapytania, niedkokończony rozkaz na samym końcu z migającym znakiem zapytania, na dole komunikat o błędzie. Na dokładkę stos w ekranie.
A jednak wszystko działa
Stos naprawdę jest w ekranie (oczywiście tylko do momentu wybrania), nawet jest specjalnie dobrane opóźnienie w pętli sprawdzającej klawisze, żeby nie migało za szybko. Zabawny komunikat o błędzie jest istniejącym komunikatem z Opusa, łącznie z "numerem" błędu i chyba nawet raz go widziałem naprawdę. Jeżeli chodzi o długość - ledwo się udało zmieścić w 512 bajtów (dwa sektory Opusa) - zoptymalizowany BASIC, zoptymalizowany asembler, a z linii 0 nawet REM wyleciał, więc wpisanie RUN powoduje błąd, musi być RUN 1.
Gry wpisane są nie w DATA, a w REM, wyświetlanie jest przez LIST, w związku z tym ciekawy jest sposób odczytu wybranej gry - z ekranu za pomocą SCREEN$.
To że wyświetlanie jest przez LIST, zamiast pętli z READ/PRINT wcale nie skróciło programu, bo z kolei kolory muszą być ustalone (kodami) dla każdej gry osobno.
Można by oczywiście wyróżnić bardziej okienko, na przykład robiąc w nim jednolite tło, albo zmieniając kolor listingu poza okienkiem na ciemniejszy, ale to właśnie ma tak wyglądać - za pierwszym razem ma być z trudem widoczne
Znowu się nie da zwiększyć liczby gier, bo zmienił by się wygląd i na dodatek listing nie zmieścił by się na ekranie.