» »

Floppy Projectz

Floppy Projectz

Exilian ::

Yo, za šolo delam projekt: priklučitev in branje z floppya s pomočjo mikrokontrolerja MC6803, toda ni problem v motoroli ampak v pc. Moram naložit en motorolin program na disketo, na določeno lokacijo, bit za bitom, tko da bom vedu iz kje in kako ga brat z motorole, pa ne vem kako to narest!. Glava floppija se premakne na nasleden bit v 22 mikrosekundi (al neki podobnega, to bom potem ugotavlju) na nasleden bit na disketi, in jaz moram takrat poslat 1 / 0 na floppy vhod, in ta ga bo zapisu. Kako naj naredim da se bo točno zakrat poslal bit? Kako bi to naredu v MS VC++, ker nimam pojma o PC assemblerju.........

A je kdo že naredu kj podobnega??
It's not the opensource i hate.
It's the fanclub I cannot stand.

Senitel ::

Aren't you shooting a little bit to high?
Kaj sploh rabiš PC tuki zraven?

Exilian ::

ker se programe za motorolo pise na pc-jih., in jaz bi potem ko bo floppy uspešno povezan z motorolo, rad napisu enga in ga posnel na disketo in nažalost tu FAT tabela odpade. In bom mogu step by step zapisovat bit za bitom na disketo.

To je namišlen projekt, ki naj bi olajšal delo programerjem na motoroli.....:))
It's not the opensource i hate.
It's the fanclub I cannot stand.

Zgodovina sprememb…

  • spremenilo: Exilian ()

Senitel ::

Ja FAT zna bit problem ja... Sam na motoroli nardit IDE kontroler za floppy pa še večji >:D. Običajno se programiranja mikrokontrolerjev lotiš tako, da imaš pač en kontroler, opremljen z flash ramom ali EPROM-om in potem kopiraš gor svoje programčke, ko pa si s tem zadovoljen pa zapečeš kolkor pač rabiš ROM-ov in to je to.
Nevem ne zakaj in ne kako bi floppy tlačil na MC6803?? Programov itak neboš mogu kar iz floppy-a poganjat...

Monster ::

ola... aha ti bi rad spravo en fajl(predvidevam da v binarni kodi?) na čist prvi naslov na disketi... za to mas en programcek za katerega ti ne morem glih specificno povedat ker nevem mas pa na temle linkuneki uporabenega...(prvse vrstice)

lp..
Ka zaboga...

Brane2 ::

Čeprav... To bi znal biti zanimiv projekt, le spelji ga do konca...

Že kar neki časa sanjam da bi si naredu kalkulator, ki bi imel na kosu iverke par LED displejev, nekaj tipk potrganih s starih PC tipkovnic in delovni spomni (kao RAM) na flopi enoti, ki bi glumila stare bobenske pomnilnike.
>:D >:D
To bi bla fora. med tipkanjem bi ti flopi škripal in lahko bi spremljal npr izračun kake trigonometrične funkcije v realtimeu... >:D

U glavnem, naredu (ajd u redu skopiru) sem par flopi vmesnikov za QL-a, popravu par za Spectruma in če te kaj zanima, bi mogoče znal met odgovor.

SIcer pa vse potrebno najdeš na netu.

Tle ti lahko navržem par osnovnih stvari.
PC flopi je skrajno glupa stvar in tudi njegovi krmilni signali so taki.

Zadeva se ne obnaša kot npr. IDE disk, kateremu lahko ukazuješ, ampak ima za vsako stvar svoj signal.

Tako npr signal z bralne glave prihaja na pin RD, signala za pisanje sta WR (write) in WG (write gate), glavo premikaš s STEP in DIR(ection), disketo zavrtiš z M(otor)ON, enoto pa izbereš s postavitvijo enega od signalov FD0-FD3. Poleg tega dobiš od flopija signal TR00, ki postane aktiven, ko je glava na najbolj zunanjem tracku (track 0) in INDEX, ki označuje "začetek kroga"

Večina signalov je tipa Open Collector in rabijo pullup upor na 5V reda 1 Kohm.

Flopi se načeloma ne ukvarja s sektorji in podobnim. To je stvar flopi kontrolerja v računalniku. Zaveda se le pravil FM in MFM kodiranja. Sprejema torej tako kodiran signal in ga zapisuje na disketo.

Stari flopiji so bili full občutljivi glede timingov itd pri zapisu in branju signala, novi pa sami določajo finese in jih uporabniku ni treba poznati. Z malce hitrejšim mikrokontrolerjem bi lahko verjetno direktno krmilu (tudi pisal in bral) enoto v realnem času...










Zgodovina sprememb…

  • spremenil: Brane2 ()

Exilian ::

Brane2 : yo, thx, večino sm že vedu ampak a si prepričan da je index začetek tracka na disketi, ker glih to me muč -> kje je začetek tracka? Ampak men se zdi da je index pri vsakem disketniku na drugačni poziciji. Sm gledu več floppijev. A bi se dal timer na procesorju nekak uporabt v VC++ ?? In kako ?? In kaj si nakladu tm okol enga kodiranja a bi lahko mal bolj na dolgo......... Morš razumet da sm jaz šele 3 letnik na vegovi.....
It's not the opensource i hate.
It's the fanclub I cannot stand.

Exilian ::

Ej a 1.4 MB disketa se vrti z 300 rpm,yes?? Kok je točno mikorsekund je to za en obrat in kok bitov je na enem tracku. Frend s katerim to delam je neki računu, samo ni čist prepričan.
It's not the opensource i hate.
It's the fanclub I cannot stand.

Brane2 ::

Disketa se načeloma vrti z 300 rpm= 5 obratov/sekundo
Kok je to mikrosekund po obratu si zračuni sam, čeprav si "samo 3. letnik Vegove"

Hitorst prenosa na flopi in z njega je v HD načinu (1.44 Mb) 250 kbit/s in pol tega v DD načinu (720 Kb).

1.44 MB disketa ima 80 trackov, dve strani in na vsakem tracku 18 sektorjev po 512 byteov.

To znese 18x 0.5KB x 2 strani x 80 trackov =18x 80 KB=1440 KB

Seveda je to netto kapaciteta, saj ni ves prostor na disketi samo za uporabne podatke. Določen procent odnesejo sektorski markerji itd...


Kar se indeksnega impulza tiče, ga generira flopi sam. Na talarju je majhen magnetek, ki ob prehodu mimo senzorja sproži impulz.
Ta signal pove flopi kontrolerju, da priude prvi sektor na tracku, ni pa to obvezno. Če se odločiš, da ignorirapš ta signal, ga pač ne upoštevaj. Flopi se ne bo bunil zaradi tega.

Pri zapisu oziroma branju je za nižje kapacitete uporabljeno FM kodiranje, za najvišjo pa MFM. Naprej pa Google search...






TBR ::

vsaki Linuxu distribuciji je na Cdju prilozen program rawrite.exe, ki ti skopira katerikoli fajl na disketo v raw nacinu, ce se prav spomnim, od naslova 0 naprej.

Povej ce ti je uspelo :>
if that fails imas pa v linuxu ukaz dd
# dd if=Fajl of=/dev/fd0 bs=1 count=byte_size_of_file

Senitel:
Disketar ne IDE device spljoh >:D
In ce ma clovek veselje... naceloma ni meja ane :D

Zgodovina sprememb…

  • spremenil: TBR ()

Brane2 ::

Bojim se, da ta rešitev ni zadosti "raw". :D
Te stvari ( za rawrite ne vem, za dd sem pa ziher) pišejo in berejo iz formatiranih sektorjev.

Če pa se prav spomnim, pa tudi kontrolerji, ki so zasnovani na WDCjevi 17xx ali 27xx seriji ne morejo v "raw" načinu vpisovati vseh vrednosti. Določene kombinacije lahko samo berejo.
Z drugimi besedami, of FDCja lahko zahtevaš dostop na višjem nivoju (vpis/branje določenega sektorja) ali na nižjem dostopu vpis ali branje celotnega tracka brez intepretacije vsebine.
S to razliko, da pri "raw" pisanju določene hex kode služijo kot krmilne kode in se ne morejo znajti v dati. Glupo ampak tko je.

Vendar teh omejitev pri direktnem delu s flopijem ni, ker pač ne uporabljaš tam nekega flopi kontrolerja ampak cepaš direktno...

V tem primeru mora CPU analizirati zajete podatke in iz njih ločiti zrnje (dato) od plev (režijski podatki- headerji sektorjev, presledki med sektorji, checksumi itd)...

Če se prav spomnim, ta pristop uporablja Amiga, ki nima kompleksnega flopi kontrolerja, ampak samo pobere cel track v ram in se tam ukvarja z njim ali pa ga prej pripravi v ramu in ga potem samo posname.

Zelo izvirna rešitev, ki je prihranila precej denarja za hardver in omogočila Amigi nore hacke s flopijem, poleg tega pa tudi off-limit kopiranje disket >:D .




Zgodovina sprememb…

  • spremenil: Brane2 ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Linux poslal diskete na smetišče zgodovine

Oddelek: Novice / Operacijski sistemi
199166 (5802) Randomness
»

Disketnik in ARM

Oddelek: Elektrotehnika in elektronika
5700 (547) DOOM_er
»

Prenosni trdi diski z nameščenimi trojanci

Oddelek: Novice / Zasebnost
334058 (4058) poweroff
»

Gnome 2.10

Oddelek: Novice / Ostala programska oprema
344031 (3469) borchi
»

Linux javlja "Floppy busy"

Oddelek: Operacijski sistemi
71090 (1043) moj_nick

Več podobnih tem