delorie.com/archives/browse.cgi   search  
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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019