OldComp.cz
https://oldcomp.cz/

Emulace hard disku v ASCD
https://oldcomp.cz/viewtopic.php?f=65&t=11624
Stránka 23

Autor:  Antony/DTA [ 15.01.2023, 11:05 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Na priloženom disku sú zdrojáky BootSektoru aj B-DOSu, možno ti to pomôže (a možno ich už máš).
Prebehol som ten boot sector a je to tak, najprv sa nahrá obrázok, potom dos a až potom sa spustí dos, ktorý hľadá súbor "auto*".
Nepracuje náhodou DOS v CHS móde? To by bola tá zmena oproti boot bloku, ktorý číta v LBA28.

Přílohy:
al-bdos_new.dsk [800 KiB]
88 krát

Autor:  Aley [ 27.01.2023, 23:03 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Update:
Dodělal jsem emulaci hodin. Sambus i Dallas.
Sambus jsem zkoušel s MasterDosem, Dallas jen na portech. Je na to nějaký testovací software? Tváří se to funkčně. Ale emulaci hard disku to nijak nepomohlo, pořád se mi to chová stejně podivně. :suicide:

Autor:  Aley [ 27.01.2023, 23:12 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Antony/DTA píše:
Na priloženom disku sú zdrojáky BootSektoru aj B-DOSu, možno ti to pomôže (a možno ich už máš).
Prebehol som ten boot sector a je to tak, najprv sa nahrá obrázok, potom dos a až potom sa spustí dos, ktorý hľadá súbor "auto*".
Nepracuje náhodou DOS v CHS móde? To by bola tá zmena oproti boot bloku, ktorý číta v LBA28.

Díky moc za ty zdrojáky, zatím jsem je neměl.

Co se týče typu přístupu, mám to v logu takto:
- ROM použije CHS k načtení boot sektoru. A to funguje.
- Bootsektor pak použije LBA k načtení toho obrázku a BDOSu.
- BDOS pak použije CHS k načtení prvních dvou sektorů první diskety, čili tam má začátek adresáře. Načítá každý z nich samostatně. Nevím proč takto, protože ten auto* soubor by měl být hned v prvním sektoru adresáře.
- BDOS najde auto* soubor a začne načítat jeho první datový sektor. Taky pomocí CHS. Načte 8 bajtů a skončí v nekonečné smyčce. Čte pořád status registr a ten hlásí, že má připravený další bajt, ale BDOS ho nechce. Z nekonečné smyčky ho můžu ukončit buď pomocí NMI tlačítka, nebo taky když mu vynuluju ten registr jakože už nejsou v ATA řadiči bajty k dispozici. DOS se pak vrátí zpátky do Basicu a přijímá další příkazy. Umím takto udělat třeba i DIR, ale pouze pomocí toho, že si natvrdo přepisuju ten status registr ATA řadiče, jinak se mi ten DOS stále zasekává v té nekonečné smyčce čekání na cosi. Prostě se mu moje "cosi" na sběrnici nelíbí a čeká na něco jiného.

Ten BDOS v podstatě připomíná takovej ten meme, jak ženy čekají na ideálního chlapa. Mně zase DOS čeká na ideální bajt na sběrnici... :lol:
Obrázek

Autor:  Antony/DTA [ 28.01.2023, 01:04 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Aley píše:
Nevím proč takto, protože ten auto* soubor by měl být hned v prvním sektoru adresáře.
V provom sektore je BDOS a ten Obrázok, auto* bude až za nimi.

Aley píše:
- BDOS najde auto* soubor a začne načítat jeho první datový sektor. Taky pomocí CHS. Načte 8 bajtů a skončí v nekonečné smyčce. Čte pořád status registr a ten hlásí, že má připravený další bajt, ale BDOS ho nechce. Z nekonečné smyčky ho můžu ukončit buď pomocí NMI tlačítka, nebo taky když mu vynuluju ten registr jakože už nejsou v ATA řadiči bajty k dispozici. DOS se pak vrátí zpátky do Basicu a přijímá další příkazy. Umím takto udělat třeba i DIR, ale pouze pomocí toho, že si natvrdo přepisuju ten status registr ATA řadiče, jinak se mi ten DOS stále zasekává v té nekonečné smyčce čekání na cosi. Prostě se mu moje "cosi" na sběrnici nelíbí a čeká na něco jiného.
Mohlo by to byť 9 bajtov, čo je hlavička súboru. Týchto 9 bajtov treba preskočiť a až po nich nasledujú vlastné data súboru.
Neviem, čo kontroluje BDOS zo status registra, BSY asi ešte pred príkazom, DRQ pred začiatkom čítania, potom už snáď len ERR.

Autor:  Aley [ 29.01.2023, 19:57 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Aha! Tak jestli začátek prvního sektoru má zvláštní obsah a já tam třeba posílám nesmyslná data, tak DOS možná blázní z toho. Že jako třeba jestli já v tom CHS formátu špatně spočítám, kde přesně ten sektor je... Protože ani DIR nefunguje. Ten příkaz se tedy jako spustí, napíše na obrazovku titulek, ale žádný seznam souborů, protože DOS se zasekne při čtení adresáře.

A díky i za tu poznámku o adresáři. Já jsem se mylně domníval, že každý sektor adresáře obsahuje víc souborů než dva. Teď mi to celé dává daleko větší smysl. Samozřejmě první na disketě je BDOS a druhý za ním je ten obrázek. Takže auto* může být nejdřív třetí. Všechno to do sebe víc a víc zapadá... ale stejně cosi pořád nefunguje. :suicide:

Autor:  Aley [ 31.01.2023, 21:57 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Bylo mi doporučeno zkusit boot z AL-BOOT diskety. Vypíše mi to 0 cylinders, 0 heads, 0 sectors, 62915 records available... Model a Revision prázdné. Čili to je zajímavě nemocné, asi nemám ATA IDENTIFY...

Autor:  Aley [ 02.02.2023, 21:33 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Tady snad řádí nějaký poltergeist, já jsem z toho úplně zoufalý!

Monitoring portů při bootování z AL boot diskety: Nabootuje to, začne to i komunikovat s hard diskem a taky s hodinami. Snažím se vysledovat, proč mi ten bootovací prográmek vypisuje geometrii disku jako 0-0-0, takže čekám na příkaz IDENTIFY (kterým si program načte 512-bajtů dlouhý blok informací o harddisku). Pak sleduju porty. Program nejprve čte status port, tam mu nastavím bit DRQ, že data jsou připravena. Program se tedy hned dá do čtení dat. Jenže přečte jen pouhé dva bajty a dál nic. Pak už zobrazí na obrazovce geometrii disku jako 0-0-0 a žádná další aktivita na portech disku není.

Začínám už i uvažovat nad tím... ten emulátor je v C++... jestli tam nemám někde úplně jinde blbou chybu s nějakým pointerem a nepřepisuju si náhodně někde RAM... V té emulaci harddisku prostě nevidím žádnou chybu, a stejně to nefunguje. :suicide:

Autor:  Aley [ 04.02.2023, 23:57 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

OK, problem solved. Chyba byla v emulátoru CPU. Instrukce INI a IND špatně nastavovaly flag Z. Žádný jiný program tohle nikdy nemohl na nic využít, tak to nebylo poznat.

Takže už úspěšně bootuju AtomLite. A pustil jsem si demo Sam Can Do It... a krešlo mi to cleý emulátor s access violation. :lol: Takže těch oprav do nového vydání ASCD bude víc.

Autor:  Antony/DTA [ 05.02.2023, 01:22 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Paráda, to som rád, že sa to podarilo. Neuveríš, ale napadlo ma, že by to mohlo byť chybou v emulácii inštrukcie INI. Ty si mal podozrenie na nejakú blbú chybu s nejakým pointerom a naozaj to bola blbá chyba. Ja som nedávno objavil chybu v mojom programe pri teste konca adresára. Inštrukcia CP (HL) mala zistiť, či prvý znak mena súboru je nula. Lenže v jednej vetve programu sa zmenil obsah HL, ktorý už neukazoval na začiatok mena, ale kdesi do ROMky a ešte k tomu dokonca aj register A občas neobsahoval nulu. No a k tomu všetkému, keď som si to krokoval v debuggeri tak som zistil najprv chybu debuggera.

Autor:  VELESOFT [ 05.02.2023, 04:46 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

A bude v ASCD i emulace klasickeho Atomu ?

Autor:  Aley [ 05.02.2023, 23:36 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Atom Classic (jak tomu říkám, ať už se to ve skutečnosti jmenuje jakkoliv) bude určitě. (Já jsem na tom už i pracoval, ale nefungovalo to, tak jsem to dal k ledu. Teď když už mi funguje Lite, tak tohle snad půjde taky.) Akorát nemám žádný HDF image, takže na čem to otestovat? Zkusmo sem si cosi vytvořil v Samdisku (a nezbývá doufat, že je to fakt ono). Mimochodem ten Samdisk má nějaký manuál? Nebýt toho, že mi sám Simon Owen psal v emailu nějaké parametry, co tam můžu napsat, netušil bych, co s tím. Stáhl jsem nějaký zip a v něm bylo jen exe bez návodu.

Autor:  Antony/DTA [ 06.02.2023, 00:12 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

https://simonowen.com/samdisk/options/

Autor:  Aley [ 07.02.2023, 04:46 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Tak Atom Classic už mi taky funguje. :-) A ještě pracuju na třetí variantě: Namapovat jeden record z HDF souboru jako klasický floppy disk. Když na tom recordu bude i samdos, půjde z toho i nabootovat. A on tam většinou ten samdos je, jelikož ty recordy vznikly oklonováním z diskety.

Autor:  Aley [ 09.02.2023, 21:18 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Tak mapování recordu jako floppy taky už funguje. :-)

Autor:  SCjoe [ 09.02.2023, 23:03 ]
Předmět příspěvku:  Re: Emulace hard disku v ASCD

Pardon, jestli si vymyslim nebo uz to je hotovo...

V SimCoupe, mozna jen pro Win, bylo v nektere verzi mozne pripojit SD ci CF kartu do ctecky v pisidle
a emul zapisoval primo na kartu. Ja ji pak vytahl a strcil rovnou do samika, rychla a pohodlna vymena dat to byla.

Ale asi univerzalni to neni, v Linuxu takovou funkci emul nenabizi.

Stránka 23 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/