Discussion:
CP/M Infocom images on archive.org
(too old to reply)
Nathanael
2023-12-09 04:41:55 UTC
Permalink
There are a number of .DSK images of Infocom games on archive.org. For example:

https://archive.org/details/cpc_Ballyhoo_1986_Infocom_cpm_version

The images appear to be for an Amstrad emulator ( "cpc6128"). I'm trying to extract files from them via cpmtools, but don't think I've discovered the right format. A binary dump of the .COM files looks vaguely OK, but the .DAT files seems not to be.

I've also found a number of utilities that claim to be able to extract data from Amstrad emulator disk images, but again have struck out.

Anyone know how to access those images?

--Nathanael
ldkr...@gmail.com
2023-12-09 05:20:54 UTC
Permalink
Nathanael,
There is a Nice conversion program named SAMDISK located at:
[url]
https://simonowen.com/samdisk/
[/url]
A format that it supports is .DSK for Amstrad
[url]
https://simonowen.com/samdisk/formats/
[/url]
DSK — Disk image (Amstrad CPC).

You can convert a .DSK to a .RAW image with SAMDISK
[code]
SAMdisk image.dsk image.raw
[/code]

I use SAMDISK in Linux to convert the Image to *.RAW, and then cpmtools will access it with the
properdefinition.

[code]
~/Downloads/samdisk$ wine samdisk Ballyhoo_1986_Infocom_cpm_version.dsk Ballyhoo.raw
Wrote 40 cyls, 1 head, 9 sectors, 512 bytes/sector = 184320 bytes
[/code]

cp/m definitions are located at:
[url]
https://github.com/ldkraemer/CPM-Floppy-Definitions
[/url]

Directory of Ballyhoo.raw is at 0x2400 = 9216 Decimal 9216 / 512 =18 so, two tracks for boot sector.
[code]
00002400 00 42 41 4C 4C 59 48 4F 4F C3 4F 4D 00 00 00 02 .BALLYHOO.OM....
00002410 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00002420 00 42 41 4C 4C 36 34 20 20 C3 4F 4D 00 00 00 44 .BALL64 .OM...D
00002430 03 04 05 06 07 08 09 0A 0B 00 00 00 00 00 00 00 ................
00002440 00 42 41 4C 4C 31 32 38 20 C3 4F 4D 00 00 00 44 .BALL128 .OM...D
00002450 0C 0D 0E 0F 10 11 12 13 14 00 00 00 00 00 00 00 ................
00002460 00 42 41 4C 4C 32 35 36 20 C3 4F 4D 00 00 00 44 .BALL256 .OM...D
00002470 15 16 17 18 19 1A 1B 1C 1D 00 00 00 00 00 00 00 ................
00002480 00 42 41 4C 4C 59 48 4F 4F C4 41 54 00 00 00 80 .BALLYHOO.AT....
00002490 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D .. !"#$%&'()*+,-
000024A0 00 42 41 4C 4C 59 48 4F 4F C4 41 54 01 00 00 80 .BALLYHOO.AT....
000024B0 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D ./0123456789:;<=
000024C0 00 42 41 4C 4C 59 48 4F 4F C4 41 54 02 00 00 80 .BALLYHOO.AT....
000024D0 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D >?@ABCDEFGHIJKLM
000024E0 00 42 41 4C 4C 59 48 4F 4F C4 41 54 03 00 00 80 .BALLYHOO.AT....
000024F0 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D NOPQRSTUVWXYZ[\]
00002500 00 42 41 4C 4C 59 48 4F 4F C4 41 54 04 00 00 80 .BALLYHOO.AT....
00002510 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D ^_`abcdefghijklm
00002520 00 42 41 4C 4C 59 48 4F 4F C4 41 54 05 00 00 80 .BALLYHOO.AT....
00002530 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D nopqrstuvwxyz{|}
00002540 00 42 41 4C 4C 59 48 4F 4F C4 41 54 06 00 00 80 .BALLYHOO.AT....
00002550 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D ~...............
[/code]

cpmtools should be able to access the .RAW image. BIN2IMD will create an *.IMD
file to write to Floppy. Or, you can use Linux's dd to write the *.RAW file to
Floppy. libdsk and SAMDISK should also be able to create a floppy.

Larry
ldkr...@gmail.com
2023-12-09 05:53:18 UTC
Permalink
On Friday, December 8, 2023 at 11:20:55 PM UTC-6, ***@gmail.com wrote:
Nathanael,
Here is a directory listing I got for that Ballyhoo.raw image:
[code]
$ cpmls -f ams2 -D Ballyhoo.raw
Name Bytes Recs Attr update create
------------ ------ ------ ---- ----------------- -----------------
BALL128 .COM 9K 68 R
BALL256 .COM 9K 68 R
BALL64 .COM 9K 68 R
BALLYHOO.COM 1K 2 R
BALLYHOO.DAT 126K 1008 R
5 Files occupying 154K, 15K Free.
[/code]


Larry
Nathanael
2023-12-09 06:24:21 UTC
Permalink
Post by ***@gmail.com
Nathanael,
[code]
$ cpmls -f ams2 -D Ballyhoo.raw
Name Bytes Recs Attr update create
------------ ------ ------ ---- ----------------- -----------------
BALL128 .COM 9K 68 R
BALL256 .COM 9K 68 R
BALL64 .COM 9K 68 R
BALLYHOO.COM 1K 2 R
BALLYHOO.DAT 126K 1008 R
5 Files occupying 154K, 15K Free.
[/code]
Larry
A quick initial test seems to work. Thanks! I had the Amstrad defs from the European definitions collection, but I didn't have your ams2 one.

To your question several months ago via email: I believe I was just using the standard IBM-3740 definition that is the cpmtools default:

diskdef ibm-3740
seclen 128
tracks 77
sectrk 26
blocksize 1024
maxdir 64
skew 6
boottrk 2
os 2.2
end
Jacob Nevins
2023-12-09 21:34:59 UTC
Permalink
Post by Nathanael
https://archive.org/details/cpc_Ballyhoo_1986_Infocom_cpm_version
The images appear to be for an Amstrad emulator ( "cpc6128"). I'm trying
to extract files from them via cpmtools, but don't think I've discovered
the right format. A binary dump of the .COM files looks vaguely OK, but
the .DAT files seems not to be.
An alternative way to access this .DSK file (compared to the other
reply) is with a version of cpmtools that has been built against libdsk.
(Without this, cpmtools can't read .DSK files directly.)

For instance, with my own build of cpmtools:

$ cpmls -l -f cpcsys Ballyhoo_1986_Infocom_cpm_version.dsk
0:
-r-xr-xr-x 8704 Jan 01 1970 ball128.com
-r-xr-xr-x 8704 Jan 01 1970 ball256.com
-r-xr-xr-x 8704 Jan 01 1970 ball64.com
-r-xr-xr-x 256 Jan 01 1970 ballyhoo.com
-r--r--r-- 129024 Jan 01 1970 ballyhoo.dat

I've checked correctness by extracting the files and running the
$VERIFY command in the interpreter.

If you're on Debian Linux 12, or Ubuntu Linux 23.04 or later, the
standard cpmtools is built like this. (I don't know about other
Linux distributions. The change went into Debian at the end of
January, so should be trickling into all Debian/Ubuntu-derived
distributions.)
Otherwise, you'll have to build cpmtools (and possibly libdsk)
yourself.
(I don't know of a Windows binary distribution of cpmtools built like
this.)
Nathanael
2023-12-10 03:14:44 UTC
Permalink
Post by Jacob Nevins
Post by Nathanael
https://archive.org/details/cpc_Ballyhoo_1986_Infocom_cpm_version
The images appear to be for an Amstrad emulator ( "cpc6128"). I'm trying
to extract files from them via cpmtools, but don't think I've discovered
the right format. A binary dump of the .COM files looks vaguely OK, but
the .DAT files seems not to be.
An alternative way to access this .DSK file (compared to the other
reply) is with a version of cpmtools that has been built against libdsk.
(Without this, cpmtools can't read .DSK files directly.)
$ cpmls -l -f cpcsys Ballyhoo_1986_Infocom_cpm_version.dsk
-r-xr-xr-x 8704 Jan 01 1970 ball128.com
-r-xr-xr-x 8704 Jan 01 1970 ball256.com
-r-xr-xr-x 8704 Jan 01 1970 ball64.com
-r-xr-xr-x 256 Jan 01 1970 ballyhoo.com
-r--r--r-- 129024 Jan 01 1970 ballyhoo.dat
I've checked correctness by extracting the files and running the
$VERIFY command in the interpreter.
If you're on Debian Linux 12, or Ubuntu Linux 23.04 or later, the
standard cpmtools is built like this. (I don't know about other
Linux distributions. The change went into Debian at the end of
January, so should be trickling into all Debian/Ubuntu-derived
distributions.)
Otherwise, you'll have to build cpmtools (and possibly libdsk)
yourself.
(I don't know of a Windows binary distribution of cpmtools built like
this.)
Thanks, Jacob. I do have cpmtools built against libdsk, but I think I had problems with it. In any case I've got everything extracted now and, as a bonus, have a copy of Infocom's CP/M interpreter Version C to add to my collection.

If anyone has a copy of Version A, I'm still looking for one.

Loading...