Skip to content

Commit

Permalink
***** cpmtools __SNAPSHOT__ version 2.21 of 2019/11/02 *****
Browse files Browse the repository at this point in the history
Changes since 2.20:

  * rc759 diskdef renamed to rc75x, as it works for the series
  * diskdefs.5 added
  * Many disk formats from Larry Kraemer added
  * Renamed ampdsdd to ampro400d for consistency with libdsk and because
    ampdsdd very likely was wrong
  * Check for invalid block size
  * Output line number for diskdefs errors
  * Correctly output create or access time for CP/M 3 in cpmls
  * Spectravideo SVI-728 diskdef added
  * $DESTDIR support
  * Correctly handle empty files
  * Fix block allocation for large directories.
  * Fix time stamp conversion
  * Allow user number 16-31 for CP/M 2.2

Originated-by: cpmtools-2.21-snapshot.tar.gz
Originated-md5: 6e92f35253ded22e0fd3627e86178905
Originated-URL: http://www.moria.de/~michael/cpmtools/files/cpmtools-2.21-snapshot.tar.gz

Signed-off-by: Stephan Linz <[email protected]>
  • Loading branch information
mhaardt authored and rexut committed Nov 2, 2019
1 parent 1dd35c0 commit 4482062
Show file tree
Hide file tree
Showing 21 changed files with 673 additions and 106 deletions.
43 changes: 22 additions & 21 deletions Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -80,27 +80,28 @@ fsck.test: fsck.cpm
-./fsck.cpm -f pcw -n badfs/label

install: all
[ -d $(MANDIR)/man1 ] || $(INSTALL) -m 755 -d $(MANDIR)/man1
[ -d $(MANDIR)/man5 ] || $(INSTALL) -m 755 -d $(MANDIR)/man5
[ -d $(BINDIR) ] || $(INSTALL) -m 755 -d $(BINDIR)
$(INSTALL) -s -m 755 cpmls $(BINDIR)/cpmls
$(INSTALL) -s -m 755 cpmcp $(BINDIR)/cpmcp
$(INSTALL) -s -m 755 cpmrm $(BINDIR)/cpmrm
$(INSTALL) -s -m 755 cpmchmod $(BINDIR)/cpmchmod
$(INSTALL) -s -m 755 cpmchattr $(BINDIR)/cpmchattr
$(INSTALL) -s -m 755 mkfs.cpm $(BINDIR)/mkfs.cpm
$(INSTALL) -s -m 755 fsck.cpm $(BINDIR)/fsck.cpm
[ "$(FSED_CPM)" == '' ] || $(INSTALL) -s -m 755 fsed.cpm $(BINDIR)/fsed.cpm
$(INSTALL_DATA) diskdefs @datarootdir@/diskdefs
$(INSTALL_DATA) cpmls.1 $(MANDIR)/man1/cpmls.1
$(INSTALL_DATA) cpmcp.1 $(MANDIR)/man1/cpmcp.1
$(INSTALL_DATA) cpmrm.1 $(MANDIR)/man1/cpmrm.1
$(INSTALL_DATA) cpmchmod.1 $(MANDIR)/man1/cpmchmod.1
$(INSTALL_DATA) cpmchattr.1 $(MANDIR)/man1/cpmchattr.1
$(INSTALL_DATA) mkfs.cpm.1 $(MANDIR)/man1/mkfs.cpm.1
$(INSTALL_DATA) fsck.cpm.1 $(MANDIR)/man1/fsck.cpm.1
$(INSTALL_DATA) fsed.cpm.1 $(MANDIR)/man1/fsed.cpm.1
$(INSTALL_DATA) cpm.5 $(MANDIR)/man5/cpm.5
[ -d $(DESTDIR)$(MANDIR)/man1 ] || $(INSTALL) -m 755 -d $(DESTDIR)$(MANDIR)/man1
[ -d $(DESTDIR)$(MANDIR)/man5 ] || $(INSTALL) -m 755 -d $(DESTDIR)$(MANDIR)/man5
[ -d $(DESTDIR)$(BINDIR) ] || $(INSTALL) -m 755 -d $(DESTDIR)$(BINDIR)
$(INSTALL) -s -m 755 cpmls $(DESTDIR)$(BINDIR)/cpmls
$(INSTALL) -s -m 755 cpmcp $(DESTDIR)$(BINDIR)/cpmcp
$(INSTALL) -s -m 755 cpmrm $(DESTDIR)$(BINDIR)/cpmrm
$(INSTALL) -s -m 755 cpmchmod $(DESTDIR)$(BINDIR)/cpmchmod
$(INSTALL) -s -m 755 cpmchattr $(DESTDIR)$(BINDIR)/cpmchattr
$(INSTALL) -s -m 755 mkfs.cpm $(DESTDIR)$(BINDIR)/mkfs.cpm
$(INSTALL) -s -m 755 fsck.cpm $(DESTDIR)$(BINDIR)/fsck.cpm
[ "$(FSED_CPM)" == '' ] || $(INSTALL) -s -m 755 fsed.cpm $(DESTDIR)$(BINDIR)/fsed.cpm
$(INSTALL_DATA) diskdefs $(DESTDIR)@datarootdir@/diskdefs
$(INSTALL_DATA) cpmls.1 $(DESTDIR)$(MANDIR)/man1/cpmls.1
$(INSTALL_DATA) cpmcp.1 $(DESTDIR)$(MANDIR)/man1/cpmcp.1
$(INSTALL_DATA) cpmrm.1 $(DESTDIR)$(MANDIR)/man1/cpmrm.1
$(INSTALL_DATA) cpmchmod.1 $(DESTDIR)$(MANDIR)/man1/cpmchmod.1
$(INSTALL_DATA) cpmchattr.1 $(DESTDIR)$(MANDIR)/man1/cpmchattr.1
$(INSTALL_DATA) mkfs.cpm.1 $(DESTDIR)$(MANDIR)/man1/mkfs.cpm.1
$(INSTALL_DATA) fsck.cpm.1 $(DESTDIR)$(MANDIR)/man1/fsck.cpm.1
$(INSTALL_DATA) fsed.cpm.1 $(DESTDIR)$(MANDIR)/man1/fsed.cpm.1
$(INSTALL_DATA) cpm.5 $(DESTDIR)$(MANDIR)/man5/cpm.5
$(INSTALL_DATA) diskdefs.5 $(DESTDIR)$(MANDIR)/man5/diskdefs.5

clean:
rm -f *$(OBJEXT)
Expand Down
17 changes: 15 additions & 2 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
Changes since 2.19:
Changes since 2.20:

o Fixed bug in cpmfs leading to wrongly allocated blocks
o rc759 diskdef renamed to rc75x, as it works for the series
o diskdefs.5 added
o Many disk formats from Larry Kraemer added
o Renamed ampdsdd to ampro400d for consistency with libdsk and because
ampdsdd very likely was wrong
o Check for invalid block size
o Output line number for diskdefs errors
o Correctly output create or access time for CP/M 3 in cpmls
o Spectravideo SVI-728 diskdef added
o $DESTDIR support
o Correctly handle empty files
o Fix block allocation for large directories.
o Fix time stamp conversion
o Allow user number 16-31 for CP/M 2.2
9 changes: 5 additions & 4 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -2272,8 +2272,8 @@ IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac


VERSION=2.20
UPDATED='October 25, 2014'
VERSION=2.21
UPDATED='Jan 23, 2019'

DEVICE="posix"

Expand Down Expand Up @@ -3310,7 +3310,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu

if test "$GCC" = yes
then
CFLAGS="${CFLAGS} ${EXTRA_GCFLAGS}-pipe -Wall -Wextra -Wno-unused-parameter -Wno-unused -Wshadow -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Wmissing-declarations -Wnested-externs -Wundef -pedantic -fno-common"
CFLAGS="${CFLAGS} ${EXTRA_GCFLAGS}-pipe -Wall -Wextra -Wshadow -Wno-unused-parameter -Wunused -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Wmissing-declarations -Wnested-externs -Wundef -pedantic -fno-common"
LDFLAGS="${LDFLAGS} ${EXTRA_GLDFLAGS}-g"
else
CFLAGS="${CFLAGS} ${EXTRA_CFLAGS}"
Expand Down Expand Up @@ -4476,7 +4476,7 @@ eval DATADIR=$datadir



ac_config_files="$ac_config_files Makefile cpm.5 cpmchattr.1 cpmchmod.1 cpmcp.1 cpmls.1 cpmrm.1 fsck.cpm.1 fsed.cpm.1 mkfs.cpm.1"
ac_config_files="$ac_config_files Makefile cpm.5 cpmchattr.1 cpmchmod.1 cpmcp.1 cpmls.1 cpmrm.1 fsck.cpm.1 fsed.cpm.1 mkfs.cpm.1 diskdefs.5"

cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
Expand Down Expand Up @@ -5179,6 +5179,7 @@ do
"fsck.cpm.1") CONFIG_FILES="$CONFIG_FILES fsck.cpm.1" ;;
"fsed.cpm.1") CONFIG_FILES="$CONFIG_FILES fsed.cpm.1" ;;
"mkfs.cpm.1") CONFIG_FILES="$CONFIG_FILES mkfs.cpm.1" ;;
"diskdefs.5") CONFIG_FILES="$CONFIG_FILES diskdefs.5" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
Expand Down
8 changes: 4 additions & 4 deletions configure.in
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
AC_INIT(cpmfs.c)
AC_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
VERSION=2.20
UPDATED='October 25, 2014'
VERSION=2.21
UPDATED='Jan 23, 2019'

DEVICE="posix"

Expand All @@ -23,7 +23,7 @@ AC_PROG_CPP

if test "$GCC" = yes
then
CFLAGS="${CFLAGS} ${EXTRA_GCFLAGS}-pipe -Wall -Wextra -Wno-unused-parameter -Wno-unused -Wshadow -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Wmissing-declarations -Wnested-externs -Wundef -pedantic -fno-common"
CFLAGS="${CFLAGS} ${EXTRA_GCFLAGS}-pipe -Wall -Wextra -Wshadow -Wno-unused-parameter -Wunused -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Wmissing-declarations -Wnested-externs -Wundef -pedantic -fno-common"
LDFLAGS="${LDFLAGS} ${EXTRA_GLDFLAGS}-g"
else
CFLAGS="${CFLAGS} ${EXTRA_CFLAGS}"
Expand Down Expand Up @@ -125,4 +125,4 @@ AC_SUBST(DISKDEFS)
AC_SUBST(DEFFORMAT)
AC_SUBST(FSED_CPM)
AC_SUBST(UPDATED)
AC_OUTPUT(Makefile cpm.5 cpmchattr.1 cpmchmod.1 cpmcp.1 cpmls.1 cpmrm.1 fsck.cpm.1 fsed.cpm.1 mkfs.cpm.1 )
AC_OUTPUT(Makefile cpm.5 cpmchattr.1 cpmchmod.1 cpmcp.1 cpmls.1 cpmrm.1 fsck.cpm.1 fsed.cpm.1 mkfs.cpm.1 diskdefs.5)
8 changes: 6 additions & 2 deletions cpm.5
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.\" Believe it or not, reportedly there are nroffs which do not know \(en
.if n .ds en -
.if t .ds en \(en
.TH CPM 5 "October 25, 2014" "CP/M tools" "File formats"
.TH CPM 5 "Jan 23, 2019" "CP/M tools" "File formats"
.SH NAME \"{{{roff}}}\"{{{
cpm \- CP/M disk and file system format
.\"}}}
Expand Down Expand Up @@ -32,7 +32,9 @@ A block is the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format specification is not stored on the disk and there are lots of
formats. Accessing a block is performed by accessing its sectors, which
are stored with the given software skew.
are stored with the given software skew. \fBcpmtools\fP always counts
sectors starting with 0, as it deals with logical sectors. CP/M uses physical
sectors in the skew table, which often start with 1.
.\"}}}
.SS "Device areas" \"{{{
A CP/M disk contains four areas:
Expand Down Expand Up @@ -149,6 +151,8 @@ Rc stores the number of 128 byte records of the last used logical extent.
Bc stores the number of bytes in the last used record. The value 0 means
128 for backward compatibility with CP/M 2.2, which did not support Bc.
ISX records the number of unused instead of used bytes in Bc.
This only applies to files with allocated blocks. For an empty file, no
block is allocated and Bc 0 has no meaning.
.\"}}}
.LP
.\"{{{ Al = allocated blocks
Expand Down
11 changes: 8 additions & 3 deletions cpm.5.in
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ A block is the smallest allocatable storage unit. CP/M supports block
sizes of 1024, 2048, 4096, 8192 and 16384 bytes. Unfortunately, this
format specification is not stored on the disk and there are lots of
formats. Accessing a block is performed by accessing its sectors, which
are stored with the given software skew.
are stored with the given software skew. \fBcpmtools\fP always counts
sectors starting with 0, as it deals with logical sectors. CP/M uses physical
sectors in the skew table, which often start with 1.
.\"}}}
.SS "Device areas" \"{{{
A CP/M disk contains four areas:
Expand Down Expand Up @@ -80,9 +82,10 @@ Al Al Al Al Al Al Al Al Al Al Al Al Al Al Al Al
\fBSt\fP is the status; possible values are:
.RS
.sp
0\*(en15: used for file, status is the user number
0\*(en15: used for file, status is the user number. CP/M 2.2 only documents
0\*(en15 and CCP and PIP only offer those, but the BDOS allows to use 0\*(en31.
.br
16\*(en31: used for file, status is the user number (P2DOS)
16\*(en31: used for file, status is the user number (P2DOS, CP/M 2.2)
or used for password extent (CP/M 3 or higher)
.br
32: disc label
Expand Down Expand Up @@ -149,6 +152,8 @@ Rc stores the number of 128 byte records of the last used logical extent.
Bc stores the number of bytes in the last used record. The value 0 means
128 for backward compatibility with CP/M 2.2, which did not support Bc.
ISX records the number of unused instead of used bytes in Bc.
This only applies to files with allocated blocks. For an empty file, no
block is allocated and Bc 0 has no meaning.
.\"}}}
.LP
.\"{{{ Al = allocated blocks
Expand Down
2 changes: 1 addition & 1 deletion cpmchattr.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH CPMCHATTR 1 "October 25, 2014" "CP/M tools" "User commands"
.TH CPMCHATTR 1 "Jan 23, 2019" "CP/M tools" "User commands"
.SH NAME \"{{{roff}}}\"{{{
cpmchattr \- change file attributes on CP/M files
.\"}}}
Expand Down
2 changes: 1 addition & 1 deletion cpmchmod.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH CPMCHMOD 1 "October 25, 2014" "CP/M tools" "User commands"
.TH CPMCHMOD 1 "Jan 23, 2019" "CP/M tools" "User commands"
.SH NAME \"{{{roff}}}\"{{{
cpmchmod \- change file mode on CP/M files
.\"}}}
Expand Down
2 changes: 1 addition & 1 deletion cpmcp.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH CPMCP 1 "October 25, 2014" "CP/M tools" "User commands"
.TH CPMCP 1 "Jan 23, 2019" "CP/M tools" "User commands"
.SH NAME \"{{{roff}}}\"{{{
cpmcp \- copy files from and to CP/M disks
.\"}}}
Expand Down
Loading

0 comments on commit 4482062

Please sign in to comment.