Welcome, Guest. Please login or register.


Author Topic: EP128emu (Read 400957 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #810 on: 2016.October.20. 08:35:48 »
A friss verzió nem fogadja el a sok programos VHD-t, ami valódi kártyáról lett lementve.

Próbáltam egy 2GB-osról lementettet is, az se tetszett neki, egy 8GB-osra meg azt mondta, hogy "Error seeking IDE disk image".
:oops:
16 megás volt amit elfogadott :-)

2 GB-nál nagyobb image nem támogatott. :oops: Bár ennek EP-n FAT12 file rendszerrel egyébként sem lenne sok értelme a ROM tesztelésén kívül. Az "Error seeking..." hibaüzenetet a 32 bites fseek() használata okozza 2 GB-nál nagyobb file-on. A 244 MB-os image esetében a CHS alapján számított méret nem "SD kompatibilis", talán figyelmen kívül kellene hagyni a CHS-t, de a C=1007,H=16,S=31 paraméterekből számított szektorszám (499472 = 2*2*2*2*19*31*53) nem 1 és 4096 közötti egész 2 hatványával (4,8,...,512,1024 tartományban) szorozva, ezért az emulátor az image-t nem fogadja el.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #811 on: 2016.October.20. 08:48:35 »
2 GB-nál nagyobb image nem támogatott. :oops: Bár ennek EP-n FAT12 file rendszerrel egyébként sem lenne sok értelme a ROM tesztelésén kívül. Az "Error seeking..." hibaüzenetet a 32 bites fseek() használata okozza 2 GB-nál nagyobb file-on. A 244 MB-os image esetében a CHS alapján számított méret nem "SD kompatibilis", talán figyelmen kívül kellene hagyni a CHS-t, de a C=1007,H=16,S=31 paraméterekből számított szektorszám (499472 = 2*2*2*2*19*31*53) nem 1 és 4096 közötti egész 2 hatványával (4,8,...,512,1024 tartományban) szorozva, ezért az emulátor az image-t nem fogadja el.

Lehet, hulyseget mondok, de ellenorzesnel a meretbol leszamitottad a VHD vegerol az "info block-ot" ha ez nem raw hanem tenyleg MS/conectix VHD cuccos? Nalam legalabbis Xep128-ban itt volt bug, amire Zozo fel is hivta a figyelmem, hogy nem fogadja el, amit valodi kartyarol szedett le pedig (ez - elvileg - azota Xep128-ban javitva mar egy ideje, mar biztosat Zozo tudna mondani, hogy tenyleg igy talalta-e ...).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #812 on: 2016.October.20. 09:00:55 »
2 GB-nál nagyobb image nem támogatott. :oops: Bár ennek EP-n FAT12 file rendszerrel egyébként sem lenne sok értelme a ROM tesztelésén kívül.
Jelenleg nincs, de célkitűzésben van a FAT16, FAT32 is.
Aztán ott van az SD Audio Player, hasonlót gondolom lehetne az EPVideo-ból is faragni. Ilyesmivel már lehet bőven fogyasztani a tárhelyet :-)
Az is ott van, hogy manapság 4 gigás a legkisebb kapható új kártya, így könnyen előfordulhat, hogy egy teljes kártya mentés az nagyobb lesz mint 2 giga :oops:

A valódi illesztő SDHC-vel, azaz 32GB-ig tuti működik. SDXC-t még nem néztem, de ott is esetleg csak a kártya detektálást kell kiegészíteni, mert amúgy az SDEXT belsőleg 32 bites LBA címzést használ, ami 2 TB-ig elég :-)


Quote
talán figyelmen kívül kellene hagyni a CHS-t
Szerintem nyugodtan el lehet felejteni, SD kártyánál eleve nincs is értelme, de az IDE is végig 32 bites LBA-t használ belül, ill. a HDD-t is LBA módban kezeli alapértelmezetten. (Csak a nagyon régi LBA-t nem támogató (ezek úgy 22-23 évesnél régebbiek) HDD-k esetén konvertál CHS-re, közvetlen a parancs kiadásnál) Az ep128emu emulált vinyója is LBA módban megy.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #813 on: 2016.October.20. 09:01:38 »
Nalam legalabbis Xep128-ban itt volt bug, amire Zozo fel is hivta a figyelmem, hogy nem fogadja el, amit valodi kartyarol szedett le pedig (ez - elvileg - azota Xep128-ban javitva mar egy ideje, mar biztosat Zozo tudna mondani, hogy tenyleg igy talalta-e ...).
Igen, ott a javítás után jó lett.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #814 on: 2016.October.20. 09:09:01 »
Ja meg bocs, szerintem elozo hozzaszolasomban kicsit belekeveredtem az CHS compatible meret, es az SD-standard compatible meret keveresebe :) Talan ...

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #815 on: 2016.October.20. 09:20:38 »
Egyébként vinyóknál is úgy van, hogy az utolsó teljes Cylindert adják meg a C/H/S méretnek, aminél az LBA méret lehet nagyobb. Anno írtam még a Win9x időkben PC-re particionálót (a hülye Microsoft FDISK helyett), az fel is kínálta ilyenkor, hogy használjuk a nagyobb LBA méretet. Aztán később ahogy elszaladtak a vinyó méretek, akkor már a max lehetséges C/H/S volt megadva, aminél jóval nagyobb az LBA méret.

Szerintem az emuban is feleljtsük el a C/H/S-t, egyedül az IDE információs blokkba legyen kiszámolva valami közelítő érték.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #816 on: 2016.October.20. 09:53:41 »
Lehet, hulyseget mondok, de ellenorzesnel a meretbol leszamitottad a VHD vegerol az "info block-ot" ha ez nem raw hanem tenyleg MS/conectix VHD cuccos?

Nem ez a probléma, hanem hogy a fent említett CHS-ből nem lehet értelmes SD kártya méretet számítani, az emulátor hibája legfeljebb az, hogy az LBA és a CHS méretet azonosnak tekinti, az image file-t így módosítva (C=512,H=16,S=61, ami pontosan 244 MB) már nincs hiba:
[ Guests cannot view attachments ]

Szerintem az emuban is feleljtsük el a C/H/S-t, egyedül az IDE információs blokkba legyen kiszámolva valami közelítő érték.

Megoldható, hogy LBA módban a teljes image címezhető legyen, bár így az IDE emulációnál a lemez mérete változik a CHS vagy LBA mód használatától függően.

Jelenleg nincs, de célkitűzésben van a FAT16, FAT32 is.
Aztán ott van az SD Audio Player, hasonlót gondolom lehetne az EPVideo-ból is faragni. Ilyesmivel már lehet bőven fogyasztani a tárhelyet :-)
Az is ott van, hogy manapság 4 gigás a legkisebb kapható új kártya, így könnyen előfordulhat, hogy egy teljes kártya mentés az nagyobb lesz mint 2 giga :oops:

Talán egy későbbi verzióban (2.0.11?), egyelőre fontosabb, hogy a 2 GB/31 bites címzés megfelelően működjön, ha a nagyobb kártyák programozása eltérő (mivel azoknál a 31 bites byte pozíció nem elég).
« Last Edit: 2016.October.20. 10:10:10 by IstvanV »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #817 on: 2016.October.20. 10:26:16 »
Az SD kártya mérete, ez az ID fájlból is kiderül 7A000h szektor, 255852544 bájt = F400000h, ami jól is van tárolva.
Ebben a Microsoft dokumentumban írják, hogyan kell a C/H/S-t számolni:
Code: [Select]
if (totalSectors > 65535 * 16 * 255)
{
   totalSectors = 65535 * 16 * 255;
}

if (totalSectors >= 65535 * 16 * 63)
{
   sectorsPerTrack = 255;
   heads = 16;
   cylinderTimesHeads = totalSectors / sectorsPerTrack;
}
else
{
   sectorsPerTrack = 17;
   cylinderTimesHeads = totalSectors / sectorsPerTrack;

   heads = (cylinderTimesHeads + 1023) / 1024;
     
   if (heads < 4)
   {
      heads = 4;
   }
   if (cylinderTimesHeads >= (heads * 1024) || heads > 16)
   {
      sectorsPerTrack = 31;
      heads = 16;
      cylinderTimesHeads = totalSectors / sectorsPerTrack;
   }
   if (cylinderTimesHeads >= (heads * 1024))
   {
      sectorsPerTrack = 63;
      heads = 16;
      cylinderTimesHead = totalSectors / sectorsPerTrack;
   }
}
cylinders = cylinderTimesHead / heads;

Ami alapján pont az - a nem pontos - érték jön ki, ami a fájlban is van :oops:
Vagyis nagy valószínűséggel bármely másik SD kártyáról újonnan létrehozott VHD-nél nem fog pontos lenni.

Szerintem felejtsük el a C/H/S-t, IDE infó blokkban szerepeljen ez a nem biztos, hogy pontos érték, de ezt amúgy se használja az EP-n semmi, mivel az LBA az elsődleges IDE-nél. SD-nél meg nincs is ilyen.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #818 on: 2016.October.20. 10:30:49 »
Megoldható, hogy LBA módban a teljes image címezhető legyen, bár így az IDE emulációnál a lemez mérete változik a CHS vagy LBA mód használatától függően.
Mivel LBA módú vinyó van emulálva, így csak LBA használat van. (De mint írtam ez az eltérés valódi vinyóknál is előfordult.)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #819 on: 2016.October.20. 10:40:12 »
Ebben a Microsoft dokumentumban írják, hogyan kell a C/H/S-t számolni:

Az ugyan nem egyértelmű, miért fontosabb az S-t néhány fix értékre (17, 31, 63) korlátozni, mint hogy a CHS a tényleges méretet mutassa (ha az matematikailag lehetséges), mivel az eltérő méret adatvesztést okozhatna mindkét címzési mód használatakor. Ezért nem igazán szimpatikus a külön LBA és CHS méret, de módosítom az IDE és SD emulációt, hogy ez támogatott legyen.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #820 on: 2016.October.20. 10:48:16 »
Az ugyan nem egyértelmű, miért fontosabb az S-t néhány fix értékre (17, 31, 63) korlátozni
Ezt én se, de a Microsoftnál nagy hagyománya van az ilyesminek (lásd pl a fix 2 FAT példány és társai).
A korábbi DOS alapú rendszereknél attól is idegbajt tudott kapni, ha a partíció eleje-vége nem pont egész sávra esett. Szerencsére a mostani NT alapú Windowsok már LBA-ban üzemelnek, így ezzel már nincs gond.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #821 on: 2016.October.20. 11:11:00 »
Jelenleg nincs, de célkitűzésben van a FAT16, FAT32 is.

Kerem-kerem :) Mikor lesz? :)

Amugy a FAT egy agyhalal ugy ahogy van. Mondjuk a FAT32 meg normalisabb (bar elvileg FAT28-nak kene hivni, ha pontosak akarunk lenni), ott legalabb a root directory is olyan mint a tobbi szoval egysegesen kezelheto a directory kerdes. FAT12/16-nal emlekeim szerint ez el van ronta total, hogy ott fix terulet van a root dir-nek, minden mas dir viszont mar "normalisan" benne van a FAT-ban, szoval veletlenul sem konzisztens az egesz :-/

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #822 on: 2016.October.20. 12:08:21 »
Módosítva a GitHub forráskódban, most már elfogadja az eredeti SD244MB.vhd-t is. Nem tudom, az IDE emulációban ez elrontott-e valamit. :oops: A ROM letöltési címet is frissítettem a különböző wrapperekben.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #823 on: 2016.October.20. 12:17:12 »
Módosítva a GitHub forráskódban
Az EXE-kben még nem?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #824 on: 2016.October.20. 12:28:10 »
Apróság, de lehetne nevet adni az emulált SD-nek, ahogy az IDE meghajtó is kap?
Bár itt nincs annyi karakter, de az OEMID/Product Name mezőkbe beférne, hogy "EP128SD"