Mail Archives: djgpp/2000/02/17/22:21:22
From: | Erik Berglund <erik2 DOT berglund AT telia DOT com>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | Re: Need help with BIOS-level floppy commands.
|
Lines: | 42
|
Message-ID: | <_wWq4.6881$al3.89734@newsc.telia.net>
|
Date: | Thu, 17 Feb 2000 17:49:46 GMT
|
NNTP-Posting-Host: | 194.237.158.197
|
X-Complaints-To: | abuse AT telia DOT com
|
X-Trace: | newsc.telia.net 950809786 194.237.158.197 (Thu, 17 Feb 2000 18:49:46 MET)
|
NNTP-Posting-Date: | Thu, 17 Feb 2000 18:49:46 MET
|
Organization: | Telia Internet
|
To: | djgpp AT Delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
Reply-To: | djgpp AT delorie DOT com
|
kconder AT interaccess DOT com (Kevin Conder) wrote:
> I am trying to read a floppy diskette that has been formatted with
> an Ensoniq EPS keyboard (think synthesizer, not typing). This diskette is
> DS DD and uses 10 sectors/track. Normal DOS diskettes are formatted as
> 9 sectors/track.
>
> I have written a program that reads a normal DOS diskette using
> biosdisk() commands. I haven't been able to use those commands to read
> the EPS formatted diskette. Somehow I need to get the floppy drive
> controller to use 10 sectors/track.
I wrote a program that reads AKAI S1000 disks, it's probably
the same format as in Ensoniq EPS. However I'm not sure about
the `bytcod' used for EPS, maybe you should try both 2 and 3.
Use DOS interrupt 0x21, 0x35 to get the address of interrupt
vector 0x1e (it's not an interrupt but a far pointer to the
`base table' used by the floppy driver). See also Ralf Brown's
interrupt list, INT 1E.
;
; Define byte offsets in diskette unit base table.
; The interrupt vector for interrupt 0x1e points to this table.
;
byte1 equ 0 ; Specified byte 1 (= 223) (bit(3:0)=step-rate time)
byte2 equ 1 ; Specified byte 2 (= 2, DMA mode)
offtim equ 2 ; Time to shut off motor (= 37 ticks = 2 sec)
bytcod equ 3 ; Bytes per sector code (= 3 for S1000 disks)
; (0 - 128, 1 - 256, 2 - 512, 3 - 1024)
maxsect equ 4 ; Max sector number (= 10 for S1000 disks)
sectdist equ 5 ; Distance between sectors when read/write (= 27)
dtl equ 6 ; Max data transfer length (= 255) if bytcod unspec.
formdist equ 7 ; Distance between sectors when formatting (= 84)
formdata equ 8 ; Data to be written when formatting (= 0xf6)
headtim equ 9 ; Time to adjust head (= 15 ms)
ontim equ 10 ; Time to start-up motor (= 8 * 1/8 sec)
--
Erik Berglund
erik2 DOT berglund AT telia DOT com
- Raw text -