source410: literal 4.10 source reconstruction + BC++ 4.52 fleet toolchain archived

- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
  is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
  Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
  (extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
  BT game source (never mixed into CODE/). Round 1-3 state:
  * 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
    (BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
    since 1996.
  * BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
    its binary-recorded line 400 exactly.
  * BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
    (Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
    TeamScore=12 flagged [T4]).
  * MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
    (VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
    the period compiler is the drift detector).
  * Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
    (per-TU verification sweep under authentic OPT.MAK flags).
  * README: corrected roadmap - MECH.HPP is the capstone grown with the mech
    TU reconstructions; BTREG.CPP green = the header-family milestone.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-19 07:33:26 -05:00
co-authored by Claude Fable 5
parent 599b2388a1
commit 63312e07f9
5913 changed files with 756089 additions and 0 deletions
@@ -0,0 +1,79 @@
/*------------------------------------------------------------------------*/
/* */
/* FILEDATA.CPP */
/* */
/* Copyright (c) 1991, 1993 Borland International */
/* All Rights Reserved. */
/* */
/* Sorted container example source file */
/* */
/*------------------------------------------------------------------------*/
#ifndef __IOSTREAM_H
#include <iostream.h>
#endif
#ifndef __IOMANIP_H
#include <iomanip.h>
#endif
#ifndef __DIR_H
#include <dir.h>
#define __DIR_H
#endif
#ifndef __FILEDATA_H
#include "filedata.h"
#endif
FileData::FileData( ffblk& blk ) :
FileName( blk.ff_name ),
FileSize( blk.ff_fsize ),
FileTime(
TDate(
blk.ff_fdate & 0x0001F,
(blk.ff_fdate >> 5) & 0x000F,
(blk.ff_fdate >> 9) + 80 ),
blk.ff_ftime >> 11,
(blk.ff_ftime >> 5) & 0x3F,
blk.ff_ftime & 0x1F )
{
}
ostream& operator << ( ostream&os, const FileData& f )
{
os << setw( 14 ) << setiosflags( ios::left ) << f.FileName
<< setw( 27 ) << f.FileTime << resetiosflags( ios::left )
<< setw( 10 ) << f.FileSize << " bytes";
return os;
}
int FilesByName::operator == ( const FilesByName& testFile ) const
{
return FileName == testFile.FileName;
}
int FilesByName::operator < ( const FilesByName& testFile ) const
{
return FileName < testFile.FileName;
}
int FilesByDate::operator == ( const FilesByDate& testFile ) const
{
return FileTime == testFile.FileTime;
}
int FilesByDate::operator < ( const FilesByDate& testFile ) const
{
return FileTime < testFile.FileTime;
}
int FilesBySize::operator == ( const FilesBySize& testFile ) const
{
return FileSize == testFile.FileSize;
}
int FilesBySize::operator < ( const FilesBySize& testFile ) const
{
return FileSize < testFile.FileSize;
}
@@ -0,0 +1,80 @@
/*------------------------------------------------------------------------*/
/* */
/* FILEDATA.H */
/* */
/* Copyright (c) 1991, 1993 Borland International */
/* All Rights Reserved. */
/* */
/* Sorted container example header file */
/* */
/*------------------------------------------------------------------------*/
#ifndef __FILEDATA_H
#define __FILEDATA_H
#if !defined( __CSTRING_H )
#include <cstring.h>
#endif // __CSTRING_H
#if !defined( __CLASSLIB__TIME_H )
#include "classlib\time.h"
#endif // __LTIME_H
#ifndef __DIR_H
#include <dir.h>
#endif
class FileData
{
public:
FileData( ffblk& );
friend ostream& operator << ( ostream&, const FileData& );
protected:
string FileName;
TTime FileTime;
long FileSize;
};
class FilesByName : public FileData
{
public:
FilesByName( ffblk& blk ) : FileData( blk ) {}
int operator == ( const FilesByName& ) const;
int operator < ( const FilesByName& ) const ;
};
class FilesByDate : public FileData
{
public:
FilesByDate( ffblk& blk ) : FileData( blk ) {}
int operator == ( const FilesByDate& ) const;
int operator < ( const FilesByDate& ) const;
};
class FilesBySize : public FileData
{
public:
FilesBySize( ffblk& blk ) : FileData( blk ) {}
int operator == ( const FilesBySize& ) const;
int operator < ( const FilesBySize& ) const;
};
#endif
@@ -0,0 +1,19 @@
#--------------------------------------------------------------------------#
# #
# MAKEFILE for BIDS examples #
# #
# Copyright (c) Borland International 1993 #
# All Rights Reserved #
# #
# Usage: #
# #
# make MODEL=f for 32-bit Windows #
# make MODEL={s|m|c|l} for 16-bit Windows #
# make MODEL={s|m|c|l} -DDOS16 for 16-bit DOS #
# #
#--------------------------------------------------------------------------#
EXE = testdir # this target used to generate rule for making an .exe
OBJEXE = testdir.obj filedata.obj
!include $(BCEXAMPLEDIR)\bidsmake.gen
@@ -0,0 +1,121 @@
/*------------------------------------------------------------------------*/
/* */
/* TESTDIR.CPP */
/* */
/* Copyright (c) 1991, 1993 Borland International */
/* All Rights Reserved. */
/* */
/* Sorted container example source file */
/* */
/*------------------------------------------------------------------------*/
#if !defined( __DIR_H )
#include <dir.h>
#endif // __DIR_H
#ifndef __STDLIB_H
#include <stdlib.h>
#endif
#ifndef __IOSTREAM_H
#include <iostream.h>
#endif
#if !defined( __CLASSLIB_ARRAYS_H )
#include <classlib\arrays.h>
#endif
#ifndef __FILEDATA_H
#include "filedata.h"
#endif
template <class T> class Directory
{
public:
Directory( const char *FileSpec );
void Show();
private:
TISArrayAsVector<T> Array;
};
template <class T> Directory<T>::Directory( const char *FileSpec ) :
Array( 10, 0, 5 )
{
struct ffblk FileBlock;
int Done = findfirst( FileSpec, &FileBlock, 0 );
while( !Done )
{
Array.Add( new T(FileBlock) );
Done = findnext( &FileBlock );
}
}
static void ShowBlock( FilesByName &blk, void * )
{
cout << blk << endl;
}
static void ShowBlock( FilesByDate &blk, void * )
{
cout << blk << endl;
}
static void ShowBlock( FilesBySize &blk, void * )
{
cout << blk << endl;
}
template <class T> inline void Directory<T>::Show()
{
Array.ForEach( ShowBlock, 0 );
}
void SortByName( const char *FileSpec )
{
Directory<FilesByName> dir( FileSpec );
dir.Show();
}
void SortByDate( const char *FileSpec )
{
Directory<FilesByDate> dir( FileSpec );
dir.Show();
}
void SortBySize( const char *FileSpec )
{
Directory<FilesBySize> dir( FileSpec );
dir.Show();
}
int main( int argc, char *argv[] )
{
if( argc < 2 || argc > 3 )
{
cerr << "Usage: directry [options] filespec" << endl << endl;
cerr << "Options:" << endl;
cerr << "\t-sd\tsort by date" << endl;
cerr << "\t-sn\tsort by name" << endl;
cerr << "\t-ss\tsort by size" << endl;
exit(1);
}
if( argc != 3 )
SortByName( argv[1] );
else
{
if( strcmp( argv[1], "-sn" ) == 0 )
SortByName( argv[2] );
else if( strcmp( argv[1], "-sd" ) == 0 )
SortByDate( argv[2] );
else if( strcmp( argv[1], "-ss" ) == 0 )
SortBySize( argv[2] );
}
return 0;
}
Binary file not shown.
Binary file not shown.