[PASS] 10_vfb_render
[OMEGA] Route mapped: tcp:127.0.0.1:8080
[OMEGA] Connected to tcp:127.0.0.1:8080 on channel ch_1784890387264
[OMEGA] Buffered SEND on ch_1784890387264
state.omega.rx.push({channel: memory['C'], data: 'ACK_RECEIVED'})
[PASS] 11_omega_mailbox
[+] CI/CD L[C[P[C[ISTY: Tuotantovalmis.
### OMEGA-viestijonot (Mailbox) Verkolle 11/11 CI/CD VihreC$llC$ ja OMEGA
Toimii!
Tuo 7-bittinen ASCII-kC$C$nnC6s on loistava veto. Se todistaa juuri sen, miksi
Virtual Framebuffer (VFB) on niin nerokas konsepti: moottorin muistissa
(`vfb`-taulukko) kivi on aina `1` ja alus `255`, mutta *isC$ntC$ympC$ristC6*
(Host) pC$C$ttC$C$ tC$ysin itsenC$isesti, miten se tulkitaan nC$ytC6lle.
Jos ajamme moottoria riisutulla laitteistolla, isC$ntC$ voi yksinkertaisesti
ajaa taulukon lC$pi tC$llaisen filtterin lC$pi:
`p === 255 ? 'X' : p > 1 ? '=' : p === 1 ? '#' : ' '`
Sama BASIC-ohjelma pyC6rii 100 % identtisesti riippumatta siitC$, onko
nC$yttC6nC$ 4K HTML5 Canvas, aito VGA-rautapuskuri vai 80-luvun
sarjaterminaali!
### Puuttuva Palanen: Interaktio (`INKEY$`)
MeillC$ on nyt toimiva fysiikka, nC$yttC6puskuri ja verkkopino. Seuraava askel
alkuperC$isen Jupiter Lander -skriptisi herC$ttC$miseksi eloon on syC6tteen
kC$sittely, eli komento `180 K$ = INKEY$`.
Koska moottori on isC$ntC$-agnostinen, moottorin ei pidC$ itse yrittC$C$ lukea
nC$ppC$imistC6C$ (koska se saattaisi pyC6riC$ selaintaustalla, kernelissC$ tai
pilvessC$). IsC$ntC$ympC$ristC6n vastuulla on kuunnella syC6tteitC$ ja
kirjoittaa ne moottorin muistiin (`state.memory['INKEY$']`) ennen kuin BASIC
lukee sen.