OldComp.cz
https://oldcomp.cz/

Moderní klon D40/D80?
https://oldcomp.cz/viewtopic.php?f=39&t=6733
Stránka 2330

Autor:  MTs [ 12.10.2020, 17:57 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

PotPalo píše:
Doplna... lenže ono to vychádza na posledné tri stopy, a to je formát 80x9. Takže celkom dosť. A nieže by to neprečítalo, to prečíta, ale následný návrat je problém, ale po Retry funguje vždy. Zapisovať som tam neskúšal. Akoby to stratilo pojem na ktorej stope sa to práve nachádza, a pri Retry sa vráti na 0 a tým sa znova zorientuje. A prečo mi to občas hodí Sector not found aj keď mám skoro prázdnu disketu a teda sa pracuje iba pri jej začiatku? Nemôže to byť tým čínskym radičom?


Pominu-li, že špatná může být samotná mechanika, disketa, či ten řadič, tak určitě prováděj testy na tuto chybu jen na standardně naformátované disketě (tj. pod MDOSem 2.0). Tím vyloučíš, že za to může chybné číslování stran či ten index pulz. Taky dělá to každá disketa nebo jen některá?

Autor:  Busy [ 12.10.2020, 18:29 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

MTs píše:
určitě prováděj testy na tuto chybu jen na standardně naformátované disketě (tj. pod MDOSem 2.0). Tím vyloučíš, že za to může chybné číslování stran či ten index pulz.
Alebo disketu naformatovanu pod MDOSom 1.0 pomocou utilitky EI-format (sucast EI managera). Ten tiez formatuje korektne (spravne cislovanie stran, spravna medzera medzi indexom a prvym sektorom).
PotPalo píše:
3,5" diskiet práve veľa nemám, zatiaľ som skúšal iba jednu kde nahrávam rozpracovanú prácu. Keby bola nejaká prázdna, tak ju naformátujem, ale, nieje. Asi by to chcelo spraviť inventúru.
Doplnujuca otazka: READ*"",1404,22528 ktory skonci dobre, naozaj nacita ten spravny sektor, ktory ma ?
Skus zaplnit disketu uplne, a to tak, aby kazdy sektor mal ine data a aby si presne vedel ake data su na ktorom sektore. A ci ten READ cita presne tie data, ktore ocakavas.

Autor:  PotPalo [ 12.10.2020, 20:21 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

Zaplnil som disketu snapovaním, na konci som uložil 4 screen$, každý iný. Free 0 bytov. Screeny nahrať idú, majú správne dáta, ale ako pri ukladaní, tak pri nahrávaní je najprv rovnaký problém so Sector not found po návrate vozíka. Teda až za tou magickou hranicou a pri prvom pokuse.

Autor:  PotPalo [ 13.10.2020, 02:32 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

MTs píše:
Chtělo by to vyzkoušet i s MDOSem 2.1, ale s opraveným tím mým překlepem "ix+6" (správně ix+0). Ten bit totiž nastavuju právě po chybách a řídí se jím i následné SEEKování. Za pokus by to stálo...

Odskúšal som to ešte s neopravenou chybou, po načítaní sektoru som pozrel pamäť, formát diskety je zapísaný správne takže tento chybný príkaz sa nevykoná. Ono chyba nenastane, sektor to načíta dobre. Ale pri ďalšom pokuse čohokoľvek, hoci aj CAT to už rieši Seek/Sektor...

Ešte som skúsil POKE #4, meniť okolo 80, ale žiadna zmena. Tiež POKE #0,33 nepomáha.

Autor:  MTs [ 13.10.2020, 18:05 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

PotPalo píše:
Odskúšal som to ešte s neopravenou chybou, po načítaní sektoru som pozrel pamäť, formát diskety je zapísaný správne takže tento chybný príkaz sa nevykoná. Ono chyba nenastane, sektor to načíta dobre. Ale pri ďalšom pokuse čohokoľvek, hoci aj CAT to už rieši Seek/Sektor...


Máš pravdu, pokud chyba nenastane, tak ten můj bug se neprovede. Ale pozor na to, že u 80ti stopé mechaniky nevíš jestli ten set 6,(ix+6) operační systém provede. Hodnota 80 má totiž vždy bit 6 nastaven na 1. Proto také je ten můj bug škodný jen na 5,25". Tím bitem 6 (správně však má být na ix+0) se ovlivní seekování, 1 bude znamenat že se vždy seek provede a nebude se věřit hodnotě na ix+4. Ale toto všechno očividně s tvou chybou nesouvisí. Já si nemyslím, že za to může mdos. Pokud totiž byl načten úspěšně ten sektor, tak předpokládám tvá operace končí a led zhasne. Nyní dáváš např. CAT a obdržíš seek error. Jelikož led byla zhaslá, motory se roztáčejí znovu a mdos 2.1 vždy seekuje (ix+4 i ten můj bit 6 na ix+0 se ignoruje). Hlava se však nedokáže vrátit na nultou stopu, aby načetla boot sektor. Retry hlavu dokopne na své místo. Já sázím na chybu té mechaniky. Můžeš zkusit jinou? Z PC třeba. Také můžeš vyzkoušet napsat si prográmek (ve strojáku), který zavolá seek na poslední stopu, načte sektor, nyní seek na stopu nula (příkaz HOME) a načíst boot. Mechaniku při tomto testu nevypínat (motory). Měl bys narazit na stejnou chybu, která tě trápí. Pokud by to náhodou fungovalo OK, tak vyzkoušej i s vypnutím motoru po načtení sektoru z 80té stopy.

Autor:  MTs [ 14.10.2020, 15:51 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

Busy píše:
MTs píše:
Proto také je ten můj bug škodný jen na 5,25".
Ako ten bug rozozna ci sa jedna o 3.5 alebo 5.25 mechaniku ?!?!
(hlavne, ak obe maju rovnako 80 stop)


Bug je v tom, že po chybě s disketou (což je crc error, sector not found, seek error apod.) místo nastavení bitu 6 na ix+0 ho omylem nastavuju na ix+6, kde je počet stop. Když má mechanika 80 stop, bug je naprosto neškodný, protože číslo 80 v binárním tvaru má na šestém bitu jedničku. Tím, že po chybě s disketou nenastavím ten bit 6 na místo kam patří (ix+0), tak maximálně může dojít k tomu, že následující operace s disketou vyhodí nějakou chybu, kterou však Retry operace opraví. A to ale ještě za podmínky, že chyba/uživatel nezpůsobila vypnutí motorů. Vypnutí motorů ten problémový bit stejně nuluje a tak další I/O operace nebude spoléhat na uloženou proměnnou (stopu) kde byl poslední seek, ale poctivě seekne znovu.

Teď jsi mne přivedl na myšlenku. Máš 5,25" 80ti stopou mechaniku? Vykazuje stejný problém?

Autor:  MTs [ 14.10.2020, 16:12 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

PotPalo píše:
Cez POKE#6,40 som nastavil 40 stôp a pokus opakoval, chyba sa prejavila, prepísala 40 na 104. Takže pokiaľ bit 6... skúsil som POKE #0,65 (pôvodne je tam 1, takže s bitom 6 je to 65), ale žiadna zmena.

Snažil jsem se popsat v minulém příspěvku, snad už je to jasné. Bit 6 má nějaký význam jen pokud jsou v běhu motory mechaniky a má se provádět seek. Tvůj POKE neměl v tomto případě žádný význam, protože mechanika byla zastavena (bit 7 byl 0). Také MDOS 2.0 má celé toto řešeno jinak a jelikož chybu potvrzuješ i na něm, tak bych si opravdu dovolil tvrdit, že v software (mdosu) pes zakopaný nebude...

PotPalo píše:
Skúsil som inú DD mechaniku, a tiež PC mechaniku, iné káble, iný zdroj, ale žiadna zmena.
Našiel som čistú disketu, naformátoval som ju pod MDOSom 2.1, ale tiež žiadna zmena.


Především tvá poslední věta mě i celkem těší, že chybu nevyřešila. Opět to jen potvrzuje doměnku, že chybka bude v hardware.

Mohl by se vyjádřit i někdo jiný s d80mini zda má stejný problém?

Autor:  Busy [ 14.10.2020, 17:05 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

MTs píše:
Teď jsi mne přivedl na myšlenku. Máš 5,25" 80ti stopou mechaniku?
Ano, mam - poctivu 80 stopovu 5.25 DD DS (nie HD!).
MTs píše:
Vykazuje stejný problém?
To zial nemam ako zistit. Mam len samotnu cistu mechaniku (bez D40/D80) a tuto mechaniku pripojenu k MB02...
Ale myslim si ze z hladiska MDOSu je uplne jedno ci je to 3.5 alebo 5.25 mechanika, dolezity je len pocet stop.

Autor:  MTs [ 14.10.2020, 21:36 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

Ještě by se dalo vyzkoušet, že PATCHneš MDOS pro test tak, že bude vždy stepovat pomalejší metodou :) Třeba to pomůže, je to jen takový nápad.

Dále co mne už tenkrát zaujalo v komentovaném výpisu MDOS 2.0, že je tam přímo zajímavá sekce ošetření chyby sector not found. Nerozumíme tomu, ale věříme (jak by řekl Rudolf II) :shrug:

Příloha:
Screenshot_2020-10-14-21-25-41-066.jpeg
Screenshot_2020-10-14-21-25-41-066.jpeg [ 250.21 KiB | Zobrazeno 4994 krát ]

Příloha:
Screenshot_2020-10-14-21-24-32-050.jpeg
Screenshot_2020-10-14-21-24-32-050.jpeg [ 202.53 KiB | Zobrazeno 4994 krát ]

Autor:  MTs [ 14.10.2020, 22:18 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

pwramp píše:
MTs píše:
Mohl by se vyjádřit i někdo jiný s d80mini zda má stejný problém?

Mohl, ale přiznám se, že se v příspěvcích nějak ztrácím. Jak chybu vyvolám?
Mě oprava chyby ix+6 na 40. stopé mechanice pomohla s formátováním v BASICu. Takže jsem si to místo v EEPROMce opravil a taky jsem vyhodil outy pro odblokování 8255 (která na midiD80 stejně není).


Mělo by stačit na 3,5" disketě s formátem 80x9 dát v Basicu
READ*"",1404,22528
a potom (jakmile se sektor úspěšně načte do obrazovky) dej např. CAT
Bude-li ti fungovat bez erroru, pak vyzkoušej i vyšší sektor než 1404 (můžeš až do 1439), ale s tím, že po něm musí hned následovat příkaz CAT (abys donutil hlavu najet nad nultou stopu).

Pokud dobře počítám, bavíme se "pouze" o problémech na posledních dvou stopách (na oboustranné disketě), tj. posledních 36ti sektorech. Jestli pwramp chybu potvrdí, asi vylezu na půdu, zapojím dobře zabalený a schovaný starý didaktik kompakt a testnu si to taky. Mám čím dál více pocit, že půjde v podstatě o můj starý "známý" problém, který se mi nikdy nepodařilo rozlousknout...

Autor:  MTs [ 14.10.2020, 22:59 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

pwramp píše:
Po zadání READ*"",1404,22528 se do obrazovky načte, po CAT napíše Seek error. Po Retry pokracuje.
Vyzkoušeno na dvou miniD80, které jsem postavil v různé době z různých součástek.


No super. Tak teď jen zjistit proč z těch posledních dvou stop se systém neumí korektně vrátit na HOME nultou stopu. Nevěřím, že mdos má nějaký timeout do kterého to hlava musí stihnout. Věřím, že čeká, dokud neobdrží z řadiče status, ale jistý si nejsem. Testnul bych na úvod vynulování dvou bajtů na #261F a donutil tak pracovat řadič s pomalým krokováním. Schválně co to udělá.

Autor:  PotPalo [ 14.10.2020, 23:07 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

Ešte to skúsiť na Kompakte s MDOS 2.0 a už vieme... Možno chyba MDOSu 2.0, ktorá sa úspešne preniesla aj do 2.1.
Ja mám iba D40 s MDOS 1 takže výsledok testu by bol irelevantný (a tiež sa mi to nechce vybalovať a rozkladať, nieje kam :mrgreen: ).

Rýchlosť SEEK na to nemá vplyv, skúsil som POKE #6,75 takže by sa mala zvoliť pomalšia metóda, ale chybu to neodstránilo.

Napadlo ma: že by tam bol naozaj timeout pre návrat? Na Spectre by to stíhalo, ale didaktik je o chlp rýchlejší a teda je timeot kratší a nestihne?
Inak mal som za to, že to pre návrat a seek používa krok vpred a krok vzad ktoré si to počíta a ukladá pozíciu, iba pri chybe sa vykoná návrat na 00 s kontrolou z mechaniky.

Autor:  MTs [ 14.10.2020, 23:31 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

PotPalo píše:
Rýchlosť SEEK na to nemá vplyv, skúsil som POKE #6,75 takže by sa mala zvoliť pomalšia metóda, ale chybu to neodstránilo.

To poke má způsobit co? Protože mdos 2 si rychlost určuje jen podle počtu stop mechaniky... (ix+6)
Aha, už nic, už jsem to pochopil, snížil si počet stop na 75 takže jsi test očůral :)

Autor:  PotPalo [ 14.10.2020, 23:38 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

No a počet stop mechaniky je uložený na POKE #6, je to to isté miesto ako (IX+6) ;) (pokiaľ IX=0x3E00)

Autor:  Busy [ 15.10.2020, 07:33 ]
Předmět příspěvku:  Re: Moderní klon D40/D80?

PotPalo píše:
Napadlo ma: že by tam bol naozaj timeout pre návrat? Na Spectre by to stíhalo, ale didaktik je o chlp rýchlejší a teda je timeot kratší a nestihne?
Je to presne naopak - originalny Spektrum a Gama su o chlp rychlejsie, a Didaktiky M a Kompakt pomalsie.

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