Skip to content

Episodes 1, 2 and 3 of Jill of the Jungle, originally written in Turbo C, in 8086 assembly. Not yet run-time validated. Conversion to TASM / Turbo C is planned; and possibly later to MASM / QcWin before porting to Qt or SDL.

Notifications You must be signed in to change notification settings

LydiaMarieWilliamson/JillOfTheJungle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

These are translations, into 8086 assembly language, of episodes 1, 2 and 3 of Jill of the Jungle.
There is enough information to carry this through to a decompilation back into Turbo C;
with many of the names of the routines and files restored.

The syntax for the disassembly is improvised until I choose which assembler syntax to use and to get a better understanding of it.
Address labels are treated as ordinary 32-bit numerals
with "segment" and "offset" extracting, respectively, the high-order and low-order 16-bits of the numeral.
The segmented addresses, in the 8086 for DOS, are physically flattened down to 20-bits by mapping:
	(Segment, Offset) → 16*Segment + Offset.
But, as much as possible, direct knowledge or use of that is avoided and the address space is treated as 2¹⁶ segments of 2¹⁶ bytes.
In general, the 8086 segmentation was meant to reflect the division of programs into translation units.
So, internal references within a segment would be local to the translation unit,
while cross-segment references would be to global objects.

Some notes on the game, its implementation and the 80x86 family:
∙	Most of Jill, parts 1, 2 and 3, were written in C using the Turbo C compiler (version 2.0),
	which was popular for PC programmers in the 1980's and 1990's.
∙	There are vestiges of Pascal in the style, showing that the programmer(s) came from a Pascal background
	and probably used Turbo Pascal, previously.
∙	Episode 1 was originally distributed as Shareware, Episodes 2 and 3 commercially.
	All 3 episodes are now freely-downloadable, e.g. at
		https://www.gog.com/game/jill_of_the_jungle_the_complete_trilogy
∙	Turbo C was made by Borland, who later made Turbo C++, and is apparently now under GPL.
	This is described in further detail on this page
		https://www.sandroid.org/TurboC/#Introduction
	which also discusses porting Turbo C programs to GCC.
∙	Parts of Jill were written directly in the machine language of the Intel 8086 family.
∙	Episode 1 included all of the functions of the WORX library, version 2.01, but only used a few of them.
	WORX's ability to process WAV files was never used.
∙	Much of the code is reused by the XARGON game, whose existence I just recently (on 2023-06-30) learned about.
	The source code for XARGON has (mostly) been released ... the WORX library is included only as an object code file.
	The Turbo C project files for XARGON include dangling references to the files used in the Jill game.
	The XARGON game might be later added into this archive.
	The XARGON source also shows vestiges of Pascal and its syntax is actually not C-compliant,
	though the errors may have been ignored by the Turbo C++ compiler.

Some notes on the 8086 processor and its derivatives:
∙	The 8086 family evolved from the 4040, 8080, 8086, through 80186, 80286, 80386, 80486, 80586,
	after which non-numeric names were used, starting with Pentium in place of 80586.
	The 8080 legacy lives on as the octal-based coding used for the 80x86 operations.
∙	Other people created clones and used the 80*86 names.
∙	The 80386 is where multitasking was added to the processor around 1985-1990. That's when Windows appeared on PC's.
	None of this is used in the Jill games ― it is DOS-only, not Windows-based.
∙	A single program can also multitask. That is called multi-threading.
	This was not made a standard part of C or C++, however, until 2011.
∙	It may be possible to port Jill into QT as a multi-threaded application.
∙	The "Das8086.c" disassembler program, referred to by the OpCodeMap.txt file,
	may later be added or else included as part of a sub-module.

About

Episodes 1, 2 and 3 of Jill of the Jungle, originally written in Turbo C, in 8086 assembly. Not yet run-time validated. Conversion to TASM / Turbo C is planned; and possibly later to MASM / QcWin before porting to Qt or SDL.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published