Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to index page
Thread view  Board view
rr(R)

Homepage E-mail

Berlin, Germany,
30.10.2018, 19:28
 

Cabextract version 1.8 available (port) (Announce)

On 30 October 2018 I finished my 32-bit DOS port of Stuart Caie's Cabextract version 1.8 using Open Watcom C/C++ version 1.9.

Binaries, user manuals in ASCII format, and fully configured sources plus some simple instructions on how to rebuild are available at http://www.bttr-software.de/ports/.

Cabextract changes since my last port (version 1.4):
New in 1.8
* cabextract -f now extracts even more badly damaged files than before

New in 1.7
* cabextract now supports an --encoding parameter, to specify the character
  encoding of CAB filenames if they are not ASCII or UTF8
* cabextract -L now lowercases non-ASCII characters

New in 1.6
* cabextract now prevents archive files giving themselves absolute path access
  using badly UTF-8 encoded slashes.
* Because Cygwin allows both '/' and '\' as path separators, cabextract now
  removes both leading '/'s and '\'s and changes both "../" and "..\" in
  CAB filenames to "xx".  You can no longer have a CAB filename called e.g
  "\/t" (file "t" in the directory "\"). If you need this, create a CAB file
  where the filename is "./\/t" instead.

New in 1.5
* cabextract replaces bad Unicode characters in filenames with the
  standard Unicode replacement character
* wince_rename now puts files under the correct installation path
* Several crashes and hangs were found by Debian project members
  using the afl (American fuzzy lop) tool to generate corrupt
  cabinet files. These crashes and hangs have been fixed.


Tested according to Blackthorne (game), now freeware. :-D

Rugxulo(R)

Homepage

Usono,
02.11.2018, 15:23

@ rr
 

Cabextract version 1.8 available (port)

> Tested according to Blackthorne (game), now freeware. :-D

You could also test the ancient DOS build of Oxford Oberon 1.4p2. It's inside a stupid Windows PE/CAB extractor, but it's a DJGPP build circa 2001. (Needs a bit of massaging to manually install, unfortunately.) I haven't tried with this particular version (yet?), but IIRC, I did use your older build of CabExtract in MetaDOS to test this compiler.

P.S. Why OpenWatcom and not DJGPP? Any obvious reason?

rr(R)

Homepage E-mail

Berlin, Germany,
02.11.2018, 17:42

@ Rugxulo
 

Cabextract version 1.8 available (port)

> > Tested according to Blackthorne (game), now freeware.
> :-D
>
> You could also test the ancient DOS build of
> Oxford
> Oberon 1.4p2. It's inside a stupid Windows PE/CAB extractor, but it's
> a DJGPP build circa 2001. (Needs a bit of massaging to manually install,
> unfortunately.) I haven't tried with this particular version (yet?), but
> IIRC, I did use your older build of CabExtract in MetaDOS to test this
> compiler.

Step 1: Run `cabextract -d c:\obctmp obc1-4p2.exe'.
Step 2: Write `instobc.bat' to `c:\obctmp':
@echo off
set AppDir=c:\obc
if exist %AppDir% goto err_appdir
md %AppDir%
copy MSVS.DAT "%AppDir%\Oxford Oberon-2 Compiler.dat"
copy ARG1.___ %AppDir%\Args.m
copy ARGS.___ %AppDir%\Args.i
copy BI1.___ %AppDir%\Bit.m
copy BIT.___ %AppDir%\Bit.i
copy CON1.___ %AppDir%\Conv.m
copy CONV.___ %AppDir%\Conv.i
copy COROUTI1.___ %AppDir%\Coroutines.m
copy COROUTIN.___ %AppDir%\Coroutines.i
copy DO1.___ %AppDir%\Dos.m
copy DOS.___ %AppDir%\Dos.i
copy ER1.___ %AppDir%\Err.m
copy ERR.___ %AppDir%\Err.i
copy FAC.___ %AppDir%\Fac.m
copy FILE1.___ %AppDir%\Files.m
copy FILES.___ %AppDir%\Files.i
copy I1.___ %AppDir%\In.m
copy IN.___ %AppDir%\In.i
copy MAT1.___ %AppDir%\Math.m
copy MATH.___ %AppDir%\Math.i
copy MATH1.___ %AppDir%\MathL.m
copy MATHL.___ %AppDir%\MathL.i
copy OBC.___ %AppDir%\obc.exe
copy OBC1.___ %AppDir%\obc1.exe
copy OBDUMP.___ %AppDir%\obdump.exe
copy OBHEAD.___ %AppDir%\OBHEAD.EXE
copy OBLIB-B.___ %AppDir%\OBLIB-B.K
copy OBLIB.___ %AppDir%\OBLIB.K
copy OBLINK.___ %AppDir%\oblink.exe
copy OBPROF.___ %AppDir%\obprof.exe
copy OBX.___ %AppDir%\obx.exe
copy OU1.___ %AppDir%\Out.m
copy OUT.___ %AppDir%\Out.i
copy RANDO1.___ %AppDir%\Random.m
copy RANDOM.___ %AppDir%\Random.i
copy README.___ %AppDir%\README
copy STRING1.___ %AppDir%\Strings.m
copy STRINGS.___ %AppDir%\Strings.i
copy TIME1.___ %AppDir%\Timer.m
copy TIMER.___ %AppDir%\Timer.i
goto end
:err_appdir
echo.
echo Error: %AppDir% must *not* exist! Aborting...
goto end
:end
set AppDir=

Step 3: Run `instobc.bat'.
Step 4: Kill `c:\obctmp'.
Step 5: Enjoy Oberon!

> P.S. Why OpenWatcom and not DJGPP? Any obvious reason?

I don't remember.

Rugxulo(R)

Homepage

Usono,
03.11.2018, 02:45

@ rr
 

old Oxford Oberon for DOS (DJGPP build inside Win32 PE/CAB)

> set AppDir=c:obc
> if exist %AppDir% goto err_appdir
> md %AppDir%

I think you must also first "set OBC=g:\w\obc" (or whatever) if it's not the default of "c:\obc".

> copy ARG1.___ %AppDir%Args.m

You probably don't need to keep the *.m files installed if you already have the compiled code itself.

> copy FILE1.___ %AppDir%Files.m
> copy FILES.___ %AppDir%Files.i

A lot of these modules are non-standard. Well, Oberon is non-standard, so even simple things like "files" aren't standardized across compilers.

> copy I1.___ %AppDir%In.m
> copy IN.___ %AppDir%In.i

Even modules like In and Out aren't standard! I had to basically roll my own just to be compatible across different Oberon compilers. (And even there you have to be careful of dialects, bugs, omissions, etc.)

> copy OBX.___ %AppDir%obx.exe

Unlike newer versions, OBX.EXE is separate (but required) for each byte-compiled .EXE to run at all. And there is no JIT.

> Step 5: Enjoy Oberon!

This old one is non-commercial only (AFAIK) unlike newer Win32 builds. Also, I can't find the sources anyways. I think newer Win32 ones still run under HX (with old ReactOS 0.3.14's MSVCRT.DLL). XDS also runs under HX.

Oberon is an interesting language, but for Turbo Pascal or Modula-2 users, it may be less unique. It basically combines .def and .mod into one file, adds simple OOP ("type extension") in lieu of variant records, and garbage collection. Technically, these Wirth languages all have different advantages and disadvantages, but certainly FPC is very very good, so you can't really go wrong there.

rr(R)

Homepage E-mail

Berlin, Germany,
03.11.2018, 17:06

@ Rugxulo
 

old Oxford Oberon for DOS (DJGPP build inside Win32 PE/CAB)

> > set AppDir=c:obc
> > if exist %AppDir% goto err_appdir
> > md %AppDir%
>
> I think you must also first "set OBC=g:\w\obc" (or whatever) if it's not
> the default of "c:\obc".

My batch is for installing, not for running Oberon.

> > copy ARG1.___ %AppDir%Args.m
>
> You probably don't need to keep the *.m files installed if you already have
> the compiled code itself.

I dislike the forum is eating up backslashes.

Back to index page
Thread view  Board view
15673 Postings in 1427 Threads, 259 registered users, 13 users online (0 registered, 13 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum