Documentation (heh!) for the Trade Wars Viewer programs -- DOS version Last revision: 7/26/92 by Woody Abstract: --------- The game Trade Wars is a delightful mix of economic strategy, exploration, and military conquest. To design your economic tactics, you need to know where the ports are located in space, and what and how much they are trading. For exploration, you need to know where the unexplored sectors are located, and where the closest ones are. For military conquest, you have to be able to find your enemies planets amid the many sectors of space, and prevent him from retreating his forces away. ... Unfortunately, keeping all the information about which sectors you've visited, which are ports, and which is connected to which can become a nightmare. The good news is that record keeping is a task ideally suited to computers! It is with that thought that this suite of programs have been developed. The first program, CONVERT, creates a data base of explored sectors, warps for each sector, if it is a port or not, and if a port, what it is selling. It allows you to maintain that information, to keep it current, and is able to tell when ports become "blocked" (by enemy fighters) or "unblocked". It is able to use the "interrogation" mode of your Crai, to enable fairly rapid and simple collection of data about the universe. The second, EXAMINE, allows you to look at that data base in a variety of ways, from visual graphing of the data to asking questions about nearby ports and so on. It allows you to maintain records -- both notes on sectors, ports, fighter locations, date of last "bust", etc. It is the primary program one uses while playing the game. If you have the ability to run under a multitasker such as DesqView or Windows, this is a good one to keep running alongside your terminal program. A third, OFFLINE, performs various inquiry tasks and other sorts of management routines. It allows you to design optimal paths for various sorts of tasks. This is a program that mostly you would use in an offline mode -- i.e., to help you prepare for your later game. What you need to run the programs: ---------------------------------- To create the data base, you need to be in a terminal program that allows ASCII uploads and ASCII captures. The best situation is one that allows you to do them simultaneously, i.e., capture input while uploading a file. Second best is to have a large scrollback buffer, that allows you to take pieces out of the scrollback and append them to a file. I've compiled two versions of the programs, one for DOS machines and another for Macs. (Source code is included in the TWVIEW package.) A port has been made to the Amiga: look for a file TWVIEWxx.LHA. If you are running the DOS version, you will need the device driver (.BGI files) suitable for your machine. These files should simply reside in the default directory -- they are not installable drivers for your config.sys. The three executables will take up a little over 200K. Each database for a universe will take up perhaps 60K when your universe is fully explored. The program likes to make backup files, so take that into account. HOW TO CREATE AND MAINTAIN THE ORIGINAL DATA BASE: -------------------------------------------------- There are two methods to develop the data base. Which you use depends on (i) how good you are at flinging files about and (ii) how much new information you are trying to collect. If you just want to find out about a few sectors, use the "old" method. If you want to collect a full set of data, use the "new" computer interrogation mode. Generally speaking, I will download a fighter report (G from the main menu) and a full port report (R from Computer Interrogation Mode) at the start of play, and if I've done some exploring during the play will use the "old" method to find out the contents of new sectors. I will write down any ports I'm unblocked (by destroying enemy fighters) and use the "old" method adding them to the log file, before going on to a new strategy that day. However, I do like getting a full port report at the end of play, so that I can compare it with the port report from the start of the next day, and see what changes have occurred (to see where the other players are trading). In both modes, you should should turn ANSI off at least for the duration of the transfer. Do this with from the main computer menu. I've found this speeds up the transfers by as much as a factor of three! Once you've played a while, there isn't much point to the ansi displays, except when you are exploring and need the unexplored sectors highlighted in red. For those of you used to older versions: when reading in the data base, the prompts have changed a little bit. You can specify the name of the data base in the command line -- for example C:\> convert stmarys.dat and the program will start up and run CONVERT on the data base for stmarys.dat. If you mistype something, the program will tell you that it can't find the file. If you are running CONVERT, it will assume you are trying to create a new data base. If you are running one of the others, it will assume you screwed up, and will offer to quit. In both cases, it will allow you to specify things again. When the files are read in, the location of the stardock, if known, will be printed. Also printed will be the number of known sectors, the number of known port sales info (which will in general be the number of ports, except for the three class 0 ports which, since they are selling holds, fighters, and shields, do not have sales info), and the number of "etc"'s -- this is a reference to a flag set on sectors: this would include any sector with a port, a note, fighters, an avoid set, and so on. The "Old" method -- inquiry of the Crai via uploaded files ----------------- First, log into the game and invoke the ship's computer. Tell the computer you want the known universe report, by hitting K. Now start an ASCII capture. If you have explored more than half the universe, tell the computer that you want unexplored sectors by hitting U and return. The computer will list your unexplored sectors. If you have explored less than half, tell the computer you want explored sectors by hitting E and return. The computer will list your known sectors. If you've explored a lot of sectors, there may be a [PAUSE] in the listing; just hit the space bar and go on past it. (It's okay if it shows up in your ASCII download.) When the listing is finished, turn off the capture. Your captured file must contain either the line that says: "You have explored the following sectors:", or "You have NOT explored the following sectors:", and at least one blank line after the sectors. (A little more before or after is okay too.) Now shift from your terminal program to the program "Convert". At the first prompt, it is asking for your initial data base. If you've already developed a data base, and are just updating it, give the name of your old base; if you don't have an existing data base, just hit a return. Next, it will ask if it should be reading a list of explored sectors, a log of inter-warp and port information, and so on. Choose option 1. Next, it'll ask for your "Explored Sectors" or "Unexplored Sectors" file. Next, it will ask you to name the file to generate: use anything you like here but being careful to not accidentally overwrite something you want to keep. (The program is smart enough to ask if you really mean to clobber a file, and offer to back it up as needed.) What this step will do is create a file that you can upload to generate lots of printouts. Essentially, what it creates is a file with I and R for every new sector. The nice thing is that this will interface well with the Crai on board your ship. Now back to Tradewars. You are probably still in Computer mode; if not, get there. What you want to do is upload the contents of the file you just generated with the Convert program into the Crai on your ship, and store the output to a .log file. If you can do that while doing an ASCII capture, start the capture and then start the upload. Otherwise, you may have to start the upload and then retrieve the results later from your scrollback buffer. In any case, your captured file should contain all the I reports (sector nnn has warps to : xxx - yyy - zzz etc) and all the R reports (Commerce report for ...). There will be lots of "I have no record of a port in that sector."'s: that's okay -- the program has to find out if there is a port there or not. If there are a couple of ports that you are interested in that aren't in the upload file, that's fine -- the program will be happy to parse that too. Just make sure that when you hit your R you don't just hit a carriage return but explicitly type in the sector number. Back to the "Convert" program. Again, tell the program your old data file (or hit return to start fresh) and this time we are in part 2. Tell it the name of the ASCII download or capture you just made, and the name you want to use for your database. The program will generate the data base. The "New" method -- using Computer Interrogation Mode (CIM) ----------------- I should mention at this point that there is a collection of utilities, TWUTILxx, one of which will automatically gather the two .SCT and .PRT files described below. The collection also includes some routines that this program does not do -- in particular, it includes routines to make good guesses as to the location of the StarDock and class 0 ports even though you have not done any exploration. I have not used these programs, but the documentation is clear and well written (unlike this, sorry) and so you might want to check them out. The programs are written by Joel Downer, an active participant on the Fidonet Trade Wars echo. First you have to get into CIM on your Crai. To do this, you need to send ASCII characters 200 through 205 to the Crai. There is a file "ON.TXT" included in this package -- do an ASCII upload of ON.TXT after you have activated the Crai, and you will see a ":" appear. Alternatively, if you are on an IBM, you can hold down the Alt key, then from the numeric keypad type 200, release, hold down alt, type 201, release, through 205. Now that you are in interrogation mode, start your ASCII capture; I recommend using an extension of .SCT. (For example, on the St. Mary's BBS my main data file is STMARYS.DAT, and my sector report file is STMARYS.SCT.) Type I, and the computer will immediately begin spewing out sector numbers and warps. When that finishes, stop the capture, and start another capture, this time using an extention of .PRT. Type R, and the computer will begin spewing out port information. When that finishes, stop that capture, shell to DOS, and run the program "CONVERT." There are two new options in CONVERT: option 8, which parses the .SCT report you prepared, and option 9 which parses the .PRT report. Invoke them, then exit CONVERT and your data base is complete. This "new" method does not identify class 0 ports (Terra, for one), nor does it identify the star dock (as the old method did from logs). That information is not available from interrogation mode, so you have to add them manually by using the edit mode of "CONVERT." There is information available from option 9 that can not be obtained elsewhere. When it is processing the sectors, it recognizes if a port should be there but no report was given -- if last time it processed reports the port was accessible but now it isn't, the message "Port recently blocked in xxxx" is displayed. This is a good hint that either the Ferrengi are being pests, or your opponent is making his move. Also, if a port was not in the last report but suddenly appears, you will get the message "Port recently unblocked in xxxx". This message will show up if you haven't seen that sector before -- but otherwise, it means that fighters that used to be there aren't anymore. A good sign your opponent is moving about but trying to remain hidden. OTHER CONVERT OPTIONS --------------------- This takes care of 1 & 2 (old style sector/port info processing) and 8 & 9 (new style sector/port info processing). To have the program remember where you have left fighters, capture a report from the main menu (remember, with ANSI turned off) and then feed that through option 3. For the Major Space Lanes data (those sectors that get cleared by the Feds each night) I have a problem. It turns out that the Martin's haven't used any of the standard shortest path algorithms in their program. (Saints preserve us from the talented amateur!) So we have to get the Crai to do the shortest path computation. To do the computation, you have to know the location of the StarDock, and the two other ports that sell fighters and shields other than Terra. Option 4 will generate an upload file, that option 5 will then parse. Many people have reported problems getting the upload file to work properly. There are two solutions: either fiddle with your ASCII upload so that it doesn't send out more characters until the computer finishes working with the previous set, or just enter the file generated in #4 by hand yourself. It's a fairly small file to type. Option 6 allows fellow teammates to collaborate. You can feed in their information about sectors, ports, and so on, and use it for yourself. Of course, ports that you haven't visited will be marked as "blocked" next time you do a port scan (since you aren't receiving info from them) but you will be able to see what kind of port they are, and approximately how much they are selling. Option 7 allows direct editing. This is important if, for example, you've been using the "New" method only, and you know where the ports that sell Holds, Fighters, and Shields are; if you know the location of the Stardock; if someone in the game destroys a port you've visited (and you want to mark that as empty space again); if you create a port; and a feature new to 0.91, if you want to mark a sector as to be avoided (so TWVIEW won't plot a path across that sector or show paths from it on the display). Just choose 7 and follow the prompts. You can also clear ".etc" flags if you want to share your database with others and don't want them to know about your fighters and such. Hopefully, all will be clear from the prompts. STRUCTURE OF THE DATA BASE -------------------------- If you don't expect to do any hand editing, and don't want to worry about the internal structure of the database, you can skip this section. For what its worth, the data is in a plain text format, so your data files can be typed out if you wish. Information is divided into several categories. First, are the two lines: ::Tradewars Data file:: SpaceDock is 200 or whatever the corresponding sector is if you have visited the space dock, or possibly "SpaceDock is 0" if you have not visited it or do not know the location of the space dock sector. Next is a line of the form: 7 <- number of notes where the integer represents how many "Notes" you've stored for the game. A note has the form: 13 Don't Go Near This Sector!!!! i.e., a sector number, and a short bit of text. You can add or delete notes from within the EXAMINE program, as well as display those sectors for which you've recorded notes. If you add a note manually, be sure to update the "etc" field of the corresponding sector, or the note will never be printed out. Next is a line of the form: 105 <- number of Port Infos followed by lines of the form: 120 3000 3280 -2530 100 32 100 -60 270 -1024 198 where the first integer is the sector number for the port; next are the levels for the three trade goods "Fuel Ore," "Organics," and "Equipment." A positive number means that the port is selling the stuff, and a negative number means the port is buying up to that much of the stuff. (Remember that the larger the magnitude of the number, the better the price you get -- ports are more willing to stretch when the numbers are higher!) The next three numbers are percentages of maximum use: a value of 100 means the port is fully refreshed for that good, 0 means they are all sold out or are not interested in buying anything. Special Note: If a port doesn't show up on the R report, but there had been port information stored for it, the previous sales levels are preserved, but the port usages are all set to zero. This allows you to identify "blocked" ports -- ports captured by the Ferrengi or opposing players. The next three numbers show the absolute change in goods since the previous port update. These numbers are used in the Net change report. Finally, the last number is the "bust date", actually measured as days since January 1, 1992. If the last number is 0, it means that there is no bust date. The ports are generally sorted by sector number. If you want to do hand editing using a text editor, the order is irrelevant (the read routines don't care, and the write routines sort before storage) but there must be as many lines as specified in the "<- number of Port Infos." If you do hand editing, be sure to update the port class and "etc" fields on the sectors. Next is a line of the form: Sector data starts here ... followed by lines of the form: 1 6 2 3 4 5 6 7 8 10 | | +-----------------+ | +--+ +--------------+ | +---------| | +---| +-------| | ... Here, for example, is a report for sector 1: it has six warps, to positions 2 through 7, a port code of 8 (which actually corresponds to class 0) and an "etc" code of 10. A "Port Code" corresponds to -1, if the sector is not a port, 0 through 7 based upon a three bit representation of selling or buying (for example, if a port is selling Ore and Organics and buying Equipment its port code would be 1 * 1 + 1 * 2 + 0 * 4 = 3; don't worry about it, the program handles figuring out port codes and so on). The "etc" code tells about various pieces of information, again depending on bit representation. Currently the codes in use are: NoteExists = 1; IsPort = 2; HasFighters= 4; SpaceLane = 8; Avoid = 16; Stardock = 128; Busted = 256; but others will probably follow. In the example above, sector 1 is a port (class 0 = HFS, "porttype" 8) and is a spacelane, so its .etc code is 2 + 8. (Note that the Stardock is also a port; so its etc code is 128 + 8 + 2 = 138; if a random port had a note attached, its code would be 2 + 1 = 3.) HOW TO USE THE DATA BASE VIEWER ------------------------------- Its pretty well impossible to draw a decent map with all 1000 sectors, so the data base viewer doesn't try to do that. Run EXAMINE, and tell it the name of your data base. You will be presented with a list of options. In version 0.94, you get to choose from the following list: dd note usiest ports lassify ports elete note vil pair [SxS & xxB] Closest place to buy ighters et blocked ports for avoid ard luck, busted Note nformation ength & path between two sectors isc config options earest port

aired ports This is one of my favorites. What it does is go through the data base and find ports that are adjacent (i.e. you can warp between them using normal space in one turn) and are compatible (i.e. at port A you can buy a good that is sold at port B, and you can sell a good that is bought at port B). You can be selective (greedy) and only specify ports that are compatible in the very profitable Organic-Equipment trade, or if those are starting to wear out ask for some other trade pair, or if you don't care about the type but just want the closest pair, you can ask for all compatible pairs. The program will offer you the opportunity to have the results sent to a text file, which you can print later (if you can't run the program simultaneously with your terminal emulator, you can get hard copy of the "hot sectors") and you can have the results sent to a text file that is compatible for upload (i.e. part 2 of the "CONVERT" program so you can keep an eye on trading levels at these critical ports). Displayed to the screen are two integer "factors": the first is the total amount of goods you can trade (the smallest number occurring in the trade goods) and the smallest percentage of use at the ports. Your best deals will occur at ports with high percentages. High trade quantities generally mean that the initially offered price will not be as good as other ports (best deals occur at 100% ports with small stocks) but there will be less degradation in price as you trade over at the port and stocks are diminished. ranswarp menu This drops down to a submenu that deals with locations of deployed fighters and using a transwarp drive. Most submenu items are pretty obvious: you specify where you have deployed fighters, or tell the data base that some #%!%@$ has shot up your deployed fighters, or list the places the data base knows you've deployed your fighters. The only thing that needs mentioning is the shortest route submenu item: you specify where you are, and where you want to go. It figures out, based upon where your fighters are located, the fastest route to get there (using a transwarp jump and then normal autopilot). It may say to transwarp to your current sector -- that just means the shortest route lies through normal space. Another thing of interest is that with Transwarp, the equivalent of "paired ports" are ports that you can hop between buying a little fuel ore for the engines and still trade organics/equipment. Best is SBS & SSB: you can buy just enough fuel to make it to the other port. Alternatively, you can buy enough fuel for a round trip: best is then SSB & BBS (so you sell as much equipment as possible) although SBS & BSB is also profitable. These trade pairs are listed in this submenu. iew space in graphic format Viewing the data will attempt a graphic display on your screen of space: you tell it about how many rows across and columns up and down of sectors to use (maximums are given in the program: hit a return, and you get a default value that is about 3/4 of maximum); you tell it the base sector you want in the center of the screen (it has to be a sector you've visited!); and you tell it how large a radius to display (all sectors it is aware of no more than that distance away from your base sector). It will try to display the collection of warps that make up your known space. Ordinary, visited sectors are shown as circles, ports as rectangles. (Unexplored sectors just have their numbers floating in space, and if you have color are in yellow.) Lines connecting sectors means there is a warp connecting one with the other. Dashed lines mean that you don't know if the warp is two way or not: if one end of the line connects to an unexplored sector, you will have a dashed line. If both of the sectors at each end are explored, the warp really is one way! (Try graphing around the StarDock and around the class 0 ports.) Don't try to graph too many sectors at once: the screen gets too busy, and you won't be able to tell what connects to what. There is no known way of generating a "best" display, even for graphs that can be drawn on paper without edges crossing -- for the directed graphs generated by Tradewars, its even worse. Consequently, there is an element of randomness in this display. It tries to put sectors close to where others were located, and fills in space around a sector clockwise. If you don't like your current display, as for the same display again with the same parameters, and you will get a slightly different perspective. When you have the display up, if you type a number and hit return, it will ask again for the distance and then redraw (with the same graphic parameters) around the new number. This is good for "walking" through the galaxy to find good trade routes. Net change This display shows the change in port quantities since you last updated that port info (via CIM's .PRT or the old captured .LOG files). The display sorts ports based upon total net change, and does not print a port at which there was no net change. I find the best use of this display occurs if I take a CIM as the last action of the game, then a CIM early after log in: this way my own activities are not displayed, and my opponents activities stand out clearly. This is very helpful at identifying ports with activity -- a port that has a huge buy of organics and fuel has almost surely been involved in a planetary trade contract, and gives a good place to start hunting; trading pairs that have been recently drained make good place to dump mines, and so on. ou asked for non-adjacent trading pairs? Some people had observed that my program worked too well: in their games they couldn't find any paired ports at which to trade. They wanted "almost adjacent" ports. Well, I can't really believe these things are going to be profitable (can't you just spend time hauling colonists until the ports regenerate?) but hey, if they really want to spend the turns... . Use of the OFFLINE program -------------------------- The OFFLINE program is envisioned as something you use while not logged into the game, to decide upon strategy and the like. Version 0.94 gives the following menu: ontrolled sector status ead end analysis suggest therprobe targets ist bust records visit ultiple sectors efficiently ne way warps

arse captured ASCII text uit obbing path tellar dispersion raffic area analysis known sectors isit every sector The ontrolled sector status display is useful to look for backdoors or sectors that you have missed in setting out a domain. Essentially, you specify militarized sectors that mark the perimeter of your domain, and then a sector that is "inside". It runs through the area you can get to without running a militarized gauntlet. If it finds an opening out into the major space lanes, there is a problem... The ead end analysis provides you with the dispersion of the dead ends by tunnel length. A tunnel is a sequence of sectors adjacent to only two sectors, the last of which is a dead end. These are convenient places to place your citadels, as you can fortify the citadel and make someone fire off lots of photon torpedos or fight through lots of defenses to get to your home sector. After displaying the dispersion, it asks for a tunnel length, and then will display all tunnels of that length. It checks for "back door"s, i.e., one way warps into your tunnel, then displays the distance of the home sector from terra. Starting with 0.94, the definition of "dead end" is a sector with only one way in. Note that this is what one really wants: if there are two ways into a sector, that means you have to protect both of them. Some of the dead ends will be marked "escape". This means a dead end sector with a one-way warp out. One disadvantage of this sort of dead end sector is that the CRAI may well warp people through your homeland, which wouldn't happen in a dead end without escape unless they were specifically headed for that sector. On the other hand, it makes it harder for your enemy to bottle you up, since you have that extra escape warp. suggest therprobe targets and isit every sector efficiently are two commands that you might use in the endgame. Lets assume you have already mapped all the sectors and are just looking for where your opponents have built up their citadels. What these allow is building up of a "map" of sectors you have visited/scanned recently, so you can tell where your opponents are hiding. The former will make a suggestion to sectors that will show lots of new sectors for you, and the last will actually offer a circular path through the galaxy that will allow you to visit or scan every possible sector. (Incidentally, a galactic tour, from scratch, takes about 1000 moves. A scout can easily do that in a week. If you use up a 350 etherprobes or so, you can do it in a long (and expensive) day.) A command that helps with the above is the

arse captured ASCII text. It allows you to automate the development of the "map" mentioned above. So, the standard routine is to get a list of places to fire etherprobes, start an ASCII capture, fire the probes, turn the capture off and parse the text, updating the map, then delete the text and repeat until you find what you are looking for or run out of money for probes. ist bust records will show you the ports at which you've been busted, and how many days old the bust is. Anything over 14 is an expired bust, of course, so this will help you plan ahead so you will know when the ports will allow you to steal from them again. visit ultiple sectors efficiently is intended to provide the following: you know that you want to hit sectors A, B, C, D, and are going to go through normal space -- the program will suggest which is the best order to visit those sectors in the fewest moves. You can specify if you want to return to your original starting point, or just end at one of the targets. (This allows you to make long chains, if you want to hit thirty or forty ports.) This is often used in connection with the "steal holds" obbing path option. You specify the following information: Maximum number of targets? [max 25] -- this is the number of ports you want to visit on your trip. Maximum number of turns? -- this is the maximum number of turns allowed for the trip Starting Sector? [0 to abort] -- starting point of the trip Closed path? -- yes or no: do you want the trip to return back to the starting point? Trading spree path? (alternate trading equip/organic) -- yes or no: yes is a sequence of ports that buy equip and sell organic, alternating with a sequence of ports that buy organic and sell equipment. If the answer is no, you get the Okay, will choose ports to "rob holds". This is for the "rob holds" bug: ports that have available 365 holds of equipment or 660 holds of organics. What you get back is a sequence of ports that fit the above criterion and will be only as long as you specify. [Note that if you plan on using 35 moves, leaving from the Star Dock, rob holds at seven ports, then return to the Star Dock to sell your ship, specify 7 targets and 27 turns (because you will burn 8 moves at the seven ports and star dock).] The algorithm used here is the "greedy" algorithm -- it just takes the first port it finds meeting the above criterion. It's a fairly good approach, but not in general optimal. In particular, if the first port available is far away from other ports, you may get a rotten path. After you fill in the questions above, you are asked: Ports to avoid (in addition to busted ports): I would first specify nothing (unless there are sectors that you just dare not go, because of enemy fighters or the like) and see what you get. Then look at the path, and see if any of them are particularly long -- especially the path from the first target to the second or third. Then run it again, marking the first port to be avoided. Do this several times, marking various combinations to be avoided. Then, when you get something that looks good, use the visit ultiple sectors efficiently option, specifying your base point and the targets, and you will be presented with the actual shortest path that hits all these ports starting where you specify. In practise, I will run obbing path, specifying nothing to avoid, and see what I get. Then, run it again marking the first sector it found not for visitation, and see what comes out. Then mark the first sector of this route in addition to that previous sector, and repeat. I continue this until I'm happy or the first port is so far away from my base point that the task is hopeless. In practise, what seems to be most common is to find clusters of ports that are close together, and the optimal path is to go directly to that cluster, traverse the cluster, then return to the starting point. This best route appears often only after blocking out the first five or six closest ports, particularly after you have made several passes and most of the convenient ports are unavailable because of arrests. ne way warps gives you a listing of known one-way warps. Not terribly useful at the moment, but it is interesting, eh? tellar dispersion will provide the dispersion of sectors from a given sector. This will give you a general feel for whether a sector is near the middle of the galaxy (lots of sectors at distance 3, 4, 5, 6) or on the rim of the galaxy (lots of sectors at distance 11, 12, 13, 14). Useful, somewhat, in deciding where to hide citadels or place threatening fighter clouds. raffic area analysis will take a long time to compute ... but when it finishes, it will determine via connectivity what the most likely sector to find a trader is. Basically, it runs through all million paths between pairs of sectors, weights the path by its ends (in "uniform" weights, the weight is 1; in "port heavy" weights, the weights are Port Type Weight blank sector 0 BBB, SSS 1 SBB, BSS 2 BSB, BBS 4 SSB, SBS 4 HFS 10 Terra 20 StarDock 50 The number that comes out is the number of paths through that given sector, with paths weighted as above. High numbers are good places to put fighter/mine blockades; or small numbers of fighters to collect tolls or just track the trader traveling through the sector. A particularly dastardly trick is just to leave 99 mines and no fighters. LOTS of people will run across them, and with no fighters left behind, no one will know whom to blame ... . Generally, when you are in a reasonably established game, a turn is worth a lot more than 3,000 credits, so you use etherprobes to explore. How do you best use the etherprobes? Well, you can spend a lot of time with the Crai ... or you can use the known sectors list. These will be sectors that you don't have attached to any sector you've encountered. If they are connected to the universe at all (the universe generation has a bug in that there can be sectors that you can't warp into; the only way to find this is to turn all avoids off, and ask for the shortest path to that sector -- don't try to use an etherprobe targeted at that sector, it will just waste the etherprobe) and you fire an etherprobe at it, you will pick up at least two sectors. I find that once I'm at 70% explored or so, this list will be sufficiently small that I can use the Crai just on these sectors, and use up some etherprobes efficiently. FINIS ----- The program is compiled under Turbo Pascal 6.0 by Borland Inc. (Borland is a trademark. People always seem to mention trademarks, so I guess I better.) It doesn't use much more than Standard Pascal, except for file handling and I/O. Originally, this was developed on a Mac (also Turbo Pascal, version 1.1 I think) but around version 0.86 I switched to working on an IBM laptop. [The name of my laptop is "Flowers of Evil". I'm rather fond of Zelazny's work. Also Baudelaire, but that isn't important.] There are three files with extension .PAS that are used to generate the executables -- they are little more than a reference to all the files, statement of global variables, and the main event loop. There are many files with extension .INC that contain procedures called by the main event and each other; lots of code is shared. Here is the information reported by "Get Info" from inside the Borland IDE: For CONVERT.PAS ÄÄÄÄÄÄÄÄÄÄÄ Program ÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ Memory ÄÄÄÄ Source compiled: 1868 lines DOS: 75K Code size: 51280 bytes TURBO: 268K Data size: 43700 bytes Symbols: 60K Stack size: 16384 bytes Program: 0K Minimum heap size: 0 bytes Free: 236K Maximum heap size: 655360 bytes For EXAMINE.PAS ÄÄÄÄÄÄÄÄÄÄÄ Program ÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ Memory ÄÄÄÄ Source compiled: 3377 lines DOS: 75K Code size: 96144 bytes TURBO: 268K Data size: 64552 bytes Symbols: 147K Stack size: 16384 bytes Program: 0K Minimum heap size: 0 bytes Free: 150K Maximum heap size: 655360 bytes For OFFLINE.PAS ÄÄÄÄÄÄÄÄÄÄÄ Program ÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ Memory ÄÄÄÄ Source compiled: 2990 lines DOS: 75K Code size: 49872 bytes TURBO: 268K Data size: 63164 bytes Symbols: 24K Stack size: 32767 bytes Program: 0K Minimum heap size: 0 bytes Free: 272K Maximum heap size: 65520 bytes The code isn't very tightly written. In fact, I tend to just go off and doodle for a while. That's the breaks. I think its reasonably legible, however. If you have difficulty understanding the code, I'd be happy to explain it to you -- see FEEDBACK below. Lots of people have asked about the shortest path algorithm: its a very standard routine and can be found in most introductory computer science texts dealing with directed graphs. I did swipe the permutation generating routine (for the "visit multiple sectors optimally") from B. R. Heap's recursive routine. Everything else is dead standard and not terribly inspired. And the whole thing reeks of creeping featuritis. It really should be rewritten from scratch, using an oops toolbox in C++. And gosh, I could make it a Windows program, and DesqView-aware, and... ;-) So, that is the program at the moment. There are still lots of things I want to add, but I make my living as a professor, not a programmer ... this is supposed to be fun, see? :-) Still, the program will probably make it to version 1.0, so I can stop dealing with it, someday ... FEEDBACK -------- WWIVnet: I run a BBS at 510-376-1554; leave mail to number 1. The board is, in theory, open 24 hours a day, but it goes down a lot. Since the board is at work, it occasionally stays down a couple of days at a time. (It seems to know when I go on vacation ...) If you are part of a WWIVnet board, you can mail 1@5056. Internet: I can be reached as woody@galileo.stmarys-ca.edu. I generally read my email twice a day. The current version of the program is also available by anonymous ftp from galileo.stmarys-ca.edu (149.137.1.1) under /pub/tradewars, In fact, Richard Byron Ward has been collecting a variety of Trade Wars utilities, and storing them there. So you might find some utility you don't have there. If you are a utility writer, I would be most happy to store your work and make it available to the Internet. Yes, I do consider suggestions. Sometimes the answer is "no". Sometimes it works its way into the program. If you want your suggestion to almost surely be included in the code, include a source patch! ;-) ACKNOWLEDGEMENTS ---------------- Thanks, of course, to the Martins for such an entertaining game! Thanks also to TMASTER for proofing this document and helping with the alpha testing. COPYRIGHT AND LICENSING STUFF ----------------------------- Copyright 1991, 1992 by Robert Weaver. All Rights Reserved. You may not distribute this for any fee beyond the reasonable costs of distribution. Permission is granted to distribute this document and the related executables and source code provided this notice is preserved, and anyone you give the executable has the ability to obtain this documentation and the accompanying source files.

aired ports uit Nearest ectors ranswarp menu Nearest nexplored sectors iew space in graphic format here is nearest fighter cloud Net change ou asked for non-adjacent trading pairs? Here is what the commands will do: dd note elete note Note nformation These manage the notes that you may have stored on your universe. Typical notes might be "enemy base here!", "great trading spot", "Fedspace", or whatever. Option "A" will add a note to a sector, option "D" will delete a note from a sector, and option "I" will present you with a list of the notes you've made, sorted by distance from a current sector. usiest ports This will offer a display of your ports, sorted by usage. First to be listed will be all class 0 ports and all ports with a usage field of 0. (In particular, any port that has been previously scanned, but for which you can not now obtain a scan will appear here.) Then will occur all ports sorted by fraction of maximum use. This is useful for several reasons. If you are evil, these are good places to try to rob -- they are doing a lot of business, so there are lots of credits... If you are good, these might be natural ports to try to take over, or at least leave a few mines scattered nearby... Also, if you see busy ports that are very low on fuel or or organic but haven't scratched much in the way of equipment, they have likely been used for Planetary Contracts, and so planets are nearby. lassify ports Want to know where all the BBB ports are? This is the command for you. It will list all known ports of a specific class. Choose the class from the menu, and you get the regular port listing. vil pair This idea comes from Joel Downer's TWUTIL package. Suppose you are an evil player and want to do the trade/steal routine. What do you want? You need to transwarp to someplace where you can pick up some equipment, then move someplace where you can sell the equipment to do the trade/steal cycle. You would probably continue this until you get busted: you then want to go to someplace to pick up ore so you can transwarp to some a class 0 port to get replacement holds. So, what this routine identifies is a port that sells ore and equipment, near to a port that buys equipment. Closest place to buy ighters, shields, and holds Invoke this option, and you will be asked for your current sector. The computer will then display the path from that sector to any place it knows of to buy fighters: if the only class 0 port you know is Terra, that is the only one it will display, but if you know of the others, it will display a shortest path to the closest of those sectors, or the Stardock. et blocked ports for avoid If you are going to be doing some etherprobe exploring, this will drop you into a menu that will help with that task. Essentially, you want to make sure that your etherprobes don't run into enemy fighters (and get destroyed) or at least enemy fighters you already know about. So, ideally, you would mark as avoid all blocked ports -- since you already know there are fighters there. Of course, that might well involve a lot of typing in an active game. Also, it rather screws up your avoid list -- you don't want to lose your real avoids! You will get a submenu with the following choices: Store list of locked ports to disk for upload Store urrent avoids to disk for later upload uit The first will generate a text file that consists of "Vxxx" where xxx runs over all the sector numbers of blocked ports. This is just what is needed to feed into the Crai to avoid all ports. The second option will parse a text file that you create by capturing the "current avoid list" info, and generate a "Vxxx" for each of your current avoids. So, what you do is get into computer mode, start an ASCII capture, hit X (to display current avoids), end capture, (optionally, clear them unless they are avoided for good cause!), generate the G, B report, ASCII upload it, do your etherprobing, clear the avoids, then generate the G, C report and ASCII upload it. You will have your etherprobe data, and only lose probes to newly discovered enemy fighters. ard luck, busted This is for the evil types among us, and deals with managing ports at which you've been busted. Starting with version 0.94, a new field was added to the port record that stores the date you were last busted. These are reflected in the sector and port displays with "busted" (verbose mode) or "X" (terse mode). These options allow you to control those markers. Choose this option, and you get the submenu record usted sector lear bust pdate all bust flags The first stores a new bust, the second clears a bust (if your partner was just busted there, say, then you won't be recognized and are safe to rob it), and the last option clears all busts that are two weeks old. ength & path between two sectors You specify two sectors, and it will tell you the shortest way it knows of to get between those two sectors. Note that this may NOT be the actual shortest path if there are sectors you have not yet explored that might give you a better route. It gives you the shortest path YOU'VE EXPLORED between those two sectors. It will not route your path across an avoid. The program will actually list the path in both directions, with a pause (for a return) in between. isc config options Currently, there are two allowed configuration options. You can turn the color off: this prints everything in monochrome, and changes port colors to small printouts of the actual ports. It looks good on my laptop ... your mileage may vary. (Suggestions?) Anyway, if you load GRAPHICS.COM, this allows you to print the screen and still see port sector numbers. The other option is for verbose or terse sector descriptors. In verbose mode, it will print "Fighters", "Space Lane", "Dead End", "Avoid", etc. In terse mode, it will print "F", "SL", "DE", "AV" and so shouldn't overflow the line. I'd recommend using verbose mode, until you are used to the display, then switching to terse. *IMPORTANT NOTE: If a file "TWVIEW.CFG" exists in your default directory, it will be read for configuration information. Right now, what you can configure are these startup defaults. For example, my twview.cfg reads CONTENTS OF TWVIEW.CFG ---------------------- verbose = false monochrome = true The file should be in ASCII text, one option per line. Whitespace is ignored, and case is unimportant. You should state "verbose" or "monochrome", an equal sign, and either true or false. (Or 1 or 0, actually.) earest port Nearest ectors Nearest nexplored sectors These displays will give you information about what is close to your current position. Information displayed includes if the sector has been explored, any notes, if it's a port, its status (SSB for example, means selling Ore, selling Organics, and buying Equipment) and levels of production. If you ask for the "Nearest Port" report, only ports are listed. I find the "Nearest Unexplored sectors" report VERY useful for exploration purposes: I can just head toward the nearest unexplored sector easily this way.