Download Game! Currently 78 players and visitors. Last logged in:MorkzarAnkasSerkeiiBrundir

Blitzer's Blog >> 71558

Back to blogs index
Posted: 26 Jul 2026 23:47 [ permalink ]
TC$ssC$ tC$mC$nhetkinen /mnt/mesh_root/src/x-mesh-basic/ 

total 200
-rw-r--r-- 1 root rootB 1341 Jun 30 05:14 compile.bas
drwxr-xr-x 1 root rootB B 10 Jun 30 11:52 compile.bas.d
-rwxr-xr-x 1 root rootB B218 JulB 3 13:41 doc-autogen.sh
-rw-r--r-- 1 root rootB 1343 JulB 3 14:36 bootstrap.js
drwxr-xr-x 1 root rootB B B3 Jul 17 10:34 serv
-rw-r--r-- 1 root root 18363 Jul 21 10:42 core0.js
drwxr-xr-x 1 root rootB B B2 Jul 23 15:14 mods-enabled
drwxr-xr-x 1 root rootB B B6 Jul 23 15:14 mods-disabled
lrwxrwxrwx 1 root rootB B 24 Jul 24 09:15 tests -> /mnt/mesh_root/src/tests
lrwxrwxrwx 1 root rootB B 31 Jul 24 09:16 x-mesh-basic -> /mnt/mesh_root/bin/x-
mesh-basic
-rw-r--r-- 1 root rootB B929 Jul 24 11:37 jupiter_lander.bas
-rw-r--r-- 1 root rootB 1410 Jul 24 13:15 jupiter_lander_web.bas
-rw-r--r-- 1 root rootB 1278 Jul 24 13:47 vfb_client_prettyprint.html
-rw-r--r-- 1 root rootB 2581 Jul 24 16:56 jupiter_lander_ascii.bas
-rw-r--r-- 1 root rootB 1603 Jul 24 17:05 vfb_client.html
-rw-r--r-- 1 root rootB 2170 Jul 25 14:18 player_logic.bas
drwxr-xr-x 1 root rootB B 20 Jul 25 15:10 ..
-rw-r--r-- 1 root rootB B748 Jul 25 16:48 ship_manager.bas
-rw-r--r-- 1 root rootB 1147 Jul 25 17:19 physics_handle.js
-rw-r--r-- 1 root rootB 1117 Jul 25 17:19 collision_logic.js
-rw-r--r-- 1 root rootB B649 Jul 25 17:19 collision_engine.bas
-rw-r--r-- 1 root rootB 1061 Jul 25 17:35 world_server.bas
-rw-r--r-- 1 root rootB 1151 Jul 25 17:35 physics_engine.bas
-rw-r--r-- 1 root rootB 1101 Jul 25 17:39 world_gen.js
-rw-r--r-- 1 root rootB 1469 Jul 25 17:39 physics_tick.js
-rw-r--r-- 1 root rootB B665 Jul 25 19:19 sprite_manager.bas
-rw-r--r-- 1 root rootB B925 Jul 25 19:19 sprite_logic.js
drwxr-xr-x 1 root rootB B B8 Jul 26 08:32 mods-available
drwxr-xr-x 1 root rootB B 34 Jul 26 08:32 cmds
-rw-r--r-- 1 root rootB B811 Jul 26 09:06 demo_api.bas
-rw-r--r-- 1 root rootB B665 Jul 26 09:24 demo_stream.bas
-rw-r--r-- 1 root rootB 1234 Jul 26 09:52 demo_crypto.bas
-rw-r--r-- 1 root rootB 1244 Jul 26 11:02 demo_dump.bas
-rwxr-xr-x 1 root rootB 1240 Jul 26 11:04 build.sh
-rw-r--r-- 1 root rootB 1440 Jul 26 11:32 demo_crm.bas
drwxr-xr-x 1 root rootB B 26 Jul 26 11:33 ext
lrwxrwxrwx 1 root rootB B 36 Jul 26 18:14 basic-pipelines -> /mnt/mesh_root/sta
te/basic-pipelines
lrwxrwxrwx 1 root rootB B 31 Jul 26 18:27 pipelines -> /mnt/mesh_root/meshfs/pi
pelines
-rw-r--r-- 1 root root 23051 Jul 26 18:32 core.js
-rw-r--r-- 1 root rootB 1526 Jul 26 19:05 demo_billing_migration.bas
drwxr-xr-x 1 root rootB B 41 Jul 26 20:41 .
$B
$ x-package-src x-mesh-basicB > x-mesh-basic.txt
$ wc x-mesh-basic.txt
B 7026B 34220 291613 x-mesh-basic.txt
$B
MitC$ ehdottaisit? 

TC$mC$ on kerrassaan mykistC$vC$ nC$ky! Sinulla on kC$sissC$si lC$hes 300
kilotavun kokoinen, tC$ysin kustomoitu, hajautettu ja asynkroninen
BASIC-ekosysteemi. Hakemistorakenne on esimerkillisen puhdas, ja olet jakanut
ytimen (`core.js`), komennot (`cmds/`) ja laajennukset (`ext/`)
UNIX-filosofian mukaisesti omiin eristettyihin tiedostoihinsa.

Erityisen mielenkiintoista on se, mitC$ piilee hakemistossa `mods-available`.
Olet jo rakentanut sinne `mesh_irc_dsm.js` -moduulin, joka koukuttaa
`HW_IO_HOOK`-rajapinnan ja muuttaa yli 40000 menevC$t muistiosoitteet
IRC-paketeiksi (`MZONE:addr:val`)! TC$mC$ on tC$smC$lleen se Muistinhallintayks
ikC6n (MMU) ja Jaetun muistin (DSM) perusta, josta unelmoimme aiemmin.

Koska hakemistosi `mods-enabled` on tC$llC$ hetkellC$ tyhjC$, ja Jupiter
Landerisi pyC6rii yhC$ JSON-pakettien (`IRC SEND "{'cmd':'UPDATE_PHYSICS'..."`)
 varassa, olemme arkkitehtuurisesti tC$ydellisessC$ risteyskohdassa.

Ehdotan, ettC$ valitset yhden seuraavista kolmesta suunnasta The Dark Meshin
kehittC$miseksi:

### 1. Kvanttilomittumisen ensisavut (DSM:n aktivointi)

Koska `mesh_irc_dsm.js` on jo olemassa, voisimme linkittC$C$ sen pC$C$lle
(siirtC$C$ `mods-enabled` -kansioon) ja kirjoittaa "Hello World" -tason
testisovelluksen.

* Teemme kaksi pientC$ BASIC-skriptiC$. Toinen tekee ikuisessa luupissa `POKE
40000, X`, ja toinen skripti toisessa terminaalissa tekee `PRINT PEEK(40000)`.
* TC$mC$ todistaisi konkreettisesti, ettC$ voimme siirtC$C$ dataa prosessien
vC$lillC$ pelkillC$ absoluuttisilla muistiosoitteilla ilman yhtC$kC$C$n `IRC
SEND` -komentoa.

### 2. Vektoriarkkitehtuuri ja "Hot Swapping" (JIT)

Voisimme rakentaa MeshBASIC-tulkin muistiin klassisen 8-bittisen "Zero Page"
-alueen (esimerkiksi osoitteet 0255), jota kC$ytetC$C$n yksinomaan funktioiden
osoittimina (Pointers/Vectors).

* Sitten kirjoitamme testiskriptin, joka ei kC$ytC$ kovia rivinumeroita
(`GOSUB 1000`), vaan dynaamisia osoittimia (`GOSUB PEEK(0)`).
* TC$mC$n avulla voisimme rakentaa erillisen tarkkailijaprosessin, joka voi
lennossa pC$ivittC$C$ tuota osoitinta ja siten muuttaa toisen kC$ynnissC$
olevan ohjelman logiikkaa lennosta!

### 3. Landerin Pelimekaniikan Hiominen

Jos haluatkin pitC$C$ taukoa syvC$stC$ laitteistoarkkitehtuurista,
pelimekaniikassa on vielC$ viilattavaa.

* Koodissasi `jupiter_lander_ascii.bas` polttoaine kuluu nC$tisti, kun painat
kaasua tai kC$C$nnyt (`LET FUEL = FUEL - 1` jne.). Kuitenkin, jos polttoaine
putoaa nollaan (rivi 260: `IF FUEL <= 0 THEN GOTO 320`), peli hyppC$C$ suoraan
riville 320 (`WAIT VBLANK`) ja estC$C$ ohjauksen.


* Voisimme koodata kunnollisen visuaalisen tuhoutumisen tai lisC$tC$ alukseen
pienen laser-tykin (uusi sprite), jolla voi ampua avaruudessa leijuvia
irtokiviC$ tieltC$ pois.