Neural hírek logo
Forth Születik a Soggy-1000-en: Sega Klón Kap Programozási Nyelvet

Forth Születik a Soggy-1000-en: Sega Klón Kap Programozási Nyelvet

A Soggy-1000 klónozott SG-1000 konzoljára saját, szerzői jogot nem sértő Forth rendszert fejleszt a szerző, hogy azon közvetlenül, interaktívan programozhasson. A CamelForth-80 Z80-as assembly kódjának portolása során a zasm assembler eltérő szintaxisa és makrókezelése okozott nehézségeket, amelyeket makrók átírásával és case-fold kapcsolóval oldott meg. A TMS9918 VDP-n megvalósított EMIT függvényhez saját görgetést, backspace- és sortörés-kezelést kellett írnia, végül pedig a CPMACCEPT helyett az ACCEPT szó használatával sikerült működésre bírni a Forth interpretert. A RetroChallenge keretében folytatja a munkát: a billentyűzetkezelés, a grafikai és hangszavak, valamint egy használható Soggy Forth kazetta megvalósítása a következő célok.

A Soggy projekt keretében a szerző egy saját fejlesztésű SG-1000 klónon, a Soggy-1000-en kíván egy Forth rendszert elindítani, hogy egy általa kontrollált, szerzői jogi aggályoktól mentes, interaktív programozási környezetet hozzon létre. A Sega SG-1000 konzol és az SC-3000 számítógép lényegében azonos hardverre épül, így a konzolhoz csatlakoztatott billentyűzettel gyakorlatilag számítógéppé alakítható, amin még egy korlátozott BASIC is fut. Mivel a szerző eredeti SC-3000 gépe törékeny és romló állapotú, saját klónt épített, amely kompatibilis az SG-1000 billentyűzetével. A Sega BASIC korlátai miatt döntött úgy, hogy inkább egy Forth interpretert implementál, mivel a Forth minimalista, beágyazott rendszerekben elterjedt nyelv, könnyen elindítható, lépésenként bővíthető egy parancssori felületen keresztül, és gyakran integrált assemblert is tartalmaz, ami lehetővé teszi assembly programok írását közvetlenül a hardveren. A projekt a RetroChallenge 2026/10 keretében készül, amelynek szabályai szerint a munkát nem lehet korábban elkezdeni, így a cikk a kihívás kezdetén jelenik meg, és elsősorban bevezetőként szolgál a célok megértéséhez.

A Forth portolásához a szerző a GPL-licencű CamelForth-80 implementációból indult ki, amely eredetileg CP/M-80 alatt fut, de a szerzője részletes útmutatót ad a ROM-alapú, önálló működéshez szükséges módosításokhoz. Ehhez saját hardverinicializálást kellett írni (TMS9918 VDP, veremmutató), egy reset kezelőt, valamint a három CP/M-függő szót – KEY, KEY? és EMIT – Z80 assemblyben újraimplementálni. Az eredeti forráskód a Z80MR assemblerhez készült, ezért a szerzőnek át kellett portolnia a zasm assemblerre, ami több akadályba ütközött: a makrók passzkezelése eltért, a head és immed makrókat szét kellett bontani, bizonyos karaktereket (például a < jelet) escape-elni kellett, az idézőjeleket és vesszőket tartalmazó szavak neveit pedig át kellett írni, mivel a zasm másképp értelmezte őket. Végül a --casefold opcióval sikerült kezelni a kis- és nagybetűk közötti eltéréseket, és a kód lefordult.

Az EMIT implementálása komoly kihívást jelentett, mivel a TMS9918 VDP nem támogat hardveres görgetést. A szerző a Graphics 1 módot választotta (32×24 tile-os kijelzés), és a VDP videomemóriáját használta képernyőpufferként, hogy ne foglaljon el értékes rendszermemóriát – ez különösen fontos, mivel az eredeti SG-1000 mindössze 1 KB RAM-mal rendelkezik. A görgetést egy egyszerű ciklussal oldotta meg, amely soronként másolja a karaktereket, és kiüríti az utolsó sort. A backspace és a sortörés különleges esetekként kerültek implementálásra; utóbbinál a szerző felismerte, hogy a 32 hatványsága miatt a modulo művelet helyett bitenkénti ÉS-sel is kiszámítható a következő sor eleje. Végül a QUIT szó ismételt meghívásának rejtélyét is megoldotta: a CPMACCEPT szót kellett ACCEPT-re cserélni, ami a KEY szót használja. A billentyűzetkezelő részleges implementálásával sikerült egy saját szót (AAAA) definiálni és meghívni a rendszeren, ami igazolta a működést. A RetroChallenge hátralévő részében a billentyűzetkezelés befejezése, majd opcionális célként a TMS99xx/SN76489 grafikai és hangszavak hozzáadása, a 32K RAM és lapozás kihasználása, a hosszú távú tárolás megoldása, valamint egy hasznos Forth kazetta elkészítése szerepel a tervek között.


Ez a cikk a Neural News AI (V1) verziójával készült.

Forrás: https://www.leadedsolder.com/2026/10/01/rc2026-10-sg1000-forth-port.html.

A képet Sean Kuriyan készítette, mely az Unsplash-on található.

Neural hírek

Az Anthropic cég áll az AI által okozott katasztrófáról szóló vita középpontjában, és a vállalat kulcsfigurája Jared Kaplan társalapító, aki tavaly figyelmeztetett arra, hogy senki
A Soggy-1000 klónozott SG-1000 konzoljára saját, szerzői jogot nem sértő Forth rendszert fejleszt a szerző, hogy azon közvetlenül, interaktívan programozhasson. A CamelForth-80 Z80-as assembly kódjának
A 2026-os kockázatitőke-piacot a mega-körök uralják, miközben az AI-startupok a globális befektetések 61%-át vitték el 2025-ben – ezért a startupoknak bizonyítaniuk kell a keresletet, a
Íme a Facebook-bejegyzéshez készült, SEO-optimalizált, magyar nyelvű ajánlószöveg: **„Isten nem létezik és nem is létezhet” – írta egykor Iris Murdoch, hozzátéve: „de az, ami Isten
Zelenszkij szerint Ukrajna nem kapott előzetes figyelmeztetést partnereitől az öt orosz ballisztikus rakéta becsapódása előtt, amelyek kijevi polgári infrastruktúrát találtak el, miközben nő a feszültség
Tíz Claude Opus 5.5 ügynököt kértünk fel arra, hogy találjanak egy gyorsabb legrövidebb út algoritmust, és bizonyítsák azt Leanben. 15 órán belül létrehozták a C-HD-t:

Kertészet