[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [N8VEM-S100:5447] Sector Skew Macro for 3.5" 1.44mb diskette on a ZFDC



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 <thoma...@gmail.com> 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 n8vem-s100+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Attachment: HFL3.ASM
Description: Binary data