I now have a working 3.5" 1.44mb drive on my ZFDC board. they entire system is configured as follows:
Compupro CPUZ
Compupro RAM17
Compupro System Support 1
Dual IDE CF (as Drive A and B)
ZFDC with 3.5" disk as C and 5.25" as D:
Here is the change I made to the HFL3.ASM code to allow this to work:
; First floppy DRIVE 2 on ZFDC
; EXTENDED DISK PARAMETER HEADER FOR DRIVE 2: (C:)
DW WRITE$SECTOR ;FD SEC WRITE ROUTINE
DW READ$SECTOR ;FD SEC READ ROUTINE
DW FLOPPY$LOGIN$0 ;FLOPPY DISK "C:" LOGIN PROCEDURE
DW FLOPPY$INIT$0 ;FLOPPY DISK "C:" DRIVE INITIALIZATION
ROUTINE
DB 2 ;RELATIVE DRIVE 2 ON THIS
CONTROLLER
DB CPM144 ;CPM3 3.5" 1.44 MB Disk, fill char
E5 <-------------Note here point to proper Disk Parameter Table
DPH2: DPH CPM14$trans,CPM14$dpb,, ; note these two new entries.
DW 512 ;25, 512 Bytes per sector count
DB 2 ;27, Drive Hardware Select
; Second 5 1/4" DRIVE 3 on ZFDC
; EXTENDED DISK PARAMETER HEADER FOR DRIVE 3: (D:)
DW WRITE$SECTOR ;FD SEC WRITE ROUTINE
DW READ$SECTOR ;FD SEC READ ROUTINE
DW FLOPPY$LOGIN$1 ;FLOPPY DISK "D:" LOGIN PROCEDURE
DW FLOPPY$INIT$1 ;FLOPPY DISK "D:" DRIVE INITIALIZATION
ROUTINE
DB 3 ;RELATIVE DRIVE 3 ON THIS
CONTROLLER
DB MINCPM ;CPM-86 5" DDDS Disk
DPH3: DPH DD512$trans,MINI$dpb,,
DW 512 ;25, 512 Bytes per sector count
DB 3 ;27, Drive Hardware Select
; CPM3 XDPH offset definitions:-
BYTE$COUNT equ 25 ;# bytes/sector for this
disk offset
DRIVE$SELECT equ 27 ;Drive Hardware Select
(Relative Drive Offset does not work)
SDSS128$dpb: dpb 128,26,77,1024,64,2 ;8" Disks
MINI$dpb: dpb 512,16,40,2048,64,2 ;5" Disks (16=8X2,
because 1 Track, but both sides, 2 reserved for system)
CPM14$dpb: dpb 512,36,80,2048,256,2 ;3" Disks (36=18X2,
because 1 Track, but both sides) reserve 2 for system. <------Note
this entry
SD128$trans: skew 26,6,0 ;8" sector skew (Note first
sector is 0)
DD512$trans: skew 16,4,0 ;5" sector skew (16 = 8X2)
CPM14$trans: skew 36,1,0 ;3.5" sector skew (36 = 18x2,
1=skew from cpmtools dskdef, sector # start at 0) <------ note this
entry
And a little farther down in the code where the drive formats are set:
SET$DISK$FORMATS: ;Do reverse order so we end up with
hardware Drive 2 selected
MVI C,CMD$SET$FORMAT ;Send Set Disk Format to Drive CMD
CALL S100OUT
MVI C,3 ;Floppy Drive 3, (ZFDC
Board expects a 0H, 1H, 2H or 3H)
CALL S100OUT
MVI C,MINCPM ;ZFDC Board expects a Disk Format
Table Number (0,1,2...13H)
CALL S100OUT
CALL WAIT$FOR$ACK ;Return Z (and NO$ERRORS$FLAG in [A]), or
NZ with error # in [A]
MVI C,CMD$SET$FORMAT ;Send Set Disk Format to Drive CMD
CALL S100OUT
MVI C,2 ;Floppy Drive 2, (ZFDC Board
expects a 0H, 1H, 2H or 3H)
CALL S100OUT
MVI C,CPM144 ;ZFDC Board expects a Disk Format
Table Number (0,1,2...13H) < ------------Note this change
CALL S100OUT
CALL WAIT$FOR$ACK ;Return Z (and NO$ERRORS$FLAG in [A]), or
NZ with error # in [A]
XRA A
RET ;Return Z
I have attached the entire file if you want to use it.
Thanks,
Thomas
On Monday, October 27, 2014 3:27:35 PM UTC-4, Thomas Owen wrote:
>
> Here is what I have so far for symptoms and jumpers on the ZFDC to use a
> 3.5" drive as 1.44mb:
>
> P79, 5-8
> JP13
> P78, 1-2, 8-11,12, 15-16
> JP5
> K15 top 2 pins
> K1 2-3
>
> Drive jumpered as D0
>
> Using the following in HFL3.ASM:
>
> ; EXTENDED DISK PARAMETER HEADER FOR DRIVE 2: (C:)
> DW WRITE$SECTOR ;FD SEC WRITE ROUTINE
> DW READ$SECTOR ;FD SEC READ ROUTINE
> DW FLOPPY$LOGIN$0 ;FLOPPY DISK "C:" LOGIN PROCEDURE
> DW FLOPPY$INIT$0 ;FLOPPY DISK "C:" DRIVE INITIALIZATION
> ROUTINE
> DB 2 ;RELATIVE DRIVE 2 ON
> THIS CONTROLLER
> DB CPM144 ;CPM-86 3.5" 1.44 MB Disk, fill
> char E5
> ;HI BIT SET : DRIVE
> NEEDS RECALIBRATING
> DPH2: DPH CPM14$trans,HD3$dpb,,
> ;Bytes 0-24 used by
> DPH/CPM
> DW 512 ;25, 512 Bytes per sector count
> DB 2 ;27, Drive Hardware Select
>
>
> HD3$dpb: dpb 512,36,80,2048,256,1 ;3" Disks (36=18X2,
> because 1 Track, but both sides)
>
> CPM14$trans: skew 36,1,0 ;3.5" sector skew (36 =
> 18x2, 1=skew from cpmtools dskdef, sectors start at 0)
>
> Now when I boot the system into CPM I can log into the drive as C and read
> a diskette written by DOS as 80 Tracks, 16 sector, etc. BUT, I cannot
> format the diskette using ZFDCDIAG as format # 16 and do this. It formats
> error free, but when I exit to CPM and type 'C' I get error 14 which is
> 'Seek to track erro'
>
> Something in the formatting is not correct and I am not sure, but
> I 'beleive' it is in the statement *CPM14$trans* where you specify the
> skew, etc.
>
> Anyone with any suggestions?
>
> Thanks,
> Thomas
>
>
>
>
>
>
>
>
> On Saturday, October 25, 2014 8:17:54 AM UTC-4, Tom Lafleur wrote:
>>
>> Tom. You might want to look at the Zeta Z80 board to find this.... Also
>> this would make the disk interchangeable with the Zeta board...
>>
>>
>> Also, can you post a list of jumper setting your using, and any cable or
>> board issues you have found...
>>
>> Thanks
>>
>>
>> i~~ _/) ~~~~ _/) ~~~~ _/) ~~~~ _/) ~~i
>>
>> Tom Lafleur
>>
>>
>> On Oct 25, 2014, at 3:56 AM, Thomas Owen <[email protected]> wrote:
>>
>> Hello Everyone,
>>
>> System:
>> Compupro CPUZ
>> Compupro RAM17
>> Compupro System Support 1
>> Dual IDE CF (as Drive A and B)
>> ZFDC (with 5.25 and 3.5" disks as C and D)
>>
>>
>> I am now modifying my BIOS to allow for using a 1.44mb 3.5" diskette on
>> my ZFDC. Looking at the Disk Parameter Header in the HFL3.ASM file I have
>> referenced the proper Drive Parameter Table (CPM144) but there is one piece
>> still missing.
>>
>> It is what CPM3 refers to as the '*Sector Skew Macro*' for this format
>> disk. Here are the two formats that John has included in the original
>> files for 8" and 5.25" drives:
>>
>> SD128$trans: skew 26,6,0 ;8" sector skew (Note first
>> sector is 0)
>> DD512$trans: skew 16,4,0 ;5" sector skew (16 = 8X2)
>>
>> I will need something like this:
>>
>> CPM144$trans: skew 36,???,0 ;3.5" sector skew (36 = 18
>> sectors per track X 2 sides, sector count starts with 0)
>>
>> The part with the ??? is what I need and described here in the CPM System
>> manual:
>>
>> *SKEW Macro*
>> The SKEW macro generates a skew table and requires the following
>> parameters: the number of physical sectors per track, the skew factor, and
>> the first sector number on each track (usually 0 or 1).
>>
>> The form of the SKEW macro call is label: SKEW ?secs,?skf,?fsc where:
>>
>> ?secs
>> is the number of physical sectors per track;
>> ?skf
>> is the sector skew factor;
>> ?fsc
>> is the first sector number on each track.
>>
>>
>> So, what do I need for the sector skew factor?
>>
>> Thanks,
>> Thomas
>>
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "N8VEM-S100" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>
--
You received this message because you are subscribed to the Google Groups
"N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.
HFL3.ASM
Description: Binary data
