Welcome, Guest. Please login or register.


Author Topic: EXDOS (Read 134407 times)

Offline Ep128

  • EP addict
  • *
  • Posts: 1849
  • Country: hu
    • Honlapom
Re: EXDOS
« Reply #75 on: 2009.May.08. 15:16:42 »
Leginkább soha, mert túl sok értelme nincs olyan gépnek, ahol az EXOS 2.31-en kivül csak egy EXDOS 1.2 ROM fér el, mert a többi helyet elfoglalja a sok ram :-)
Azért még férne valamennyi a jelenlegi mellé...  ;-) (Na nem mint ha nagyon hiányozna, csak a poén kedvéért, hogy Neked hála "ilyet is tudunk". :) ) Ez a hellyel történõ gazdálkodás nem semmi, hogy 5 bájtokat hajtunk fel a cél érdekében. :)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: EXDOS
« Reply #76 on: 2009.May.08. 20:40:58 »
Igazából én is meglepõdtem, hogy végül befért az eredeti helyre, nem hittem volna, hogy ki lehet szedni 5 bájtot, nem így ismertem eddig az IS programokat :-) Ráadásul vagy 3x eljutottam odáig, hogy kész, aztán kiderült valami bibi, ami miatt át kellett variálni, amihez megint plusz bájtokat kell keresni...
Az 1.3-asban mondjuk meg lehetett volna csinálni úgyis, hogy egy üres részre rakni a plusz kiegészítést, és azt hívni az eredeti rutinból, de az így nem szép :-)

Gratula a türelemhez is, meg a megvalósításhoz is :) Én fel szoktam adni egy idő után a bepaszírpzást, és inkább beteszek egy call-t  :oops:

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #77 on: 2009.November.01. 09:51:09 »

Pontosan! Arról a cuccról van szó amit Kopácsy emlegett az 1991-es interjúban, azaz amivel XT kártyákat lehet EP-hez kötni.
Amit sokáig csak legendának gondoltunk :-)

Ez a program csinál egy F: meg egy G: meghajtót, persze a hw nélkül sokra nem megyünk :-)
Ez a két meghajtó meg is felel annak, hogy 87-ben két vinyót köthettél egy MFM kártyára, amik lehettek kb 10-20 megásak. Így itt még nem merül fel a több mint 32M, sok partició kellene problémakör, elég 1-1 betü a két vinyónak.

Remélem a visszafejtés során azért sikerül új információkat kideríteni az EXDOS bõvítés mikéntjérõl.
Na elkezdtem felboncolni ezt a cuccot is, hátha tanulunk belõle valamit :-)
Ami érdekesség kiderült, hogy a ROM fájlban tulajdonképpen két verzió is benne van, ha az elején a NOP-ok helyére teszünk egy JP-t, úgy lehet elõcsalni az 1.1A-t.
Csináltam két szétszedett ROM-ot, ill. itt van két nyers assembly fájl is.

Ami még kiderült, úgy tünik, hogy az XT MFM vezérlõ kártya ami ott a 320-323H címeken van, úgy lett EP-re kötve, hogy 20-23H portokon legyen.

Én vagyok béna, vagy a google, vagy tényleg nincs fent a neten sehol, hogy kell XT-n programozni a vinyót??? Legalábbis több órás kereséssel se találtam semmit :(
Egyedül az Abonyi Zsolt: PC hardver kéziköny címû könyvben találtam némi nem túl részletes infót róla, de neten max a port kiosztást.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #78 on: 2009.November.02. 16:03:13 »
Én vagyok béna, vagy a google, vagy tényleg nincs fent a neten sehol, hogy kell XT-n programozni a vinyót??? Legalábbis több órás kereséssel se találtam semmit :(
További több órás szenvedéssel még mindig semmi :-( pedig még Linux drivert is írtak rá!

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #79 on: 2009.November.02. 19:19:39 »
Na csak meg lett  :ds_icon_cheesygrin: itthon elolvastam az Abonyi könyv irodalom jegyzékét, és IBM PC technical reference néven keresve sikerült rábukkani!
Ami nagyon érdekes, hogy az XT vinyóvezérlõ programozása, szinte szóról szóra megegyezik a SASI programozásával! A SASI kapta késõbb a SCSI nevet, amirõl talán már mindenki hallott. Talán nem véletlen, ha arra gondolunk, hogy ugyanaz a Shugart Associates mûködött közre az MFM vinyók megalkotásánál is, akik a SASI-t is kitalálták. (És nekik köszönhettük a floppy szabványt is, benne is van az EXDOS leírásban, hogy Shugart 410 kompatibilis floppymeghajtót kell a boltban keresni :) )

Egyedüli különbség, hogy a SASI/SCSI esetén logikai szektor címet viszünk át, míg XT esetén a hagyományos C/H/S címzés szerepel a parancsokban.

Itt van két PDF, az IBM-esben a 197. PDF lapon kezdõdik a leírás, a WD-sben a 17. oldalon.

Elvileg ez alapján már meg kell tudnunk fejteni, mit csináltak a németek 1987-ben EP vinyó ügyben!
Aztán ha nagyon unatkozik István, beleteheti a következõ ep128emu-ba  :ds_icon_cheesygrin:

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #80 on: 2009.November.04. 00:13:31 »
Ami már kiderült, hogy a kártyán DIP kapcsolókkal lehetett kiválasztani a két vinyó típusát, az 1.2-es ROM 3 típust ismer, a paraméterek alapján Seagate ST213, ST225, ST238R típusokra lehet tipelni (10.7, 21.3, 31.7 megabájtosak, és ténylegesen, akkor még nem hazudtak nagyobb méretet a vinyókra :) )

Az 1.1A verzió még nem figyel DIP kapcsolókat, ott csak egyféle 30 megás típus van.
« Last Edit: 2009.November.04. 21:32:23 by Zozosoft »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #81 on: 2009.November.04. 21:49:25 »
És amit a kezelõprogramról sikerült kideríteni:
A=akciókód, C=alegység sorszám, IX=transzfercím, IY=kezelöprogram adatterülete.
P0=nullás lap, P1=transzfer terület szegmense, P2=kezelöprogram adatterület szegmense, P3=kezelöprogram szegmense.
3-as akciókód: lemeztipus megadása, transzfer területre be kell olvasni a BOOT szektort, visszaadandó B=formázási tipusbájt,HL=utolsó logikai szektor sorszáma (azaz szektorok száma-1)
4-es akciókód: logikai szektorok olvasás
5-ös akciókód: logikai szektorok írása
6-os akciókód: logikai szektorok irása ellenõrzéssel
Mind három esetben B=átviendõ szektorok száma, DE=kezdõ szektor sorszáma.

A FISH nem foglalkozik formázással, miután a FORMAT megkérdezte, hogy biztos vagy-e benne, és azt válaszoltad, hogy igen, akkor 8-as akciókóddal meghívja a meghajtó kezelõprogramját, hogy "formázd meg a hozzád tartozó lemezt, hogy hogyan az a te dolgod, engem csak az érdekel, hogy sikerült-e" :-) A boot szektort el kell készíteni, a FAT táblákat és a fõkönyvtárat már az EXDOS készíti el az adatok alapján (amit 3-as kóddal kér be).

Az 1,2,7-es kódokról még nem tudni mi az, de az EXDOS használja... a vinyóvezérlõ programja ilyenkor RET-tel válaszol...

A LUA Scriptes trükk, és a HDOS boncolása alapjá:
0-ás akciókód, hidegindítási inicializálás, az EXDOS az egység beláncolása után hívja
1-es akciókód, melegindítási inicializálás
2-es akciókódra még csak tippelek, hogy esetleg a lemezcsere ellenõrzés lesz... a RAMDISK és a HDOS:
LD B,1
XOR A
RET
utasításokkal intézik el a dolgot.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #82 on: 2009.December.10. 23:32:55 »
A LUA Scriptes trükk, és a HDOS boncolása alapjá:
0-ás akciókód, hidegindítási inicializálás, az EXDOS az egység beláncolása után hívja
1-es akciókód, melegindítási inicializálás
2-es akciókódra még csak tippelek, hogy esetleg a lemezcsere ellenõrzés lesz... a RAMDISK és a HDOS:
LD B,1
XOR A
RET
utasításokkal intézik el a dolgot.

Fordítottam ez alapján egy IDE.ROM-ot, úgy tûnik pár kamu data error hibajelzés eltûnt így Epdos alatt.

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: EXDOS
« Reply #83 on: 2009.December.11. 11:32:16 »
Én is kicseréltem.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #84 on: 2009.December.25. 12:58:07 »
Arra jutottam, hogy a legjobb az lesz, ha nem három különféle program kergeti az EXDOS.INI-t, így csináltam az 1.3-es EXDOS-ból olyat ami maga keresi az E:, F:, B:, A: meghajtókon.

Itt a módosított rutin kódja:
Code: ZiLOG Z80 Assembler
  1.                 ORG 0FFB2H
  2.                 OBJECT EXDINI.BIN
  3.                 PUSH IY
  4.                 POP HL
  5.                 LD DE,05DBH
  6.                 ADD HL,DE
  7.                 LD A,5
  8.                 CALL INI
  9.                 LD A,6
  10.                 CALL INI
  11.                 LD A,2
  12.                 CALL INI
  13.                 LD A,1
  14. INI:            LD (IY-57H),A
  15.                 LD DE,0C131H
  16.                 EX DE,HL
  17.                 PUSH DE
  18.                 LD BC,9
  19.                 LDIR
  20.                 ADD A,40H
  21.                 DEC DE
  22.                 DEC DE
  23.                 LD (DE),A
  24.                 POP DE
  25.                 PUSH DE
  26.                 EXOS 26
  27.                 POP HL
  28.                 RET
C128-nál kell a CALL FFB2H-t beszúrni az eredeti rutin helyére.
« Last Edit: 2009.December.25. 13:01:16 by Zozosoft »

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: EXDOS
« Reply #85 on: 2009.December.26. 12:32:05 »
Arra jutottam, hogy a legjobb az lesz, ha nem három különféle program kergeti az EXDOS.INI-t, így csináltam az 1.3-es EXDOS-ból olyat ami maga keresi az E:, F:, B:, A: meghajtókon.

Szerény véleményem szerint elég, ha csak az E:, A: meghajtókon keresünk ini-t, lassítja a bejelentkezést, ha végignézünk mindent. PC-n sem lehet akárhány partícióról boot-olni...

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: EXDOS
« Reply #86 on: 2009.December.26. 21:08:57 »
Szerény véleményem szerint elég, ha csak az E:, A: meghajtókon keresünk ini-t, lassítja a bejelentkezést, ha végignézünk mindent. PC-n sem lehet akárhány partícióról boot-olni...
Lassan BIOS is kell EP-re, amiben be lehet állítani a BOOT sorrendet (is). :D
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #87 on: 2009.December.26. 21:37:41 »
Ha volt ZT a rendszerben, akkor eddig is volt E, B, A... egyedül az F az újdonság, de az pillanatok alatt lemegy. Ha gyorsan akarsz valahova jutni, akkor nyomj gombot a ZT-nek, az ezután is müködik .-)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #88 on: 2009.December.28. 19:35:50 »
Korábban már megfejtettük az ismeretlen 24-es FISH hívást, de maradt még ott "fenntartva" a listában...


Most a 27-est sikerült felderíteni, ez a diskpufferek számának növelésére szolgál, B regiszterben adjuk meg a pufferek új számát (max 10 lehet), 0 esetén lekérdezés.
Ezt használja a BUFFERS parancs, ami eredetileg benne volt az EXDOS-ban (lásd 0.3), de késõbb kiszorult belõle és csak az ISDOS-ban található meg.

Megjegyzés: ha kevesebbet adunk meg, mint amennyi jelenleg van, akkor se történik semmi, csak visszakapjuk az aktuális értéket, vagyis FISH-en keresztül csökkenteni nem lehet. Ez úgy oldható meg, hogy a FISH adat területen átírjuk a pufferek számát (IY+21H), majd kiadunk egy EXOS resetet 20H-val, így újraszerkesztõdik a periférialánc, ezáltal a pufferek számára memóriát foglaló . nevû periféria is újra lesz beláncolva, az általunk megadott puffermérettel.
Amikor a FISH 27 mûködik, az pluszban vesz fel még egy . nevû perifériát, a szükséges plusz pufferek foglalásához. Ez jól látható, ha az EPDOS DEVS parancsával kilistázzuk a periférialáncot a BUFFERS parancs használata után. Ha azonban kilépünk pl BASIC-be az ISDOS-ból, már ismételten csak egy . lesz, mivel ilyenkor végrehajtódik egy EXOS reset, így újra lácolódnak a perifériák.
Cseles megoldás :-) de nem ez az egyetlen trükk az EXDOS memóriakezelésben.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXDOS
« Reply #89 on: 2009.December.28. 20:13:12 »
Cseles megoldás :-) de nem ez az egyetlen trükk az EXDOS memóriakezelésben.
Pl rögtön itt van a szintén ismeretlen FISH 23 hívás:
Ezzel kisebb memóriaterületet lehet átmenetileg lefoglalni, BC-ben a kért méret, visszatéréskor B a szegmensszám, DE pedig a terület fölé mutat.
A trükk itt az, hogy a FISH egy jelzõbiten keresztül üzen a DISK perifériának, hogy ne normál fájlkezelõ módban mûködjön, hanem csak foglalja le a megadott méretet csatornapufferként. Így nyit meg egy csatornát (szabad csatornaszámot keres hozzá), a kapott csatornapuffer címét adja vissza a felhasználónak. A területet addig használhatjuk, amíg nem történik a csatornák bezárásával járó mûvelet.