sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #24987
VS: Floppy-problemer
HEJ SSLUG'ere
Til jeres behagelige orientering:
Mandag i sidste uges skrev jeg nedenstående til jer. Onsdag (tror jeg nok)
løste
jeg selv problemet.
På de ældre maskiner er Floppydisc-controlleren (Typisk en NEC-765A /
Intel-8272A)
forsynet med en 4 MHz systemklokke med en duty-cycle på 50). På de mere
moderne
maskiner er systemklokken "opgraderet" til både 16 og 24 MHz. Det betyder
(sand-
synligvis), at de små flux-ændringer der er på en 4 MHz "optaget" diskette
vil blive
registreret af de hurtigere, mere finfølende floppy-controllere på de
moderne maskiner.
Jeg formoder at disse små transienter er registreret som relevante signaler
på de for-
kerte tidspunkter (relativt) og dermed givet anledning til de tidligere
nævnte læse-
problemer.
Jeg lånte en ældre Compag 25 MHz 486 SX'er med 5 MHz på bussen. Kørte
program og dis-
ketten, og "viola / Voila " - nolo problemer, mine disk data væltede ud i
Rammen, hvorfra
det var en smal sag at skrive over på 3 1/2 " (1.44 Mb) disketter.
Måtte I alle få en god somnmer..
Venlig hilsen
Chr Hemdrup
-----Oprindelig meddelelse-----
Fra: Christian Hemdrup [mailto:chr@xxxxxx]
Sendt: 10. juli 2000 10:32
Til: 'sslug-teknik@xxxxxxxx'
Emne: SV: [TEKNIK] Suk - X 4.0.1
HEJ SSLUG'ere
Jeg var sent i går aftes udsat for et fænomen, jeg aldrig før har været
udsat for.
Jeg skal bruge de dat i forbindelse med en vigtig opgave, derfor rejser jeg
problemet
her!
På en SKRIVEBESKYTTET 5 1/4 " diskette (Jo, jeg ved godt at det var i
forrige årtusinde
at "man" brugte den slags.. !) formateret i CP/M-80 (endnu mere suk (ikk'
?)) i følgende
format (256 bytes /sektor / 16 sektorer/ spor, 80 spor / dobbelsidet, blev
adresse-mærket i
HVER ENESTE SEKTOR efter læsning med følgende assembler rutine ÆNDRET til
slettet markering.
Formatet på disketten er (så vidt jeg ved) standard IBM sys. 34 format.
Rutinen er skrevet i DEBUG (DOS) på en HP VEctra VL:
C:\> DEBUG <CR>
A100 Mine kommentarer
- MOV AX,CS Flyt CS til
- MOV DS,AX DS
- MOV ES,AX og ES (Es
bruges med BX som buffer areal
- MOV CX,0101 Læs spor (CH
= 1) og sektor (CL =1 )
- MOV DX,0000 Sæt
læsehoved (DH = 0) og disk (DL = 0 / 'A')
- MOV BX,1000 Sæt buffer
offset (ES:BX = <CS:1000> = segm-offset på buffer
- MOV AX,0201 Læs 1 sektor
(AH = 2 læs <AL> sektor(er)
- INT 13 Via BIOS interrupt
13
- NOP Dummy gør
inegnting
- NOP Ditto
Start adr = 0100
Slut adr = 0114
(Sektor længden i 0000:0525 ændres fra 02H til 01H (fra 512 til 256 bytes
sektor.)
Første kørsel gav CY = 1 som forventet og AX 0600.
Anden kørsel gav CY = 0 og perfekt læsning af sektor og AX = 0001 som
resultat.
Tredie og alle efterfølgende kørsler gav CY = 1 og resultat AX = 0200
(slettet address mark..)
På samtlige sektorer (jeg har prøvet!) Det var ægte DOS 6.22 og ikke
WINDROP's DOS emulator...
BIOS int 13. funktion 2 er til LÆSNING (og KUN læsning). Desuden var
disketten skrivebeskyttet, så
jeg fatter ikke hvordan en skrivebeskyttet diskettes adressemærke kan ændres
!
Er der nogen blandt SSLUG'erne, der kan give mig en god forklaring ?
Men endnu bedre ville det være, hvis nogen kunne give mig det hint, så jeg
kan få mine data til-
baage.... (HJÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆLP!)
Med venlig hilsen
Christian Hemdrup
Trei
3
Follow ups