Image Map Image Map
Page 1 of 2 12 LastLast
Results 1 to 10 of 18

Thread: write image.img to 8" floppydisk dosn't work

  1. #1

    Default write image.img to 8" floppydisk dosn't work

    Hi...
    I have an image for MDS-800 CP/M2.2 which is an raw image (from bitsavers or http://www.nj7p.info), so I can't handle it with IMG or other tools.
    All I found for MSDOS like rawrite, duit, diskimage can't handle the 1side 77track 26x256byte sectors. Exactly they cant handle the 26 x 256 byte sector / length.

    So - ??? - witch program will help. DUIT has the c-code included but a fix sector lenght from 512bytes.
    The ISIS-II IMD images were well written with my 8" drives.
    The system I want to get booting CP/M is a german ECB (Europe card bus) system which is compatible to intel MDS-800 and was made by a little company named LAKOSA (1979-1985) in paderborn, germany.
    Some german documents are here to be found

  2. #2
    Join Date
    Jan 2013
    Location
    Marietta, GA
    Posts
    3,347

    Default

    Most DOS imaging tools only know about standard MS-DOS 360k/720k/1.2mb/1.44mb formats.

    Usually FM or MFM encoded 8" disks and non DOS disks are archived with ImageDisk.

    The problem with "IMG" files is they lack any information about the sector geometry. It is sometimes possible to convert IMG files to ImageDisk format. Here are some examples of converting MS-DOS disks to ImageDisk format: https://forum.winworldpc.com/discuss...s-to-imagedisk but in this case you would need to specify different sector size, disk mode, and probably the sector order.

  3. #3

    Default

    Oh, yes.... thanks for your hint.

    I used bin2imd some months ago but didn't remember. I'll try ist soon.

  4. #4

    Default

    If the MDS-800 is double density, it is M2FM. The PC will not be able to replicate that format. You'd need one of the hardware tools that writes transitions rather than going through a PCs floppy controller chip.
    If it is single density, it would be FM. If the PC you have does not support FM, it also won't be able to write it either. Many PC controllers can't do FM. Dave Dunfield's tools have a test for FM. It will check to see if your controller can handle FM format.
    If neither of these methods work for you, you can always use the MSD-800 to write the floppies. It does require writing code, entering it into the monitor and transferring image data over the serial. It would be an interesting project for a MDS-800 that you could share with others. In my earlier days, working for Intel, I could have done it but that is too many years back and I'd need to study up quite a bit to get back to that level on this machine.
    I did once write a similar thing for the Heathkit H89. One entered a minimum amount of code to initialize the serial and then transfer the code that would format and transfer the image onto the disk.
    It is not an impossible problem and easier on the MDS-800 than many machines as much of the low level operations of the serial and floppy are already in the MDS-800's firmware. Most of the code would just be calls to that code.
    Dwight

  5. #5
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,351
    Blog Entries
    18

    Default

    If it's 26 sectors of 256 bytes, you've got a double-density disk (SD would be 128 byte sectors). Like Dwight said, the MDS-800 with the correct controller can handle the M2FM encoding; you could also use a third-party hardware setup, such as a catweasel, but converting the image format my be daunting.

  6. #6

    Default

    Quote Originally Posted by Chuck(G) View Post
    If it's 26 sectors of 256 bytes, you've got a double-density disk (SD would be 128 byte sectors). Like Dwight said, the MDS-800 with the correct controller can handle the M2FM encoding; you could also use a third-party hardware setup, such as a catweasel, but converting the image format my be daunting.
    Thanks to your (and above) replies and the hint to M2FM. As I was told the system uses FM/MFM which is changeable - so there is no hardware compatibility to MDS-800 M2FM format. I have a catweasel too but in this case I use it only for imaging. As I read some interesting text for MDS-800 (thanks for those work I found searching for MDS-800) I even read about the M2FM problem and asked the owner of the system. So it's only true FM/MFM format.

    Just in time I managed to write the IMD files to floppy using BIN2IMD for making the need image format. Now they must be tested on the real system but this need some time as the system is 400 miles away.
    I added 3 pictures ...
    Attached Images Attached Images

  7. #7
    Join Date
    Mar 2013
    Location
    Chaffee, MO
    Posts
    1,337

    Default

    Very interesting Postings..........

    I searched for all the 8" - 256 x 26 Definitions I have for cpmtools. I located the following:

    Compupro (Viasyn) - SSDD 8" - 256 x 26
    Molecular - SSDD 8" - 256 x 2
    S.D. Systems - SSDD 8" - 256 x 26
    Teletek - SSDD 8" - 256 x 26
    TRS-80 Model 1, Bigmem CP/M - SSDD 8" - 256 x 26
    TRS-80 Lifeboat CP/M (256 bytes/sector) - SSDD 8" - 256 x 26
    Xerox 16/8 - SSDD 8" - 256 x 26
    Zenith Z-100 - SSDD 8" - 256 x 26

    The XER5 Definition allowed me to access the files in the Image: CPM-80_62K_V2.2_boots_on_Intel_MDS_DD.img

    Code:
    # XER5  Xerox 16/8 - SSDD 8" - 256 x 26
    diskdef xer5
      seclen 256
      tracks 77
      sectrk 26
      blocksize 2048
      maxdir 128
      skew 1
      offset 13312
      boottrk 0
      os 2.2
    end
    
    # libdsk data below
    [xer5]
    description = XER5  Xerox 16/8 - SSDD 8" - 256 x 26
    cylinders = 77
    heads = 1
    secsize = 256
    sectors = 26
    secbase = 1
    datarate = ED
    Directory starts at 0x3400 = 13312

    Code:
    00003400   00 4D 4F 56  43 50 4D 20  20 43 4F 4D  00 00 00 4E  .MOVCPM  COM...N
    00003410   02 03 04 05  06 00 00 00  00 00 00 00  00 00 00 00  ................
    00003420   00 50 49 50  20 20 20 20  20 43 4F 4D  00 00 00 3A  .PIP     COM...:
    00003430   07 08 09 0A  00 00 00 00  00 00 00 00  00 00 00 00  ................
    00003440   00 53 55 42  4D 49 54 20  20 43 4F 4D  00 00 00 0A  .SUBMIT  COM....
    00003450   0B 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
    00003460   00 58 53 55  42 20 20 20  20 43 4F 4D  00 00 00 06  .XSUB    COM....
    00003470   0C 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
    00003480   00 45 44 20  20 20 20 20  20 43 4F 4D  00 00 00 34  .ED      COM...4
    00003490   0D 0E 0F 10  00 00 00 00  00 00 00 00  00 00 00 00  ................
    000034A0   00 41 53 4D  20 20 20 20  20 43 4F 4D  00 00 00 40  .ASM     COM...@
    000034B0   11 12 13 14  00 00 00 00  00 00 00 00  00 00 00 00  ................
    000034C0   00 44 44 54  20 20 20 20  20 43 4F 4D  00 00 00 26  .DDT     COM...&
    000034D0   15 16 17 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
    000034E0   00 4C 4F 41  44 20 20 20  20 43 4F 4D  00 00 00 0E  .LOAD    COM....
    000034F0   18 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
    00003500   00 53 54 41  54 20 20 20  20 43 4F 4D  00 00 00 29  .STAT    COM...)
    00003510   19 1A 1B 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
    00003520   00 53 59 53  47 45 4E 20  20 43 4F 4D  00 00 00 08  .SYSGEN  COM....
    Code:
    cpmls -f xer5 -D CPM-80_62K_V2.2_boots_on_Intel_MDS_DD.img
    Name Bytes Recs Attr update create
    ------------ ------ ------ ---- ----------------- -----------------
    124997- .002 2K 1
    ASM .COM 8K 64
    BIOS21I .ASM 24K 183
    DDFORM .ASM 4K 20
    DDFORM .COM 2K 5
    DDT .COM 6K 38
    DEBLOCK .ASM 10K 80
    DISKDEF .LIB 8K 49
    DUMP .ASM 6K 33
    DUMP .COM 2K 4
    ED .COM 8K 52
    FORMAT .COM 2K 12
    LOAD .COM 2K 14
    MOVCPM .COM 10K 78
    PIP .COM 8K 58
    PIP201 .COM 18K 136
    SDFORM .COM 2K 2
    STAT .COM 6K 41
    SUBMIT .COM 2K 10
    SYSGEN .COM 2K 8
    SYSGEN2 .COM 2K 5
    XSUB .COM 2K 6
    22 Files occupying 134K, 362K Free.
    I extracted the file DUMP.ASM and it appears SANE.
    Code:
    cpmcp -f xer5 CPM-80_62K_V2.2_boots_on_Intel_MDS_DD.img 0:DUMP.ASM .
    ; FILE DUMP PROGRAM, READS AN INPUT FILE AND PRINTS IN HEX
    ;
    ; COPYRIGHT (C) 1975, 1976, 1977, 1978
    ; DIGITAL RESEARCH
    ; BOX 579, PACIFIC GROVE
    ; CALIFORNIA, 93950
    ;
    ORG 100H
    BDOS EQU 0005H ;DOS ENTRY POINT
    CONS EQU 1 ;READ CONSOLE
    TYPEF EQU 2 ;TYPE FUNCTION
    PRINTF EQU 9 ;BUFFER PRINT ENTRY
    BRKF EQU 11 ;BREAK KEY FUNCTION (TRUE IF CHAR READY)
    OPENF EQU 15 ;FILE OPEN
    READF EQU 20 ;READ FUNCTION
    ;
    FCB EQU 5CH ;FILE CONTROL BLOCK ADDRESS
    BUFF EQU 80H ;INPUT DISK BUFFER ADDRESS
    ;
    ; NON GRAPHIC CHARACTERS
    CR EQU 0DH ;CARRIAGE RETURN
    LF EQU 0AH ;LINE FEED
    ;
    ; FILE CONTROL BLOCK DEFINITIONS
    FCBDN EQU FCB+0 ;DISK NAME
    FCBFN EQU FCB+1 ;FILE NAME
    FCBFT EQU FCB+9 ;DISK FILE TYPE (3 CHARACTERS)
    FCBRL EQU FCB+12 ;FILE'S CURRENT REEL NUMBER
    FCBRC EQU FCB+15 ;FILE'S RECORD COUNT (0 TO 128)
    FCBCR EQU FCB+32 ;CURRENT (NEXT) RECORD NUMBER (0 TO 127)
    FCBLN EQU FCB+33 ;FCB LENGTH
    ;
    ; SET UP STACK
    LXI H,0
    DAD SP
    ; ENTRY STACK POINTER IN HL FROM THE CCP
    SHLD OLDSP
    ; SET SP TO LOCAL STACK AREA (RESTORED AT FINIS)
    LXI SP,STKTOP
    ; READ AND PRINT SUCCESSIVE BUFFERS
    CALL SETUP ;SET UP INPUT FILE
    CPI 255 ;255 IF FILE NOT PRESENT
    JNZ OPENOK ;SKIP IF OPEN IS OK
    ;
    ; FILE NOT THERE, GIVE ERROR MESSAGE AND RETURN
    LXI D,OPNMSG
    CALL ERR
    JMP FINIS ;TO RETURN
    ;
    OPENOK: ;OPEN OPERATION OK, SET BUFFER INDEX TO END
    MVI A,80H
    STA IBP ;SET BUFFER POINTER TO 80H
    ; HL CONTAINS NEXT ADDRESS TO PRINT
    LXI H,0 ;START WITH 0000
    ;
    GLOOP:
    PUSH H ;SAVE LINE POSITION
    CALL GNB
    POP H ;RECALL LINE POSITION
    JC FINIS ;CARRY SET BY GNB IF END FILE
    MOV B,A
    ; PRINT HEX VALUES
    ; CHECK FOR LINE FOLD
    MOV A,L
    ANI 0FH ;CHECK LOW 4 BITS
    JNZ NONUM
    ; PRINT LINE NUMBER
    CALL CRLF
    ;
    ; CHECK FOR BREAK KEY
    CALL BREAK
    ; ACCUM LSB = 1 IF CHARACTER READY
    RRC ;INTO CARRY
    JC FINIS ;DON'T PRINT ANY MORE
    ;
    MOV A,H
    CALL PHEX
    MOV A,L
    CALL PHEX
    NONUM:
    INX H ;TO NEXT LINE NUMBER
    MVI A,' '
    CALL PCHAR
    MOV A,B
    CALL PHEX
    JMP GLOOP
    ;
    FINIS:
    ; END OF DUMP, RETURN TO CCP
    ; (NOTE THAT A JMP TO 0000H REBOOTS)
    CALL CRLF
    LHLD OLDSP
    SPHL
    ; STACK POINTER CONTAINS CCP'S STACK LOCATION
    RET ;TO THE CCP
    ;
    ;
    ; SUBROUTINES
    ;
    BREAK: ;CHECK BREAK KEY (ACTUALLY ANY KEY WILL DO)
    PUSH H! PUSH D! PUSH B; ENVIRONMENT SAVED
    MVI C,BRKF
    CALL BDOS
    POP B! POP D! POP H; ENVIRONMENT RESTORED
    RET
    ;
    PCHAR: ;PRINT A CHARACTER
    PUSH H! PUSH D! PUSH B; SAVED
    MVI C,TYPEF
    MOV E,A
    CALL BDOS
    POP B! POP D! POP H; RESTORED
    RET
    ;
    CRLF:
    MVI A,CR
    CALL PCHAR
    MVI A,LF
    CALL PCHAR
    RET
    ;
    ;
    PNIB: ;PRINT NIBBLE IN REG A
    ANI 0FH ;LOW 4 BITS
    CPI 10
    JNC P10
    ; LESS THAN OR EQUAL TO 9
    ADI '0'
    JMP PRN
    ;
    ; GREATER OR EQUAL TO 10
    P10: ADI 'A' - 10
    PRN: CALL PCHAR
    RET
    ;
    PHEX: ;PRINT HEX CHAR IN REG A
    PUSH PSW
    RRC
    RRC
    RRC
    RRC
    CALL PNIB ;PRINT NIBBLE
    POP PSW
    CALL PNIB
    RET
    ;
    ERR: ;PRINT ERROR MESSAGE
    ; D,E ADDRESSES MESSAGE ENDING WITH "$"
    MVI C,PRINTF ;PRINT BUFFER FUNCTION
    CALL BDOS
    RET
    ;
    ;
    GNB: ;GET NEXT BYTE
    LDA IBP
    CPI 80H
    JNZ G0
    ; READ ANOTHER BUFFER
    ;
    ;
    CALL DISKR
    ORA A ;ZERO VALUE IF READ OK
    JZ G0 ;FOR ANOTHER BYTE
    ; END OF DATA, RETURN WITH CARRY SET FOR EOF
    STC
    RET
    ;
    G0: ;READ THE BYTE AT BUFF+REG A
    MOV E,A ;LS BYTE OF BUFFER INDEX
    MVI D,0 ;DOUBLE PRECISION INDEX TO DE
    INR A ;INDEX=INDEX+1
    STA IBP ;BACK TO MEMORY
    ; POINTER IS INCREMENTED
    ; SAVE THE CURRENT FILE ADDRESS
    LXI H,BUFF
    DAD D
    ; ABSOLUTE CHARACTER ADDRESS IS IN HL
    MOV A,M
    ; BYTE IS IN THE ACCUMULATOR
    ORA A ;RESET CARRY BIT
    RET
    ;
    SETUP: ;SET UP FILE
    ; OPEN THE FILE FOR INPUT
    XRA A ;ZERO TO ACCUM
    STA FCBCR ;CLEAR CURRENT RECORD
    ;
    LXI D,FCB
    MVI C,OPENF
    CALL BDOS
    ; 255 IN ACCUM IF OPEN ERROR
    RET
    ;
    DISKR: ;READ DISK FILE RECORD
    PUSH H! PUSH D! PUSH B
    LXI D,FCB
    MVI C,READF
    CALL BDOS
    POP B! POP D! POP H
    RET
    ;
    ; FIXED MESSAGE AREA
    SIGNON: DB 'FILE DUMP VERSION 1.4$'
    OPNMSG: DB CR,LF,'NO INPUT FILE PRESENT ON DISK$'

    ; VARIABLE AREA
    IBP: DS 2 ;INPUT BUFFER POINTER
    OLDSP: DS 2 ;ENTRY SP VALUE FROM CCP
    ;
    ; STACK AREA
    DS 64 ;RESERVE 32 LEVEL STACK
    STKTOP:
    ;
    END
    
    Looks as if cpmtools will access the files in this image.


    Thanks.

    Larry

  8. #8

    Default

    Quote Originally Posted by fritzeflink View Post
    Thanks to your (and above) replies and the hint to M2FM. As I was told the system uses FM/MFM which is changeable - so there is no hardware compatibility to MDS-800 M2FM format. I have a catweasel too but in this case I use it only for imaging. As I read some interesting text for MDS-800 (thanks for those work I found searching for MDS-800) I even read about the M2FM problem and asked the owner of the system. So it's only true FM/MFM format.

    Just in time I managed to write the IMD files to floppy using BIN2IMD for making the need image format. Now they must be tested on the real system but this need some time as the system is 400 miles away.
    I added 3 pictures ...
    As long as I was there at Intel, there was no MFM board for the MDS-800, only M2FM. There were surely 3rd party boards. I don't recall exactly when I left Intel but is was around 1983. I was responsible to test of the data separator board because even then I was one of the few that understood what could cause a PLL to fail. I never saw a MFM board. I'm sure that later ones were available. I'm relatively sure there may have been something for the later Series IIs that could be retrofitted to a MDS-800. I just never saw one.
    Dwight

  9. #9

    Default

    Thanks for the look into history of MDS-800.

    So I understood the german system maybe have more do do with the MDS-800 II systems but the owner named it MDS-800 compatible.

    I translated some into english.

    New MPR II system / low-cost aging
    native to the Intel development system!

    In the development of the MPR II system(Microprocessor 2) was a special attention to the hardware and software compatibility with existing systems
    sets. It offers the possibility of up to 4 floppy disk drives (eg Shugart SA 860) to join. The central unit was realized on three European maps and is based on two
    Z-80 processors, whereby the communication of the cards with each other
    with the help of the ECB bus.
    The calculator can thus with the well-known design (10 Europasteckplaetze, 2 slimline Floppy disk drives and the power supply in a 19 inch housing).
    The three base boards each provide a self-contained unit (CPU, RAM, and floppy card) with high complexity, which also individually in other systems
    be used.
    Likewise, one can as required diverse ECB peripheral cards from other manufacturers in the remaining 7 slots for expansion to the used microcomputer.
    At this point it should be noted that the previous description probably for some Microcomputer of medium size could be written. That's why we come
    now on the peculiarities of the MPR-II system compared to conventional system. The main features (on the details and peculiarities of the boards in the individual
    we will come back to this later) are the following:

    1.) The MPR-II system comes with CP / M operating system, but can without difficulty for ISIS II owners as priced
    development system for 8-bit CPUs.

    2) In the alternative solution for ISIS II - owner exists except the opportunity to use the previous Z-80 Cross Assembler as a
    to use available assembler. So programs for Intel and Zilog processors (Z-80) on a system
    be tested.

    3.) The CPU board can be used as a single-board computer
    and is also available as a kit, like the other two.

    4) For ISIS II - owner arises by the higher system clock of the Z-80 main processor a noticeable improvement in the processing
    speed.

    5.) Very good price / performance ratio by using modern LSI micro-module

    ################################################## ##################


    Short text about the monitor programm:

    The MPR-II MONITOR is a 4kbyte long BOOT and DEBUG program for the Z80
    Microprocessor and is called a monitor program for the Z80 EPC card from
    LAKOSA used, in particular as Bootstrap loader and I / O driver in the
    Floppy disk operation.

    SPECIAL FEATURES

    - Easy to learn
    - Convenient creation and testing of programs
    - Independent determination and adjustment baud rate for the serial I / O
    - floppy disk operation
    - Memory banking up to 1 MB

    COMPATIBILITY
    The MPR-II MONITOR is used as a monitor for the LPKOSA MPR-II system with the Z80
    EPC card designed. It is compatible for CP / M or ISIS II operation system.

  10. #10

    Default

    @Larry

    YMMD

    I tested it with 22disk - copied some files, read, write ... great.

    and nice that they didn't made a new format

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
  •