Battle ISLE II/2200 Parser
--------------------------
	written by Paolo Baiardi
	Release 1.11	-	February, 4 - 1995
--------------------------

Disclaimer
----------
BATTLE ISLE 2 and BATTLE ISLE 2200 are registered trademarks 
of Blue Byte Software GmbH. MS-DOS is a registered trademark 
of Microsoft, like Windows. The binary code has been compiled
with the DJGPP compiler realized by DJ Delorie ( may he be
blessed until the end of the times ), release 1.12 maint2, as
shown when you'll launch a program by his copyright.

This software is provided without any guarantee for its 
usefulness for any purpose. I will not take responsibility for 
any damage that its use, invalid or not, may cause. No 
liability for consequential damages. In no event shall I be 
liable for consequential, incidental or indirect damages of 
any kind arising out of the delivery, performance or use of 
the software, even if I have been advised of the possibility 
of such damages. IF YOU CAN NOT ACCEPT THESE CONDITIONS, 
DELETE THIS SOFTWARE IMMEDIATELY.

Acknowledgements
----------------
I would like to thanks:

	- DJ Delorie, the guy who wrote the wonderful DJGPP, a porting of the
	GCC C/C++ compiler to DOS

	- Pasi Ahopelto, the first guy who studied the missXXX.dat file format,
	I received months ago from him a document that started everything...
	
	- Tuomas Seijavuori, another BI2 fan that worked hard for developing his
	Battle Isle editor ( BI2 Mapper ). We had and we have currently an email
	flow in progress, informations discovered are propagated on the other si
	-de ( Ciao Tuomas! )

	- Erica since she wasn't too annoyed for the time spent writing this edi
	  -tor during many evenings ( ;-) )

	- the Blue Byte programmers wrote Battle Isle I and II. About this, I've
	read the Blue Byte is not the original developer of the various versions
	of Battle Isle, the first firm was Ubi Soft, a small software house ow-
	ned by Mr. Ubi ( who created the first Battle Isle, I think the Amiga
	version ), later Ubi Soft was incorpored into Blue Byte, that commercia-
	lized the whole package. Can someone confirm or deny this ?

Where to find me:
-----------------
I would be happy to receive any feedback ( flames too! ) about my work. Don't
expect a quick reply, my job lead me far from the incoming mail directory some-
times for an entire week, but I'll always reply. Please report bugs and other
nice things, this version is quite new and it's difficult to test everything.
The sources of the programs are available, call me and I'll send them to you.
My e-mail address: kurgan@dist.dist.unige.it

Table of Contents:
------------------
	[0]	Package Description
	[1]	Installation
	[2]	QuickStart	(really ?)
		[2.1] unit.hex
		[2.2] terr.hex
		[2.3] obje.hex
		[2.4] prod.txt
		[2.5] shop.txt
			[2.5.1] shop.txt: type 2 shops
	[3]	And now ?
	[4]	Battle Isle under Windows
	[5]	How to develop map: a suggested environment

[0] Package Description
-----------------------
The zipped file should contain:

	- package.txt
	This file.

	- bi2parse.txt
	A brief description of the package ( this file ) .

	- unit.sym
	A text file containg all known ( by me ) units of Battle Isle II. Each
	line has the following format:
	AA	C	D	BBB...BBB
	where:
	AA is the unit representation into the hex files. You can change it if
	you don't like, but remember to use always 2 characters, and do not use
	the same representation for two or more units.
	BBB...BBB is a text string ( no spaces, use '_' instead ) representing
	the unit description, again change it if you do not like.
	C is the unit size ( or mass, or whatever ). Do not change.
	D is the unit cargo ( if any ). Do not change.
	
	- terr.sym
	A text file containg all known ( by me ) terrains of Battle Isle II.
	Each line has the following format:
	AAA	BBB...BBB	C	D
	where:
	AAA is the terrain representaion into the hex files. You can change it
	if you don't like, but remember to use always 3 characters, and do not
	use the same representation for two or more terrains
	BBB...BBB is a text string ( no spaces, use '_' instead ) representing
	the terrain description, again change it if you do not like.
	C and D are the two bytes representing the terrain code, in Battle Isle
	each terrain in store into a word, do not change

	- obje.sym
	A text file containg all known ( by me ) objects of Battle Isle II.
	Each line has the following format:
	AAA	BBB...BBB	C	D
	where:
	AAA is the object representaion into the hex files. You can change it
	if you don't like, but remember to use always 3 characters, and do not
	use the same representation for two or more objects
	BBB...BBB is a text string ( no spaces, use '_' instead ) representing
	the object description, again change it if you do not like.
	C and D are the two bytes representing the object code, in Battle Isle
	object terrain in store into a word, do not change

	- map2dsc.exe
	This program will read an existing missXXX.dat file and will produce as
	output the following text files:
		unit.hex	- a layout of the units
		terr.hex	- a layout of the terrains
		obje.hex	- a layout of the objects
		prod.txt	- a file describing the produceable units
		shop.txt	- a file describing the various containers
				  ( airports, shipyard, units and so on )

	Use: 'map2dsc <path_to_missXXX.dat>'

	Note that map2dsc will read the .sym files described before, and suppose
	that the .sym files are located in the current directory.

	- dsc2map.exe
	This program will read a set of text files ( the three .hex files and
	the two .txt files ), an existing missXXX.dat and will produce as output
	a new missYYY.dat file, by merging the original missXXX.dat data with
	the informations stored into the .hex and .txt files.

	Use:	'dsc2map <path_to_missXXX.dat> <path_to_missYYY.dat>

	Note that dsc2map will read the .sym files described before, and
	supposes that the .sym files are located in the current directory.
	Note that dsc2map will read the .hex and .txt files described before,
	and supposes that these files are located in the current directory.

	- new2hex.exe
	This program will produce as output 3 enpty .hex files: obje.hex,
	unit.hex and terr.hex, that can be edited for creating a .dat file of
	given row/col size.

	Use:	'new2hex <rows> <cols>'

	It will produce three enpty ( with enpty hexs I mean ) files called:
		unit.hex
		terr.hex
		obje.hex
	to be filled according to your wildest fantasies.

	- go32.exe
	A 32bit DOS Extender ( written by DJ Delorie ) for using virtual memory
	under DOS/Windows and full 32 bit addressing

	- copying.dj
	A document that should follow any DJ program

	- sample
	a subdirectory with the following files ready for you:
		unit.hex
		terr.hex
		obje.hex
		shop.txt
		prod.txt
	they represent all the modifications described into the Quickstart sec-
	tion and something more. If you build a map by using these file, assign
	player #2 to the computer and set up an alliance with player #1 and #2,
 	it will improve the fun.

	- sources
	another subdirectory with the source .c and header .h representing the
	programs ( don't be too cruel about the poor quality code! )
		dataload.c
		new2dsc.c
		map2dsc.c
		dsc2map.c
		common.h

[1] Installation
----------------
The installation process is quite simple. Choose a directory on your hard disk
or floppy where you wish to keep the package and pkunzip into it. Finished.
For safety purpouses it's STRONGLY suggested to backup the .dat files of your
Battle Isle 2/2200 game, do not say I didn't tell you it! Now the only thing
you need is a text editor with the following characteristics:

	- fixed size character set ( mandatory )
	- up/down left/right scrolling ( mandatory )
	- multi-file editing ( if possible )

It's not so difficult to find. The good old notepad.exe for Windows fulfills
the requests and the multi-file editing can be performed by simply launching se-
veral sessions. Now you'll say: "But Battle Isle runs under DOS! I'll have to
switch Windows on/off just to modify a stupid file and seeing the results ?".
The answer is simple: Battle Isle can run ( and runs, I assure you! ) under the
Windows environment and can be sent in background just like any other program.
See 'Battle Isle under Windows' for further informations. If you don't like
Windows, there's always edit.exe...
A last thing: the .exe files work by reading their .sym files, therefore perform
your job always in the directory where you unzipped the package.

[2] QuickStart
--------------
Let's shuffle cards! Now we'll modify the original AMPORGE map ( miss000.dat )
into a new one. Go into the directory just created and type, changing the path
to miss000.dat according to your installation:

	'map2dsc \games\bi2\mis\miss000.dat'

You'll obtain an error message if map2dsc has been unable to find the .dat file,
otherwise some output terminating into the line: '.txt file listed'. 
Now you should have into your directory the following new files:

	unit.hex
	terr.hex
	obje.hex
	prod.txt
	shop.txt

Here the fun begins...

[2.1] unit.hex
--------------
They are all text files freely editable. Start your text editor and load the fi-
le 'unit.hex'. You'll see a page whose upper left corner is like that:

Vehicle Map of \games\bi2\mis\miss000.dat
rows 16 cols 24
    0  1  2  3  4  5  6  7 
 0    >-<   >-<   >-<   >-<  
   >-<   >-<   >-<   >-<  
 1    >-<   >-<   >-<   >-<  
   >-<   >-<   >-<   >-<
 2    >-<   >-<   >-<   >-<

Your guess is right: it's a layout representing miss000.dat. Since you are exa-
mining 'unit.hex', you are seeing the various units ( blue and red ). Where are
them ? If you remember the map, there are two blue Technotrax tanks at locations
(3,5) and (4,6) coordinates (row,col), among the other units.
Moving into the file, you should see at those locations something like:

	>-<   >-<
     >-<Tt0>-<   >--<
        >-<Tt0>-<
	   >-<

What does it mean 'Tt0' ? Simply, 'Tt' is an acronym for Technotrax tank, and 0
is player #0 ( that is the blue one, you! ).
Let's say you don't like the whimpy Technotraxs, two Imperator tanks could only
improve the tactical situation: modify 'Tt' into 'It', and just in case add a
Dragon chopper at (3,6) for helping the poor lonely Imperators: 

	>-<   >-<
     >-<It0>-<Dh0>--<
        >-<It0>-<
	   >-<

Done. Save your work and prepare yourself to the incoming battle. A last thing,
call this binary before starting:

	'dsc2map \games\bi2\mis\miss000.dat mymap.dat'

It will produce ( unless errors ) a new map, based on the original miss000.dat
but with the new units introduced by you, called mymap.dat.
Move 'mymap.dat' over the original miss000.dat ( have you backupped the original
ones, haven't you ? ) and play it!
Remebember the steps, they're always the same:

	0) go into the directory where the package is
	1) map2dsc 'oldmap' for creating the file set
	2) modify with your Text Editor
	3) dsc2map 'oldmap' 'newmap' for building your new map
	4) place 'newmap' into the mis directory with any name and play

The best name is always miss000.dat ( AMPORGE! ), you can always start it with
the usual password.
Now, some questions and answers about this sub-section:

Q1:"How I know the acronyms of the various units ?"
A1:"Oh dear, unit.sym exists only for that purpouses!"

Q2:"I *do not* like 'Tt' as acronym for a Technotrax, IMHO 'Te' is better, and
    now ?"
A2:"Well, just edit unit.sym and change 'Tt' to 'Te', from now on the programs
    will use 'Te' for displaying a Technotrax unit."

Q3:"Nice thing, what if I use the same acronym for two different units ?"
A3:"The .sym load section performs a check to avoid this problem. You'll get an
    appropriate error message ( :-) )."

Q4:"Can I use more than two characters for acronym ?"
A4:"No, nyet, nein. Bad things will happen! You'll start to lose hairs, to get-
    ting fat, your wife will leave you, your dog will chew your preferite shoes
    and you'll be very unhappy. Therefore use always two characters."

Q5:"What if I insert a unit of player #2, e.g. 'Ti2' into the map ?"
A6:"dsc2map will note the presence of a new player unit ( #2, orange ) and will
    automatically update the number of existing player. Start the map and you
    will have three player, set up any alliance or let the computer manage the
    other player's units as you wish ( thanks Tuomas, but the byte indicating 
    the number of players was 0x123 *not* 0x223 :-) ).

Q6:"Another thing, if I put a ship unit over the land what will happens ?"
A6:"Nothing. The ship will be unable to move, all other properties remaining."

Q7:"I begin to like it. Now I want a Titan carrier filled with powerful Stealth
    fighter, since I like fair play, how can I do ?"
A7:"Nice idea. Put a 'Ts0' in the sea and ..."

Q8:"Are you out of your mind ? How can I know where's the sea ?"
A8:"Don't worry. 'terr.hex' will show you where the sea is. Read next subsection
    then ask me again."

[2.2] terr.hex
--------------
OK. Now try to edit 'terr.hex', side-by-side with 'unit.hex' if you like. You
will see another hexagonal layout with all the hexs filled with three characters
strings. Obviously it's the representation of the terrain of miss000.dat, but
it's difficult to understand. Sadly there are hundreds of different terrain ty-
pes in Battle Isle, and I haven't the time to discover them all ( see, I have
to work during the day, you know: paying the house rental, insurances, food, the
car and all other things ). Again, 'terr.sym' can help you, since some terrains
have been already catalogated, for the others it's up to you.
Since you had to problem to put the carrier over the sea, the '_s_' , 's-s' and
'sss' into the file represent very shallow sea, shallow sea and deep sea...
Play with various terrains, change, modify, and repeat the steps of section 2.1
for playing with the changed map.
Ah, remember to edit unit.hex and put a Ts0 ( a Titan carrier ) for example at
location (0,1).
Now, some common questions and answers about this sub-section:

Q1:"The terrain influences unit movements ?"
A1:"Sure it does! The terrain and the objects put over the terrain influences
    the unit movement. Try by yourself."

Q2:"Hmmm. I understand that earth, sea, hills and other stuff are 'terrain' and
    buildings, cities and other stuff are 'objects', isn't it ?"
A2:"No. Battle Isle does not split in a clear way terrain and object. You have
    to check to yourself again. Your previous assert is 'mostly' right."

Q3:"The acronyms for the terrain types are quite meaningless! At least the units
    were related with names. Why ?"
A3:"The various terrain types has been discovered by a snooping program that as-
    signed to every new type a standard string, starting from 'A_a' to 'Z_z'.
    Some of those strings have been changed due to analisys, other not. Modify
    terr.sym according to your discoveries ( and maybe inform me! )."

Q4:"Which terrain types I can put near other types ?"
A4:"'No rule' is the rule. Enjoy your god-like limitless power."

Q5:"I remember my previous question about the carrier. Now I put the carrier in-
    to the sea, and my Stealth fighters ?"
A5:"Wait until reading the obje.hex subsection or skip directly to shop.txt sub-
    section."

Q6:"Always three characters ?"
A6:"Enough of these stupid questions! Yes, always three characters. Should I
    tell you again what could happen if you insert more that two chars for the
    unit type ? It's the same thing."

[2.3] obje.hex
--------------
Wow! obje.hex it's full of strange thing, not only buildings and roads. See what
I said before ? Some 'mountains' are composite objects and not terrain. All
the things said for the terr.hex file apply here: not all the object types have
been catalogated, when you discover something modify your obje.sym ( and tell me
please what you've discovered ), you if think that different strings may better
describe something, feel free to change it.
Anyway, if you think to modify the obje.hex of miss000.dat, try to add a factory
for the poor player #1 ( that is the computer ), since you may wish to balance
the odds. Go at location (13,17), there should be an anpty area nearby:

	>-<   >-<===
     >-<   >-<   >-<===
        >-<   >-<B_m>-<		... row 13
     >-<   >-<   >-<
        >-<   >-<
            .
            ... col 17

Inser now a factory ( I'll tell you the symbols, don't look into obje.sym ):

	>-<.F.>-<===
     >-<   >-<===>-<===
        >-<FxF>-<B_m>-<		... row 13
     >-<.F/>-<\F.>-<
        >-<   >-<
            .
            ... col 17

Yes, 'F' means a factory into obje.sym and the various strings can be used to
build the standard reverse 'Y' representing a factory. Note that I've add an
hex of road for reaching the factory ( '===' ). Always the same steps and play.
Now, some common questions and answers about this sub-section:

Q1:"I can put object 'xxx' over terrain 'yyy' without limitations ?"
A1: "Yes. Put a road or a railroad over the sea and ground units will be able
     to use it."

Q2:"Hold on! There's the factory, but it's impossible to move units into it, if
    I try the unit remains over the factory entry. Why ?"
A2:"Any object that contains units is not just a symbol over the map, it must be
    have another description as 'shop', next subsections will help you. So far
    you have built an object but not the corresponding shop counterpart. The
    same applies for the Titan carrier, still enpty."

Q3:"And the factory ownership ? The Titan carrier is enpty, but mine, and the
   factory ?"
A3:"The ownership of a shop is set into the shop description. Again wait."

Q4:"And the units that the computer or I will be able to build inside that fac-
    tory ? Since I'm clever, I can build powerful tanks, that stupid computer
    must be forced to build only foot troop. How ?"
A4:"Read the prod.txt and shop.txt subsections ..."

Q5:"I don't like the factory shape! I wish to make a factory that looks like a
    building or like a pool, it's possible ?"
A5:"Yes. See, you have to think that there is no relationship between an object
    shape ( e.g. a factory or airport or HQ ) and the object meaning. If you
    like an HQ-like building that acts like a factory, just do it."

Q6:"So I can mix object pieces of any kind and choose that strange composite
    object as an airport if I like ?"
A6:"Yes. Remember that this will cause confusion. Use it wisely."

Q7:"Just a moment. Airport, HQ, factory and other structures have colours that
    represents the player owning the structure itself. I scanned obje.sym and
    I didn't see 'blue factory', 'red factory' and so on. What gives ?"
A7:"It's simple. You build into obje.hex a structure and inside shop.txt you'll
    set the ownership of that structure to a particular player."

[2.4] prod.txt
--------------
Enough of these hexagonal stuff! Plain text now. Edit shop.txt. You will not
need any particular editor, it's simple text:

Production List of \games\bi2\mis\miss000.dat
planum_vehicle            0
regio_vehicle             0
sinus_vehicle             0
ranger_scout              0
buggy_scout               0
orion_vehicle             0
demon_troop               1
imperator_tank            0
technotrax_tank           0
snake_vehicle             0
...

This is quite understandable. Each line tells if that unit can be produced and
by whom. A '0' means that the unit can't be produced by any human player or
any computer player, a '1' means that the unit can be produced by any human
player only, a '2' means that the unit can be produced by any computer player
only, a '3' means that any player, human or computer, can produce it.
Simple enough ?
Let's modify now: the human will be able to produce scouts and some tanks types,
the computer only demon foot soldiers, both will be able to produce snake ATC.

Production List of \games\bi2\mis\miss000.dat
planum_vehicle            0
regio_vehicle             0
sinus_vehicle             0
ranger_scout              1
buggy_scout               1
orion_vehicle             0
demon_troop               2
imperator_tank            1
technotrax_tank           1
snake_vehicle             3
...

Modify, save and other steps... 
Now, some common questions and answers about this sub-section:

Q1:"Inside a factory, or an airport, there are 16 slots available, this means
    that I can choose up to 16 different units to be produced ?"
A1:"Yes. The units are later sorted by the computer according to the units code,
    which is casually the order in which the units appears in prod.txt. Only
    the first 16 will be visualized."

Q2:"So it's an error to make produceable more than 16 units ?"
A2:"No. Do as you like. This will not bother the computer."

Q3:"If I remember correctly, in some maps a particular unit could be produced
    only in particular factories, and not in others, why ?"
A3:"First of all, you remember a right thing. Apart from the production list
    described in prod.txt, every 'producing' structure has the additional capa-
    bility to build up to four special units. This is only the common part.
    Again, wait until reading the next ( and last ) subsection."

Q4:"16 commons plus 4 specials = 20 different units ?"
A4:"No, only 16. If you set 14 commons, 3 specials for the airport xxx, you'll
    obtain all the 14 commons plus the first 2 specials."

Q5:"In this map there are no 'producing' structures. The prod.txt is therefore
    useless. Why modify it ?"
Q5:"Because in the next section we'll introduce an appropriate shop."

[2.5] shop.txt
--------------
Finally! Finally! If this section is a 'Quickstart' what will be a 'Slowstart',
a thousand pages full of craps ? - "Have pity of me."
Look into shop.txt. This is another plain text files, beginning with:

Shop List of \games\bi2\mis\miss000.dat
shops 3
***type            1
 row/col           3   21
 object B    Bx1
 struct B
 id                2
 =energy          20
 =raw_mt          30
 +energy           8
 +raw_mt           4
  <
  <
 score           300
 owner             9
***type            1
 row/col          13    5
 object B    Bx1
 struct B
 id                3
...

First, note the shop number (3). You'll need to modify it if you want to add or
delete shops. Let's look at a shop description:

***type            1
		   |.. shop type, always '1' or '2' ( more on this later )
 row/col           3   21
		   |.. shop position over the map
 object B    Bx1
	|.. meaning of shop, may be:
	    H the player HQ
            P a producing structure
   	    C a complex 
	    T a training center
	    B a city building
	    U a unit ( a carrier for example! )

 object B     Bx1
	      |
	      |.. the object string placed into the row/col position, if the
		  structure type is (H...B), otherwise the unit placed into
	          the row/col position, if the object type is U. This is
	   	  just a visual reminder. In this case Bx1 ( a building type
		  currently used for indicating a depot of some sort ). The
		  pattern '???' means no object ( something hidden ) 
	      
 struct  C
	 |.. meaning of shop ( more detailed ), may be:
	     H the player HQ
	     A an airport ( if previous shop type P )
	     S a shipyard ( if previous shop type P )
	     F a factory  ( if previous shop type P )
	     C a complex
	     B a city building
	     T a training center
	     ? an hidden structure  ( usually shop type B )
	     U a unit
	     - no known meaning ( so far )
	     
 id                2
		   |.. pointer to name of this structure, always 0 if the struc-
	   	       ture is an unit

 =energy          20
	    	   |.. energy available for building units, always 0 if unit

 =raw_mt          30
		   |.. material available for building units, always 0 if unit

 +energy           8
		   |.. energy income per turn, always 0 if unit

 +raw_mt           4
		   |.. material income per turn, always 0 if unit

  <
  |.. means end of units currenlty inside this structure ( if any )

  <
  |.. means end of special units that can be produced inside this structure
      ( if any )

 score            300
		  |.. value assigned to this structure according to the computer
		      AI. It will try first to conquer structures with highest
		      score ( score 0 if unit )

 owner             9
		   |.. initial owner of this structure. The owner are players
		       numbered from #0 (blue) to #5 ( I do not remember the
                       colour ) and #9 as neutral ( no owner )

Now modify. There are 3 shops, and we will not modify them. Instead we will make
2 new shops: one for the Titan carrier placed in (0,1) ( have you placed it ?)
for player #0 and one for the factory ( we'll give it to the poor computer ),
that has been placed in (13,17).
First of all, change the shops number on the second line from '3' to '5'.
Here's the carrier:

***type		1
 row/col	0 1
 object	U Ts
 struct	U
 id		0
 =energy	0
 =raw_mt	0
 +energy	0
 +raw_mt	0
  slot		Sf
  slot		Sf
  slot		Sf
  slot		Sp
  <
  <
 score		0
 owner		0

An interesting Titan carrier, loaded with 3 Stealth fighter and a Spectrum tan-
ker plane ( could be useful ). Please note that the ownership of the units that
are carried isn't required ( they're of player #0 since are carried inside a
player #0 unit ! ). The carrier too has no owner ( since it's stated into the
owner field ).
Here's the factory:

***type		1
 row/col	13 17
 object	P FxF
 struct F
 id		2
 =energy       50
 =raw_mt       70	
 +energy	5
 +raw_mt	5
  slot		Ti
  slot		Ti
  slot		Sm
  slot		Sm
  slot		Sm
  <
  prod		Sm
  <
 score	      500
 owner		1

OK. The object type is 'P' ( a producing structure ), after it we write the
object 'FxF' ( a factory entry ). This will force the program to check if in the
location (13,17) there's the object symbol 'FxF', otherwise an error will be
reported. This helps to avoid putting a container in a wrong place. Use '???' if
you don't remember the exact symbol, or you don't want the computer to check.
The structure type is 'F' ( factory ), follows energy/material and incomes, and
some units: two Troll infantry units, three Supervirus mines. As special produc-
tion unit, I choosed 'Sm' ( Supervirus again ), meaning that any human or compu-
ter player, if owner of that factory, will be able to produce Supervirus mines
regardless of the common production list in prod.txt. A last thing: the id of
the shop, it does not matter, so I prefeer to use always id 2 for all the shops,
but you can do as you wish ( garbage will appear if the shop id points to a non-
existing name, I use id 2 since id 2 always exists! ).
Save, repeat steps and enjoy.
Now, some common questions and answers about this sub-section:

Q1:"I created in obje.hex a structure ( e.g. a shipyard ) but I forgot to create
    the corresponding shop entry in shop.txt . What happens ?"
A1:"Nothing. The structure exists but can't be used for producing, repairing or
    rearming units. Can't be conquered or lost. It's just like a piece of rock."

Q2:"I created a shop structure in shop.txt without the corresponding objects in
    obje.hex, what happens ?"
A2:"Since you have to specify which object lies over the structure location in
    shop.txt, and there's no corrispondence between the obje.hex, an error will
    occour and the map will not be created. The only exception is the creation
    of an hidden structure: use '???' into shop.txt ( means nothing ). No check
    will be performed in obje.hex."

Q3:"What if I insert more than 16 'slot' entries or more than 4 'prod' entries?"
A3:"Glad you asked it. An error will occour."

Q4:"What if a specify a unit structure ( e.g. Ac0 ) and in the unit.hex file
    the unit is different or missing ?"
A4:"Same as before."

Q5:"What if I try to build strange things, e.g. invisible HQ or other stuff ?"
A5:"What a perverse mind! Try and e-mail me the results."

Q6:"How many shops can I insert ?"
A6:"Originally I set up a data buffer of 64 Kb. I really don't know."

Q7:"What about sizes ? Surely it's difficult to carry 9 Zenith battleships insi-
    de a tiny Vader hovercraft ?"
A7:"Look again at unit.sym: the last two numbers are the unit size and the unit
    cargo ( if any ). The program will let you insert anything into anything,
    giving you a warning about overloaded units, that's all. Any overloaded unit
    will still work in the game, anyway you will not be able to load the same
    units once they're exited. :-) "

[2.5.1] shop.txt: type 2 shops
------------------------------
A last thing about the shops of type 2. There are usually several shops of that
type. They are used for the computer AI. The exact format of data stored into
these shops is still obscure. Apart from words 0x48, 0x4a and 0x4c (?) that are
usually different from zero. A shop of type 2 has the following description, for
example ( this comes from miss016.dat ) :

***type		2
 row/col	8 12
 w0x48		 2 0
 w0x4a		10 0
 w0x4c	         0 0	

What does it means ? I would like to know. So far, there's always a unit under
the shop location. I suppose that these shops are like potential fields: they
attract the units towards the center with a given force ( word 0x4a ? ), and
the first word could be the type of units attracted, but it's only an hypothesys
that must be confirmed. if you have time try to insert/modify/delete shops of ty
-pe 2 and tell me the results. By editing shop.txt you will be able to create
these strange shops, explore!
No common questions to answer to ( I have no answer ).

[3] And now ?
-------------

Some other questions:

Q1:"Can I build a map of different row/col size than the original one ?"
A1:"Sure! Just give to dsc2map a set of hex files with the new dimensions, and
    modify if required the shop.txt file."

Q2:"Interesting. Any limitation ?"
A2:"Yes. Not smaller than the map window size displayed during the game ( I do
    not remember exactly the size ). And according to Pasi Ahopelto original
    document, not bigger than 64x64 hex. Personally I've tried smaller maps,
    they work but garbage will appear on the window, no clues about biggers."

Q3:"In some maps the weather is particular, let's say I wish the weather of map
    X with the layout of map Y. It's possible ?"
A3:"Yes. Call 'map2dsc Y', it will produce layout, shop and production list of
    map Y, then 'dsc2map X mymap', it will use the basic characteristics of map
    X ( weather among them ) with the layout of map Y."

Q4:"Can I play my new map in 'campaign mode' ?"
A4:"Only if it's based on an original campaign map. You will get the scenario
    description and the objectives that can be meaningless in your new one. And
    any units of new player will probably not managed by the computer. I would
    prefeer to play in 'map mode'."

Q5:"And the victory conditions ?"
A5:"They are related to the original map. A suggestion: play your new maps al-
    ways in 'map mode', this will allow you to modify the players and alliaces
    as you wish. The duration is always 100 moves in 'map mode'."

Q6:"Apart from terrain/object/units, production list and shops, can I change
    any other thing, e.g. weather, alliances, players ?"
A6:"Players ( human/computer ) and alliances among them can be set directly into
    the game, by choosing the 'map mode', weather no."

Q7:"I have a new version of Battle Isle, I have a CD ROM version, I have some
    data disk, I have the Japanese version ... Can I use these programs ?"
A7:"I do not know. Try them and tell me something."

Q8:"Can I exchange maps with my friends, my dog, even you ?"
A8:"See, there are two kind of answer:
    Technical answer: you can exchange maps directly using your fresh .dat file
    created by dsc2map.exe or sending the fileset description of your work with
    unit.sym, obje.sym and terr.sym. The symbol files are required since you may
    have some 'personal' symbols different from the original ones. This is not a
    problem, by sending your .sym files the other guy's dsc2map.exe will be able
    to parse your .hex and .txt files.
    Legal answer: by sending a .dat file you send a file that contains some data
    created by you and some copyrighted data ( parts of the original map ). This
    is a violation of the agreement subscribed with Blue Byte ( the owner of the
    copyright ) when you purchased Battle Isle. By sending the .hex files, the
    .txt and .sym files you'll send files that contain data not-copyrighted by
    Blue Byte ( there's a copyright on the file format, it's mine, but don't
    worry about it )."

Q9:"So I can freely and legally exchange maps by using your description of the
    map itself, right ?"
A9:"Yes and No. It's a complex matter: my format description can be used as a
    go-between without problems, but the informations stored have been obtained
    by reverse-engineering copyrighted data. Reverse-engineering operations are
    always forbidden on code, and generally forbidden on data. For example, the
    Doom I/II .wad files ( our maps ), freely distribuited over the net are an
    example of this strange situation. Id ( the makers of Doom ) permitted this
    operation since the beginning, tolerated it ( surely it improves the Doom
    sells ! ), or gave away the informations required for building a .wad file
    therefore avoiding reverse-engineering ? I really don't remember. Note that
    a reverse-engineering operation is not forbidden as stand-alone operation,
    you can do what you want with your files, but it's forbidden if has the pur-
    pouse of copying or reproducing the reverse-engineered object.
    What happens if the map changes ? What can be considered a modification so
    big that makes meaningless the copyright ? To change some units ? The size,
    or maybe the terrains ? I'm not a lawyer.
    If is there any Blue Byte clerk listening, please tell me something !"

Q10:"How can I show my eternal gratitude to you ?"
A10:"Send me a copy of your works. I like new maps to play with, but remember
     what I said in the previous answers, don't tell me I'm pirating software
     or asking you to do it."

[4] Battle Isle under Windows
-----------------------------
Want to play you favorite map while writing stuff and other things ? Pick up
your PIF editor and create a PIF file with the following settings ( modify the
path according to your installation ) :

	Program Filename:	'C:\GAMES\BI2\BI2.BAT'
	Window Title:		anything you like
	Optional Parameter:	fast
	Start-up Directory:	'C:\GAMES\BI2'
	Video Memory:		High Graphics
	KB Required:		0 to all
	KB Desired/Limit	-1 to all
	Display Usage:		full screen

leave the other options blank, you really don't need them. Save the PIF file
and add it to Program Manager by selecting 'File','New' and browsing the PIF
file already created, double click on it and have fun!
Switch to other apps by [ALT]+[TAB]. It's possible to see some garbage when
entering again into the Battle Isle windows, but it will disapper when you move
the mouse.

[5]	How to develop map: a suggested environment
---------------------------------------------------
First of all, work under Windows, this will let you have terrain/object/unit
hex maps side-to-side for fast checks, by using three Text-editor. Now I assume
that you want to create a new map from scratch.
Steps:
	make terr.hex
	make obje.hex
	make unit.hex
	make prod.txt
	make shop.txt
Create a terr.hex 'enpty', e.g. all sea or land hexes, and add slowly island
coutours, rivers, terrain building ( yes there are some ) and other things,
use an enpty obje.hex and a unit.hex with two units only, one red and one blue.
You have to insert al least two units for displaying your works. Built the ske-
leton map as miss000.dat.
Call Battle Isle under Windows and start a new map with AMPORGE. Check your work
and adjust it ( without killing BI2, just alt+tab to your editors ), create the
modified map on-the-fly, switch to BI2 and 'new map' again. This will reduce a
lot the development process, since corrections are performed very quickly.
When the terrain is ok, start modifying the obje.hex file, adding mountaints,
buildings, roads and railroads etc..., checking sometimes by loading the new ver
-sions.
Last thing, the units, then the common production list and the shop list. Remem-
ber to tell exactly in shop.txt the object or unit located into the container lo
-cations, otherwise the program will refuse to add the shop section.
Satisfied ? Pick up your favorite weather sequence from the existing maps, and
create your final masterpiece.
