Nagy Dani javított Spectrum ROM-ja

Tekintsük át milyen módosított ROM-ok vannak, mit tudnak...
Avatar
Bali
Site Admin
Hozzászólások: 2226
Csatlakozott: 2012.01.06. 13:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Nagy Dani javított Spectrum ROM-ja

Hozzászólás Szerző: Bali » 2019.04.25. 11:53

Itt található a teljes forrása, amiről beszélt az előadásában.

https://github.com/nagydani/zx-rom-mods/
-= Bali =-
(c) 1983-2017 Evil-Soft

Avatar
Bali
Site Admin
Hozzászólások: 2226
Csatlakozott: 2012.01.06. 13:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Re: Nagy Dani javított Spectrum ROM-ja

Hozzászólás Szerző: Bali » 2019.04.25. 17:08

Mellékelem a mostani 128-as ROM-ot, amin nagy erőkkel dolgozik, tehát nyilván még nem végleges dologról beszélünk. Kicsit faggattam ma a projekt állásáról. :)

128-0.rom
(16 KiB) Letöltve 6 alkalommal.
128-1.rom
(16 KiB) Letöltve 6 alkalommal.
Idézem Danit a beszélgetésünkből:
A 128-k ROM is szépen alakulgat egyébként. Most még egy picit nehézkes használni, mert csak tokenizálva fogadja el a kulcsszavakat és még én is elfelejtem rendszeresen, hogy melyiket melyik billentyű kombinációra tettem.
Úgyhogy most megelégeltem a dolgot és végre megírom a tokenizálót.

De egyébként már elég szépen működik:
- @cimkék: bárhová a programban el lehet őket helyezni és GO TO és GO SUB-ba sorszám helyett beírni

- Bitenkénti operátorok számok és stringek között is: &, |, >< (ez a XOR), ' (ez meg a bitenkénti NOT, a negálandó érték után kell tenni az aposztrófot)

- Egyéb operátorok: % (modulo)

- Számrendszerek: HEX, OCT (a BIN mellé), illetve STR$(a,b) ami b alapú (2 és 36 között bármi lehet) számrendszerbe konvertálja a-t. Sőt, van STR$(a,b,c), ahol c a törtpont utáni jegyek száma. Lehet formázásra használni.

- Elvis operátor: c?(x,y...) ahol c kiválasztja, hogy x,y ... kifejezések közül melyik értékelődjön ki (c=0 esetében x).

- Valamint lehet váltózóval közvetlenül operációt végezni, megspórolva egy megkeresést pl.

Kód: Egész kijelölése

LET a+=1
hozzáad 1-et a-hoz.

- Ezenfelül vannak lokális változók (szubrutinokhoz illetve ciklusokhoz), valamint argumentum nélküli NEXT, ami visszaállítja a ciklusváltozó FOR előtti értékét, ha véget ér a ciklus. Tehát lehet ilyet írni:

Kód: Egész kijelölése

FOR i=1 TO 10
FOR i=1 TO 10
PRINT ".";
NEXT
PRINT
NEXT
És ez bizony szépen kirajzol egy 10x10-es pontrácsot, és semminek az értékét nem változtatja meg.

- Debugoláshoz van STACK parancs, ami kiírja ember által olvasható formában a stack trace-t.

Meg még egy pár apróság.

A "pár apróság" egyike:

Kód: Egész kijelölése

POKE USR "a",255,129,129,129,129,129,129,255
Hogy ne kelljen már ciklust meg DATA-t írni egy nyamvadt UDG átrajzolásához.
A POKE elfogad tetszőlegesen hosszú listát számokból és stringekből.

És még van szabadon majdnem 10 kilobyte-om a 16-ból, szóval elég baba lesz.

48-as ROM:
Kicsit mozog, de a 48k üzemmódot nem befolyásoló dolgokban. A végén van egy ugrótáblázat a másik ROM-ba bizonyos hibák esetén történő átlapozáshoz, ami 48k módban nem csinál semmit. Ez bővülget.

(A 128.1.rom egy 48-as rom)
-= Bali =-
(c) 1983-2017 Evil-Soft

Avatar
Bali
Site Admin
Hozzászólások: 2226
Csatlakozott: 2012.01.06. 13:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Re: Nagy Dani javított Spectrum ROM-ja

Hozzászólás Szerző: Bali » 2019.04.25. 18:13

Egy kis segítség:
Karaktertábla itt van, ebből ki lehet találni, hogy hogyan lehet bevinni kulcsszavakat addig, amíg betűnként nem működik:
https://github.com/nagydani/zx-rom-mods ... r_table.md
-= Bali =-
(c) 1983-2017 Evil-Soft

csaba
Speccyalista
Hozzászólások: 245
Csatlakozott: 2012.01.09. 19:18
Rádióamatőr hívójel: HG5BMU
Tartózkodási hely: Surány
Kapcsolat:

Re: Nagy Dani javított Spectrum ROM-ja

Hozzászólás Szerző: csaba » 2019.04.26. 07:27

Az újonnan felfedezett romoknak nemsokára nyithatunk egy új if2 epromot.
Jó lenne Danival konzultálni arról, hogy az új romjában legyen lehetőség 48k-gépen használva az if2rom segítségével át tudna lapozni egy másik rom lapra az új parancsok értelmezéséhez.
Mivel az eredeti 128k-kompatibilis lapozást ott nem tudjuk megvalósítani, a lapozáshoz más utasítást kell végrehajtani.

csaba
Speccyalista
Hozzászólások: 245
Csatlakozott: 2012.01.09. 19:18
Rádióamatőr hívójel: HG5BMU
Tartózkodási hely: Surány
Kapcsolat:

Re: Nagy Dani javított Spectrum ROM-ja

Hozzászólás Szerző: csaba » 2019.04.29. 09:21

pár ötlet Daninak:

-PRINT méretezhető "nagyítható" karakterekkel
-gpio portok kezelése mint a RPI-ben vagy Arduino -ban, parancsokkal (I2C, SPI, RS232, ...)
-megszakításban futó basic programrészek lehetősége
-a sebesség növeléséhez compiler szerű program fordítás megadható basic részekre, egy fenntartott ram területre (pl. a megszakításban programokhoz)
-ha már úgyis van SPI, legyen mindjárt kettő és az egyikre egy TFT LCD kijelző(320x240) amin megjelenik a képernyő
pl. ILI9341 vezérlővel elég elterjedt és olcsó modul. (a vezérlést a sebesség és régi programok kompatibilitása miatt a hw-nek kellene tudnia), de ha csak tanuló gépet szeretnénk elég lenne ROM-ból vezérelni a kijelzőt

Avatar
Bali
Site Admin
Hozzászólások: 2226
Csatlakozott: 2012.01.06. 13:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Re: Nagy Dani javított Spectrum ROM-ja

Hozzászólás Szerző: Bali » 2019.04.29. 23:03

Dani írta: Ezeknek egy része már nekem is eszembe jutott, sőt, tervbe van véve. Egyelőre hadd legyen meglepetés, hogy melyek.

Addigis, a legfrissebb változat. Azt hiszem, kijavítottam minden konzol bugot, és a betűnkénti bevitel lett a default (ez már így is marad). Felmatricáztam egy billentyűzetet, úgyhogy kezdődhetnek az emberkísérletek!

Visszakapcsolni hagyományos tokenes módba Extend+space-szel lehet, ha K módban ütsz egy space-t, onnantól lehet betűnként gépelni.
128.rom
(32 KiB) Letöltve 7 alkalommal.
128-0.rom
(16 KiB) Letöltve 7 alkalommal.
128-1.rom
(16 KiB) Letöltve 7 alkalommal.
-= Bali =-
(c) 1983-2017 Evil-Soft

Válasz küldése

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég