Documentation (heh!) for the Trade Wars Viewer programs -- DOS version Last revision: 3/11/92 by Woody Abstract: --------- The game Trade Wars is a delightful mix of economic strategy, exploration, and military conquest. For the first two to succeed, however, requires a good working knowledge of the universe. 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 two main programs, "Convert" and "Examine" should help to make keeping that information straight a little easier, and increase your enjoyment of the game. 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 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. A third, "Offline," performs various inquiry tasks. 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. There are two versions of the programs, one for DOS machines and another for Macs. (Source code is available if anyone wants to port it to the Amiga or something. It should only require minor changes to file I/O and graphics.) If you are running the DOS version, you will need the device driver (.BGI files) suitable for your machine. 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. 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. The "Old" method. ----------------- 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. (Its 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.) The last question the program will ask you is if you want an update on your ports: this will add a request for update for every port. The program maintains information about current trading levels for each known in the game; this will freshen that information to the current data. It probably isn't needed very often, but once in a while to update things it is useful. (I generally use that only if I've lots of time to play around: I refresh "interesting" ports by using an upload from the "Examine" program.) 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. 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 -- have to find out if there is a port there or not. If there are a couple of ports that you are trying to keep track of, you can also call up a port report on them and store that in the downloaded file: just make sure that when you hit your R you don't just 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. ----------------- First you have to get into computer interrogation mode of 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 type 200, release, hold down alt, type 201, release, etc. Now that you are in interrogation mode, start your ASCII capture; I recommend using an extension of .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." OTHER CONVERT OPTIONS --------------------- This takes care of 1 & 2 (old style sector/port info processing) and 8 & 9 (new style sector/port info processing). For 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. (Amateurs, sigh..) 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. Its 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 new feature 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. STRUCTURE OF THE DATA BASE -------------------------- The database is in plain text, so you can examine it yourself if you like. 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. 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 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 last 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 ports that have been captured by the Ferrengi or opposing players. The sectors are in no special order (actually, in order of appearance from the logs over time) but there must be as many lines as specified in the "<- number of Port Infos." 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 2 ... 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 2. 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, sector 120 is selling Ore and Organics and buying Equipment, so 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; but others will probably follow. (Note that the Stardock is also a port; so its etc code is 128 + 2 = 130; 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.91, you get to choose from the following list: Choose one of: dd note usiest ports lassify ports elete note Closest place to buy ighters, shields, and holds Note nformation ength of 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 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 are 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 is an integer "factor" -- this number is based upon levels of goods available in the critical trades, and will give a rough estimate of how good a deal you are going to get. 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. 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. 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.91 gives the following menu: ontrolled sector status ead end analysis suggest therprobe targets visit ultiple sectors efficiently uit tellar dispersion raffic area analysis 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. 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 recently 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 bunch of etherprobes, you can do it in a long (and expensive) day.) 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 the sectors. Unfortunately, its getting late, and while there is an easy recursive procedure here, I just don't feel like writing it from scratch at this point, then testing it... oh, well, you get docs instead. Watch for it in version 0.92. 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 space.dock 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. 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: The best place for info is 510-376-1554; leave mail to number 1. If you are part of a WWIVnet board, you can mail 1@5056. internet: I can be reached as woody@galileo.stmarys-ca.edu. The current version of the program is also available by anonymous ftp from galileo.stmarys-ca.edu (149.137.1.1) under /pub/twview. 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 a great game! 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 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. 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. 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. 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. 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 its 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.