PC portable programs

A thread of 2 messages, 9 March 1990 to 10 March 1990, in the order they were sent.

#1112 PC portable programs

Hi

Thanks to all those who responded to my question about the use of
portable IBM PC's (and clones) during a game. I enclose two poxy
programs to which I use in addition to the npc generator and name
generator programs from the archive-server. The first is i simple prog
to expand a planets upp to a full description (just to save you looking
it up) and the second determiones weapon availability based on tech/law
level of the world your on.

These programs are written by me and are TOTALLY USELESS !

(unless you are running them during the game.)


I compiled them using TurboC v2.0 but they are so trivial they would
require little (or no) conversion.

Anybody still got anymore ideas of useful programs to run DURING a game?
                                             _____
                                            /____/      /
                                           / __        /
                                          / /__/_/__/_/___
                                         ------------------
   |   |   |  ---------------------------------------------------------------
- --[ ]-[ ]-[ ]-- Paul J Netherwood   e-mail:  [email removed]
   |   |   |    Research
- --[ ]-[ ]-[ ]--
   |   |   |    School of Computer Science and Electronic Systems,
[address removed]
   |   |   |  --|\--------|--------------------------------------------------
                  \
- ----------------------------------
/**************************************************************************/
/*                                                                        */
/*   Program Name : full_upp.c                                            */
/*                                                                        */
/*   Description : Expands the upp for a planetary system to a full       */
/*                 description.                                           */
/*                                                                        */
/*                 Compiled on TurboC 2.0 using:                          */
/*                                                                        */
/*                       tcc -mt -lt full_upp.c                           */
/*                                                                        */
/*------------------------------------------------------------------------*/
/* Paul J. Netherwood  Kingston Polytechnic               | 28th Feb 1990 */
/*                                                        |               */
/*------------------------------------------------------------------------*/
/* Modification history:                                                  */
/*------------------------------------------------------------------------*/
/* none                                                   |               */
/**************************************************************************/

#include <stdio.h>
#include <ctype.h>

void
main(int argc, char *argv[])
{
int	size, atmos, hydro, pop, gov;
int cloudiness;

     if(argc == 1)
     {
           printf("Usage: full_upp <starb><size><atmos><hydro><pop><govt><law><tech>\n");
           return;
     }

     printf("Planetary details:\n");

	/* starport */
     printf("Starport class %c, ",toupper(argv[1][0]));

     switch(tolower(argv[1][0]))
     {
           case 'a' : printf("Excellent quality installation\n");
                      printf("Refined fuel available. Annual maintenance overhaul available. Shipyard\n");
                      printf("capabable of constructing starships and non-starships present.\n");
                      break;

           case 'b' : printf("Good quality installation\n");
                      printf("Refined fuel available. Annual maintenance overhaul available. Shipyard\n");
                      printf("capabable of constructing non-starships present.\n");
                      break;

           case 'c' : printf("Routine quality installation\n");
                      printf("Only unrefined fuel available. Reasonable repair facilities present.\n");
                      break;

           case 'd' : printf("Poor quality installation\n");
                      printf("Only unrefined fuel available. No repair facilities present.\n");
                      break;

           case 'e' : printf("Frontier installation\n");
                      printf("Essentially a marked spot of bedrock with no fuel, facilities, or\n");
                      printf("bases present.\n");
                      break;

           case 'f' : printf("Spaceport:Good quality installation\n");
                      printf("Only unrefined fuel available. Minor repair facilities.\n");
                      printf("Spaceport used mainly for inter-system travel.\n");
                      break;

           case 'g' : printf("Spaceport:Poor quality installation\n");
                      printf("Only unrefined fuel available. No repair facilities.\n");
                      printf("Spaceport used mainly for inter-system travel.\n");
                      break;

           case 'h' : printf("Spaceport:Primitive Installation; no facilities.\n");
                      printf("Spaceport used mainly for inter-system travel.\n");
                      break;

           case 'y' : printf("No spaceport.\n");
                      break;

           case 'x' : printf("No starport. No provision is made for any ship landings.\n");
                      break;

           default:   printf("Not a listed starport type\n");
     }

	/* size */
	switch(tolower(argv[1][1]))
	{
           case '0' : printf("Asteroid/Planetoid Belt.");
                      break;

           case 'r' : printf("Ring (around a world)\n");
                      break;

           case 's' : printf("Small World (200km) Surface gravity of .024 of a G\n");
                      break;

           case '1' : printf("Small world. Surface gravity of .122 of a G \n");
                      break;

		case '2' : printf("Small world. Surface gravity of .24 of a G \n");
                      break;

		case '3' : printf("Small world. Surface gravity of 37.7 of a G\n");
                      break;

		case '4' : printf("Small world. Surface gravity of .5 of a G \n");
                      break;

		case '5' : printf("Medium sized world. Surface gravity of .625 of a G \n");
                      break;

		case '6' : printf("Medium sized world. Surface gravity of .84 of a G \n");
                      break;

		case '7' : printf("Medium sized world. Surface gravity of .875 of a G \n");
                      break;


		case '8' : printf("Medium sized world. Surface gravity 1 G \n");
                      break;

		case '9' : printf("Large world. Surface gravity of 1.12 G's \n");
                      break;

           case 'a' : printf("Large world. Surface gravity of 1.25 G's \n");
                      break;

           default :  printf("Non standard world size.");
	}

     if(tolower(argv[1][1]) == 'a')
           size = 10;
     else
           if(tolower(argv[1][1]) == 'r' || tolower(argv[1][1]) == 's')
                 size = 0;
           else
                 size = (int)argv[1][1] - 48;

     if(size > 0 && size <= 10)
           printf("World diameter is %d miles (%d km).\n",(size*1000),(size*1600));

	/* atmos */
     if((int)argv[1][2] >= 141)
           atmos = (int)argv[1][2] - 131;
     else
           atmos = (int)argv[1][2] - 48;
	switch(tolower(argv[1][2]))
	{
           case '0' : printf("No atmosphere. Vacc suit needed.\n");
                      break;

           case '1' : printf("Trace atmosphere. Vacc suit needed.\n");
                      break;

           case '2' : printf("Very thin, tainted atmosphere. Combination mask needed.\n");
                      break;

           case '3' : printf("Very thin atmosphere. Compressor mask needed.\n");
                      break;

           case '4' : printf("Thin, tainted atmosphere. Filter mask needed.\n");
                      break;

           case '5' : printf("Thin atmosphere.\n");
                      break;

           case '6' : printf("Standard atmosphere.\n");
                      break;

           case '7' : printf("Standard, tainted atmosphere. Filter mask needed.\n");
                      break;

           case '8' : printf("Dense atmosphere.\n");
                      break;

           case '9' : printf("Dense, tainted atmosphere. Filter mask needed.\n");
                      break;

           case 'a' : printf("Exotic atmosphere. Oxygen tanks needed.\n");
                      break;

           case 'b' : printf("Corrosive atmosphere. Vacc suit or protective suit needed.\n");
                      break;

           case 'c' : printf("Insidious atmosphere. Vacc suit or protective suit needed.\n");
                      printf("Although it will only last for 2 to 12 hours\n");
                      break;

           case 'd' : printf("Dense, High atmosphere. The air pressure at sea (or lower)\n");
                      printf("levels is too great to support life, but at higher altitudes,\n");
                      printf("the atmosphere is breathable.\n");
                      break;

           case 'e' : printf("The worlds surface is ellipsoidal, not spherical in shape.\n");
                      printf("Because the atmosphere remains spherical, surface atmospheric\n");
                      printf("pressure ranges from very high at the middle to very low at the\n");
                      printf("ends. Breathable bands may exist at some point within the range\n");
                      printf("of pressure.\n");
                      break;

           case 'f' : printf("Thin, Low atmosphere. The world is a large, massive one with a thin\n");
                      printf("atmosphere which settles in the lowest levels of the terrain. As a\n");
                      printf("result, the atmosphere is unbreathable at most altitudes, but is\n");
                      printf("breathable at very low atltitudes (as in depressions or deep valleys).\n");


           default: printf("Non standard atmosphere classification.\n");
	}

	/* hydro */
	switch(tolower(argv[1][3]))
	{
           case '0' : hydro = 0;
                      printf("No free standing water.\n");
                      break;

           case '1' :
		case '2' :
		case '3' :
		case '4' :
		case '5' :
		case '6' :
		case '7' :
		case '8' :
		case '9' : if(tolower(argv[1][3]) == 'a')
                             hydro = 10;
                      else
                             hydro = (int)argv[1][3] - 48;
                      printf("%-2d percent water. ",hydro * 10);
                      switch(hydro)
                      {
                             case 0 : cloudiness = 0;
                                      break;

                             case 1 : cloudiness = 0;
                                      break;

                             case 2 : cloudiness = 10;
                                      break;

                             case 3 : cloudiness = 10;
                                      break;

                             case 4 : cloudiness = 20;
                                      break;

                             case 5 : cloudiness = 30;
                                      break;

                             case 6 : cloudiness = 40;
                                      break;

                             case 7 : cloudiness = 50;
                                      break;

                             case 8 : cloudiness = 60;
                                      break;

                             case 9 : cloudiness = 70;
                                      break;

                             case 10: cloudiness = 70;
                                      break;
                      }
                      if(atmos >= 10)
                             if(cloudiness == 70)
                                   cloudiness = 100;
                             else
                                   cloudiness += 40;
                      else
                             if(atmos < 3 && cloudiness > 20)
                                   cloudiness = 20;
                             else
                                   if(atmos == 14)
                                         cloudiness /= 2;
                      printf("Cloud cover is %d percent\n",cloudiness);
                      break;

           case 'a' : printf("No land masses.\n");
                      break;

           default : printf("Non standard hydrographics classification.\n");
	}

	/* pop */
     pop = (int)argv[1][4] - 48;
	switch(tolower(argv[1][4]))
	{
           case '0' : printf("No inhabitants.\n");
                      break;

           case '1' : printf("Tens of inhabitants.\n");
                      break;

		case '2' : printf("Hundreds of inhabitants.\n");
                      break;

		case '3' : printf("Thousands of inhabitants.\n");
                      break;

		case '4' : printf("Tens of thousands of inhabitants.\n");
                      break;

		case '5' : printf("Hundreds of thousands of inhabitants.\n");
                      break;

		case '6' : printf("Millions of inhabitants.\n");
                      break;

		case '7' : printf("Tens of millions of inhabitants.\n");
                      break;

		case '8' : printf("Hundreds of millions of inhabitants.\n");
                      break;

		case '9' : printf("Billions of inhabitants.\n");
                      break;

           case 'a' : pop = 10;
                      printf("Tens of billions of inhabitants.\n");
                      break;

           default : printf("Non standard population classification.\n");
	}

     /* Government */
     gov = (int)argv[1][5] - 48;
     switch(tolower(argv[1][5]))
     {
           case '0' : printf("No government structure. In many cases, family bonds predominate.\n");
                      break;

           case '1' : printf("Company/Corporation. Government by a company managerial elite; citizens\n");
                      printf("are company employees.\n");
                      break;

		case '2' : printf("Participating Democracy. Government by advice and consent of the citizen.\n");
                      break;

		case '3' : printf("Self-Perpetuating Oligarchy. Government by a restricted minority, with\n");
                      printf("little or no input from the masses.\n");
                      break;

		case '4' : printf("Representative Democracy. Government by elected representatives.\n");
                      break;

		case '5' : printf("Feudal Technocracy. Government by specific individuals for those who\n");
                      printf("agree to be ruled. Relationships are based on peformance of technical\n");
                      printf("activities which are mutually beneficial.\n");
                      break;

		case '6' : printf("Captive Government. Government by a leadership answerable to an outside\n");
                      printf("group; a colony or conqured area.\n");
                      break;

		case '7' : printf("Balcanization. No central ruling authority exists; rival governments compete\n");
                      printf("for control.\n");
                      break;

		case '8' : printf("Civil Service Bureaucracy. Government by agencies employing individuals\n");
                      printf("selected for their expertise.\n");
                      break;

		case '9' : printf("Impersonal Bureaucracy. Government by agencies which are insulated from\n");
                      printf("the governed.\n");
                      break;

           case 'a' : printf("Charismatic Dictator. Government by a single leader enjoying the confidence\n");
                      printf("of the citizens.\n");
                      break;

           case 'b' : printf("Non-Charismatic Dictator. A previous charismatic dictator has been replaced\n");
                      printf("by a leader through normal channels.\n");
                      break;

           case 'c' : printf("Charismatic Oligarchy. Government by a selected group, organisation, or class\n");
                      printf("enjoying the overwhelming confidence of the citizenry.\n");
                      break;

           case 'd' : printf("Religious Dictatorship. Government by a religious organisation without regard\n");
                      printf("to the needs of the citizenry.\n");
                      break;

           default : printf("Non standard government classification.\n");

     }

	/* law */
     printf("Law Level %c: ",toupper(argv[1][6]));
	switch(tolower(argv[1][6]))
	{
           case '0' : printf("No weapon prohibitions.\n");
                      break;

           case '1' : printf("Body pistols undetectable by standard detectors, \n");
                      printf("expolosives (bombs, grenades), and poison gas prohibited.\n");
                      break;

		case '2' : printf("Portable energy weapons (laser carbine, laser rifle)\n");
                      printf("prohibited. Ships gunnery not affected.\n");
                      break;

		case '3' : printf("Weapons of a strict millitary nature (machine guns,\n");
                      printf("automatic rifles) prohibited.\n");
                      break;

		case '4' : printf("Light assault weapons (sub-machine guns) prohibited.\n");
                      break;

		case '5' : printf("Personal concealable firearms (such as pistols and\n");
                      printf("revolvers) prohibited.\n");
                      break;

		case '6' : printf("Most firearms (all except shotguns) prohibited. The carrying of\n");
                      printf("any type of weapon openly is discouraged.\n");
                      break;

		case '7' : printf("Shotguns are prohibited.\n");
                      break;

		case '8' : printf("Long bladed weapons (all but daggers) are controlled, and open\n");
                      printf("possesion is prohibited.\n");
                      break;

		case '9' : printf("Possession of any weapon outside one's residence is prohibited.\n");
                      break;

           default  : printf("Possession of any weapon is prohibited.\n");
                      break;
	}

	/* tech */
     printf("Tech Level %c: ",toupper(argv[1][7]));
	switch(tolower(argv[1][7]))
	{
           case '0' : printf("Stone Age. Primitive.\n");
                      break;

           case '1' : printf("Bronze Age to Middle Ages.\n");
                      break;

		case '2' : printf("circa 1400 to 1700\n");
                      break;

		case '3' : printf("circa 1700 to 1860\n");
                      break;

		case '4' : printf("circa 1860 to 1900\n");
                      break;

		case '5' : printf("circa 1900 to 1939\n");
                      break;

		case '6' : printf("circa 1940 to 1969\n");
                      break;

		case '7' : printf("circa 1970 to 1979\n");
                      break;

		case '8' : printf("circa 1980 to 1989\n");
                      break;

		case '9' : printf("circa 1990 to 2000\n");
                      break;

           case 'a' : printf("Interstellar community\n");
                      break;

           case 'b' : printf("Average Imperial tech level\n");
                      break;

           case 'c' : printf("Average Imperial tech level\n");
                      break;

           case 'd' : printf("Above average Imperial tech level\n");
                      break;

           case 'e' : printf("Above average Imperial tech level\n");
                      break;

           case 'f' : printf("Technical maximum Imperial\n");
                      break;

           case 'g' : printf("Occasional non-Imperial\n");
                      break;

           default : printf("Non standard tech level classification.\n");
	}

     /* Trade classifications */
     printf("Trade Classifications: ");
     if(atmos >= 4 && atmos <= 9 && hydro >= 4 && hydro <= 8
     && pop >= 5 && pop <= 7)
           printf("Agricultural. ");

     if(atmos < 3 && hydro < 3 && pop >= 6)
           printf("Non-Agricultural. ");

     switch(atmos)
     {
           case 0 :
           case 1 :
           case 2 :
           case 4 :
           case 7 :
           case 9 : if(pop >= 9)
                         printf("Industrial. ");
     }

     if(pop < 6)
           printf("Non-Industrial. ");

     if( (atmos == 6 || atmos == 8) && pop >= 6 && pop <= 8
     && gov >= 4 && gov <= 9)
           printf("Rich. ");

     if(atmos >= 2 && atmos <= 5 && hydro < 3)
           printf("Poor. ");

     if(hydro == 10)
           printf("Water World. ");

     if(hydro == 0 && atmos >= 2)
           printf("Desert World. ");

     if(atmos == 0)
           printf("Vacuum World. ");

     if(tolower(argv[1][1]) == '0')
           printf("Asteroid Belt. ");

     if( (atmos == 0 || atmos == 1) && hydro >= 1)
           printf("Ice Capped. ");
}
- -----------------------------------

/**************************************************************************/
/*                                                                        */
/*   Program Name : guns.c                                                */
/*                                                                        */
/*   Description : Determines the availability of a requested weapon      */
/*                 based on the tech/law level of the world were you      */
/*                 are trying to purchase it. If the weapon is available  */
/*                 a listed price modifier is given and the delivery time.*/
/*                 This is based on an old, old White Dwarf article by    */
/*                 Steve Cook entitled 'Guns for Sale'.                   */
/*                                                                        */
/*                 Compiled using TurboC v2.0 (Ansii C) with:             */
/*                     tcc -mt -lt guns    (flags just make it a .com)    */
/*                                                                        */
/*                 Conversion to unix/non-ansii C will just require       */
/*                 removal of a few #includes and renaming of the         */
/*                 randomising functions.                                 */
/*                                                                        */
/*                 Additional weapons may be added to the table just by   */
/*                 adding a new line in the following format:             */
/*                 "gun",<base chance>,<tech level min>,<law level max>,  */
/*                                                                        */
/*------------------------------------------------------------------------*/
/* Paul J. Netherwood  Kingston Polytechnic               |8th Mar 1990   */
/*                                                        |               */
/*------------------------------------------------------------------------*/
/* Modification history:                                                  */
/*------------------------------------------------------------------------*/
/* none                                                   |               */
/**************************************************************************/

#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include <time.h>

/* Declaration and initialisation of gun table */

struct base_chance
{
     char *gun;
     int chance,       /* Base percentage chance weapon is available */
     tech_min,         /* Minimum tech level required to make weapon */
     law_max;          /* Maximum law level that weapon is allowed */
} gun_table[] = {
     /* Weapon */  /* Base Chance *//* Tech *//* Law */
     "Accelerator Rifle",    50,       9,       2,
     "ACR",                  40,       10,      2,
     "Assault Rifle",        60,       7,       3,
     "Auto Cannon",          1,        8,       2,
     "Auto Pistol",          55,       5,       4,
     "Auto Rifle",           35,       6,       3,
     "Auto Shotgun",         30,       6,       3,
     "Bayonet",              75,       3,       7,
     "Blade",                75,       3,       7,
     "Body Pistol",          60,       7,       0,
     "Broadsword",           45,       2,       7,
     "Carbine",              60,       5,       5,
     "Cutlass",              55,       3,       7,
     "Dagger",               95,       1,       8,
     "FGMP 14",              1,        14,      1,
     "FGMP 15",              1,        15,      1,
     "Flamethrower",         1,        6,       1,
     "Gauss Rifle",          25,       12,      2,
     "Halberd",              40,       2,       7,
     "Heavy Body Pistol",    40,       7,       0,
     "Laser Carbine",        20,       8,       1,
     "Laser Rifle",          20,       9,       1,
     "LAG",                  40,       8,       3,
     "Needle Rifle",         10,       14,      1,
     "PGMP 12",              2,        12,      1,
     "PGMP 13",              2,        13,      1,
     "PGMP 14",              1,        14,      1,
     "Plasma Pistol",        -1,       16,      1,
     "Pike",                 40,       1,       7,
     "RAM GL",               25,       8,       0,
     "Revolver",             70,       4,       4,
     "Rifle",                55,       5,       5,
     "Shock Disablers",      20,       9,       4,
     "Shotgun",              70,       4,       6,
     "SMG",                  35,       5,       3,
     "Snub Pistol",          50,       8,       4,
     "Snub Rifle",           35,       8,       5,
     "Spear",                60,       0,       7,
     "Stun Pistol",          30,       8,       4,
     "Stun Rifle",           25,       8,       5,
     "Submachine Pistol",    40,       7,       3,
     "Sword",                50,       1,       7,
     "Tonite Pistol",        20,       12,      1,
     "Tonite Carbine",       30,       12,      1,
     "VRF Gauss Gun",        1,        10,      3,
     "Warper",               -1,       17,      1,
     "Wiper",                -1,       18,      1
};

#define NKEYS   ( sizeof gun_table / sizeof(struct base_chance) )
#define MAX_ACROSS 3         /* maximum gun names displayed across screen */

#define d(x)   ((rand() % x) + 1)

void
main(void)
{
int n,m,tech,law,streetwise,bribe,modifier,total_chance,price_mod,roll;
char choice;
long now;

     /* Randomise */
     srand(time(&now) % 37);

     printf("Weapon Availability\n");

     /* Display all the weapons */
     for(n = 0; n < NKEYS; n += MAX_ACROSS)
     {
           /* Display one row of weapons */
           for(m = 0; m < MAX_ACROSS; m++)
           {
                 if(n+m >= NKEYS)
                       break;

                 printf("%3d: %-20s ",n+m,gun_table[n+m].gun);
           }
           printf("\n");     /* Next line */
     }

     printf("Choose weapon: "); scanf("%d",&n);

     printf("\nThe %s is a tech level %d weapon and is banned\n",
           gun_table[n].gun,gun_table[n].tech_min);
     printf("at law levels %d and over\n",gun_table[n].law_max+1);


     if(gun_table[n].chance < 0)
     {
           printf("The %s is not available through know channels\n",gun_table[n].gun);
           return;
     }

     if(gun_table[n].chance < 10)
           printf("Chance of finding one of these is pretty slim\n");
     else
           if(gun_table[n].chance < 50)
                 printf("Availabilty for this weapon is low\n");
           else
                 printf("Availabilty for this weapon is high\n");

     printf("\nEnter the worlds tech level: "); scanf("%d",&tech);
     printf("Enter the worlds law level: "); scanf("%d",&law);

     total_chance = gun_table[n].chance;       /* Get base chance */
     price_mod = 0;

     /* Tech level modifier */
     if(tech >= gun_table[n].tech_min)
     {
           modifier = (tech - gun_table[n].tech_min) * 10;
           if(modifier > 50)
                 modifier = 50;
     }
     else
           modifier = (tech - gun_table[n].tech_min) * 15;

     total_chance += modifier;

     /* Law level modifier */
     if(law >= gun_table[n].law_max)
     {
           modifier = (law - gun_table[n].law_max) * -25;
           price_mod = (law - gun_table[n].law_max) * 15;
     }
     else
     {
           modifier = (gun_table[n].law_max - law) * 10;
           price_mod = (gun_table[n].law_max - law) * -5;
           if(modifier > 30)
                 modifier = 30;
     }

     total_chance += modifier;

     printf("\nPurchased at a general shop? [y/n]");
     do
           choice = tolower(getch());
     while(choice != 'y' && choice != 'n');

     if(choice == 'y')
     {
           total_chance -= 35;
           price_mod += 30;
     }
     else
     {
           printf("\nPurchased at a non-specialist shop? (e.g hunting shop) [y/n]");
           do
                 choice = tolower(getch());
           while(choice != 'y' && choice != 'n');
           if(choice == 'y')
           {
                 total_chance -= 15;
                 price_mod += 10;
           }
     }

     printf("\nStreetwise skill (enter 0 for no skill): "); scanf("%d",&streetwise);

     total_chance += streetwise * 10;
     price_mod -= streetwise * 5;

     printf("\nPurchased on the black market? [y/n]");
     do
           choice = tolower(getch());
     while(choice != 'y' && choice != 'n');

     if(choice == 'y')
     {
           if(law >= gun_table[n].law_max)
           {
                 modifier = (law - gun_table[n].law_max) * 15;
                 price_mod = (law - gun_table[n].law_max) * 25;
                 total_chance += modifier;
           }

           printf("\nBribery skill (enter 0 for no skill): "); scanf("%d",&bribe);

           total_chance += bribe * 10;
           price_mod += bribe * 10;
     }
     if(d(100) <= total_chance)
     {
           printf("\n%s available for purchase at %-+d percent listed price\n",
                 gun_table[n].gun,price_mod);
           roll = d(100);
           if(roll <= 50)
                 printf("available straight away\n");
           else
                 if(roll <= 75)
                       printf("available after %d hours\n",d(6) + d(6));
                 else
                       if(roll <= 90)
                             printf("available after %d days\n",d(6) + d(6));
                       else
                             printf("available after %d weeks\n",d(6) + d(6));
     }
     else
           printf("\nWeapon unavailable\n");
}

#1113 Re: PC Portable programs

>Thanks to all those who responded to my question about the use of
>portable IBM PC's (and clones) during a game. I enclose two poxy
>programs to which I use in addition to the npc generator and name
>generator programs from the archive-server.

Thanks for the programs.  They may prove useful (though I don't have a
portable) I may try to borrow one from work on weekends.

>Anybody still got anymore ideas of useful programs to run DURING a game?

I am working on a program (written mostly in Turbo Pascal) that displays the
planet you are on and all systems within jump 4 on a hex grid map that is very
close to the Traveller Sector/Subsector maps.  I use colors a little
differently and I don't have names on the map, but listed down the side.  The
system you are on stays in the center of the screen :-).  Any way, you enter
the hex you are travelling to and it expands the UWP to an expanded description
(not quite as far as yours took it) and it generated cargo for the trip and
such.

I am working on the encounter (both animal and person) and an improved trade
system.  Parts of these such as the animal encounter program are written in
turbo C to be stand alone.  I plan to pipe the output to temp files to be read
in my the master Pascal program..

The BAD THING about this software is that because of the map requirements I
had to use 640x480 16 color mode (though not much is lost in mono).  This will
keep many portables from running it.  I am looking a a means to reduce the
requirements to EGA, but then I just say why, have anyone that wants it upgrade
to VGA anyway (if IBM can do it so can I :-)  )

I may make this a commercial product, though in all probablility, I will
release it to this list as a BETA test (its what you get for being cool dudes).
I have no estimates on it's release but it is pretty close.....

Rob