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:


A BIN2PTP eszköz

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:

  1. Z80 assembly program készítése a Primohoz tetszőleges Z80 assembler IDE segítségével.
    Ehhez hasznos információk találhatók a Primo hardver kézikönyvben valamint a Primo szoftver kézikönyvben.
    Fejlesztőeszközként javasolt a TVC Developer Tool.

  2. A Z80 kódot a $4400 címtől (17408 decimális) kell elhelyezni.
    Példakód a TVC Developer Tool eszközben:

    org $4400 ; organize code to RAM area of Primo
    genbinary ; TVC DevTool will generate raw binary file of machine-code
    jp START_MUSIC
    dw 399 ; 32.7 Hz C1
    dw 422 ; 34.65 Hz CISZ1
     ...
     ...
    dw 0 ; 0 Hz MUTE

    START_MUSIC nop ; the program code
     ...
     ...

  3. A Z80 assembly programból Z80 bináris készítése.
    A TVC Developer Tool eszközben ez megtehető a CTRL+SHIFT+B gombbal, így a kimenet egy bináris gépi kódú fájl lesz .bin kiterjesztéssel.

  4. A bin2ptp eszközzel a PTP fájl elkészítése:
    bin2ptp.exe music.bin 17408

  5. Az Ultimo emulátor futtatása:
    - Magnó menü, a PTP fájl csatolása.
    - LOAD <return> parancs az emulátorban (emulált Primo-ban).
    - A program betöltődik és automatikusan elindul.

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 szoftver

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.


Egyéb hasznos segédprogramok

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)