• Please review our updated Terms and Rules here

How to write an NCR boot disk from Linux

acollins22

Experienced Member
Joined
Mar 12, 2007
Messages
257
Location
Leicester, UK
Hi Folks,

I have started trying to get my old NCR Decision Mate V up and running.

I have it to the point where it is asking for a boot disk that I don't have. :)

I have found an image of a boot disk in CopyQM format. This isn't a format I have come across.
Using the command line utility "read_cqm" I have produced an image file but here is where I get some questions.

Firstly, read_cqm reports that it is reading up to track 79. The NCR DMV uses 40 track double sided drives so I'm assuming that even track number are on one side of the disk and odd numbered tracks are on the other. Does that sound plausible?

Secondly, assuming I can get a 40 track DSDD drive onto my PC, how should I write it? I am running Linux here so do I just use dd and point it to the new floppy drive? If so, how does it know about tracks and sides etc?


Thanks for your help.

All the best,

Andy.
 
Andy,
Chuck's suggestion is the easiest, and best way to go if you have a DOS Computer setup and handy. The DOS
Computer also needs the correct (works properly) Floppy Disk Controller (FDC) to write the floppy.

But, if all you have is a Linux Box and the Image you can easily write the floppy in Linux using libdsk. I don't know
what Linux Distro you are using, but I know Debian (Ver 11 - 64 Bit) still supports floppy's. The Debian Floppy
Parameter file is at /etc/mediaprm. You will need 8 sectors per track and 512 bytes per sector and a few other
floppy parameters. The cpmtools and libdsk definitions are as follows:

Code:
# NCR1  NCR Decision Mate V - DSDD 48 tpi 5.25" - 512 x 8
diskdef ncr1
  seclen 512
  tracks 80
  sectrk 8
  blocksize 2048
  maxdir 128
  skew 1
  boottrk 3
  os 2.2
end

# libdsk data below
[ncr1]
description = NCR1  NCR Decision Mate V - DSDD 48 tpi 5.25" - 512 x 8
sides = eagle
cylinders = 80
heads = 2
secsize = 512
sectors = 8
secbase = 1
datarate = DD

Notice the sides = eagle in the libdsk definition. EAGLE specifies that all tracks on the first side are recorded
then all tracks on second side. Tracks on side 0 are written from 0 up and side 1 is also 0 up.
libdsk handles this special condition.

There is currently no definition in /etc/mediaprm for the NCR Decision Mate V. You may want to add this definition.

Code:
"NCR1":
 DS DD sect=8 cyl=40 tpi=48 ssize=512

With the 360K Floppy selected in the BIOS for your Linux Box, check the status of the Floppy in a Command Window.
Code:
$ lsblk

[QUOTE]
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
fd0      2:0    1     4K  0 disk                               <------------------Proper Floppy Drive
sda      8:0    0 465.8G  0 disk
├─sda1   8:1    0 117.2G  0 part /
├─sda2   8:2    0  24.4G  0 part
├─sda3   8:3    0 321.7G  0 part
└─sda4   8:4    0   2.5G  0 part [SWAP]
sdb      8:16   1   7.2G  0 disk
└─sdb1   8:17   1   7.2G  0 part
sr0     11:0    1  1024M  0 rom
[/QUOTE]

Get the current floppy parameters, if any.

Code:
$ getfdparm /dev/fd0

[QUOTE]
get geometry parameters: No such device
[/QUOTE]

None, found, so set the floppy's parameters.

Code:
$ setfdparm -p NCR1 /dev/fd0
$ getfdparm /dev/fd0

[QUOTE]
DS DD sect=8 ssize=512
[/QUOTE]
$ lsblk
[QUOTE]
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
fd0      2:0    1   324K  0 disk                              <------------------- May not be the Correct size for Floppy as i did a calculated guess.   
sda      8:0    0 465.8G  0 disk
├─sda1   8:1    0 117.2G  0 part /
├─sda2   8:2    0  24.4G  0 part
├─sda3   8:3    0 321.7G  0 part
└─sda4   8:4    0   2.5G  0 part [SWAP]
sdb      8:16   1   7.2G  0 disk
└─sdb1   8:17   1   7.2G  0 part
sr0     11:0    1  1024M  0 rom
[/QUOTE]

With the NCR1 libdsk definition in the .libdskrc file in /home/user/.libdskrc you should be able to write the CopyQM
image directly to /dev/fd0.

Code:
dsktrans -itype qm -otype floppy yourfile.qm /dev/fd0

Example:

Code:
dsktrans -itype qm -otype raw input output
or even
dsktrans -itype qm -otype floppy input /dev/fd0

Here is a cpmtools and libdsk tutorial that may help:
https://forums.debian.net/viewtopic.php?f=16&t=112244


If you want, I can process the file and see if I can get it written to floppy.

Larry
 
Last edited:
I tried converting all three files and got one good directory listing. The other two files
are throwing an error. John Elliot likely needs to be involved in the error that is being
produced.

Code:
$ cpmls -f ncr1 -D  CPM86DMV.RAW
     Name    Bytes   Recs  Attr     update             create
------------ ------ ------ ---- -----------------  -----------------
BACKUP  .CMD    28K    224    
CONFIG  .CMD    32K    249    
COPYDISK.CMD     4K     21    
CPM     .SYS    20K    155    
DDT86   .CMD    14K    109    
DISCIT  .CMD     4K     32    
DRUCKP  .CMD    16K    121    
EXCHANGE.CMD     4K     17    
FDUMP   .CMD    14K    110    
FORMAT  .CMD     8K     49    
GENCMD  .CMD     6K     43    
LMCMD   .CMD     6K     40    
LOAD    .COM     2K     14    
MBASIC  .CMD    30K    227    
PFORMAT .CMD    14K     97    
PIP     .CMD     8K     59    
PRINT   .CMD    54K    419    
STAT    .CMD    10K     73  S 
SUBMIT  .CMD     4K     31    
SYSGEN  .CMD     2K     16    
TEST    .PLI     2K      5    
TSDUMP  .CMD    16K    123    
   22 Files occupying    298K,       6K Free.

Larry
 
Hi Folks,

Thanks very much for your replies. I knew someone would know :) This place really is great !

Re: message 2, @Chuck(G). I know it's the obvious one but... At the moment I don't have a bridge machine running any form of DOS so it isn't really a _just_. Also, I don't know copyqm and when I read the documentation, I came away with the feeling that it could only work with DOS diskettes and so I was a bit confused :-/

Re: message 3, @ldkraemer. I am running Ubuntu 20.04.3 LTS.

I found the copyqm file here. http://www.cpm.z80.de/download/bootdmv.zip

Thank you both very much for all of that info. It will take me a little while to work through it but I'll let you know how I get on.


Thanks again,

Andy.
 
CopyQM works with a wide range of diskette formats, since it uses direct hardware access for its operations. If you don't even have a system that can be booted from a floppy into DOS, then I guess I can't help you. (you'd still need DOS or a related OS to run the self-extractor).
 
Okay, for the rest of the folks, here are two self-extracting image files, one for CP/M-80, the other for CP/M-86:
 

Attachments

  • dmv-cpm.zip
    301.6 KB · Views: 4
I received an email from John Elliott about using dskconv versus dsktrans for the floppy conversion. He also
suggested using the -format ncr1 command line switch, so dsktrans and dskconv did not auto select the
incorrect format.

Code:
dskconv -itype copyqm -otype rawoo -format ncr1 yourfile.dsk yourfile.raw

where types can be one of:
Code:
Disk image types supported:
   gotek      : Gotek 1440k disc image collection
   gotek72    : Gotek 720k disc image collection
   remote     : Remote LibDsk instance
   rcpmfs     : Reverse CP/MFS driver
   dsk        : CPCEMU .DSK driver
   edsk       : Extended .DSK driver
   apridisk   : APRIDISK file driver
   copyqm     : CopyQM file driver
   tele       : TeleDisk file driver
   ldbs       : LibDsk block store
   ldbst      : LDBS (text form)
   sap        : SAP file driver
   qrst       : Quick Release Sector Transfer
   imd        : IMD file driver
   ydsk       : YAZE YDSK driver
   raw        : Raw file driver (alternate sides)
   rawoo      : Raw file driver (out and out)
   rawob      : Raw file driver (out and back)
   myz80      : MYZ80 hard drive driver
   simh       : SIMH disc image driver
   nanowasp   : NanoWasp image file driver
   logical    : Raw file logical sector order
   jv3        : JV3 file driver
   dc42       : Disk Copy 4.2
   cfi        : CFI file driver

and the builtin formats can be one of:
Code:
$ dskconv -formats
Disk formats supported:
   pcw180     : PCW / IBM 180k
   cpcsys     : CPC System
   cpcdata    : CPC Data
   pcw720     : PCW / IBM 720k
   pcw1440    : PcW16 / IBM 1440k
   .............
   ncr1       : NCR1  NCR Decision Mate V - DSDD 48 tpi 5.25" - 512 x 8
   .............
   trsh       : TRS-80 Model 4,4P Montezuma Data 200K - SSDD 48 tpi 5.25"
   trsg       : TRS-80 Model 4,4P Montezuma System 170K - SSDD 48 tpi 5.25"
   ampro800   : Ampro800 - DSDD 96 tpi 3.5"
   amp6       : Ampro - DSDD 96 tpi 3.5"
   amp5       : Ampro - SSDD 96 tpi 3.5"
   amp4       : Ampro - DSDD 96 tpi 5.25"
   amp3       : Ampro - SSDD 96 tpi 5.25"
   amp2       : Ampro - DSDD 48 tpi 5.25"
   amp1       : Ampro - SSDD 48 tpi 5.25"
   kay3       : KAY3  Kaypro 2X/4/10 (Alternate) - DSDD 48 tpi 5.25" - 512 x 10
   kay2       : KAY2  Kaypro 2X/4/10 - DSDD 48 tpi 5.25" - 512 x 10
   kpiv       : Kaypro 2X/4/10 - DSDD 48 tpi 5.25"
   kpii       : KAY1  Kaypro II/2 - SSDD 48 tpi 5.25" - 512 x 10
   kay1       : KAY1  Kaypro II/2 - SSDD 48 tpi 5.25" - 512 x 10
   ibm3740    : IBM3740 SS SD 77T 8" 26x128 b/s

dsktrans should still be able to write it to a physical floppy.

Code:
dsktrans -itype rawoo -otype floppy -format ncr1 yourfile.raw /dev/fd0



Larry
 
Last edited:
Thank you again Larry and Chuck,
At the moment I am in a bit of a fight with my main Linux box as it refuses to admit that it has a floppy drive despite flashing the LED and spinning the disk on boot up.
I will keep fighting and keep you posted.


All the best,

Andy.
 
You can copy the unzipped .exe self-extractors to a minimal boot floppy and boot your system from that. Just make sure that your drives are correct in the BIOS setup.
This self-extracting thing was used by one of our customers, IBM, for their CSD library.
 
Back
Top