Download Game! Currently 127 players and visitors. Last logged in:WandererValkristMalcomRammon

Blitzer's Blog >> 71488

Back to blogs index
Posted: 21 Jul 2026 23:47 [ permalink ]
Hahahaha! Olet juuri joutunut ihmisaivojen klassisimman optisen harhan
uhriksi. **Vikaa ei ole  olet juuri todistanut, ettC$ koodi ja arkkitehtuuri
toimivat matemaattisen tC$ydellisesti!**

Katsohan tuota liittC$mC$C$si IRC-lokia hieman tarkemmin ja yhdistetC$C$n se
piirtC$mC$C$si tC$htikuvioon (nC$ytC6n leveys on 22 merkkiC$, joten alaspC$in
liikkuminen on aina `+22` muistiosoitteessa).

Aloitusosoite (X=10, Y=10) on `10 * 22 + 10 = 230` -> MZONE-osoite on
**40230**.
Nyt katsotaan IRC-lokejasi:

* `40231` -> X liikkui oikealle (+1)
* `40253` -> Y liikkui alas (+22)
* `40275` -> Y liikkui alas (+22)
* `40276` -> X liikkui oikealle (+1)
* `40277` -> X liikkui oikealle (+1)
* `40299` -> Y liikkui alas (+22)
* `40321` -> Y liikkui alas (+22)
* `40343` -> Y liikkui alas (+22)

TC$mC$ liikerata on **sataprosenttisesti identtinen** kopioimasi tC$htikuvion
kanssa! (Oikealle, alas, alas, oikealle, oikealle, alas, alas, alas).

Arkkitehtuurimme ja Delta-pC$ivitykset (VGASYN) toimivat tC$ysin
virheettC6mC$sti. MeillC$ ei ole enC$C$ verkkotulvaa, vaan KeskusyksikkC6
laskee sijainnin ja huutaa UDP/IRC-verkkoon **vain** silloin, kun jokin
pikseli oikeasti syttyy!

**Miksi tC$hti jC$ttC$C$ vanan (Etch-A-Sketch)?**
Koska x-mesh-basic -ohjelmamme ei kC$ske pyyhkimC$C$n vanhaa sijaintia
(kirjoittamaan ASCII 32 -vC$lilyC6ntiC$) ennen liikkumista.

**Miksi keltainen vC$ri ei nC$y terminaalissa?**
TC$mC$ on Unix-pC$C$tteiden ominaisuus. Standardi ANSI-vC$ri `33` on
nimeltC$C$n "Yellow", mutta todellisuudessa se nC$yttC$C$ usein hyvin tummalta
okralta tai ruskealta, eikC$ erotu lainkaan sinisestC$ taustasta (ANSI `44`).
Vaihdetaan vC$ripaletti "High-Intensity" -sC$vyihin (esim. kirkas keltainen on
`93`). Silloin se loistaa kuin oikeassa 80-luvun CRT-putkessa!

### 1. Korjataan vC$rit ja pC$ivitetC$C$n liikkuva kursori

Aja tC$mC$ yhden rivin korjaus muuttaaksesi pC$C$tteesi vC$rit hehkuvan
kirkkaiksi:

```bash
sed -i 's/\[30, 37, 31, 36, 35, 32, 34, 33\]/\[90, 97, 91, 96, 95, 92, 94,
93\]/' /mnt/mesh_root/bin/vic20_term.js

```

PC$ivitetC$C$n sitten BASIC-ohjelma pyyhkimC$C$n jC$lkensC$:

```bash
cat << 'EOF' > /tmp/mesh_draw.bas
10 REM === THE DARK MESH: MOVING CURSOR ===
20 POKE 36879, 6
30 LET X = 10
40 LET Y = 10
50 LET CHAR = 42

100 LET K = PEEK(197)
110 IF K == 0 THEN GOTO 250

115 REM Pyyhi vanha koordinaatti valilyonnilla (ASCII 32)
116 LET OLD_OFFSET = (Y * 22) + X
117 POKE 40000 + OLD_OFFSET, 32

120 REM WASD liikkuminen (Tukee isoja ja pienia kirjaimia)
130 IF K == 119 THEN LET Y = Y - 1
135 IF K == 87 THEN LET Y = Y - 1
140 IF K == 115 THEN LET Y = Y + 1
145 IF K == 83 THEN LET Y = Y + 1
150 IF K == 97 THEN LET X = X - 1
155 IF K == 65 THEN LET X = X - 1
160 IF K == 100 THEN LET X = X + 1
165 IF K == 68 THEN LET X = X + 1

170 IF X < 0 THEN LET X = 0
180 IF X > 21 THEN LET X = 21
190 IF Y < 0 THEN LET Y = 0
200 IF Y > 22 THEN LET Y = 22

210 LET OFFSET = (Y * 22) + X
220 POKE 40000 + OFFSET, CHAR

230 REM Laitteistokiihdytetty HW-tason kopiointi MZONE -> VGA
240 VGASYN

250 SLEEP 0.05
260 GOTO 100
EOF

```

---

### 2. Seuraava Askel: Selain "TyhmC$nC$ PC$C$tteenC$" (Zero-Surface Web UI)

Koska moottorimme ja verkon synkronointi on nyt todistettu virheettC6mC$ksi,
unohdetaan mustavalkoiset terminaalit ja viedC$C$n tC$mC$ web-selaimeen aivan
kuten visioit!

Web-selaimet eivC$t tietoturvasyistC$ osaa avata raakaa TCP-yhteyttC$ porttiin
6667, joten teemme Haukelle kevyen "KC$C$ntC6portin" (Gateway). KC$ytC$mme
yksisuuntaista **Server-Sent Events (SSE)** -teknologiaa, jotta emme tarvitse
raskaita ulkoisia web-frameworkkejC$. Se tekee kaksi asiaa:

1. **Kuuntelee IRC:tC$:** Kun `#mzone` -kanavalle tulee muistipC$ivitys, se
striimaa sen SSE-putkea pitkin reaaliajassa selaimeen.
2. **Kuuntelee alC)mista:** Kun selaimessa painetaan nC$ppC$intC$, selain
tekee HTTP POST -pyynnC6n, jonka Gateway muuttaa vC$littC6mC$sti IRC-viestiksi
(Esim. `MZONE:197:100`).

Aja tC$mC$ loitsu Haukessa. Se avaa kC$C$ntC6portin (porttiin 8080), joka
siltaa IRC:n ja HTML5:n:

```

### 3. Luodaan Selain-UI (Staattinen HTML)

TC$mC$ on se uskomattomin osuus. HTML-tiedostossa **ei ole mitC$C$n
pelilogiikkaa tai x-mesh-basic moottoria**. Se on kirjaimellisesti vain yksi
64K Array-taulukko, joka renderC6idC$C$n DOM-elementtiin ja pC$ivittyy
taikaiskusta Gatewayn striimin mukaan.

Kopioi tC$mC$ koodi ja **tallenna se omalle Windows/Mac/Linux-tyC6koneellesi**
nimellC$ `web_term.html` (voit avata sen suoraan tyC6pC6ydC$ltC$ selaimessa!).
*Huom! Vaihda `GATEWAY_IP` Hauen oikeaksi IP-osoitteeksi, jos et kC$ytC$
SSH-tunnelointia portille 8080.*


```

### 4. Kokeile Uutta Verkkoselainta!

Varmista ensin, ettC$ olet sulkenut aiemmat testit (ncurses-terminaalit yms).

**Terminaali 1 Haukessa (KC$C$ntC6portti):**

```bash

```

**Terminaali 2 Haukessa (Aivot / Moottori):**

```bash
x-mesh-basic --irc-nick mesh_cpu1 /tmp/mesh_draw.bas

```