ZXCF/Mátrix működése

Mátrix, ZXCF kérdések, válaszok...
Avatar
Zozosoft
Speccyalista
Hozzászólások: 805
Csatlakozott: 2012.01.06. 13:03
Kapcsolat:

ZXCF/Mátrix működése

Hozzászólás Szerző: Zozosoft »

Sziasztok!

Nem tudom, hogy ti hogyan vagytok vele, de én nem szeretem a titokzatos fekete dobozokat, amikben ki tudja mi történik :D
Megpróbálom összefoglalni, mi az amit eddig összeszedtem a ZXCF/Mátrix működéséről:
Az ugye köztudott, hogy a buszcsatlakozó ROMCS vezetékével le lehet tiltani a belső ROM-ot, és helyette a csatlakoztatott eszköz saját ROM programját futtatni.
Jelen esetben a ROM szerepét egy elemmel táplált SRAM látja el, ami lehetővé teszi a "ROM" program könnyű módosíthatóságát, beállítások tárolását, és megannyi extra funkciót. (Mondjuk ez a teljes SRAM használat nem biztos, hogy 100% megbízható megoldás, többen is találkoztak már azzal, hogy csak úgy megsérült a rendszer... én inkább egy FLASH ROM IC-t használtam volna a ROM programok számára, ezt is könnyen fel lehet tölteni Z80-al is, és mellé egy SRAM IC a beállításoknak, extra funkcióknak. Így SRAM sérülés esetén is egy alap rendszer el tudna indulni, nem kéne magnóról újratelepíteni az egészet.)

Ez az SRAM lehet 512/1024K méretű (az interface típusától függően), ez a terület 16K-s lapokra van osztva amely a Z80 0. lapjára, azaz a Spectrum ROM helyére lapozható be. A rendszer lelke tehát a lapozó regiszter, ami CF kártya használatakor 10BFh I/O címen található, USB esetén 3Fh címen (ez okozza azt, hogy a Mátrixon újra kell telepíteni a ResiDOS-t, ha a másik csatlakozót szeretnénk használni. Azt még nem értem, hogy miért volt erre megoldásra szükség... A ZXATASP is már ezt az SRAM-os megoldást alkalmazta, ott 029Fh a lapozó regiszter címe.)
A regiszter csak írható, D0-D5 bitekkel választjuk ki a kívánt memórialapot, D6=1 esetén írható az SRAM, D7=1 pedig letiltja ROMCS jel generálást, azaz ilyenkor a gép eredeti ROM-ja érhető el. Viszont ha engedélyezve van az írás, akkor a ROM területre történő írás végbe megy a kiválasztott SRAM lapon! (Van a 48-as ROM-ban is olyan bug, ahol a ROM-ra ír, de játékokban is előfordul.)
A lapozó regiszter értéke Resetnél 00h, azaz a 0. SRAM lap van kiválasztva, nem írható, és az SRAM olvasható a ROM helyett. Magyarán a gép bekapcsolásakor, vagy Resetnél az SRAM legelejére (0. lap) töltött ROM tartalom indul el. Ez eredményezi azt, hogy sérült tartalom esetén nem indul el a gép, csak színes krix-kraxok vannak a képernyőn. Ennek áthidalására készült a titokzatos UPLOAD jumper (ami a mi Mátrixainkon kapcsoló), ezzel fizikailag tiltjuk le az interface ROMCS jelét, így amikor a ResiDOS telepítő programja már szoftveresen kikapcsolta a lapozó regiszteren, akkor lehet visszakapcsolni.

Nézzük mit is csinál a ResiDOS telepítő:
residosbas.txt
(1.62 KiB) Letöltve 56 alkalommal.
25500 (639Ch) címre betölt egy CODE blokkot, ami tartalmazza a telepítéshez szükséges gépi kódú rutinokat, valamint magát a telepítendő ResiDOS binárist.
A betöltött blokk elején egy ugrótábla található, így a különböző verziókban is ugyanott hívható az egyes szubrutinok.
25500 (639Ch): a gép ROM tartalmának átmásolása C000-FFFFh területre
25503 (639Fh): a gép újraindítása
25506 (63A2h): vissza ad egy kódot, ettől függ, hogy milyen szöveggel szóli fel a Jumper átállítására. Megjegyzés: a jumper állása nincs ellenőrizve, tehát nem azért írja ezt ki, mert nem jó állásban van, hanem azért mert innentől mindenképpen szükséges az SRAM elérhetősége.
25509 (63A5h): ResiDOS telepítése
25512 (63A8h): ROMCS jel tiltása, valamint 128-as gépeken a 48-as ROM belapozása
25515 (63ABh): SRAM méretének megállapítása, komoly ellenőrzést nem végez tehát az esetleges hw hibákat nem szűri ki, minden egyes SRAM lap 0. bájtját vizsgálja, hogy tudja-e nullázni. A 0. bájtokat elmenti (erre szolgál az a csomó 0 bájt a CODE blokk elején), majd a végén visszaírja, így az SRAM tartalom megmarad a teszt végére.
25518 (63AEh): az esetlegesen már telepített ResiDOS verziószámát kérdezi le
25521 (63B1h): a jelenleg telepített ResiDOS-ról mondja meg milyen interface-hez való. Ez az Upgrade kérdésnél számítana, viszont én akárhogy is nézem, az Upgrade funkció nincs megírva... így csak két hibaüzenet között választhatunk :oops:
25524 (63B4h): a CODE blokkban található ResiDOS verziószámát adja meg
25527 (63B7h): a CODE blokkban található ResiDOS interface típusának képernyőre írása

Maga a lényegi telepítés ez :D :
ld hl, 6774h
ld de, 0
ld bc, 2F55h
ldir
(Az értékek verziófüggően változhatnak.)

Persze mindez a megfelelő belapozás után, az SRAM 0. lapjára kerül a ResiDOS így ezzel indul a gép. Az LDIR után még további beállításokat is végez, pl beleírja, hogy mennyi SRAM-t tartalmaz a rendszer.
Az 1. lapra pedig gép 48-as ROM-ja kerül (128-ason ez előzőleg belapozva), amelyet először átmásol a RAM-ba, majd a megfelelő pontokon módosítja, és ezt a módosított verziót másolja az SRAM 1. lapra.
A módosítások során egy lapozó rutint épít be az RST 8 és NMI rutinok helyére, így az RST 8 hívás lesz a kulcs a ResiDOS elérésének, ilyet épít be a billentyűzet lekérdezéshez, a LOAD/SAVE rutinokba, utasítás elemzéshez, a CLOSE parancshoz, valamint a bejelentkező szöveg kiírásához.
A hozzászólást 1 alkalommal szerkesztették, utoljára Zozosoft 2012.02.16. 11:08-kor.
Avatar
Bali
Alapító tag
Hozzászólások: 2503
Csatlakozott: 2012.01.06. 12:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Re: ZXCF/Mátrix működése

Hozzászólás Szerző: Bali »

Na ez szép munka, remélem lesz folytatása. :)
Igyekszem előtúrni neked a kapcsolási rajzokat.
-= Bali =-
(c) 1983-2017 Evil-Soft
Avatar
Zozosoft
Speccyalista
Hozzászólások: 805
Csatlakozott: 2012.01.06. 13:03
Kapcsolat:

Re: ZXCF/Mátrix működése

Hozzászólás Szerző: Zozosoft »

Bali írta:Igyekszem előtúrni neked a kapcsolási rajzokat.
Van a Mátrixról is? Sami oldalán csak ZXCF-ről találtam, a Mátrixról nem publikált ilyen részleteket :-(
Itt van a két ZXCF rajz a leírásból kivágva.
Vannak bennem kérdőjelek, amikről faggatnám a hw-es kollégákat. Ezeknek a kérdéseknek lehet, hogy van köze a tapasztalt problémákhoz: időnkénti SRAM sérülés, ill. a nem megy minden géppel (pl az én Mátrixom eddig egyetlen 48-as géppel se :-( ) problémához.
ZXCF_v141.png
Avatar
Zozosoft
Speccyalista
Hozzászólások: 805
Csatlakozott: 2012.01.06. 13:03
Kapcsolat:

Re: ZXCF/Mátrix működése

Hozzászólás Szerző: Zozosoft »

ZXCF_v21.png
Avatar
Bali
Alapító tag
Hozzászólások: 2503
Csatlakozott: 2012.01.06. 12:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Re: ZXCF/Mátrix működése

Hozzászólás Szerző: Bali »

Nekem van többféle eszközöm, a legelső sorozatú ZXCF, aztán az utolsó verziójú ZXCF+, illetve a ZX Mártix. Én azt tapasztaltam, hogy a ZXCF stabilabb és mivel én előszeretettel használom CF-fel így sokszor azokat használom. Például ezt már többen jeleztétek, hogy a Task manager ZX Mátrix-nál elszáll, ugyanazon ResiDOS 2.25 alatt ZXCF-fel nem tapasztaltam. Ettől ez még lehet akár szoftveres probléma is, hisz mindegyik eszközre külön verzió létezik.
Természetesen vannak Mátrix rajzok is, hisz az alapján készültek a példányok, de azt csak neked küldöm el ide nem tehetjük fel, ezt Sami kérte.
-= Bali =-
(c) 1983-2017 Evil-Soft
Avatar
Zozosoft
Speccyalista
Hozzászólások: 805
Csatlakozott: 2012.01.06. 13:03
Kapcsolat:

Re: ZXCF/Mátrix működése

Hozzászólás Szerző: Zozosoft »

Bali írta:Ettől ez még lehet akár szoftveres probléma is, hisz mindegyik eszközre külön verzió létezik.
A legutolsó ZXCF-nek ugyanaz a ResiDOS-a mint a CF üzemmódú Mátrixnak, így ha az stabilabb, akkor egyértelműen valami a hw-ben lesz.
Avatar
Zozosoft
Speccyalista
Hozzászólások: 805
Csatlakozott: 2012.01.06. 13:03
Kapcsolat:

Re: ZXCF/Mátrix működése

Hozzászólás Szerző: Zozosoft »

A most letölthető leírásban van egy ilyen megjegyzés: "Changed 2011-02-25, page 5 changed 2 caps value from 100nF to 47pF marked in red
text on pic. (typo error)"
A mi Mátrixainkba milyen kondenzátor került?
Avatar
Bali
Alapító tag
Hozzászólások: 2503
Csatlakozott: 2012.01.06. 12:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Re: ZXCF/Mátrix működése

Hozzászólás Szerző: Bali »

A doksi szerint amiből rendeltük az alkatrészeket abban nincs 47pf, szóval nyilván 100n-sak vannak beépítve.

Rákérdezek Saminél, hogy mi miatt kellett a módosítás.
-= Bali =-
(c) 1983-2017 Evil-Soft
Avatar
Zozosoft
Speccyalista
Hozzászólások: 805
Csatlakozott: 2012.01.06. 13:03
Kapcsolat:

Re: ZXCF/Mátrix működése

Hozzászólás Szerző: Zozosoft »

Ez gyors válasz volt :D
Avatar
Bali
Alapító tag
Hozzászólások: 2503
Csatlakozott: 2012.01.06. 12:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Re: ZXCF/Mátrix működése

Hozzászólás Szerző: Bali »

A kondenzátorok kapcsán ezt válaszolta Sami:
Hi Bali,

The 2 caps, If they have wrong value the second USB slot might not work.

Sami
-= Bali =-
(c) 1983-2017 Evil-Soft
Válasz küldése

Vissza: “ZX Mátrix sarok”