Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Leggere floppy da 1,2 Mb

1 view
Skip to first unread message

thecaesar

unread,
May 12, 2006, 4:38:08 PM5/12/06
to
Ho alcuni floppy da 3,5 pollici formattati a 1,2 Mb come posso leggerli?
Ho provato chiamando l'int 13h per leggere i settori, ma mi da errore in
lettura, come si può fare?
Serve un lettore floppy specifico o si può fare in qualche maniera?
Grazie per avermi ascoltato, un saluto a tutti


cod

unread,
May 13, 2006, 6:02:39 AM5/13/06
to
On Fri, 12 May 2006 22:38:08 +0200, "thecaesar" <thec...@alice.it>
wrote:

>Serve un lettore floppy specifico o si può fare in qualche maniera?

Non serve nello specifico nulla di particolare nel leggere un floppy
da 1.2mb.. non c'è nessun obbligo o vincolo.. il floppy che file
system ha?

cod

p.s. puoi postare anche il codice che hai usato per leggere dal floppy
con l'int13h?

thecaesar

unread,
May 13, 2006, 12:37:22 PM5/13/06
to

"cod" <wol...@gmail.com> ha scritto nel messaggio
news:e44b2a$j02$3...@newsreader.mailgate.org...

Non so che file system possa avere, a me interessa fare una copia
dell'immagine del floppy.
il codice è in c con pezzi di codice in assembler. L'ho buttato li solo per
vedere se funzionava quindi non è particolarmente curato il codice, alla
fine da sempre lettura eseguita perchè non ci ho messo un controllo ma
l'importante era la chiamata all'interrupt e la risposta che mi da.
Per caso il bios deve essere impostato in maniera particolare?

#include <iostream.h>
#include <conio.h>

void main()
{
char buffer[5000];
int errore;
char car;
do{
asm{
mov ax,0201h
mov cx,0001h
mov dx,0000h
int 13h
jnc avanti
mov ax,0001h
mov errore,ax
jmp fine
}
avanti:
asm{
mov ax,0000h
mov errore,ax
}
fine:
if (errore)
{
cout<<"Errore in lettura. Riprovare? (s/n)";
cin>>car;
int err;
asm{
mov ah,00h
int 13h
jnc ok
mov err,ax
}
ok:
if (err) cout<<"Errore in reset";
else cout<<"Reset ok";
}
}while (errore && car=='s');
cout<<"Lettura eseguita correttamente";
getch();

}


thecaesar

unread,
May 13, 2006, 12:39:01 PM5/13/06
to
Un'altra cosa il floppy è formattato a 1,2 Mb ma è un normale floppy da 3,5
pollici


cod

unread,
May 22, 2006, 12:09:45 AM5/22/06
to
On Sat, 13 May 2006 18:37:22 +0200, "thecaesar" <thec...@alice.it>
wrote:

>> On Fri, 12 May 2006 22:38:08 +0200, "thecaesar" <thec...@alice.it>
>> wrote:

<cut/>

hai provato a vedere nei servizi del bios se c'è qualcosa che ti
permette di specificare la struttura del dispositivo? in termini CHS ?

cod

p.s. quel codice non è curato.. è buttato lì per lì visto l'uso di
etichette salti condizionali su e giù.. :(

thecaesar

unread,
May 22, 2006, 2:41:14 PM5/22/06
to

"cod" <wol...@gmail.com> ha scritto nel messaggio
news:e4rdj5$jlk$1...@newsreader.mailgate.org...

> On Sat, 13 May 2006 18:37:22 +0200, "thecaesar" <thec...@alice.it>
> wrote:
>
>>> On Fri, 12 May 2006 22:38:08 +0200, "thecaesar" <thec...@alice.it>
>>> wrote:
> <cut/>
>
> hai provato a vedere nei servizi del bios se c'č qualcosa che ti

> permette di specificare la struttura del dispositivo? in termini CHS ?
>
> cod
>
> p.s. quel codice non č curato.. č buttato lě per lě visto l'uso di
> etichette salti condizionali su e giů.. :(

Lo so che il codice non č curato ma mi serviva del codice solo per provare
ed ho visto che non funziona.
Sul setup del bios non c'č il formato 3,5 " a 1,2 Mb. Ho provato con
WinImage per vedere se legge qualcosa ma non funziona. Con gli interrupt del
bios non mi sembra si possa specificare il formato.
Non me ne intendo molto, per questo ho chiesto. Non c'č un modo piů a basso
livello che usare gli interrupt, non si puň controllare in maniera piů
completa il lettore floppy?


agozx

unread,
May 22, 2006, 4:57:34 PM5/22/06
to

"thecaesar" <thec...@alice.it> ha scritto nel messaggio
news:447205cd$0$36921$4faf...@reader3.news.tin.it...
Qualche secolo fa avevo fatto due programmi in assembler per
leggere/scrivere floppy-disk, (non sono un programmatore) , questo per
dire che se a te hanno detto che il tuo codice non č molto curato... mi
vergogno un po a postare il mio, visto che ho provato a rileggerlo e non
c'ho capito una mazza.
se vuoi ti posso spedire gli eseguibili.
uno prog.exe crea l'immagine del floppy in un file.bin che puoi esaminare
con Notepad l'altro serve se vuoi creare un clone del floppy, una spece di
Diskcopy del Dos.
Ciao Ago.

cod

unread,
May 24, 2006, 3:06:52 PM5/24/06
to
On Mon, 22 May 2006 20:41:14 +0200, "thecaesar" <thec...@alice.it>
wrote:

>Non me ne intendo molto, per questo ho chiesto. Non c'è un modo più a basso
>livello che usare gli interrupt, non si può controllare in maniera più
>completa il lettore floppy?

Quando parlavo di bios non intendevo di andare dal bios .. ma di
guardare nei servizi dell'int13h se è possibile specificare la
dimensione CHS da passare (mi pare sia un parametro..).. serve perchè
se la formattazione non è fatta come se l'aspetta lui non fa la
calibrazione del driver correttamente.. cmq se vuoi puoi sempre
scendere a livello basso e gestire direttamente il ctrl del fd
azionando il motore, e spostando le testine .. (controlli pure il led
^_^)

saluti
cod

p.s. see interrupt list di brown

0 new messages