Image Map Image Map
Page 2 of 2 FirstFirst 12
Results 11 to 20 of 20

Thread: P112 CP/M Plus

  1. #11

    Default

    Quote Originally Posted by ldkraemer View Post
    ...
    RPT = 0024 = The number of 128 byte records per track.
    BSH = 04 = The block shift count.
    BLM = 0F = The block mask.
    EXM = 01 = The extent mask.
    DSM = 0054 = Disk storage maximum (the largest block number).
    DRM = 007F = Directory maximum (the largest directory entry).
    DAB = 00C0= Directory Allocation Block AL0: = 00 & AL1: = C0
    CKS = 00020 = Directory check size.
    OFF = 0002 = Track offset (number of reserved tracks).
    ...
    Larry
    Minor correction, ALV0 (DAB) is not a word, but rather two bytes. So AL0=C0 and AL1=00. Probably does not change anything, but you want to be sure and not reverse those values.

  2. #12
    Join Date
    Mar 2013
    Location
    Chaffee, MO
    Posts
    1,343

    Default

    durgadas311,
    WOW! Good catch. I edited the previous post and will change my original file. I had it correct further
    down in the file.

    THANKS.

    Larry

  3. #13

    Default

    Thanks, Larry. I sent the dbp from the BIOS source in reply to your PM.

  4. #14
    Join Date
    Mar 2013
    Location
    Chaffee, MO
    Posts
    1,343

    Default

    I had a few typo's in the previous 22DISK Definitions. Those are corrected now.

    The older version of P112-0ld SBC I named to P110. Here are the correct parameters. I copied all
    the files to my DOS Box Drive from the cpm3*.img.

    ;------ Parameters for 3", 1.4MB drives

    ; Special parameters BEFORE label
    db D3_144 ; Drive type
    dw remap3 ; Sector mapping strategy
    dpblk3: dw 4*18 ; CP/M "sectors"/track
    db 4 ; Block shift
    db 15 ; Block mask
    db 0 ; Extent mask
    dw 715-1 ; Max. allocn. block no.
    dw 128-1 ; No. of directory entries -1
    db 11000000b ; Bit-map for allocn. blocks
    db 00000000b ; used for directory
    dw 32 ; No. of bytes in dir. check buffer
    dw 1 ; No. of tracks before directory
    db 2 ; Physical record shift
    db 3 ; Physical record mask
    ***************

    The value of DSM for P110 (Older Version of P112 SBC) is:
    ((80 cylinders X 2 side) - 1 tracks) X 18 sectors X 512 bytes) =
    1,465,344 bytes / 2,048 = 715.5 Allocation units -1 = 714

    The value of DSM for P112 SBC is:
    ((80 cylinders X 2 side) - 2 tracks) X 18 sectors X 512 bytes) =
    1,456,128 bytes / 2,048 = 711 Allocation units -1 = 710


    BEGIN P112 SBC - CP/M 3 - DSHD 3.5" - 96 TPI 512 x 18
    DENSITY MFM, HIGH
    CYLINDERS 80 SIDES 2 SECTORS 18,512
    SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    ORDER SIDES
    BSH 4 BLM 15 EXM 0 DSM 710 DRM 255 AL0 0C0h AL1 0 OFS 2
    END

    BEGIN P110 SBC - CP/M 3 - DSHD 3.5" - 96 TPI 512 x 18
    DENSITY MFM, HIGH
    CYLINDERS 80 SIDES 2 SECTORS 18,512
    SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    ORDER SIDES
    BSH 4 BLM 15 EXM 0 DSM 714 DRM 127 AL0 0C0h AL1 0 OFS 1
    END

    If someone has an Image of a newer P112 SBC Floppy, I'd like a copy to test the P112
    Definitions.

    Now, I need to send these to Chuck(G) so he can update his Database.

    Thanks.

    Larry
    Last edited by ldkraemer; April 14th, 2018 at 10:08 AM. Reason: added quote

  5. #15

    Default

    Thanks, Larry.

    I've been trying to get my GIDE working. CP/M Plus doesn't see the partitions at all. ZPM3 can see them but I can't initialize them. I've tried CF cards and DOMs. One of the CF cards reports "write error" (but I can write to it when I use fdisk to partition). The other CF card and both DOMs I've tried just hang the system.

    I need to compile a new BIOS with some debugging code added.

  6. #16
    Join Date
    Mar 2013
    Location
    Chaffee, MO
    Posts
    1,343

    Default

    On my 7.x DOS Box, I have a CF type adapter that goes to a Card Slot. I use the Hitachi 6GB Microdrives, partitioned into two 3GB Partitions
    by Gparted in Debian 8.x. That way I can copy files from my DOS 7.1 partition to a backup 3GB partition with Debian 8.x.

    I've had good luck with the Hitachi 6GB Microdrives. A plus for me is I can punch the Button by the Microdrive to eject it with Power off,
    and then I can carry it to my Debian Laptop, and access it via a USB CF Adapter. No need to disassemble anything to get to a Drive or CF.
    Makes copying and backing up easy.

    Say, do you have the DPB (DP Header) for the later P112 Images? Would you have an Image from a P112 System?

    THANKS.

    Larry

  7. #17

    Default

    Quote Originally Posted by ldkraemer View Post
    On my 7.x DOS Box, I have a CF type adapter that goes to a Card Slot. I use the Hitachi 6GB Microdrives, partitioned into two 3GB Partitions
    by Gparted in Debian 8.x. That way I can copy files from my DOS 7.1 partition to a backup 3GB partition with Debian 8.x.

    I've had good luck with the Hitachi 6GB Microdrives. A plus for me is I can punch the Button by the Microdrive to eject it with Power off,
    and then I can carry it to my Debian Laptop, and access it via a USB CF Adapter. No need to disassemble anything to get to a Drive or CF.
    Makes copying and backing up easy.

    Say, do you have the DPB (DP Header) for the later P112 Images? Would you have an Image from a P112 System?

    THANKS.

    Larry
    The dpb from the CP/M 2.2/ZCPR3 system? I can grab it from the other CF card with it. I just need to transfer over one of the programs that displays it or look through the BIOS.

  8. #18
    Join Date
    Mar 2013
    Location
    Chaffee, MO
    Posts
    1,343

    Default

    I searched with Google until I found a site with more information about the CP/M Disk Parameter Block (Header)
    for the various floppy formats the P112 SBC can write. Here are those 22DISK (and cpmtools) Definitions according
    to the various DPB configurations. The Ampro Definitions are already in 22DISK.


    The value of DSM for P110 (Older Version of P112 SBC) is:
    ((80 cylinders X 2 side) - 1 tracks) X 18 sectors X 512 bytes) =
    1,465,344 bytes / 2,048 = 715.5 Allocation units -1 = 714

    The value of DSM for P112 SBC is:
    ((80 cylinders X 2 side) - 2 tracks) X 18 sectors X 512 bytes) =
    1,456,128 bytes / 2,048 = 711 Allocation units -1 = 710


    BEGIN P112 SBC - CP/M 2&3 - DSHD 3.5" - 96 TPI 512 x 18
    DENSITY MFM, HIGH
    CYLINDERS 80 SIDES 2 SECTORS 18,512
    SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    ORDER SIDES
    BSH 4 BLM 15 EXM 0 DSM 710 DRM 255 AL0 0C0h AL1 0 OFS 2
    END

    #P112 SBC - CP/M 2&3 - DSHD 3.5" - 96 TPI 512 x 18
    diskdef p112
    seclen 512
    tracks 160
    sectrk 18
    blocksize 2048
    maxdir 256
    skew 1
    boottrk 2
    os 3
    end

    # libdsk data below
    [p112]
    description = P112 SBC - CP/M 2&3 - DSHD 3.5" - 96 TPI 512 x 18
    sides = alt
    cylinders = 160
    heads = 2
    secsize = 512
    sectors = 18
    secbase = 1
    datarate = HD


    BEGIN P110 SBC-old - CP/M 2&3 - DSHD 3.5" - 96 TPI 512 x 18
    DENSITY MFM, HIGH
    CYLINDERS 80 SIDES 2 SECTORS 18,512
    SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    ORDER SIDES
    BSH 4 BLM 15 EXM 0 DSM 714 DRM 127 AL0 0C0h AL1 0 OFS 1
    END

    #P110 SBC-old - CP/M 2&3 - DSHD 3.5" - 96 TPI 512 x 18
    diskdef p110
    seclen 512
    tracks 160
    sectrk 18
    blocksize 2048
    maxdir 128
    skew 1
    boottrk 1
    os 3
    end

    # libdsk data below
    [p110]
    description = P110 SBC-old - CP/M 2&3 - DSHD 3.5" - 96 TPI 512 x 18
    sides = alt
    cylinders = 160
    heads = 2
    secsize = 512
    sectors = 18
    secbase = 1
    datarate = HD


    BEGIN P111 SBC - CP/M 2&3 - DSDD 5.25" - 48 TPI 512 x 18
    DENSITY MFM, HIGH
    CYLINDERS 40 SIDES 2 SECTORS 18,512
    SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    ORDER SIDES
    BSH 4 BLM 15 EXM 1 DSM 174 DRM 63 AL0 010h AL1 0 OFS 1
    END

    #P111 SBC - CP/M 2&3 - DSDD 5.25" - 48 TPI 512 x 18
    diskdef p111
    seclen 512
    tracks 80
    sectrk 18
    blocksize 2048
    maxdir 64
    skew 1
    boottrk 1
    os 3
    end

    # libdsk data below
    [p111]
    description = P111 SBC - CP/M 2&3 - DSDD 5.25" - 48 TPI 512 x 18
    sides = alt
    cylinders = 80
    heads = 2
    secsize = 512
    sectors = 18
    secbase = 1
    datarate = DD


    BEGIN P113 SBC - CP/M 2&3 - DSQD 3.5" BP - 96 TPI 1024 x 11
    DENSITY MFM, HIGH
    CYLINDERS 80 SIDES 2 SECTORS 11,1024
    SIDE1 0 1,2,3,4,5,6,7,8,9,10,11
    SIDE2 1 1,2,3,4,5,6,7,8,9,10,11
    ORDER SIDES
    BSH 4 BLM 15 EXM 0 DSM 873 DRM 255 AL0 0F0h AL1 0 OFS 1
    END

    #P113 SBC - CP/M 2&3 - DSQD 3.5" BP - 96 TPI 1024 x 11
    diskdef p113
    seclen 1024
    tracks 160
    sectrk 11
    blocksize 2048
    maxdir 256
    skew 1
    boottrk 1
    os 3
    end

    # libdsk data below
    [p113]
    description = P113 SBC - CP/M 2&3 - DSQD 3.5" BP - 96 TPI 1024 x 11
    sides = alt
    cylinders = 160
    heads = 2
    secsize = 1024
    sectors = 11
    secbase = 1
    datarate = HD


    #Information from biosv2a11.zip file bios.180

    ; Constants describing the track layout:-

    BLKSIZ equ 2048 ; CP/M Allocation Block size (default all)

    ; BDOS write-command codes:

    WRALL equ 0 ; Write to Allocated
    WRDIR equ 1 ; Write to Directory
    WRUAL equ 2 ; Write to Unallocated
    ;
    ; D I S K O R G A N I S A T I O N T A B L E S

    ; The 3" diskette has 18 sectors per track, while the 5" has 9. Both
    ; drives are 2-sided. This makes for a very simple dual-drive scheme:
    ; for 5" drives, the two sides are mapped into one 18-sector track,
    ; while each side is a separate track on the 3" drives.
    ; The overall organisation is then:

    ; 3" 5" 3"BP 3/5"DSQD
    ; --------------------------------------------------------------------
    ; Bytes / sector 512 512 1024 1024
    ; Sectors / track 18 18 11 5
    ; Tracks / disk 160 40 160 160
    ; --------------------------------------------------------------------
    ; Bytes / disk 1,474,560 368,640..... 1,802,240 819,200

    ; The only parameter which changes is the number of "tracks".

    ; Both drives have the sector interlace created by hard formatting.
    ; Hence there is no sector-translation table. This system is not only
    ; simpler, but is inherently transparent to disks created with different
    ; interlace strategies.

    ; Constants describing the track layout:-

    BLKSIZ equ 2048 ; CP/M Allocation Block size (default all)

    ; BDOS write-command codes:

    WRALL equ 0 ; Write to Allocated
    WRDIR equ 1 ; Write to Directory
    WRUAL equ 2 ; Write to Unallocated

    ;----------------------------------------------------------------------
    ; D I S K - P A R A M E T E R H E A D E R S

    ; Drive Parameter headers: Drives 0 & 1

    ; Drive 0: Values for a 3", 1.44MB drive

    dpBase: dw 0 ; Skew table (none)
    dw 0,0,0 ; Scratch for CP/M
    dw dirBf ; Directory Buffer
    dpbPtr: dw dpBlk3 ; Disk Parameter Block (3")
    dw chk00 ; Work area (for changed diskettes)
    dw all00 ; Allocation vector

    HDRSIZ equ $-dpBase ; Length of block

    ; Drive 1: Values for a 5", 360kB drive

    dw 0 ; Skew table (none)
    dw 0,0,0 ; Scratch for CP/M
    dw dirBf ; Directory Buffer
    dw dpBlk3 ; Disk Parameter Block (3")
    dw chk01 ; Work area (for changed diskettes)
    dw all01 ; Allocation vector

    NDRIVES equ ($-dpBase) / HDRSIZ ; No. of drives

    IFDEF RAMDISK

    ; Ramdisk: The capacity will be determined at boot time

    dphM: dw 0,0,0,0
    dw dirbf,dpbM,0,allM

    dpbM: dw 32 ; sectors per track (4k tracks)
    db 3,7,0 ; block shift, block mask, null mask
    dsmM: dw 0 ; disk size - 1, set by the init code
    dw 63 ; dir max
    db 0C0h,000h ; alloc 0,1
    dw 0 ; check size = 0 (non removable)
    offM: dw 0 ; track offset

    dMbase: ds 2 ; RAM disk base page

    ENDIF

    ;----------------------------------------------------------------------
    ; D I S K - P A R A M E T E R B L O C K S
    ; The following "max." values are defined for the largest disk

    NODE equ 256 ; No. of directory entries (1024 for SCSI)
    NOAB equ 874 ; No. of allocation blocks (2500 for 4k blks, 10MB SCSI)

    ;------------------------------------------------
    ; Parameters for 5", 360kB drives

    ; Special parameters BEFORE label

    db D5_360 ; Drive type
    dw ReMap5 ; Sector mapping strategy
    dpBlk5: dw 4*18 ; CP/M "sectors"/track
    db 4 ; Block shift
    db 15 ; Block mask
    db 1 ; Extent mask
    dw 174 ; Max. allocn. block no.
    dw 63 ; No. of directory entries -1
    db 10000000B ; Bit-map for allocn. blocks
    db 00000000B ; used for directory
    dw 16 ; No. of bytes in dir. check buffer
    dw 1 ; No. of tracks before directory

    DPBOFS equ $-dpBlk5 ; Size of the preceding block

    ; Custom extension: controller hardware parameters. Format is same as MS-DOS
    ; NOTE: Also used in select to Read 250 kbps MFM Sector IDs.

    phChrL: db 0DFH ; SRT=3mS, HUT=240mS
    db 02H ; HLT=4mS, no DMA
    db 25H ; 5 secs. (25 index pulses)
    db 02H ; 512 bytes/sector
    maxSec: db 9 ; Sectors/track
    db 2AH ; Gap length
    db 0FFH ; DTL (not used)
    db 80 ; Gap-3 length: Format
    db 0E5H ; Data fill: Format
    db 15 ; Head-settle time (mS)
    db 8 ; Motor-on delay * 1/8 sec.
    db 39 ; Highest cylinder no.
    db 02 ; Data Rate (250 kb/s)
    db 1 ;; First Physical Sector Number

    ;------------------------------------------------
    ; Parameters for 3", 1.4MB drives

    ; Special parameters BEFORE label

    db D3_144 ; Drive type
    dw ReMapS ; Sector mapping strategy
    dpBlk3: dw 4*18 ; CP/M "sectors"/track
    db 4 ; Block shift
    db 15 ; Block mask
    db 0 ; Extent mask
    dw 715-1 ; Max. allocn. block no.
    dw 128-1 ; No. of directory entries -1
    db 11000000B ; Bit-map for allocn. blocks
    db 00000000B ; used for directory
    dw 32 ; No. of bytes in dir. check buffer
    dw 1 ; No. of tracks before directory

    ; Custom extension: controller hardware parameters. Format is same as MS-DOS
    ; NOTE: Also used in select to Read 500 kbps "High-Density" Sector IDs.

    phChrH: db 0DFH ; SRT=3mS, HUT=240mS
    db 02H ; HLT=4mS
    db 25H ; 5 secs. (25 index pulses)
    db 02H ; 512 bytes/sector
    db 18 ; Sectors/track
    db 1BH ; Gap length
    db 0FFH ; DTL (not used)
    db 108 ; Gap-3 length: Format
    db 0E5H ; Data fill: Format
    db 15 ; Head-settle time (mS)
    db 8 ; Motor-on delay * 1/8 sec.
    db 79 ; Highest cylinder no.
    db 00 ; Data Rate (500kb/s)
    db 1 ;; First Physical Sector Number

    ;------------------------------------------------
    ; Parameters for 3", 1.76MB Drives (BP HD Format)

    ; Special parameters BEFORE label

    db BP_176 ; Drive type
    dw ReMapS ; Sector mapping strategy
    dpBlk2: dw 88 ; CP/M "sectors"/track
    db 4 ; Block shift
    db 15 ; Block mask
    db 0 ; Extent mask
    dw 873 ; Max. allocn. block no.
    dw 255 ; No. of directory entries -1
    db 11110000B ; Bit-map for allocn. blocks
    db 00000000B ; used for directory
    dw 64 ; No. of bytes in dir. check buffer
    dw 1 ; No. of tracks before directory

    ; Custom extension: controller hardware parameters.

    db 0DFH ; SRT=3mS, HUT=240mS
    db 02H ; HLT=4mS
    db 25H ; 5 secs. (25 index pulses)
    db 03H ; 1024 Bytes/Sector
    db 11 ; Sectors/track
    db 11H ; Gap length
    db 0FFH ; DTL (not used)
    db 34 ; Gap-3 length: Format
    db 0E5H ; Data fill: Format
    db 15 ; Head-settle time (mS)
    db 8 ; Motor-on delay * 1/8 sec.
    db 79 ; Highest cylinder no.
    db 00H ; Data Rate (500kb/s)
    db 65 ;; 1st Physical Sector Number

    ;------------------------------------------------
    ; Parameters for 3"/5", 800KB Drives (Ampro/ON/YASBEC/SB180 DSQD Format)

    ; Special parameters BEFORE label

    db Am_800 ; Drive type
    dw ReMapS ; Sector mapping strategy
    dpBlk1: dw 40 ; Sectors per track
    db 4 ; Block shift factor
    db 15 ; Block mask
    db 0 ; Extent mask
    dw 394 ; Disk size-1
    dw 255 ; Directory max
    db 0F0H, 0 ; Alloc 0, 1
    dw 64 ; Check size
    dw 2 ; Track offset

    ; Custom extension: controller hardware parameters.

    db 0DFH ; SRT=3mS, HUT=240mS
    db 02H ; HLT=4mS
    db 25H ; 5 secs. (25 index pulses)
    db 03H ; 1024 Bytes/Sector
    db 5 ; Sectors/track
    db 1BH ; Gap length
    db 0FFH ; DTL (not used)
    db 54H ; Gap-3 length: Format
    db 0E5H ; Data fill: Format
    db 15 ; Head-settle time (mS)
    db 8 ; Motor-on delay * 1/8 sec.
    db 79 ; Highest cylinder no.
    db 02H ; Data Rate (500kb/s)
    db 17 ;; 1st Physical Sector Number

    ;---------------------------------------------------------------------

    I've tested with the two files (cpm2-070805.img and cpm3zpm3-070805.img) and it looks good
    so far. You will need to test more as you get your system up and running.


    Thanks.

    Larry
    Last edited by ldkraemer; April 16th, 2018 at 01:02 PM. Reason: added cpmtools def's

  9. #19

    Default

    Thanks again, Larry!

  10. #20

    Default

    Excuse me for jumping in but I've just been trying to get 22DISK working with disks formatted for the ZSDOS system that shipped to me on the CF drive that came with Terry Gulczynski's D-GIDE and the above settings were a great help, thank you. They seem to work for me after I changed to AL0 0F0h as indicated in Terry's FAQ at http://stack180.com/P112%20Faqs.htm

    So, this is the definition I am using in 22DISK which seems to work for me with ZSDOS formatted disks:

    BEGIN P112 SBC - ZSDOS1.1 - DSHD 3.5" - 96 TPI 512 x 18
    DENSITY MFM, HIGH
    CYLINDERS 80 SIDES 2 SECTORS 18,512
    SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
    ORDER SIDES
    BSH 4 BLM 15 EXM 0 DSM 710 DRM 255 AL0 0F0h AL1 0 OFS 2
    END

    I have not tried any of the other definitions with older format disks - Just including this mention for anyone trying to get 22DISK working with the ZSDOS from Terry.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •