Welcome, Guest. Please login or register.


Author Topic: EXDOS (Read 76009 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3939
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 34.0.1847.116 Chrome 34.0.1847.116
    • View Profile
Re: EXDOS
« Reply #195 on: 2014.April.12. 23:12:43 »
Na oks, akkor tehát egy EXDOS bugrol beszélünk (már hogy Zozo) és annak egy tulajdonságáról (hogy nem kell minden eszköz kezelő a rendszer szegmensen legyen kötelezően), ami egy ilyen flexibilitási jelenség/bug akkor, elvben megírták hogy ez így legyen, csak aztán valszeg az életben nem tesztelték, mert soha senki nem írt olyan eszköz meghajtót, ami ne akart volna a rendszer szegmensre beférni ?

Ergó a bug javítása nélkül is lehetne tökéletes IDE/SD meghajtót írni, ha nem érdekelne az bennünket hogy a rendszer szegmenst illegálisan használó programok nem futnak ?

És az hogy lehet hogy régen, mikor voltak azok a sok -sok mindenféle hardveres fejlesztések az EP -hez (egér, hardver óra, tudomisénmégmi), azok mind valahogy más interfészeken csatlakoztak, amikben nincs ez a bug ? Vagy azok is mind be akartak férni a rendszerszegmensre ? Vagy ez csak egy EXDOS bővítőknek dedikált bug, és semmi mást nem érint ?
Z80 System

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #196 on: 2014.April.12. 23:22:47 »
Quote from: Z80System
elvben megírták hogy ez így legyen, csak aztán valszeg az életben nem tesztelték, mert soha senki nem írt olyan eszköz meghajtót, ami ne akart volna a rendszer szegmensre beférni ?
Így van.

Quote
Ergó a bug javítása nélkül is lehetne tökéletes IDE/SD meghajtót írni, ha nem érdekelne az bennünket hogy a rendszer szegmenst illegálisan használó programok nem futnak ?
Igen. Majd bele is kell tenni ezekbe, hogy vizsgálja meg, hogy hiba javított-e az EXDOS (legegyszerűbb lesz, ha azt majd 1.4-nek nevezzük el), és ha nem, akkor rendszerszegmenses módon működjenek.

Quote
Vagy ez csak egy EXDOS bővítőknek dedikált bug, és semmi mást nem érint ?
Így van.

Offline Povi

  • EP addict
  • *
  • Posts: 1965
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 34.0.1847.116 Chrome 34.0.1847.116
    • View Profile
    • http://povi.fw.hu
Re: EXDOS
« Reply #197 on: 2014.April.13. 08:54:47 »
Úgy gondolnám, hogy az EXOS / EXDOS nem is annyira komplex rendszer (oké, 8 bites környezetben talán ez a legösszetettebb), és mégis mennyi mindenre kell figyelni. Ezek után nem csoda, hogy pl. a Windows évekig mennyire instabil volt (kék halál és társai), ami nagyságrendekkel bonyolultabb, mint egy EXOS. És ezek után azt is el tudom képzelni, ennek analógiájára, hogy nem a Windows volt rosszul megírva, ha nem a hozzá írt alkalmazások / meghajtók kezelték illegálisan a függvényeket stb. Mint ahogy a fix memórialapozással operáló Spectrum átiratok esetében sem az EXOS hibája, ha összeomlik a rendszer... :-)

Az is lehet, ha meglenne a hiányzó EXDOS bővítő leírás, abban le lenne írva, hogy csak rendszerszegmenst használhatja az EXDOS-bővítő :-)
*** Speicherplatz zu klein

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #198 on: 2014.April.13. 19:26:13 »
Meg van egész konkrétan a hiba:
Amikor FAT szektorokat kezel, akkor a meghajtó adat területről átmásol adatokat az adott szektort tartalmazó szektorpuffer fejlécébe, többek között a FAT méretét, és a hozzá tartozó meghajtó kezelőprogramjának címét (szegmens, cím).
A szektorpufferek csak a rendszerszegmensben lehetnek.

Amikor meghajtó műveletre kerül sor, akkor az 1-es lapon a kezelőprogram szegmense van, C-ben a transzferszegmens száma, IX-ben az 1-es lapos transzfercím. Az EXDOS lapozórutinja (ami a rendszerszegmensben van), lapozza át az 1-es lapról a 3-asra a kezelőprogram szegmensét, és az 1-esre a transzferszegmenst.

A CA5Dh (1.3-ban) kezdődő rutin kiveszi a szektorpuffer fejlécéből a tárolt adatokat, belapozza a kezelőprogram szegmensét a híváshoz, és a puffercímét 1-es lapra konvertálja.
A bug a hívás után jön: CA8Ah-tól kezdődő rutinban IX-et használva címzi a szektorpuffer fejlécét, pl. a FAT méretet használja, hogy az adott FAT szektor címét kiszámolja a következő FAT példányban.
Viszont az IX az 1-es lapra van konvertálva, így ha kezelőprogram nem a rendszerszegmensben van, akkor más szegmens van az 1-es lapon, és jön az, hogy téves adatokat olvas!

A helyes megoldás, hogy vissza kell konvertálni az IX-et a 2-es lapra, majd az ismételt hívás (következő FAT példány) előtt újra 1-es lapra konvertálni. Töprengek rajta de ez az eredeti helyére nem fog beleférni... így csak az 1.3-ban lehet kijavítani, abban van szabad hely. Lesz belőle 1.4, így akkor a bővítő programok tudják ellenőrizni, hogy hibajavított-e az EXDOS.

Offline geco

  • EP addict
  • *
  • Posts: 5728
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
Re: EXDOS
« Reply #199 on: 2014.April.13. 19:35:34 »
:smt041

Offline Ep128

  • EP addict
  • *
  • Posts: 1710
  • Country: hu
  • OS:
  • Windows Vista/Server 2008 Windows Vista/Server 2008
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • Honlapom
Re: EXDOS
« Reply #200 on: 2014.April.14. 00:49:20 »
Grat! :-)

Offline Lacika

  • EP addict
  • *
  • Posts: 2946
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://www.ep128.hu
Re: EXDOS
« Reply #201 on: 2014.April.14. 17:46:38 »
Wow! És ha új verzió lesz, akkor standard lesz benne a FILE-bővítés az újratömörített ISDOS mellett? :oops:

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #202 on: 2014.April.14. 18:49:48 »
Quote from: Lacika
Wow! És ha új verzió lesz, akkor standard lesz benne a FILE-bővítés az újratömörített ISDOS mellett? :oops:
Toronyóra lánccal, nem kéne? :twisted: Miért pont az EXDOS-ban?
Majd meglátjuk, az elsődleges prioritás az lesz, hogy a TVC-sek által csinált FAT16 dolgot belebütykölni az EXDOS-ba.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #203 on: 2014.April.21. 11:28:42 »
Az általunk ismert legrégebbi verzió a 0.3-as, ami csak 2006-ban került elő:
http://enterpriseforever.com/userpix/12_exdos03_1.png

Az első kiadott verzió az 1.0, ami a gyári EXDOS kártyákon volt.
http://enterpriseforever.com/userpix/12_exdos10_1.png

A kód növekedése miatt több parancs is ki lett véve, többségük az ISDOS-ban lett elérhető: ATTR, EXIT, ATDIR, ASSIGN, BUFFERS, MAPDISK. Ezt már korábban is tudtuk, most felfedeztem, hogy volt még egy speciális rendszerparancs is: "EXDOS",0FEH, ami bővítő meghajtó rendszerbecsatolására való, a korábban már beazonosított FISH 24-es hívás használatával.

A következő verzió volt az 1.2 (szintén 2006-ban került elő), ami az 1.0 továbbfejlesztett, javított verziója, de nem került kiadásra, valószínűleg az angol cég összeomlása miatt. Azonban ez a kód került a németekhez, amit forrás szöveg szintjén módosítottak, gyakorlatilag minden szövegkiíró rutinba beletettek egy elágazást: lekérdezi a 144-es EXOS változót, és ettől függően veszi az angol vagy a német szöveget. Az eredeti angol tömörített szövegrendszert kidobták, és a második szegmensre rakták szimpla szövegként az angol és német szövegtáblákat. Billentyűfigyelésnél (Retry,stb) szintén beletették ezt a 144-es változó lekérdezős elágazást.
Őszintén szólva meglehetősen primitív programozással oldották meg, pl a sok 144-es változó lekérdezést ki lehetet volna rakni egy szubrutinba, és CALL-al hívogatni ahonnan kell, sok bájtot megtakarítva. És csak az egészen kezdő programozó használnak különálló LD B,n LD C,n utasításokat az egy bájttal rövidebb LD BC,nn helyett :twisted:

Ez a kétnyelvű, 1.3-as verzió került a német EXDOS-al egybeépített floppy meghajtókba. A sok plusz szöveg miatt a ROM mérete immár 32K, rengeteg kihasználatlan hellyel. A parancskészlet az 1.0-hoz képest változatlan.
http://enterpriseforever.com/userpix/12_exdos13_1.png

Ezután jön az általunk leginkább ismert angol-magyar verzió:
Az az egyszerűbb része, hogy a német szövegek magyarra lettek cserélve. Sokkal izgalmasabb, hogy 4 korábban kivett parancs visszakerült: ATTR, ATDIR, ASSIGN, MAPDISK
http://enterpriseforever.com/userpix/12_exdos13h_1.png

Régen, mivel akkor még nem tudtam, hogy ezek valaha bent voltak az EXDOS-ban, azt hittem, hogy az ISDOS-ból lettek kiszedve, és berakva az EXDOS ROM-ba. Sőt egészen mostanáig ebben a hitben voltam!
A módosítások binárisan történtek az 1.3-on, a plusz parancsok miatt hosszabb parancstábla átkerült a ROM végére, és az eredeti parancstábla helyére kerültek a végrehajtó kódok, ill. a kód egy része a második szegmensre került.

Most az 1.4 miatt elkezdtem gatyába rázni az 1.3-ra rakodott plusz módosításokat, egyrészt, hogy ne szétszórva legyenek, hanem egy tömbben, hogy a szabad hely egyben legyen, ami kelleni fog majd a FAT16 mókához. Másrészt kell fordítható áthelyezhető módon, hogy az SD cartridge memóriakonfigurációjához is hozzá legyen szabva.

Szóval visszafordítottam ezeket plusz parancsokat is kiderült, hogy semmi közük az ISDOS-hoz, annál inkább hasonlítanak a 0.3-ban lévőkhüz, bár nem azonosak. A fő lényeg, hogy rengeteg belső EXDOS szubrutint használnak, a parancsszöveg feldolgozáshoz (paraméterek kielemzése, számparaméter konvertálása, stb), ill. szövegkiíráshoz is.
Ezt így csak az tudta megcsinálni, aki rendelkezett legalább egy EXDOS forrásszöveggel! Vélhetőleg valamely 0.x verzióval, amiben benne voltak ezek a parancsok. Gondolom, ha lett volna 1.3 forrása, akkor nem bináris piszkálással kerültek volna be. De ha már ismert egy verziót, akkor az alapján meg lehetett keresni az ugyanolyan feldolgozó rutinokat az 1.3-ban, és átültetni a parancsokat.

A nagy kérdés, hogy ki lehet az, akinek ilyen információk voltak a keze ügyében? Én csak Kopácsyékra tudok tippelni.

Az 1.4-be most visszakerült minden ami a 0.3-ban benne volt (utálom ha valami régen tudott valamit, aztán meg már nem :twisted: ), vagyis az EXIT, BUFFERS és az "EXDOS",0FEh (ez utóbbi lehetőség a korábbi verziókban a bug miatt amúgy is hibásan működött volna). Mindez fordítható, "defregmentált" kódként, ami a további fejlesztéshez elengedhetetlen.

Következő cél a szövegrendszer: sajnos a magyar EP-sítés eléggé össze lett kavarva sokféle nem kompatibilis karakterkészletekkel :cry:  Az a tervem, hogy a szövegek HFONT-os ként lesznek tárolva (itt meg van minden ékezet), kiíráskor mintát vesz a karakterkészletből, hogy eldöntse melyik aktív, és ennek megfelelően konvertálja a karaktereket.

Offline geco

  • EP addict
  • *
  • Posts: 5728
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
Re: EXDOS
« Reply #204 on: 2014.April.21. 11:39:14 »
Quote from: Zozosoft
Őszintén szólva meglehetősen primitív programozással oldották meg, pl a sok 144-es változó lekérdezést ki lehetet volna rakni egy szubrutinba, és CALL-al hívogatni ahonnan kell, sok bájtot megtakarítva. És csak az egészen kezdő programozó használnak különálló LD B,n LD C,n utasításokat az egy bájttal rövidebb LD BC,nn helyett :twisted:

A nagy kérdés, hogy ki lehet az, akinek ilyen információk voltak a keze ügyében? Én csak Kopácsyékra tudok tippelni.
Tuti azért, hogy minél jobb legyen a 2. szegmens kihasználtsága :ds_icon_cheesygrin:
Szerintem is, ő tartott minden szálat a kezében EP ügyben, nem?

Offline Ep128

  • EP addict
  • *
  • Posts: 1710
  • Country: hu
  • OS:
  • Windows Vista/Server 2008 Windows Vista/Server 2008
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • Honlapom
Re: EXDOS
« Reply #205 on: 2014.April.22. 00:24:53 »
Nagyon komoly és nagyon jól hangzik amiket leírtál Zozo, köszi! :)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #206 on: 2014.April.22. 11:37:36 »
Én sose voltam megbékélve az EXDOS ablak lila színével, most megkérdeztem Bruce-t, azt mondta, hogy ~30 év után ő is meglepődött, amikor először látta, hogy ez lila :-)

Kipróbáltam sötét zölddel, nekem így jobban tetszik :-) talán a betűket vegyük világosabb sárgára, esetleg fehérre?
10463-0

Offline szipucsu

  • EP addict
  • *
  • Posts: 8583
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: EXDOS
« Reply #207 on: 2014.April.22. 13:59:53 »
Quote from: Zozosoft
talán a betűket vegyük világosabb sárgára, esetleg fehérre?
Kicsit szerintem lehetnének világosabbak a betűk, bár ez se rossz.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Lacika

  • EP addict
  • *
  • Posts: 2946
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://www.ep128.hu
Re: EXDOS
« Reply #208 on: 2014.April.22. 19:29:14 »
Én a kékre szavazok, de az eredetivel sincs semmi bajom, az is majdnem kék... :oops:

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #209 on: 2014.April.22. 20:17:21 »
Quote from: Lacika
Én a kékre szavazok, de az eredetivel sincs semmi bajom, az is majdnem kék... :oops:
A kék az nagyon PC-s, én már a kék halál feltalálása előtt is meggyűlöltem :twisted: Norton, Borland, DOS Edit, stb... tök jó volt, amikor a 6.0-ás Turbo Pascal-ban már be lehetett állítani, egyből visszatértem a fekete alapon zöld betűkhöz :-) DOS Navigatorból is hál istennek el lehetett tüntetni a Nortonos kékséget.

Beleteszem majd fordítási opciókba a színt, és majd mindenki olyan színűt tud fordítani magának, amilyet csak akar! :-D