"Szóval fáj látni, hogy tökéletesen hiába fáradoztak vele." Ezzel egyet tudok érteni. Mondjuk ha kicsit erőteljesebb vasat (Enterprise 2006 :-) sikerülne tolni az EXOS alá, akkor használhatóbb lenne :-)
Ajjaj, ezekszerint mégsem világos. Képzeld azt, mintha a programod ORG 0-val lenne fordítva. A file-ban így is van, minden cím 0-hoz képest relatív. Amikor az EXOS betölti, akkor viszont nem a 0000 címre teszi, hanem bárhová. Ezért az összes címhez hozzáadja azt az értéket, ahova a programod elejét tölti. Ezt a "modul load" végzi el, a memóriában már az így korrigált értékek lesznek. Betöltés után tehát már minden helyreáll. Ha pl. 2C34-re tölti be a programot, akkor a végeredmény (a betöltés után!) az lesz, mint ha ORG 2C34-gyel fordítottad volna a programot.
Az EXOS a fájl bitjei alapján dönt, azt pedig, hogy milyen jelzőbitek kerülnek a fájlba, az Asmon mondja meg a te utasításaid alapján: ha .CSEG akkor áthelyezhető, ha .ASEG, akkor abszolult, vagyis az a érték amir leírtál.
"a számrendszerek keverése miatt" Hát igen, én is sejtettem, már írás közben, hogy nem egészen kóser. De adatnak nálam hexa a natív, viszont sorszámként nem láttam még. Próbáltam kimondani: "0D-edik", nem tetszett :-))
Most, hogy egy kicsit jobban belemásztam a hangrészbe, jöttem rá, hogy mennyi-mennyi energiát öltek bele. Eleve burkológörbét SW-ből megvalósítani, queue-t csinálni stb. A hangrész tekintélyes méretű helyet foglal a ROM-ban, igencsak megdolgoztak vele. Szóval fáj látni, hogy tökéletesen hiába fáradoztak vele.
Igen, meg lehet, én is megcsináltam, csehszlovák pisztolpákával... (bár az igaz, h két EP-m van, így neki mertem vágni, ha valamiért elrontom, még marad egy)
Végre működik a programom. Az volt a baj, hogy a saját megszakítási rutinomból nem szabad exos-t hívni, valami hiányzik a rutinomból (lehet, hogy az 1-es lapot is el kellett volna mentenem?)
Mondjuk így jobb is, mert képernyő törlésnél, nem áll meg egy kicsit a hang (az exos hívás ugye az elején csinál egy DI-t). Most saját képernyőtörlő rutinom van, ami 20h-val tölti fel a videomemóriát.
emulátor-hiba: a joystick olvasást CALL 0EFD7H-val csinálom (3-as lapon a ROM0 van), így ki tudom kerülni az EXOS hívást (joy olvasás). Na és az emulátoron ez nem működik. Hasonló hibám már volt, amikor a spectrisben a külső joy olvasást eredetileg a portok olvasásával csináltam meg. Ha emlékeztek rá, írtam is akkoriban, hogy igazi ep-n működik ext1-el, emulátoron meg nem.
Tápom sajna csak egy van. Illetve van egy Spectrum tápom is, azzal is működött a gép, de hosszabb ideig nem használtam vele. Kipróbálom, baja nem lehet...vagy igen?
Le is fagy a gép? Akkor szinte biztos, hogy a táp. A tápfeszültség ingadozása egyébként a modulátor működését is befolyásolja.
Ha jól emlékszem 1-2 hónapja Gafz kollégának volt hasonló problémája, neki is a tápja volt rossz. Sajnos az EP tápokban szeret egy idő (10-20 év :-) után kipusztulni az egyenírányító, ennek első szakasza az ingadozva leadott fesz...
Rögtön aktualizálnám is a milyen floppyt leírást :-) Bármilyen PC-s floppy használható, de oda kell figyelni pár dologra: PC-n minden floppy B: meghajtónak van jumperelve, így a kábelben pár drót megtekerésével oldják meg az A: és B: megkülönbeztetését. Régebbi floppykat oda lehet jumperelni amelyiknek EP-n használni akarjuk (A:-D: tetszőleges, floppyn lehet a jelelölés A-D, vagy 0-3, vagy 1-4), sajnos az utóbbi 7-8 évben gyártott meghajtókról már hiányzik is a beállítási lehetőség, ezeket vagy B:-nek használjuk, vagy a szalagkábellel kell játszani. 180,360,720-as meghajtókkal nyílvánvalóan semmi gond. 1,44-es simán működik 720-asként, 16Mhz-re turbosított WD-vel pedig 1,44-esként is. (Arra kell figyelni, hogy ha DD-s kislemez hiányában HD-s lemezt akarnánk 720-asra formázni, akkor szigetelőszallaggal ragasszuk le a "méretlukat", azt ami az írásvédelmi lukkal átellenben van.) 1,2-es meghajtókkal van némi gond, mivel ezek eltérő fordulatszámúak (360 rpm, a normál 300 helyett). Az ősi meghajtókat át lehetett jumperelni 300-as fordulatúra, így akkor lehetett használni 720-asnak. Hogy egy ilyen átjumpereltet 1,2-esnek használjuk, ahhoz 13,3333333Mhz-re turbosított WD kell. Ha nem átjumperelhető az 1.2-es floppynk, akkor 720-asnak csak 9.6 Mhz-re turbosított WD-vel lehetne használni, ekkor az 1.2-es módhoz 16 Mhz-es WD kell, mint ahogy az 1.44-eshez is.
Igen, pontosan ezt produkálja. Már bekapcsoláskor sem tökéletes a kép, piros vagy kék pöttyös, néha kicsit, néha jobban, és fokozatosan kezd elromlani, váltogat FF-be és vissza, aztán ugrálni kezd, végül futni. Ez kb. másfél óra alatt megy végbe. Tudom, hogy a modulátoron csvarhúzóval utána lehet állítani, de mire leszedem a fedelet, lefagy a masina. De tulajdonképpen nem olyan nagy baj, az EP-t igazából csak a töltéshang által okozott nosztalgiaérzés miatt használom, azzal az ürüggyel, hogy a programjaimat átviszem kazettáról PC-re, hogy az emu megegye őket:) Arra meg van két gép, legfeljebb óránként cserélem őket:)
Az Enterpress-ben található leírás alapján meg tudja a composit kimenetet csinálni egy igazi EP-n az is aki amúgy nem pákával a kezében alszik el és kel fel? ;-)
Na igen az RF jel használata az első amit el kell kerülni :-) Anno már a Junoszty tévénkre is csináltunk composit video bemenetet :-) Mondjuk színes megjelenítőknél gond, hogy az EP alapban csak monochrom composit jelet tud. Némi forrasztgatással lehet bele színest bütykölni. De legcélszerübb, és egyben a legjobb minőségű az RGB jel használata (Ehhez SCART csatlakozó kell a tvre/monitorra).
Ez egy picit félreérthető lett a számrendszerek keverése miatt :-) Tehát: Ha tehát a programodban a 13-ik byte-ot címzed, akkor 000DH lesz (a modulban). Amikor az EXOS betölti a modult, akkor a programodat ahova tölti, ahhoz képest 13-at ír helyette. Ha tehát 3C12H-n kezdődik a programod, akkor 3C1FH lesz.
Ha elromlás alatt azt érted, hogy odébb megy és emiatt a kép minősége romlik, akkor az ahogy én tudom azért van mert a gépben lévő modulator nem a legstabilabb. Úgy emlékszem az Enterpressben olvastam erről.
Anno nekem akkor volt a legjobb a kép mikor nem volt a adás a királyi tvben (akkor még csak 1 csatorna volt és hétfőn nem volt adás :-))
Kis korrekció így lefekvés előtt. :) Csak 25 hangot tud tárolni, hangcsatornánként. Nincs sok értelme tehát előre kiküldeni sok hangot. Belátom, sokkal-sokkal macerásabb, mint a HW-t direktben piszkálni. Még az is lehet, hogy sokkal lassabb is (az elviselhetőnél). Mégis, elvileg ez a helyes út. A gyakorlat persze ellentmondhat.
Hogy valódi választ is adjak: A "relloc" érték ilyenkor a program elejéhez képest relatív. Ha tehát a programodban a 13-ik byte-ot cłmzed, akkor 0013 lesz (a modulban). Amikor az EXOS betölti a modult, akkor a programodat ahova tölti, ahhoz képest 13-at ír helyette. Ha tehát 3C12-n kezdődik a programod, akkor 3C1F lesz. Remélem, így már érthető.