• Please review our updated Terms and Rules here

Concurrent CP/M-86 for the Lomas Thunder 186

It looks like the Image is repaired as I can get a good directory listing, extract files, and
hopefully it will boot for Rick.

THANKS to Larry G. for Working on the image using Clause Code.

I Have extracted the files, and zipped the *.SCP, *.IMD, *.hfe, *.RAW, and *.TXT files into a ZIP.
Hopefully, Rich can test the booting of the Image and that the files are SANE.


Code:
IMageDisk Analyzer 1.20 / Jan 09 2024
IMD 1.17: 08/07/2026 09:25:59

File generated by the HxC Floppy Emulator software v2.16.13.1

Required cylinders: 40
Required heads    : 2
Data rate         : 250kbps
Est. maximum track: 4861 bytes

Possible drives/options to write CPM_D1.IMD :

 5.25" DD 40-track
   Double-step: OFF

 5.25" QD 80-track
   Double-step: ON

 5.25" HD 80-track
   Double-step: ON
   250 kbps -> 300 kbps

 3.5" DD 80-track   NOTE: *1
   Double-step: OFF

 3.5" HD 80-track   NOTE: *1
   Double-step: OFF

*1 40 track image will use only first 1/2 of 80-track drive.


IMageDisk Utility 1.20 / Jan 09 2024
IMD 1.17: 08/07/2026 09:25:59

File generated by the HxC Floppy Emulator software v2.16.13.1

Assuming 1:1 for Binary output
 0/0 250 kbps DD  8x512
      1   2   3   4   5   6   7   8
      D   D   D   D   D   D   D   D
 0/1  D   D   D   D   D   D   D   D
 1/0  D   D   DE5 DE5 D   D   D   D
 1/1  D   D   D   D   D   D   D   D
 2/0  D   D   D   D   D   D   D   D
 2/1  D   D   D   D   D   D   D   D
 3/0  D   D   D   D   D   D   D   D
 3/1  D   D   D   D   D   D   D   D
 4/0  D   D   D   D   D   D   D   D
 4/1  D   D   D   D   D   D   D   D
 5/0  D   D   D   D   D   D   D   D
 5/1  D   D   D   D   D   D   D   D
 6/0  D   D   D   D   D   D   D   D
 6/1  D00 D00 D00 D00 D00 D00 D00 D
 7/0  D   D   D   D   D   D   D   D
 7/1  D   D   D   D   D00 D   D00 D00
 8/0  D   D   D   D00 D   D   D   D
 8/1  D   D   D   D   D   D   D   D
 9/0  D   D   D   D   D   D   D   D
 9/1  D   D   D   D   D   D   D   D
10/0  D   D   D   D   D   D   D   D
10/1  D   D   D   D   D   D   D   D
11/0  D   D   D   D44 D44 D44 D44 D44
11/1  D   D   D   D   D   D   D   D
12/0  D44 D44 D44 D44 D44 D44 D44 D44
12/1  D   D   DE5 DE5 D   D   D   D
13/0  D44 D44 D44 D44 D44 D44 D44 D44
13/1  D   D   DE5 DE5 D   D   D   D
14/0  D44 D44 D   D00 D00 D   D   D
14/1  D   D   D   D   D   D   D   D
15/0  D   D   D   D   D   D   D   D
15/1  D   D   DE5 DE5 D   D   D   D
16/0  D   D   D   D   D   D   D   D
16/1  D   D   D   D   D   D   D00 D
17/0  D   D   D   D   D   D   D   D
17/1  D   D   D   D   D   D   D   D
18/0  D   D   D   D   D   D   D   D
18/1  D   D   D   D   D   D   D   D
19/0  D   D   D   D   D   D   D   DE5
19/1  D   D   D   D   D   D   D   D
20/0  D   D   D   D   D   DE5 DE5 DE5
20/1  D   D   D   D   D   D   D   D
21/0  D   D   D   D   D   D   D   D
21/1  D   D   D   D   D   D   D   D
22/0  D   D   D   D   D   D   D   D
22/1  D   D   D   D   D   D   D   D
23/0  D   D   D   D   D   D   D   D
23/1  D   D   D   D   D   D   D   D
24/0  D   D   D   D   D   D   D   D
24/1  D   D   D   D   D   D   D   D
25/0  D   DE5 DE5 DE5 D   D   D   D
25/1  D   D   D   D   D   DE5 DE5 DE5
26/0  D00 D00 D   D   D   D   D   D
26/1  D00 D00 D00 D00 D00 D00 D00 D
27/0  D   D   D   D   D00 D00 D   DE5
27/1  D   D   D   D   D00 D   D00 D00
28/0  D   D   D   D   D   D   D   D
28/1  D   D   D   D   D   D   D   D
29/0  D   D   D   D   D   D   DE5 DE5
29/1  D   D   D   D   D   D   D   D
30/0  D   D   D   D   D   D   D   D
30/1  D   D   D   D   D   D   D   DE5
31/0  D   D   D   D   D   D   D   D
31/1  D   D   D   D   D   D   D   D
32/0  D   D   D   D   D   D   D   D
32/1  D   DE5 DE5 DE5 D   D   D   D
33/0  D   D   D   D   D   D   D   D
33/1  D   D   D   DE5 D   D   D   D
34/0  D   D   D   D   D   D   D   D
34/1  D   D   DE5 DE5 D   D   D   D
35/0  D   D   D00 D00 D00 D00 D00 D00
35/1  D   D   D   D   D   D   D   D
36/0  D00 D00 D00 D00 D00 D00 D00 D00
36/1  D   DE5 DE5 DE5 D   D   D   D
37/0  D00 D00 D00 D00 D00 D00 D00 D00
37/1  D   D   D   D   D   D   D   D
38/0  D00 D   D   D   D   D   D   D
38/1  D   D   D   D   D   D   D   D
39/0  D   D   D   D   D   DE5 DE5 DE5
39/1  D   D   D   D   D   D   D   D
80 tracks(40/40), 640 sectors (108 Compressed)


#BEGIN IBM2  IBM PC, CP/M-86 - DSDD 48 tpi 5.25" - 512 x 8
#DENSITY MFM, LOW
#CYLINDERS 40 SIDES 2 SECTORS 8,512
#SIDE1 0 1,2,3,4,5,6,7,8
#SIDE2 1 1,2,3,4,5,6,7,8
#ORDER CYLINDERS LABEL IBM2
#BSH 4 BLM 15 EXM 1 DSM 157 DRM 63 AL0 080H AL1 0 OFS 3
#END

# IBM2  IBM PC, CP/M-86 - DSDD 48 tpi 5.25" - 512 x 8
diskdef ibm2
  seclen 512
  tracks 80
  sectrk 8
  sides outback    #= Order of Cylinder
  blocksize 2048
  maxdir 64
  skew 1
#  boottrk 2
  offset 8192
  boottrk 0
  os 3
end

# libdsk data below
[ibm2]
description = IBM2  IBM PC, CP/M-86 - DSDD 48 tpi 5.25" - 512 x 8
sides = outback
cylinders = 80
heads = 2
secsize = 512
sectors = 8
secbase = 1
datarate = DD



$ cpmls -f ibm2 -T rawob,ibm2 -D CPM_D1.RAW
     Name    Bytes   Recs  Attr     update             create
------------ ------ ------ ---- -----------------  -----------------
ASM86   .CMD    26K    205 RS
CHSET   .CMD    10K     79 RS
DATE    .CMD     4K     24 RS
ED      .CMD    10K     75 RS
FORMAT  .CMD     2K     13 RS
MFORMAT .CMD     2K     13 RS
PIP     .CMD    10K     70 RS
SET     .CMD     8K     56 RS
SYSTAT  .CMD    20K    148 RS
SYSTAT1 .CMD    20K    148 RS
TYPE    .CMD     2K     15 RS
VCMODE  .CMD     4K     20 RS
   12 Files occupying    118K,     200K Free.



$ cpmcp -f ibm2 -T rawob,ibm2 CLAUDE1.RAW 0:*.* ./files

$ cd files

$ ls -alt
-rw-rw-r-- 1 larry larry  1664 Aug 11 13:05 mformat.cmd
-rw-rw-r-- 1 larry larry  1664 Aug 11 13:05 format.cmd
-rw-rw-r-- 1 larry larry 18944 Aug 11 13:05 systat1.cmd
-rw-rw-r-- 1 larry larry 10112 Aug 11 13:05 chset.cmd
-rw-rw-r-- 1 larry larry  3072 Aug 11 13:05 date.cmd
-rw-rw-r-- 1 larry larry  7168 Aug 11 13:05 set.cmd
-rw-rw-r-- 1 larry larry  8960 Aug 11 13:05 pip.cmd
-rw-rw-r-- 1 larry larry  1920 Aug 11 13:05 type.cmd
-rw-rw-r-- 1 larry larry 26240 Aug 11 13:05 asm86.cmd
-rw-rw-r-- 1 larry larry 18944 Aug 11 13:05 systat.cmd
-rw-rw-r-- 1 larry larry  9600 Aug 11 13:05 ed.cmd
-rw-rw-r-- 1 larry larry  2560 Aug 11 13:05 vcmode.cmd


Larry
 

Attachments

Last edited:
The only wrinkle is that CompuPro cp/m standard 5.25" was 96 TPI so 640k instead of 320k
but if it boots pc-dos then could be 48 TPI 320k

Larry G
 
The other very interesting thing is, the RAW IMAGE CPMFIX_D1.RAW is exactly
BYTE for BYTE the same if you INSERT 0xE5 in address's 0x2000 through 0x21FF
making it the same as Larry's CLAUDE1.RAW.

So, the Google Gemini Python script did fix the Clobbered Directory extents, but did
not totally fill the proper address's with 0xE5's.

I have updated the DRI x86 ver3.1 on the VetusWare site:

https://vetusware.com/download/[DOS...nt CPM 86 v3.1 - Ins CPM 86 ver 3.1/?id=18973



Larry
 
Last edited:
Thanks Larry and others. I moved things around on my workbench to go back to the T186 and CCPM. The revised disk image does boot but complains that it doesn't contain CCPM.SYS. If I boot with disk 2 and do a DIR on this disk, it shows an empty directory.

THUNDER 186 monitor Rev 0.10
*B
CCP/M-86 Loader 2.0
No CCPM.SYS File On Disk

{system reset}

*B
CCP/M-86 Loader 2.0
Code Paragraph = 0060
Data Paragraph = 0712

LDP XIOS of 6/22/84
Copywrighted by LOMAS DATA PRODUCTS 1984
XIOS revision 0.30

Concurrent CP/M-86 3.1
Copyright (C) 1983, Digital Research
A>dir
Directory for User 0:
File not found.
System Files Exist
A>

When looking at the file in cpmtools, the command "cpmls -f ibm2 -T rawob,ibm2 -D CPM_D1.RAW" does not work (cannot open file, requested driver not found} but if I omit the T and the D parameters, it will work (I'm using cpmtools 2.23 installed with a package manager on OSX).

So I fixed that and tried to extract ccpm.sys from disk 2 and put it on disk 1. The boot code loads it, provides Code and Data addresses which are significantly out-of-range in comparison to disk 2, and then dies.

I also compared a handful of files extracted and they are virtually the same as files extracted previously and do not seem to work. Take ASM86 for example. If you compare the file extracted from the image to the ASM86 from the CompuPro CCPM-86 distribution disks, they're different. A key indicator? The extracted file doesn't contain the text representation of 8086 instructions or register names.

As a side note, if you use the CP/M-86 emulation within pcjs.com (PCJS CP/M), the files on disk 2 and 3 are complete and undamaged, i.e., if I type the XIOS.A86 source file on disk 3, it's intact. But if I extract it with cpmtools, the file is mangled. I looked at the file and the garbage at the beginning is a suspicious 8192 bytes long. Changing the offset parameter breaks any extraction.

It would seem to me that anything from disk 1 is permanently borked and the comtools definition is also possibly off. I'm not really sure how or if a later version of cpmtools is needed. I'm willing to try anything the group recommends. I feel that cpmtools is key to moving stuff on-and-off.

Rich
 
Rich,
I found three places where I could get files.
Code:
1. https://fsck.technology/software/Digital%20Research/CPM-86%20Install%20Media/Digital%20Research%20Concurrent%20CPM-86%203.1/

2. CCP/M-86 3.1: 861K The copyqm disk images, and the indiviual files from a 5 diskette set of CCP/M-86 v3.1 for the IBM PCXT.
Requires the StarLink 4 port 8-bit ISA Co-processor Card to boot. Perhaps a way can be found to patch that out. 1984.

3. And on the https://vetusware.com/download/Cocurrent%20CPM%2086%203.1/?id=3835 website.  This file was also
marked as .BAD

I've written the Original file with COPYQM Ver 3.24 to Floppy on my A: drive. Then I've used TELEDISK
to copy a CCPMST1R.TD0 file. I also used IMAGEDISK ver 1.20 to create a CCPMST1R.IMD file.
Those helped create a CCPMST1R.RAW file that Linux's dd command can write to floppy.

I've documented this in the zip file. I've checked and the CCPM.SYS file is in the directory listing
of 19 files. I did rename the file to DISK01 since I was also using DOS 7.x and Batch files to get
the end results you needed.

So, if you can use TELEDISK, COPYQM, IMAGEDISK ver 1.20 or (Linux's dd command to write the
file to write a floppy), you should be good to go.

I was sure one way or another we could have a booting system. I will submit the updates to the above
sites when you get a booting system.

Rick's it's possible my definition isn't 100% correct, so just write the floppy using one of the above ways
and forget cpmtools for now.

Larry


UPDATED 15:19 13 Aug 2026 to get correct files.
 

Attachments

Last edited:
Rich,
My version 2.23 of cpmtools is built with libdsk so I can use raw, rawob, and rawoo. So, the error message
was likely that you didn't have the ibm2 libdsk definition in the .libdskrc file. But, it's possible that I might
have a typo or error in the definition too, as I can't test and verify over 450+ definitions because of lacking
hardware and images.

Code:
# libdsk data below
[ibm2]
description = IBM2  IBM PC, CP/M-86 - DSDD 48 tpi 5.25" - 512 x 8
sides = outback
cylinders = 80
heads = 2
secsize = 512
sectors = 8
secbase = 1
datarate = DD

Larry
 
Rich,
I just discovered I included the incorrect files in my zip for scp and hfe. I updated those from the proper
source files.

Sorry.

Larry
 
Thanks Larry, I will give it a try and report back. My diskdefs contains that libdsk definition but I'm not sure whether cpmtools was built with that support.

{later}

Both libs are installed, so I just grabbed the master v2.23 and ran configure with the parameter --with-libdsk=/usr/local (I had some linker errors). I still get "cannot open" errors with "requested driver not found". Hmmm. If I remove the "-T" parameters, I get a directory no problem but any cpmcp produces garbage.

Rich
 
Last edited:
Rich,
I just discovered I included the incorrect files in my zip for scp and hfe. I updated those from the proper
source files.

Try writing the UPDATED file to floppy and see if it boots properly.

Sorry.

Larry
 
To eliminate any OSX code implementation issues, I installed cpmtools in an Unbuntu VM. In this case, libdsk definitely works as the -T parameter is accepted and I get a nice listing with cpmls. I tried to extract some files from the other two disks (original disk 2 and disk 3) and the extraction is better, but not perfect. For example, an assembly file comes out with some random errors and if you look at it with a hex editor, its littered with E5h which really shouldn't be. But there's progress.

I have not had time to re-test booting the disk but yesterday I know it didn't boot.
 
Having given up on direct access for now, I tried to copy certain file data directly from the image file to another file. For example, the two most important files right now are T186.LIB and XIOS.A86 from disk 3. Is there an easy (ha!) way to parse the directory entry and allocation chain so I can try to grab only the sectors relevant for each file? I gave GoogleAI a spin and produced the attached. I won't have time to thoroughly test it until later today but I think the DPB needs some work.

Rich
 

Attachments

Last edited:
Rich,
Does either the Disk2 or Disk3 Boot properly? If so I can copy the boot track(s)
from Disk2 or Disk3 and put them on Disk1.

I tried most of yesterday morning to get Google Gemini to write a Python Script
that would get the directory listings of each of the three Floppy's. Basically,
I went in circles for hours trying a multitude of Python scripts.

Since those Disk Images have OUTBACK (0 to 39 Side 0, then 39 to 0 Side 1)
that is one special condition. Plus Gemini kept saying it required 4 - 512 byte sectors
in a block to read the directory properly. But, I never got a good directory listing.
I did find some DPB information that is important, so you should start with that.

Code:
# IBM2  IBM PC, CP/M-86 - DSDD 48 tpi 5.25" - 512 x 8
disdpb_ssdd:
    dw    8        ;sectors per track
    db    4        ;block shift
    db    15        ;block mask
    db    0        ;extnt mask
    dw    299        ;disk size - 1
    dw    127        ;directory max
    db    11000000b    ;alloc0
    db    0        ;alloc1
    dw    32        ;check size
    dw    2        ;offset
    db    3        ;PSH 
    db    7        ;DRM 
#
#BEGIN SSD8  Your Custom SSDD 5.25" Format
#DENSITY MFM,LOW
#CYLINDERS 80  SIDES 1  SECTORS 8,1024
#SIDE1 0 1,2,3,4,5,6,7,8
#ORDER SIDES
#BSH 4  BLM 15  EXM 0  DSM 299  DRM 127  AL0 0C0H  AL1 0  OFS 2
#END
#
# SSD8  Your Custom SSDD 5.25" Format
diskdef ssd8
  seclen 1024
  tracks 80
  sectrk 8
  blocksize 2048
  maxdir 128
  skew 1
  boottrk 2
  os 2.2
end

#[ssd8]
#description = SSD8  Your Custom SSDD 5.25" Format
#sides = alt
#cylinders = 80
#heads = 1
#secsize = 1024
#sectors = 8
#secbase = 1
#datarate = HD
#
#dpb_dsdd:
#    dw    8        ;sectors per track
#    db    4        ;block shift
#    db    15        ;block mask
#    db    0        ;extnt mask
#    dw    599        ;disk size - 1
#    dw    255        ;directory max
#    db    11110000b    ;alloc0
#    db    0        ;alloc1
#    dw    64        ;check size
#    dw    4        ;offset
#    db    3        ;PSH
#    db    7        ;DRM
#
#BEGIN DSD8  Your Custom DSDD 5.25" Format
#DENSITY MFM,LOW
#CYLINDERS 40  SIDES 2  SECTORS 8,1024
#SIDE1 0 1,2,3,4,5,6,7,8
#SIDE2 1 1,2,3,4,5,6,7,8
#ORDER CYLINDERS
#BSH 4  BLM 15  EXM 0  DSM 599  DRM 255  AL0 0F0H  AL1 0  OFS 4
#END
#

# DSD8  Your Custom DSDD 5.25" Format
diskdef dsd8
  seclen 1024
  tracks 80
  sides outback    #= Order of Cylinder
  sectrk 8
  blocksize 2048
  maxdir 256
  skew 1
  offset 8192
  boottrk 0
  os 2.2
end

#[dsd8]
#description = DSD8  Your Custom DSDD 5.25" Format
#sides = outback
#cylinders = 80
#heads = 2
#secsize = 1024
#sectors = 8
#secbase = 1
#datarate = DD
#
#kdef ibm2
  seclen 512
  tracks 80
  sectrk 8
  sides outback    #= Order of Cylinder
  blocksize 2048
  maxdir 64
  skew 3
#  boottrk 2
  offset 8192
  boottrk 0
  os 3
end

# libdsk data below
#[ibm2]
#description = IBM2  IBM PC, CP/M-86 - DSDD 48 tpi 5.25" - 512 x 8
#sides = outback
#cylinders = 80
#heads = 2
#secsize = 512
#sectors = 8
#secbase = 1
#datarate = DD

I think with this Disk Parameter Block (DPB) info Gemini might work well.

THANKS.


Larry
 
Last edited:
Thanks Larry. Disk 2 does indeed boot. I've tried the method in the manual to copy the boot tracks (using the monitor) but it doesn't work. I found out that the "out and back" ordering is called serpentine or boustrophedon organization.

On the defs, are you thinking that the disk format is dsd8 with 1024-byte sectors?

Did you try running the python script I posted to see if it gave an interpretation of the directory that matched yours?

Rich
 
Last edited:
Rich, I spend all afternoon with Google Gemini to get a good Boot image of DISK01.RAW. I finally
have one that will (should) boot properly according to Gemini.

No, instead I took the information I had and got Gemini to create a Boot Floppy and VERIFY the Files.
It also had to use the OUTBACK and other issues to come up with a good DISK01.RAW image.

It will take me a bit to create the *.IMD, *.TD0, *.SCP, *.hfe files. I will zip them and then you should have
a good bootable Floppy.....Assuming Gemini did a good job.


Larry
 
Sounds good. Here's a revised python script which parses based on the 4.1 directory format. Cleaner output but extraction still doesn't work properly.

For example, use the below on Disk 3 and try to extract T186MON.A86. A formatting program starts at file offset 1000h and the monitor starts at 4000h.

While paging through, I found this, but it has a lead-in conditional "if eight_system" so this must be the 8" DSDD block.

Code:
;    diskdef 1,0,63,,2048,600,128,128,4
;    double sided double sided parameter block
;
;     9600:    128 byte record capacity
;     1200:    kilobyte drive  capacity
;      128:    32 byte directory entries
;      128:    checked directory entries
;      128:    records / extent
;       16CTORS

Now, if I search the entire image for "five_system" it ultimately leads me to "dpb_ibmds", which has this:

Code:
dpb_ibmds 
    dw    8
    db    4
    db    15
    db    1
    dw    157
    dw    63
    db    80h
    db    0
    dw    16
    dw    1
    db    2
    db    3


Rich
 

Attachments

Last edited:
I have the .RAW file, but now I need to go downstairs and convert it from RAW to IMD and TD0.
That way there will be copies. I tried creating a file with Imagedisk utilities and it will not work.
So, I will do it tomorrow morning.

Do you have a Linux box that can write a floppy with dd? I don't have that capability and have
to use my OLD DOS Box with the Adaptec AHA-1522 FDC.

Raw File is 1024 Sectors * 8 sectors per track laid out for OutBack. Cpmtools built with
libdsk should also be able to write the Floppy. But I'd rather use the old Hardware.



Larry
 

Attachments

Rich,
It was an easy morning getting the floppy written and creating the final imges. DISK01.TD0, DISK01.DSK (CopyQM)
DISK01.IMD.

I have the final extractlomas.py attached that finally worked properly.

It should be easy for you to create a Boot Floppy and boot the Computer.

Note: The final image is 20 Tracks of 4 Sectors per Track with 1024 Bytes per sector for the OUTBACK read.
(RAWRITE.EXE did not work properly in DOS.)


Larry
 

Attachments

Rich,
I just tried your dirdump4.py on the DISK01.RAW image; I got this output:
Code:
Enter path to CP/M 4.1 disk image (or 'q' to quit): /home/larry/IMDs/Lomas-Thunder/DISK01.RAW

===============================================================================================
DIRECTORY MAP FOR: DISK01.RAW
===============================================================================================
Idx  Type         Identity/Filename    Ext  Recs SMC  Timestamp / Map   
-----------------------------------------------------------------------------------------------
0    FILE         MUCONFIG.CMD (R/O,SYS) 1    37   0    N/A               
-----------------------------------------------------------------------------------------------

1    FILE         OSMOVE.BAT (R/O)     0    1    0    N/A               
-----------------------------------------------------------------------------------------------

2    FILE         CCPM.SYS (R/O,SYS)   1    128  0    N/A               
-----------------------------------------------------------------------------------------------

3    FILE         CCPM.SYS (R/O,SYS)   3    128  0    N/A               
-----------------------------------------------------------------------------------------------

4    FILE         CCPM.SYS (R/O,SYS)   5    128  0    N/A               
-----------------------------------------------------------------------------------------------

5    FILE         CCPM.SYS (R/O,SYS)   7    128  0    N/A               
-----------------------------------------------------------------------------------------------

6    FILE         CCPM.SYS (R/O,SYS)   9    4    0    N/A               
-----------------------------------------------------------------------------------------------

7    FILE         DATA.PFK (SYS)       0    21   0    N/A               
-----------------------------------------------------------------------------------------------

8    FILE         MUINSTL.CMD (R/O,SYS) 0    16   0    N/A               
-----------------------------------------------------------------------------------------------

9    FILE         TERM.DAT (R/O,SYS)   0    11   0    N/A               
-----------------------------------------------------------------------------------------------

10   FILE         PIP.CMD (R/O,SYS)    0    70   0    N/A               
-----------------------------------------------------------------------------------------------

11   FILE         HDMAINT.CMD (R/O,SYS) 1    68   0    N/A               
-----------------------------------------------------------------------------------------------

12   FILE         DSKMAINT.CMD (R/O,SYS) 0    50   0    N/A               
-----------------------------------------------------------------------------------------------

13   FILE         OSM2.BAT (R/O,SYS)   0    2    0    N/A               
-----------------------------------------------------------------------------------------------

14   FILE         DIR.CMD (R/O,SYS)    0    18   0    N/A               
-----------------------------------------------------------------------------------------------

15   FILE         BATCH.CMD (R/O,SYS)  0    44   0    N/A               
-----------------------------------------------------------------------------------------------

16   FILE         GLASS.SUB (SYS)      0    3    0    N/A               
-----------------------------------------------------------------------------------------------

17   FILE         CARDDECK.SUB (SYS)   0    3    0    N/A               
-----------------------------------------------------------------------------------------------

18   FILE         CLEAR.SUB (SYS)      0    3    0    N/A               
-----------------------------------------------------------------------------------------------

19   FILE         EXAMPLE.LTR (SYS)    0    9    0    N/A               
-----------------------------------------------------------------------------------------------

20   FILE         README.DOC (SYS)     0    8    0    N/A               
-----------------------------------------------------------------------------------------------

21   FILE         WORDPROC.SUB (SYS)   0    3    0    N/A               
-----------------------------------------------------------------------------------------------

22   FILE         MUSW.SYS (SYS)       0    28   0    N/A               
-----------------------------------------------------------------------------------------------

Enter exact filename to extract (or 'q' to quit):

So, it looks like it works on the DISK01.RAW image I built.

I also tried the extractlomas.py script today, and it gives me an error now. I haven't a clue
as to what the problem is.


Larry
 
dskdump4 works (sort of) with CPM 4.1 format directory. It doesn't extract anything useful. So, I went back to a prior version and added some bells and whistles. The directory starts at offset 0x2000 in the image files. I downloaded Applesauce and am browsing an original SCP file for disk 3. T0H0 has no block number. T0H1 is marked block 4Eh. T1H0 is Block 0 and T1H1 is 50h. That continues to the end: T39H0 is Block 4C and T39H1 is 9Ch.

Using Applesauce, it appears to be able to extract many files, but some in the middle do not extract completely or are truncated. Having said that, I'm not sure that the extracted files are complete either, but they look pretty good.

Based on this, I think the right definition is the ibmpc-514ds with skew=1 and sides=outout. That gets an extraction similar to Applesauce. Much better but not perfect yet. There's track slack space garbage in the middle of the file I extracted.

Rich
 
Last edited:
Back
Top