Ja jestem jak najbardziej za! Tylko jak chcesz to zrobić? Poprostu "przejąć" lub przekierować odwołania do $d1xx ?!?
Mogę się mylić - proszę mnie poprawić, jeśli tak jest: niepamiętam w jakiej kolejności kontroler zapisuje i odczytuje 16-bitową daną (które jest 1-sze). To samo tyczy się 65c816, ale:
16 bitowe adresowanie jak jest rozwiązane? Bo to co Draco wymyślił, jest poprostu rewelka - 65c816 ma rozkaz, który przenosi blok pamięci z miejsta A do miejsca B. Więc jeśłi zrobiłbyś tak, że blok 512 bajtów w obszarze nowych rejestrów, to bardzo by to uprościło jego sterownik i możnaby było czytać / zapisywać dane z 1 sektora jednym rozkazem CPU :lol: bez jakiejś pętli czy czegoś w tym stylu :lol: Rejestry ułożyć (np.)
$f03000 - Lo data
$f03001 - Hi Data
$f03002 - Lo Data
$f03003 - Hi Data]
można to chyba prosto zrobić sprawdzając tylko najstarsze bity adresowe i bit 0, który służyłby do wyboru Lo/Hi . A odczyt zapis można by rozwiązać na dwa sposoby - np. operację odczytu rozpoczynać od $f03000, a zapisu od $f03001 - tym sposobem mamy zx głowy zamianę miejscami rejestrów w trakcie zapisu/odczytu :lol: i dodać jeden bajt za 512 bajtowym blokiem, aby przesunięty zapis mógł poprawnie wpisać ostatni bajt. Drugi sposób jaki przyszedł mi do głowy, to oprócz bitu A0 wykonać XOR na linii R/W i A0 - oczywiście w odpowiedni sposób, aby wynik był poprawny. Choć mi wydaję się, że 1-szy sposób jest prostrzy do wykonania, choć elektronikiem niejestem. Obszar tych 513 (!) bajtów, to nic innego jak powielone x razy dwa rejestry danych kontrolera będące obok siebie.
Hej Draco, a w takim przypadku ile zyskamy, jeśli rejestry będą taktowane na róni z pamięcią "Fast"?
To nie są obliczenia dla CHS, to sa obliczenia dla samego odczytu. Ale różnicy dużej pomiędzy LBA a CHS nie będzie, bo HD BIOS przeprowadza te obliczenia tylko w sytuacji, kiedy odczyt sektorów nie jest sekwencyjny.
czyli wychodzi na to, żę LBA będzie trochę szybsze niż CHS w normalnej, codziennej pracy - np. wyszukiwanie jakiegoś plikui, czy np. operacja defragmentacji ??? :rolleyes: ;)