Ezen az oldalon a Primo használatához, Primo szoftverek (esetleg hardverek) fejlesztéséhez hasznos eszközöket, megoldásokat gyűjtjük össze.
Konverterek programformátumok között
A Primo programokat magnókazettákon terjesztették, a magnóról lejátszott hangot olvasta be a Primo. A kazettás programfájlok tartalmát az emulátorok számára (valamint WAV hangfáljba való visszakonvertáláshoz) a PTP formátum rögzíti. A Primo-hoz csatolt lemezegységen lévő programok a PRI formátumban vannak archiválva (ezek a lemezegységen található program formátummal azonosak).
A formátumok közötti konvertáláshoz a következő programok használhatók:
Az "Ultimo Primo Bin to PTP file converter" 2024-ben készült és a Fast&Force fejlesztése. Gépi kódú (Z80 bináris) programot tud a Primo PTP formátumába konvertálni. Angol nyelvű leírása a projekthez csatolt readme fájlban olvasható. Ez alapján röviden összefoglalva a használata a következő:
Indítás: bin2ptp file_name.bin load_address
[start_address]
Példa 1: bin2ptp.exe primo_game1.bin 17408
Példa 2: bin2ptp.exe primo_game2.bin 17408 18201
Tudnivalók:
Használati lépések például egy Primo játék fejlesztéséhez:
A Windows alatt futtatható eszköz és forráskódja egy csomagban letölhető (a forráskód egy éjszaka alatt készült el Notepad++-ban, és DotNet 6.0 SDK parancssorral fordítható le).
(c) 2024 by Fast&Force
A PrimoDev fejlesztői környezet
A Varga Zoltán által készített PrimoDev a következőket tartalmazza:
Letölteni itt lehet (85 MB): https://www.sulink.hu/primo/PrimoDev.zip
(Lokális másolat az 1.0 verzióról itt.)
A legfontosabb tudnivalók:
0. Alapok
1. Template mappa
A template mappában található egy sablon, amit bemásolva egy üres mappába lehet új projektet indítani. Fontos, hogy a bat és a c fájl neve azonos legyen. (A bat fájl a saját nevét használja.)
2. PNG fájlok képként
Ha PMG képeket akarunk felhasználni akkor a bat fájl elejére
be lehet illeszteni.
Például:
rem Képek konvertálása
..\PNGToCArray.exe ..\images\startscreen.png
Ez a startscreen.png-ből egy startscreen.c fájlt készít, amit
utána lehet include-olni.
Kb. ilyen formában konvertálja:
// size: 256x96
unsigned char startscreen[3072] = {......}
3. PNG kép megjelenítése
#include <../images/startscreen.c>
Ezzel be tudjuk include-olni.
drawimage(startscreen,VRAMx+16*32,32,96);
4. Sprite-ok
A Játékmotor tartalmaz egy nagyon egyszerű sprite kirakó rutingyűjteményt.
24 sprite-ot tud kezelni, de egyelőre csak 8 pixel széleseket. A magasság tetszőleges.
A kirakás pixelpontosan történik, de a bitléptetést minden kirakásnál elvégzi.
Így kevesebb memóriát használ, de lassabb.
Természetesen az egyszerre történő mozgatáskor egy bizonyos mennyiség felett
villogás léphet fel, de így is ügyes erőforrás gazdálkodással sok mindenre lehet
használni.
5. Tutorialok
A tutorialok mappában találhatók a legfontosabbak, a példaprogramok. Ezek jobban bemutatják a fejlesztés menetét, mint bármilyen dokumentáció.
Készítők
A fejlesztőkörnyezetet, a játékmotort és a példaprogramokat
készítette: Varga Zoltán, 2024.
Grafika: Nagy László
Emulátor: © 2002-2024 Grósz Attila
Köszönet a Z88DK fejlesztőinek.
PNGtoCArray, xpause, hl3ekezet fejlesztője: Varga Zoltán
A z88dk C fejlesztői környezet
A z88dk egy multiplatform C fejlesztői környezet, ami a Z80 processzort is támogatja. Tartalmaz C fordítót, linkert, könyvtárakat különféle Z80 alapú számítógépek programjainak előállításához. Részletek az eszköz oldalán, valamint a kapcsolódó Wiki oldalakon találhatók.
Vass Sándor elkészítette a z88dk-hoz a Primo támogatást, amit befogadtak a projektbe. Így lehet Primóra is programot fordítani és PTP vagy PRI formátumú fájlt generálni.
A PRI-ben assembly kód hívás található, a PTP-ben pedig egy BASIC program indul el 10 A=CALL(...) hívással. Ez utóbbinak az az előnye, hogy amikor a main() C függvény lefut és visszatér, akkor a Primo visszaadja a promptot (és nem lefagy/resetelődik/stb...), továbbá ki lehet írni magnóra és ez alapján be lehet tölteni fizikai hardveren is.
Windows alatt a z88dk telepítéséhez szükséges a letöltött z88dk csomag kibontása egy könyvtárba, a ZCCCFG rendszerváltozó beállítása a {z88dk}\lib\config könyvtárra, valamint a PATH rendszerváltozóhoz a {z88dk}\bin könyvtár hozzáadása (itt {z88dk} jelöli azt a könyvtárat, ahová a kibontás történt). Ezután már használható a fordító.
A z88dk használata
Vass Sándor által a 8kiralyno.zip programhoz adott readme fájl alapján a használat a 8kiralyno.c program lefordításának példáján bemutatva:
PTP formátumba történő fordítás (a warningokkal nem kell foglalkozni):
zcc +primo 8kiralyno.c -o 8kiralyno.ptp -create-app -Cz"-t
ptp"
PRI formátumba történő fordítás:
zcc +primo 8kiralyno.c -o 8kiralyno.pri -create-app -Cz"-t
pri"
Játékfejlesztés
Egy másik jó példa z88dk alapú játékfejlesztésre Sipka Dániel "Raktáros" programja, a részleteket lásd a fejlesztő oldalán.
A Zombi szoftvert Keresztes József fejlesztette. A következőket írta a programról:
"A Zombi szoftver kifejlesztésének ötlete 2011 augusztusára tehető. Mivel a Primo .ptp formátum adott volt, jó lett volna egy olyan szoftver is, ami támogatja egy PC-s szövegszerkesztővel írt Z80 assembly forráskód átalakítását erre a formára. Egyrészt azért, mert lehet nálunk olyan régi program, mely nem magnószalagon maradt meg (nálam pl. papíron), másrészt, hogy az ezután írt programok kényelmesen elkészíthetők legyenek egy PC-s szövegszerkesztővel, és gyorsan futtathatók az emulátorokkal. Továbbá egymás között elég legyen az olvasható Z80 forrást megosztani, a futtatására könnyen képesek legyünk.
A project kezdetben a "z80ptp" nevet viselte, mivel eredetileg csak az volt a cél, hogy a Primo .ptp formáját támogassa. Nekem is Primo számítógépem volt, erre fejlesztettem kisebb programokat az 1980-as években, és jelenleg is ezeket az emulátorokat használom. Azonban ha távolabbra tekintünk, és másokkal beszélgetünk, hamar rájövünk, hogy érdemes a hatókört kiterjeszteni más Z80 processzor alapú gépek irányába. Így tehát a cél az lett, hogy olyan formátumokat is támogasson, melyek leírása hozzáférhető.
A project fő eleme a Z80 fordító, mely gépi kódra alakítja a forrást. A szintaxis a Microkey Primo levelezőlistán résztvevő tagokkal közösen lett kialakítva, de pár egyéb fejlettebb képesség nem került bele, például: makrók használata, include, stringek kezelése. Ezek megvalósítása a fejlesztési időt jóval meghosszabbította volna, és eredetileg én sem terveztem egy mindent tudó komplex fordítót."
A Zombiról további információk a honlapján találhatók: http://xesj.hu/zombi
Az utóbbi időben a honlap tartalma sajnos eltűnt, így az alábbi tartalom a 2011-ben részlegesen archivált verzióból származik:
A program használata:
A Z80 forráskódot írjuk meg kedvenc szövegszerkesztőnkkel, majd
a Zombi-val készítsük el azt a fájl formátumot, amit egyből betölthetünk az
emulátorokba. Miután letöltöttük a Zombi-t, szükségünk van még a Java futtatókörnyezet
legalább 6-os verziójára.
Ha megírtuk az elso.z80 fájlunkat, így lehet elkészíteni a .ptp, .mac, .dic
formátumokat:
java -jar Zombi.jar elso.z80 ptp
A példában a letöltött Zombi-0.6.jar fájlt átneveztük Zombi.jar
-ra, a könnyebb hivatkozás miatt.
Az első paraméter mindig a Z80 forrás fájl, az utána következő paraméterek az
elkészítendő fájl formátumok (ez lehet ptp, mac, cas, dic). Ha a programot paraméter
nélkül indítjuk, akkor a grafikus felülete lesz látható, itt minden beállítás
a felületen adható meg.
javaw -jar Zombi.jar
Az archivált változat és néhány példaprogram:
Várjuk a további információkat, vagy a program új weblapjának elérhetőségét.
Néhány klasszikus segédprogram és eszköz, ami hasznos lehet Primo szoftverek fejlesztéséhez, valamint a Primo használatához:
(A programok szerzői, valamint Majzik István, Varga Viktor)