PDA

Visualizza la versione completa : Copiare Un Floppy Particolare...


Delas
14-10-2001, 15:00
Ciao raga, forse sarò un poco OT xrò...
Problema: devo copiare un floppy che ha delle tracce in dos ma altre no! ke cakkio devo fare x poterlo copiare??? PLEZE HELPPP!!!
CIAUZ e GRAZIE
http://forum.html.it/forum/faccine/110.gif

Andrea Simonassi
14-10-2001, 21:55
Ai tempi in cui si programmava in DOS c'èra un header <bios.h> che ti permetteva di fare quello che dici, ovvero la copia a basso livello, settore per settore.

Su un sistema protetto devi usare le funzioni del kernel, le funzioni documentate del kernel di windows sono sull'msdn.

Delas
14-10-2001, 22:00
grazie Andrea, ci do un'occhiata e poi ti so dire. Ciao

sebamix
16-10-2001, 19:24
Da quello che ricordo di C e assembler (li usavo molto in accoppiata, una volta... ahh la nostalgia) devi copiare cluster per cluster... Questa tecnica che vuoi utilizzare si chiama anche "Copia Brutale"

Delas
16-10-2001, 19:58
non potresti dirmi qualcosa di più su come fare...
grazie

Andrea Simonassi
17-10-2001, 11:35
Calma.

Se la copia la devi fare da un sistema operativo come windows avrai problemi.

Il kernel non ti consente di accedere direttamente all I/O.

Se ci provi ti ammazza, cioè ti uccide il processo che ci ha provato.

Forse scrivendo un programma DOS, eseguito in modalità ms-dos, dovresti riuscire.

Ad ogni modo a basso livello il cluster non esiste, esistono testine facce, piste e settori.

Il problema è che non mi ricordo come funzionava la cosa, e il vecchio 80286 che conteneva quella guida non l'ho più.

c'era una funzione del tipo bios_read(disco, faccia, settore, pista, destinazione)

e una simmetrica bios_write

e delle costanti tipo FLOPPY_DISK_0
HARD_DISK_0

Queste sono funzioni del BIOS e sono definite nello standard PC/IBM AT per cui dovrebbero essere sempre presenti nei BIOS dei moderni computer.

Ovviamente devi sapere quanti settori e quante facce ha il floppy da copiare.

In assembler l'interrupt era il 13H e la funzione di lettura di un settore 2H, quella di scrittura 3H.

(meno male che non butto mai via i vecchi manuali di carta)

Andrea Simonassi
17-10-2001, 11:45
un po di link sull'argomento

http://www.bitafterbit.com/italiano/c/cbasic/10c.htm

http://www.melograno.net/talpanet/toolbox/int/hw/dischi.html

http://www.pegacity.it/informatica/assembly/tut12.htm

ce ne sono un fottio su google (mitico) cerca INTERRUPT 13H in italiano e troverai decine di link del genere.

Andrea Simonassi
17-10-2001, 11:48
www.elet.polimi.it/Users/DEI/Sections/Compeng/Giuseppe.Pozzi/F2/Asm11X8088.pdf

questo è bello

Delas
17-10-2001, 13:51
grazie mille, mi sei stato di grande aiuto!!!

Andrea Simonassi
18-10-2001, 22:51
Oggi mi è saltata in mente la cosa che nei sistemi linux puoi copiare l'immagine dell'intero floppy digitando

cp /dev/fd0h1440 fileimmagine

poi con il processo inverso ricopi l'immagine all'inverso, non so se pou funzionare nel tuo caso, sarebbe piu semplice che scrivere programmi assembler.

Loading