agn453 / UNZIP-CPM-Z80

UNZIP and ZIP for CP/M Z80
The Unlicense
34 stars 4 forks source link

Will not extract under CP/M 2.2 or 3.0 #1

Closed tachijuan closed 3 years ago

tachijuan commented 3 years ago

Running unzip186.com under cp/m 2.2 and 3.0 on my SC-131. I've tried against zip files with just Stored files and also others with varying levels of compression. None of them extract.

I>era random.pas I>f:unzip186 d2 random.pas UNZIP Version 1.8-6 - DPG Checking ZIP archive = D2 .ZIP Name Length Stored Method Ver File Date & Time CRC STATUS ============ ======= ======= ======== === ========= ===== ======== ======= RANDOM .PAS 3712 3712 Stored 10 28 Apr 16 19:19 97381948 CRC OK

I>dir random.pas NO FILE I>f:unzip186 UNZIP Version 1.8-6 - DPG Usage: UNZIP {d:}zipfile {d:}{afn.typ} If a destination is given, files are extracted. If not, filenames are listed. I>f:unzip186 d2 random.pas i: UNZIP Version 1.8-6 - DPG Checking ZIP archive = D2 .ZIP Name Length Stored Method Ver File Date & Time CRC STATUS ============ ======= ======= ======== === ========= ===== ======== ======= RANDOM .PAS 3712 3712 Stored 10 28 Apr 16 19:19 97381948 CRC OK

I>dir random.pas NO FILE

agn453 commented 3 years ago

The command syntax for extracting a single file is a bit picky.

Try

unzip d2 i:random.pas

Unzip 1.8 defaults to listing the zip file contents if you don't specify a drive name on the filespec. If you don't specify the filename, all files will be extracted. For example -

unzip zipfile c:

will extract all files from ZIPFILE.ZIP to the current user on the C: drive.

tachijuan commented 3 years ago

Well - I swear I tried that and it wasn't working, but now I'm running into a different issue. I have a zip file that locks up when it gets to a specific file:

4J>a:unzip186 mumps j:
UNZIP Version 1.8-6 - DPG
Extracting
ZIP archive  = MUMPS   .ZIP
Name         Length  Stored   Method   Ver  File Date & Time    CRC    STATUS
============ ======= =======  ======== ===  =========  =====  ======== =======
MUMPS1  .ASC   20002    7675  Deflated  20  21 Mar 01  13:27  9A45F85D  Date Stamp Error
MUMPS2  .ASC   20517    8160  Deflated  20  21 Mar 01  13:27  F527E040  Date Stamp Error
MUMPS3  .ASC    7468    3093  Deflated  20  21 Mar 01  13:27  4AB93ED4  Date Stamp Error
MUMPS4  .ASC   28222   10386  Deflated  20  21 Mar 01  13:27  EC5CDE6D  Date Stamp Error
MUMPS5  .ASC   17111    6033  Deflated  20  21 Mar 01  13:27  8334354C  Date Stamp Error
MUMPS6  .ASC   10046    4132  Deflated  20  21 Mar 01  13:27  0E0B1D8F  Date Stamp Error
MUMPS7  .ASC   33833   11177  Deflated  20  21 Mar 01  13:27  A4282BC2  Date Stamp Error
MUMPS8  .ASC    8831    3649  Deflated  20  21 Mar 01  13:27  C06CC37D  Date Stamp Error
MUMPSDIR.ASC     749     293  Deflated  20  21 Mar 01  13:27  A9D9DAAE  Date Stamp Error
%DATE   .MMP     384     302  Deflated  20  21 Mar 01  13:27  A0237680  Date Stamp Error
%EDIT   .MMP    2432    1231  Deflated  20  21 Mar 01  13:27  AF8016EE  Date Stamp Error
%EDITH  .MMP    1152     486  Deflated  20  21 Mar 01  13:27  371B6115  Date Stamp Error
%M      .MMP    3584      20  Deflated  20  21 Mar 01  13:27  280F045E  Date Stamp Error
%M0     .MMP    3072      20  Deflated  20  21 Mar 01  13:27  95379801  Date Stamp Error
%M1     .MMP    3072      20  Deflated  20  21 Mar 01  13:27  95379801  Date Stamp Error
%M10    .MMP    3072    1079  Deflated  20  21 Mar 01  13:27  3A659D4F  Date Stamp Error
%M2     .MMP    3072      20  Deflated  20  21 Mar 01  13:27  95379801  Date Stamp Error
%M3     .MMP    2560      19  Deflated  20  21 Mar 01  13:27  E0941DB3  Date Stamp Error
%M4     .MMP    2560      19  Deflated  20  21 Mar 01  13:27  E0941DB3  Date Stamp Error
%M5     .MMP    2048      18  Deflated  20  21 Mar 01  13:27  AACDDAC9  Date Stamp Error
%M6     .MMP    3584      20  Deflated  20  21 Mar 01  13:27  280F045E  Date Stamp Error
%M7     .MMP    1024      11  Deflated  20  21 Mar 01  13:27  B3E0057B

It never gets past that %M7.MMP file

Happy to share the zip file if it is helpful in troubleshooting

As a test, I uncompressed the content on my mac, recompressed with zip, sent that file to the SC-131. That one uncompressed successfully (and rather quickly). The interesting thing on this is that the mac zip (Info-Zip v 3.0) was able to uncompress the file that was having issues on CP/M, recompress to a new one, and that one worked. It would appear that there's some sort of issue with the decompress that's in the original mumps.zip file.

agn453 commented 3 years ago

I think I have the MUMPS zip file... so transferring to my Z80MBC-2 running banked memory Simeon Cran's ZPM3 gives -

Z80-MBC2 - A040618
IOS - I/O Subsystem - S220718-R240620 on ATmega1284P-PU

IOS: Found extended serial Rx buffer
IOS: Z80 clock set at 10MHz
IOS: Found RTC DS3231 Module (03/06/21 08:41:25)
IOS: RTC DS3231 temperature sensor: 18C
IOS: Found GPE Option
IOS: CP/M Autoexec is ON
IOS: Current Disk Set 2 (CP/M 3.0)
IOS: Loading boot program (CPMLDR.COM)... Done
IOS: Z80 is running from now

Z80-MBC2 CPMLDR BIOS - S180918

CPMLDR3 - CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 RESBIOS3 SPR  FA00  0600
 BNKBIOS3 SPR  5600  2A00
 RESBDOS3 SPR  F400  0600
 BNKBDOS3 SPR  2800  2E00

 61K TPA

Z80-MBC2 128KB (Banked) CP/M V3.0 with ZPM3
Z80-MBC2 BIOS Modules: S200918, S210918-R170319, S220918-R180319, S290918,
 S170319

A>; A:PROFILE.SUB - Search path is current drive and drive A: then C: and B:
A>a:setdef * a: c: b: [order=(com,sub) display page uk temporary=b]

Drive Search Path:
1st Drive            - Default
2nd Drive            - A:
3rd Drive            - C:
4th Drive            - B:

Search Order         - COM, SUB
Temporary Drive      - B:
Console Page Mode    - On
Program Name Display - On
Date format used     - UK

A>a:date
A:DATE     COM
Thu 03/06/2021 08:41:45
A>c7:
7C>show [us
A:SHOW     COM  (User 0)

C: Active User :   7
C: Active Files:   0   1   2   3  10
C: # of files  : 128  17  31  21  49

C: Number of time/date directory entries:  128
C: Number of free directory entries:        93

7C>xmodem mumps4.zip /r
A:XMODEM   COM  (User 0)

OK
Received 1149 blocks
7C>unzip mumps4 c:
A:UNZIP    COM  (User 0)
UNZIP Version 1.8-6 - DPG
Extracting
ZIP archive  = MUMPS4  .ZIP
Name         Length  Stored   Method   Ver  File Date & Time    CRC    STATUS
============ ======= =======  ======== ===  =========  =====  ======== =======
MUMPS1  .ASC   20002    7675  Deflated  20  21 Mar 01  13:27  9A45F85D  CRC OK
MUMPS2  .ASC   20517    8160  Deflated  20  21 Mar 01  13:27  F527E040  CRC OK
MUMPS3  .ASC    7468    3093  Deflated  20  21 Mar 01  13:27  4AB93ED4  CRC OK
MUMPS4  .ASC   28222   10386  Deflated  20  21 Mar 01  13:27  EC5CDE6D  CRC OK
MUMPS5  .ASC   17111    6033  Deflated  20  21 Mar 01  13:27  8334354C  CRC OK
MUMPS6  .ASC   10046    4132  Deflated  20  21 Mar 01  13:27  0E0B1D8F  CRC OK
MUMPS7  .ASC   33833   11177  Deflated  20  21 Mar 01  13:27  A4282BC2  CRC OK
MUMPS8  .ASC    8831    3649  Deflated  20  21 Mar 01  13:27  C06CC37D  CRC OK
MUMPSDIR.ASC     749     293  Deflated  20  21 Mar 01  13:27  A9D9DAAE  CRC OK
%DATE   .MMP     384     302  Deflated  20  21 Mar 01  13:27  A0237680  CRC OK
%EDIT   .MMP    2432    1231  Deflated  20  21 Mar 01  13:27  AF8016EE  CRC OK
%EDITH  .MMP    1152     486  Deflated  20  21 Mar 01  13:27  371B6115  CRC OK
%M      .MMP    3584      20  Deflated  20  21 Mar 01  13:27  280F045E  CRC OK
%M0     .MMP    3072      20  Deflated  20  21 Mar 01  13:27  95379801  CRC OK
%M1     .MMP    3072      20  Deflated  20  21 Mar 01  13:27  95379801  CRC OK
%M10    .MMP    3072    1079  Deflated  20  21 Mar 01  13:27  3A659D4F  CRC OK
%M2     .MMP    3072      20  Deflated  20  21 Mar 01  13:27  95379801  CRC OK
%M3     .MMP    2560      19  Deflated  20  21 Mar 01  13:27  E0941DB3  CRC OK
%M4     .MMP    2560      19  Deflated  20  21 Mar 01  13:27  E0941DB3  CRC OK
%M5     .MMP    2048      18  Deflated  20  21 Mar 01  13:27  AACDDAC9  CRC OK
%M6     .MMP    3584      20  Deflated  20  21 Mar 01  13:27  280F045E  CRC OK
%M7     .MMP    1024      11  Deflated  20  21 Mar 01  13:27  B3E0057B 

It hangs on the same file.

After rebooting - the files up to this point have been created -

7C>dir [fu,len=200
A:DIR      COM  (User 0)

Scanning Directory...

Sorting  Directory...

Directory For Drive C:  User  7

    Name     Bytes   Recs   Attributes   Prot      Update          Create
------------ ------ ------ ------------ ------ --------------  --------------

%DATE    MMP     4k      3 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%EDIT    MMP     4k     19 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%EDITH   MMP     4k      9 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%M       MMP     4k     28 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%M0      MMP     4k     24 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%M1      MMP     4k     24 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%M10     MMP     4k     24 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%M2      MMP     4k     24 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%M3      MMP     4k     20 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%M4      MMP     4k     20 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%M5      MMP     4k     16 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%M6      MMP     4k     28 Dir RW       None   21/03/01 13:27  21/03/01 13:27
%M7      MMP     0k      0 Dir RW       None   03/06/21 08:36  03/06/21 08:36
MUMPS1   ASC    20k    157 Dir RW       None   21/03/01 13:27  21/03/01 13:27
MUMPS2   ASC    24k    161 Dir RW       None   21/03/01 13:27  21/03/01 13:27
MUMPS3   ASC     8k     59 Dir RW       None   21/03/01 13:27  21/03/01 13:27
MUMPS4   ASC    28k    221 Dir RW       None   21/03/01 13:27  21/03/01 13:27
MUMPS4   ZIP   144k   1149 Dir RW       None   03/06/21 08:26  03/06/21 08:26
MUMPS5   ASC    20k    134 Dir RW       None   21/03/01 13:27  21/03/01 13:27
MUMPS6   ASC    12k     79 Dir RW       None   21/03/01 13:27  21/03/01 13:27
MUMPS7   ASC    36k    265 Dir RW       None   21/03/01 13:27  21/03/01 13:27
MUMPS8   ASC    12k     69 Dir RW       None   21/03/01 13:27  21/03/01 13:27
MUMPSDIR ASC     4k      6 Dir RW       None   21/03/01 13:27  21/03/01 13:27

Total Bytes     =    356k  Total Records =    2539  Files Found =   23
Total 1k Blocks =    326   Used/Max Dir Entries For Drive C:  425/ 512

7C>

I am able to unzip the mumps4.zip file under macOS.

Looks like it doesn't like expanding the 11 compressed bytes into a file of 1024 bytes - each byte is hexadecimal E5.

I'll see what I can find.

BTW: those "Date Stamp Error" messages indicate that you probably haven't enabled time-stamping on the destination drive J:. You can do this (and set a volume label) using the following CP/M 3 commands -

initdir j:
set j:[name=driveJ,create=on,update=on]
show j:[label]

Tony

agn453 commented 3 years ago

As a workaround you can use the UNZIP154 version. Both UNZIP186 and UNZIPZ4 have the same issue.

7C>era *.mmp
ERASE *.MMP (Y/N)? y
7C>unzip154 mumps4 c:
C:UNZIP154 COM
UNZIP  Version 1.5-4 - DPG
MUMPS1.ASC exists -- not extracting  Checking MUMPS1.ASC -- CRC OK
MUMPS2.ASC exists -- not extracting  Checking MUMPS2.ASC -- CRC OK
MUMPS3.ASC exists -- not extracting  Checking MUMPS3.ASC -- CRC OK
MUMPS4.ASC exists -- not extracting  Checking MUMPS4.ASC -- CRC OK
MUMPS5.ASC exists -- not extracting  Checking MUMPS5.ASC -- CRC OK
MUMPS6.ASC exists -- not extracting  Checking MUMPS6.ASC -- CRC OK
MUMPS7.ASC exists -- not extracting  Checking MUMPS7.ASC -- CRC OK
MUMPS8.ASC exists -- not extracting  Checking MUMPS8.ASC -- CRC OK
MUMPSDIR.ASC exists -- not extracting  Checking MUMPSDIR.ASC -- CRC OK
Extracting %DATE.MMP -- CRC OK
Extracting %EDIT.MMP -- CRC OK
Extracting %EDITH.MMP -- CRC OK
Extracting %M.MMP -- CRC OK
Extracting %M0.MMP -- CRC OK
Extracting %M1.MMP -- CRC OK
Extracting %M10.MMP -- CRC OK
Extracting %M2.MMP -- CRC OK
Extracting %M3.MMP -- CRC OK
Extracting %M4.MMP -- CRC OK
Extracting %M5.MMP -- CRC OK
Extracting %M6.MMP -- CRC OK
Extracting %M7.MMP -- CRC OK
Extracting %M8.MMP -- CRC OK
Extracting %M9.MMP -- CRC OK
Extracting %MDATE.MMP -- CRC OK
Extracting %MDATE1.MMP -- CRC OK
Extracting %MEDT.MMP -- CRC OK
Extracting %MEDT1.MMP -- CRC OK
Extracting %MEDTE.MMP -- CRC OK
Extracting %MEDTE1.MMP -- CRC OK
Extracting %MTC.MMP -- CRC OK
Extracting %MTCD.MMP -- CRC OK
Extracting %MTCH.MMP -- CRC OK
Extracting %MTIME.MMP -- CRC OK
Extracting %ZFN.MMP -- CRC OK
Extracting ERRORS.DAT -- CRC OK
Extracting MUMPS.COM -- CRC OK
Extracting SETGLOB.COM -- CRC OK
Extracting SETMUMPS.COM -- CRC OK
Extracting MUMPS1.WS4 -- CRC OK
Extracting MUMPS2.WS4 -- CRC OK
Extracting MUMPS3.WS4 -- CRC OK
Extracting MUMPS4.WS4 -- CRC OK
Extracting MUMPS5.WS4 -- CRC OK
Extracting MUMPS6.WS4 -- CRC OK
Extracting MUMPS7.WS4 -- CRC OK
Extracting MUMPS8.WS4 -- CRC OK

7C>
tachijuan commented 3 years ago

Well, interestingly, I was able to accidentally create another zip file that exhibits the same behavior. It's the Aztec C 1.05f distribution that I selectively created my own version from. If it helps, here's a link to the zip file. It fails on FCNTL.H for me. Hopefully having a couple of examples helps you track down the bug. This was with the 186 version:

5J>a:unzip az j:*.*
UNZIP Version 1.8-6 - DPG
Extracting
ZIP archive  = AZ      .ZIP
Name         Length  Stored   Method   Ver  File Date & Time    CRC    STATUS
============ ======= =======  ======== ===  =========  =====  ======== =======
ALLOC   .C       512     278  Deflated  20  07 Jun 21  18:39  6A90FFCB  Date Stamp Error
ALLOC   .UCL    3200    1292  Deflated  20  07 Jun 21  18:39  560C9860  Date Stamp Error
AS      .COM   25728   10730  Deflated  20  07 Jun 21  18:38  0E127001  Date Stamp Error
ASIN    .C      1408     628  Deflated  20  07 Jun 21  18:39  8092497F  Date Stamp Error
ATAN    .C      1792     781  Deflated  20  07 Jun 21  18:39  D41FE8AC  Date Stamp Error
ATOF    .ASM    2688    1054  Deflated  20  07 Jun 21  18:39  9FFB80A6  Date Stamp Error
ATOI    .C       384     227  Deflated  20  07 Jun 21  18:39  F0024EE3  Date Stamp Error
ATOL    .C       384     209  Deflated  20  07 Jun 21  18:39  40144E83  Date Stamp Error
BLKIO   .ASM     896     409  Deflated  20  07 Jun 21  18:39  CBE9475E  Date Stamp Error
BLOCK   .ASM     640     267  Deflated  20  07 Jun 21  18:39  A96248F2  Date Stamp Error
BRKPNT  .UAL    2304     970  Deflated  20  07 Jun 21  18:39  EE8CD685  Date Stamp Error
CALLCPM .ASM    2944    1159  Deflated  20  07 Jun 21  18:39  1EA9AFEF  Date Stamp Error
CALLCPM .UAL    2560    1067  Deflated  20  07 Jun 21  18:39  C932C95D  Date Stamp Error
CII     .COM   41216   22630  Deflated  20  07 Jun 21  18:38  4A2462C3  Date Stamp Error
CLOSALL .ASM     256     154  Deflated  20  07 Jun 21  18:39  28F1A9DC  Date Stamp Error
CROOT   .C      1920     742  Deflated  20  07 Jun 21  18:39  DBC7F137  Date Stamp Error
CZII    .COM   40448   22778  Deflated  20  07 Jun 21  18:38  B9ABE526  Date Stamp Error
ERRNO   .H       256     134  Deflated  20  07 Jun 21  18:38  1D8BE0CB  Date Stamp Error
EXMPL   .C       256     175  Deflated  20  07 Jun 21  18:39  0DB8F895  Date Stamp Error
EXP     .C       896     489  Deflated  20  07 Jun 21  18:39  833A828B  Date Stamp Error
FCNTL   .H       256      76  Deflated  20  07 Jun 21  18:38  4E6A33B8

And thanks for the tips above.

agn453 commented 3 years ago

Lars Nelson has submitted an updated Z-System version that should remedy this issue.

Please fetch and try the latest V1.8-7 version. It incorporates additional code to detect whether date and time stamping is available, and addresses the issue with input buffering causing the previous version to hang.

tachijuan commented 3 years ago

verified as working with both the mumps and also the aztec-c archive. Thank you!