Προσπελαση USB sticks απο το MSDOS

freaktmp

Expert
Joined
20 Απρ 2009
Μηνύματα
9.340
Αντιδράσεις
9.486
Ας ριξουμε μια ματια στο πως μπορουμε να προσπελασουμε usb sticks στο DOS. Αν καποιος κανει μια αναζητηση στα αραχνιασμενα μονοπατια του διαδικτυου θα βρει πολλες και διαφορες μεθοδους και γιατροσοφια και ειναι πρακτικα αδυνατο να δοκιμασει ολους τους συνδιασμους software και hardware. Ουτε και εγω εκανα κατι τετοιο, αλλα το εψαξα αρκετα ωστε να βρω εναν συνδιασμο που φαινεται να δουλευει αρκετα καλα.

Εξ αρχης ο στοχος μου ηταν να μπορω να διαβασω usb sticks φορμαρισμενα σε FAT32 αλλα και NTFS. Επιπλεον ηθελα κατι που να μην βρισκεται στα config.sys/autoexec.bat ωστε να καθυστερει την εκκινηση του υπολογιστη και να σπαταλα ασκοπα πορους για κατι που θα χρειαζομαι αραια και που.

Ας δουμε τα βασικα στοιχεια της λυσης στην οποια κατεληξα.

Πρωτα απ' ολα ειναι ο usb aspi driver που μας προσφερει ASPI υποστηριξη για USB controllers, hubs και mass storage devices. Eπελεξα τον driver USBASPI.SYS v2.20 (Panasonic) 39.179 bytes.

Μετα θα χρειαστουμε εναν DOS ASPI driver που μιλαει με τον παραπανω driver και δινει drive letter και προσβαση στα usb sticks μας. Επελεξα τον driver DI1000DD.SYS v2.00 (Novac) 16.368 bytes.

Επειδη αυτοι ειναι drivers που κανονικα πρεπει να φορτωθουν στο config.sys επελεξα το προγραμμα DEVLOAD v3.25 (Woodhouse/Auer) που μας επιτρεπει να φορτωσουμε SYS drivers απο την γραμμη εντολων (ή απο batch files).

Εφοσον χρησιμοποιησουμε ολα αυτα κατω απο MSDOS 7.xx και ανω εχουμε αυτοματως υποστηριξη για FAT32. Για NTFS επελεξα το κλασσικο NTFS4DOS v3.02 (Sysinternals). Υποστηριζει μονο εγγραφη, αλλα αυτο μου φτανει και περισσευει.

Για hardware ξεκινησα απο το tweener μου, αλλα εκει συναντησα διαφορα προβληματα τα οποια πιθανολογω οτι ειχαν να κανουν με το οτι χρησιμοποιουσα MSDOS 6.22. Ετσι προχωρησα στο HP T5710 thin client που ειχα φτιαξει με MSDOS 7.1 CDU.

Το περιεχομενο του batch file που μας επιτρεπει να διαβασουμε FAT/FAT32 usb sticks.

Κώδικας:
devload /h usbaspi.sys /v /w /u
REM | CHOICE /C:AB /T:A,10 >NUL
devload /h di1000dd.sys /dD

H πρωτη εντολη φορτωνει το USB ASPI driver (σε ΗΜΑ αν αυτο ειναι εφικτο). Η παραμετρος w του driver σταματαει την διαδικασια μεχρι να συνδεσουμε το usb stick και να πατησουμε enter. Παρατηρησα οτι αν εχω ηδη συνδεδεμενο το stick πριν τρεξω τον driver καμια φορα δεν αναγνωριζεται ή αναγνωριζεται αλλα δεν δουλευει σωστα. Η παραμετρος u περιοριζει τον driver να χρησιμοποιησει μονο UHCI usb controllers (usb 1.0). Δυστυχως αν προσπαθησω να χρησιμοποιησω EHCI (usb 2.0) παγωνει ο υπολογιστης.

P3175781.JPG

Η δευτερη εντολη κανει τον υπολογιστη να περιμενει για 10 δευτερολεπτα πριν προχωρησει παρακατω. Χωρις αυτη την καθυστερηση καμια φορα ο DOS ASPI driver δεν μπορουσε να αναγνωρισει οτι υπαρχουν ASPI συσκευες.

P3175782.JPG

Η τριτη φορτωνει το DOS ASPI driver (σε ΗΜΑ αν αυτο ειναι εφικτο) και δινει στο usb stick το γραμμα D.

P3175783.JPG

P3175784.JPG

Αν εχουμε ενα φορμαρισμενο σε NTFS usb stick, απλα τρεχουμε το NTFS4DOS που ανακαλυπτει το NTFS partition και το κανει mount σε ενα αλλο γραμμα. Η ιδιορυθμια αυτη σημαινει οτι αν εχουμε NTFS sticks αυτα καταλαμβανουν δυο drive letters!

P3175785.JPG

Αφου ολοκληρωθει η διαδικασια μπορουμε να προσπελασουμε το usb stick μας σαν οποιονδηποτε αλλο δισκο του συστηματος. Οπως παρατηρουμε διατηρουνται κανονικα τα long filenames. Η ταχυτητα προσβασης ειναι εξαιρετικα αργη.

P3175786.JPG
P3175788.JPG

Για να καταληξω σε αυτα που σας εγραψα εφαγα πολλες ωρες δοκιμαζοντας 1002 διαφορετικες πατεντες μεχρι να βρω κατι να δουλεψει σταθερα και αξιοπιστα. Τα περισσοτερα usb sticks που δοκιμασα παιζουν καλα, ακομα και 64gb USB 3.0 stick υψηλων επιδοσεων. Μονο κατι ανωνυμα στικακια 1gb κακης ποιοτητας βρηκα να μην αναγνωριζονται. Αλλο ενα θεμα εχει να κανει με τις ρυθμισεις που εχουμε κανει σχετικα με την μνημη (himem.sys, emm386.exe, διαφοροι αλλοι drivers και TSRs). Γενικα δεν συνεργαζονται αρμονικα με ολα τα configurations και θελει ενα σχετικα καθαρο boot για να εχουμε πληρη αξιοπιστια. Τελος δεν νομιζω οτι θα εχετε θετικα αποτελεσματα αν δοκιμασετε να χρησιμοποιησετε πολυ μοντερνο hardware (usb 3.0 controllers κλπ). Δεν δοκιμασα usb δισκους και απ' οσο ξερω θα χρειαστειτε διαφορετικους drivers αν θελετε να προσπελασετε usb cd/dvdrom.

Τελικα αξιζε τον κοπο η ολη ιστορια; Αν το συστημα σας δεν εχει καποιον ευκολο τροπο να μεταφερετε αρχεια τοτε ναι. Θα χρειαστει ομως ιώβειος υπομονη μεχρι να το κανετε να δουλεψει και μετα να μεταφερετε αρχεια (ειδικα αν εχουν μεγαλο μεγεθος!).
 
Τελευταία επεξεργασία:
Μια χαρά άξιζε, γιατί απ' ότι θυμάμαι USB drivers για DOS είχαν βγάλει εκεί γύρω στο 1999 - 2000. Ο καλύτερος τρόπος για μεταφορά αρχείων σε vintage builds είναι. Στα PC που έχουν USB θύρες. Από Socket 7 και πάνω δηλαδή.
 
Οταν αναρωτιόμουν αν αξιζει, συνυπολόγιζα ολες τις ωρες που έφαγα στο web διαβάζοντας τα 1002 και τις ωρες με δοκιμες με διαφορετικούς drivers, ρυθμίσεις, παραμέτρους κλπ μεχρι να το κανω να δουλέψει. Και με 1mb/sec για μικρα παιχνίδια σας δινει χρόνο να πιείτε εναν καφε, αλλα για iso σας δινει χρονο να πάτε για καφε! :biglaugh:
 
Υπάρχει και αντιγραφή μέσω οπτικού δίσκου. Και εκεί αργεί λίγο!

Αν και εγώ σε όλα τα vintage builds έχω CD-RW, κυρίως στα 386 / 486 και DVD-RW στα ανώτερα, γιατί έχει αποδειχθεί ότι τα laser των συγκεκριμένων δεν χαλάνε εύκολα.
 
Προσωπικα προτιμω CF καρτες. Τις βαζω στον υπολογιστη μου και μεταφερω γρηγορα και ευκολα οτι χρειαζομαι προς το ρετρομηχανημα.

Αυτη ειναι η λυση που εχω εφαρμοσει σε πρακτικα ολα μου τα ρετροpc:

ALS Pentium 75
ΙΒΜ ΧΤ 5160
Windows 98 Extreme Overkill PC
Samsung SPC3000V
Samsung SPC3000
286
386

Το DOS thinclient ειναι πρακτικα το μονο ρετροpc που εχει σημαντικη χρηση και δεν εχει CF καρτα!

Οπτικα drives, μονο για το θεαθήναι. Ετσι κι αλλιως εχω μονο ελαχιστα οπτικα media πλεον.
 
Πίσω
Μπλουζα