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

Re: Dual IDE and ZFDC in a non-banked no holes system - problem 'seeing' drives



I now have the system seeing drive C from CPM and formatting a 5.25" floppy.   The problem was in the HFL3.asm file in the Extended Disk Parameter Header.

You will notice that each drive on your ZFDC will have it's own section here, and all references to the drive must be the drive number of the actual drive on the ZFDC itself.
In my case I had 'Drive 2' configured as the first floppy on the board, but you will notice that I had 0 here:

DB     0                     ;RELATIVE DRIVE 0 ON THIS CONTROLLER
and
DB     0                     ;27, Drive Hardware Select

where they should have been a '2' instead of a '0'

and finally, under the initialization section in the same file I needed a '2' as well.

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)


The system will now read and format a 5.25" DSDD diskette (360k) or a 3.5" disk with the same format.   I can format and read the 3.5" diskette as a 1.44 mb from the ZFDCDIAG but then it is not readable from CPM until I make the proper changes in the Disk Parameter Header to reference the proper drive definition - CPM144.

Thanks,
Thomas








On Thursday, October 23, 2014 2:16:45 PM UTC-4, Thomas Owen wrote:

System hardware:

Compupro CPUZ, Compupro Ram17, Compupro System Support 1, Dual IDE CF card (A: and B:), ZFDC card with 5.25" drive C:

I built my dual IDE card earlier this year and have a very reliable ‘no-holes’ system running from CF cards.  

I have now finished the ZFDC board and can use it with either 3.5” or 5.25” floppy drives reliably with the ZFDCDIAG program.

When I boot CPM from the CF card it initializes the ZFDC board with no errors.

I can not, however, access drive C: and D: from CPM

When I enter "A>C:" I see the following: ZFDC board display shows 'FF3B0' and Halt led comes on. 

On the console it displays:

Floppy Disk drive Login Error (door open?)

ZFDC Board Sector Read Error

Bios Error on C: T-00001, S-00000

ZFDC Board Error Code =FFH  

The Halt led clears and the ZFDC board returns to display FF000

I get the A> back on the console

Need some suggestions as to what I may be missing from my code (system) - thanks in advance.


So, in my CPM3.sys file I have the following: 

 HIDE3.asm

            PUBLIC DPH0, DPH1                   ;DISK PARAMETER HEADERS drive A and B

           

            ; EXTENDED DISK PARAMETER HEADER FOR DRIVE 0:

       DW     HDWRT         ;HARD DISK WRITE ROUTINE

       DW     HDRD          ;HARD DISK READ ROUTINE

       DW     HDLOGIN$0     ;HARD DISK LOGIN PROCEDURE

       DW     HDINIT$0      ;HARD DISK DRIVE INITIALIZATION ROUTINE

       DB     0             ;RELATIVE DRIVE 0 ON THIS CONTROLLER

       DB     0             ;MEDIA TYPE:

                             ;HI BIT SET : DRIVE NEEDS RECALIBRATING

DPH0:  DPH    0,IDEHD$DPB,0,

       DB     0             ;Drive A: Hardware Select, (IX offset 25)

 

       ; EXTENDED DISK PARAMETER HEADER FOR DRIVE 1:

       DW     HDWRT         ;HARD DISK WRITE ROUTINE

       DW     HDRD          ;HARD DISK READ ROUTINE

       DW     HDLOGIN$1     ;HARD DISK LOGIN PROCEDURE

       DW     HDINIT$1      ;HARD DISK DRIVE INITIALIZATION ROUTINE

       DB     0                     ;RELATIVE DRIVE 0 ON THIS CONTROLLER

       DB     0                     ;MEDIA TYPE:

                                    ;  HI BIT SET : DRIVE NEEDS RECALIBRATING

DPH1:  DPH    0,IDEHD$DPB,0,

       DB     1                     ;Drive B: Hardware Select, (IX offset 25)

 

   HDRVTBL3.asm

            EXTRN  DPH0,DPH1,DPH2,DPH3

      

        @DTBL: DTBL   <DPH0,DPH1,DPH2,DPH3,0,0,0,0,0,0,0,0,0,0,0,0>

 

 HFL3.asm

            PUBLIC DPH2,DPH3                    ;FLOPPY DISK PARAMETER HEADERS

      

        ; First 5 1/4" DRIVE

        ; 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     0                     ;RELATIVE DRIVE 0 ON THIS CONTROLLER

       DB     MINCPM                ;CPM-86 5" DDDS Disk

                                    ;HI BIT SET : DRIVE NEEDS RECALIBRATING

DPH2:  DPH    DD512$trans,MINI$dpb,,

                                    ;Bytes 0-24 used by DPH/CPM

       DW     512                   ;25, 512 Bytes per sector count

       DB     0                     ;27, Drive Hardware Select

 

 ; Second 5 1/4" DRIVE       

        ; 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     0                     ;RELATIVE DRIVE 0 ON THIS CONTROLLER

       DB     MINCPM                ;CPM-86 5" DDDS Disk

                                    ;HI BIT SET : DRIVE NEEDS RECALIBRATING

DPH3:  DPH    DD512$trans,MINI$dpb,,

                                    ;Bytes 0-24 used by DPH/CPM

       DW     512                   ;25, 512 Bytes per sector count

       DB     1                     ;27, Drive Hardware Select