From: Eric S. Raymond Date: Mon, 24 Jan 2005 19:54:52 +0000 (+0000) Subject: Rename qso/ to qso.d/ X-Git-Tag: 2.0~4 X-Git-Url: http://thyrsus.com/gitweb/?a=commitdiff_plain;h=ec76b8eb05faad7ee33faed7fa932554bb3b1645;p=morse-classic.git Rename qso/ to qso.d/ --- diff --git a/Makefile b/Makefile index 5af8cba..707233f 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ BEEPERS = beepLinux.c beepOSS.c beepX11.c SOURCES = alarm.c morse.c alarm.h beep.h $(BEEPERS) MANPAGES = morse.1 QSO.1 DOCS = README HISTORY morse.xml morse.spec $(MANPAGES) -ALL= $(DOCS) Makefile $(SOURCES) test_input qso/*.[ch] qso/Makefile +ALL= $(DOCS) Makefile $(SOURCES) test_input qso.d/*.[ch] qso.d/Makefile # The flags necessary to link with the X11 libraries. X11LIBS = -L/usr/X11/lib -lX11 @@ -52,8 +52,8 @@ morseOSS: morse.o beepOSS.o $(CC) $(CFLAGS) -o $@ morse.o beepOSS.o -lm QSO: - cd qso && make - ln qso/QSO ./QSO + cd qso.d && make + ln qso.d/QSO ./QSO # # "Jocks find quartz glyph, vex BMW." is my attempt to win Stephen J. Gould's @@ -64,16 +64,16 @@ QSO: # he did say it's the closest he's seen so far. - Joe Dellinger # test: morse QSO - (cat test_input; qso/QSO) | morse -w 24 -l -e + (cat test_input; qso.d/QSO) | morse -w 24 -l -e testqso: morse QSO - qso/QSO | ./morse -w 20 -l -e + qso.d/QSO | ./morse -w 20 -l -e all: morse QSO clean: rm -f *.o morse QSO morseX11 morseLinux morseOSS - cd qso; make clean + cd qso.d; make clean pristine: clean rm -f $(MANPAGES) diff --git a/qso.d/Makefile b/qso.d/Makefile new file mode 100644 index 0000000..7368520 --- /dev/null +++ b/qso.d/Makefile @@ -0,0 +1,15 @@ +CFLAGS = -O3 + +OBJECTS = QSO.o put_form.o make_fre.o grammar.o util.o init_str.o +INCLUDES = antenna.h callsign.h city.h cityh.h heights.h jobs.h misc.h \ + names.h newcity.h rig.h weather.h + +all: QSO + +QSO: $(OBJECTS) + $(CC) -o $@ $(OBJECTS) + +init_str.o: $(INCLUDES) + +clean: + rm -f *.o QSO diff --git a/qso.d/QSO.c b/qso.d/QSO.c new file mode 100644 index 0000000..764d53a --- /dev/null +++ b/qso.d/QSO.c @@ -0,0 +1,753 @@ +/* + * Copyright (c) 1991 Paul J. Drongowski. + * Copyright (c) 1992 Joe Dellinger. + * Copyright (c) 2005 Eric S. Raymond. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +/* + * Return-Path: + * Received: from cadillac.siemens.com by montebello.soest.hawaii.edu (4.1/montebello-MX-1.9) + * id AA01487; Mon, 10 Aug 92 03:21:41 HST + * Received: from kevin.siemens.com by cadillac.siemens.com (4.1/SMI-4.0) + * id AA25847; Mon, 10 Aug 92 09:21:37 EDT + * Date: Mon, 10 Aug 92 09:21:37 EDT + * From: pjd@cadillac.siemens.com (paul j. drongowski) + * Message-Id: <9208101321.AA25847@cadillac.siemens.com> + * To: joe@montebello.soest.hawaii.edu + * Status: RO + */ + +/* + * This copy is slightly hacked by Joe Dellinger, August 1992 + * And some more... November 1992 + * + * Partially re-written by "murray@vs6.scri.fsu.edu" + * to use better grammar and to avoid some nonsensical + * responses (like claiming to be a person who's been licensed + * longer than they've been alive!), Jan 1994 + * + * Those improvements merged with others by Joe Dellinger, Oct 1994 + */ + +/* + * Generate QSO + */ + +/* + * When run, this program generates a single QSO. The form of the + * QSO is similar to QSO's one would expect to hear at a code test. + * It begins with a series of V's (commented out in this version), + * callsigns of the receiver and + * sender, followed by a few sentences about weather, name, + * occupation, etc. The QSO ends with the callsigns of the receiver + * and sender. + * + * All output is produced using "printf." This should make the + * program easy to port. Output can be piped into another program + * such as sparc-morse on the Sun or it can be redirected into + * a file (without viewing the contents of course!) + * + * The program design is similar to a "random poetry generator" + * or "mad-libs." Each QSO form is generated by its own C function, + * such as "PutForm1." Each function calls other C functions to + * produce the sentences in the QSO. The sentence forms are + * selected somewhat randomly as well as any blanks to be filled. + * Words and phrases are selected from several lists such as + * "Transceiver," "Antenna," "Job," etc. Sometimes this scheme is + * clever as in the formation of city names. Sometimes it is + * stupidly simple-minded and grammatical agreement is lost. + * By the way, the callsigns are real and were picked from + * rec.radio.amateur.misc on USENET. + * + * The program was constructed in C for Sun workstations. It uses + * the library function "drand48" in function "Roll" to produce + * pseudo-random numbers. The library function "srand48" and "time" + * in "main" are used to set the pseudo-random number seed. + * + * Known problems and caveats? Hey, it`s software! All Morse + * training programs handle the procedural signs (e.g., AR, SK) + * differently. The function "PutQSO" currently prints "+ %" + * for the AR and SK at the end of the QSO. These may be ignored, + * mapped into something else, or just plain cause your training + * program to roll over and play dead. I don`t know. This is a + * cheap hack. + * + * And speaking of cheap... The program will not generate all + * characters and pro-signs that are found on an "official" code + * test. This program is for practice only and should be supplemented + * with lots of random code. + * + * Always have fun! + */ + + +#include +#include + +char *A_Or_An (char *); +char *Choose (char *Words[], int Number); +int License_Seed (void); + +int their_age; /* PERSON'S AGE, SO THEY AREN'T LICENSED MORE + * THAN THEIR AGE */ + +extern char *Transceiver[]; +extern char *Antenna[]; +extern char *UpFeet[]; +extern char *Weather1[]; +extern char *Weather2[]; +extern char *Power[]; +extern char *Job[]; +extern char *Name[]; +extern char *CallSign[]; +extern char *License[]; +extern char *City[]; +extern char *NewCity[]; +extern char *CityHeights[]; +extern char *New[]; +extern char *Heights[]; +extern char *State[]; +extern char *Frqmisc[]; +extern char *Callmisc[]; +extern char *NumMisc[]; +extern char *Miscellaneous[]; +extern char *RST[]; + +int NXCVR; +int NANTENNA; +int NUPFEET; +int NWX1; +int NWX2; +int NPOWER; +int NJOB; +int NNAME; +int NCALLSIGN; +char *Sender, *Receiver; +int NLICENSE; +int NCITY; +int NNEWCITY; +int NCITYHTS; +int NNEW; +int NHEIGHTS; +int NSTATE; +int NFRQMISC; +int NFRQCALLMISC; + +char *FrqCallmisc[] = +{ + "QRW %s %d", + "QRZ %s %d", + "QSN %s %d", + "QSX %s %d", + "QRW %s %d?", + "QRZ %s %d?", + "QSN %s %d?", + "QSX %s %d?", + 0 +}; + +int NCALLMISC; +int NNUMMISC; +int NMISC; +int NRST; + + +/* + ************************************* + * Routines to put sentences/clauses * + ************************************* + */ + +void +PutMisc (void) +{ + printf ("%s\n", Choose (Miscellaneous, NMISC)); +} + +void +PutThanks (void) +{ + switch (Roll (6)) + { + case 2: + printf ("Thanks for your call.\n"); + break; + + case 3: + printf ("Tnx for ur call.\n"); + break; + + case 4: + printf ("Tnx for the call.\n"); + break; + + case 5: + printf ("Thanks for the call.\n"); + break; + + default: + printf ("Thanks %s for the call.\n", Choose (Name, NNAME)); + break; + } +} + +void +PutName (void) +{ + switch (Roll (6)) + { + case 2: + printf ("Name is %s.\n", Choose (Name, NNAME)); + break; + + case 4: + printf ("This is %s.\n", Choose (Name, NNAME)); + break; + + case 5: + printf ("%s here.\n", Choose (Name, NNAME)); + break; + + default: + printf ("My name is %s.\n", Choose (Name, NNAME)); + break; + } +} + +void +PutJob (void) +{ + switch (Roll (20)) + { + case 2: + case 3: + printf ("My occupation is %s.\n", Choose (Job, NJOB)); + break; + + case 4: + case 5: + printf ("I work as %s.\n", A_Or_An (Choose (Job, NJOB))); + break; + + case 6: + printf ("I was %s, now unemployed.\n", A_Or_An (Choose (Job, NJOB))); + break; + + case 11: + case 12: + printf ("Occupation is %s.\n", Choose (Job, NJOB)); + break; + + default: + printf ("I am %s.\n", A_Or_An (Choose (Job, NJOB))); + break; + } +} + +void +PutAge (void) +{ + + their_age = Roll (60) + 16; + + switch (Roll (5)) + { + case 3: + printf ("My age is %d.\n", their_age); + break; + + case 4: + printf ("I am %d years old.\n", their_age); + break; + + default: + printf ("Age is %d.\n", their_age); + break; + } +} + +void +PutLicense (void) +{ +int get_years_licence; + + get_years_licence = Roll (License_Seed ()); + if (get_years_licence < 2) + get_years_licence = 2; + + switch (Roll (12)) + { + case 1: + printf ("I have %s class licence.\n", + A_Or_An (Choose (License, NLICENSE))); + break; + + case 2: + printf ("I am %s license ham.\n", + A_Or_An (Choose (License, NLICENSE))); + break; + + case 3: + printf ("I am %s licence ham.\n", + A_Or_An (Choose (License, NLICENSE))); + break; + + case 4: + printf ("I have been licenced %d years as %s class.\n", + get_years_licence, Choose (License, NLICENSE)); + break; + + case 5: + printf ("I have %s class license.\n", + A_Or_An (Choose (License, NLICENSE))); + break; + + case 6: + printf ("I am %s class ham.\n", + A_Or_An (Choose (License, NLICENSE))); + break; + + case 7: + printf ("I have been licensed %d years as %s class.\n", + get_years_licence, Choose (License, NLICENSE)); + break; + + default: + printf ("I have been %s class ham for %d years.\n", + A_Or_An (Choose (License, NLICENSE)), get_years_licence); + break; + } +} + +void +PutTemperature (void) +{ + printf ("Temperature is %d.\n", Roll (80) + 10); +} + +void +PutWeather1 (void) +{ + switch (Roll (17)) + { + case 2: + printf ("WX is %s.\n", Choose (Weather1, NWX1)); + PutTemperature (); + break; + + case 3: + printf ("Weather here is %s.\n", Choose (Weather1, NWX1)); + break; + + case 4: + printf ("Weather is %s.\n", Choose (Weather1, NWX1)); + break; + + case 5: + printf ("WX is %s.\n", Choose (Weather1, NWX1)); + break; + + case 6: + PutTemperature (); + printf ("Weather here is %s.\n", Choose (Weather1, NWX1)); + break; + + case 7: + PutTemperature (); + printf ("Weather is %s.\n", Choose (Weather1, NWX1)); + break; + + case 8: + PutTemperature (); + printf ("WX is %s.\n", Choose (Weather1, NWX1)); + break; + + case 9: + printf ("Weather here is %s and temperature is %d.\n", + Choose (Weather1, NWX1), Roll (80) + 10); + break; + + case 10: + printf ("Weather is %s, temperature %d.\n", + Choose (Weather1, NWX1), Roll (80) + 10); + break; + + case 11: + printf ("WX is %d degrees and %s.\n", + Roll (80) + 10, Choose (Weather1, NWX1)); + break; + + case 12: + printf ("The WX is %s and the temp is %d degrees.\n", + Choose (Weather1, NWX1), Roll (80) + 10); + break; + + case 14: + printf ("Weather is %s.\n", Choose (Weather1, NWX1)); + PutTemperature (); + break; + + case 15: + printf ("Weather here is %s.\n", Choose (Weather1, NWX1)); + PutTemperature (); + break; + + default: + printf ("WX is %s and %d degrees.\n", + Choose (Weather1, NWX1), Roll (80) + 10); + } +} + +void +PutWeather2 (void) +{ + + switch (Roll (10)) + { + case 0: + printf ("It is %s.\n", Choose (Weather2, NWX2)); + break; + + case 1: + printf ("It is %s and %d degrees.\n", + Choose (Weather2, NWX2), Roll (80) + 10); + break; + + case 2: + printf ("The WX is %s and the temp is %d degrees.\n", + Choose (Weather2, NWX2), Roll (80) + 10); + break; + + case 3: + printf ("WX is %s and the temp is %d degrees.\n", + Choose (Weather2, NWX2), Roll (80) + 10); + break; + + case 4: + printf ("It is %s today.\n", Choose (Weather2, NWX2)); + break; + + case 5: + printf ("It is %s and %d degrees.\n", + Choose (Weather2, NWX2), Roll (100) + 3); + break; + + case 6: + printf ("The WX is %s and the temp is %d degrees.\n", + Choose (Weather2, NWX2), Roll (90) + 10); + break; + + case 7: + printf ("WX is %s and the temp is %d degrees.\n", + Choose (Weather2, NWX2), Roll (80) + 10); + break; + + default: + printf ("It is %s here.\n", Choose (Weather2, NWX2)); + break; + } +} + +void +PutWeather (void) +{ + switch (Roll (4)) + { + case 3: + PutWeather1 (); + break; + + default: + PutWeather2 (); + break; + } +} + +void +PutCityState (void) +{ + switch (Roll (6)) + { + case 4: + printf ("%s %s, ", + Choose (CityHeights, NCITYHTS), Choose (Heights, NHEIGHTS)); + break; + + case 5: + printf ("%s %s, ", Choose (New, NNEW), Choose (NewCity, NNEWCITY)); + break; + + default: + printf ("%s, ", Choose (City, NCITY)); + break; + } + printf ("%s.\n", Choose (State, NSTATE)); +} + +void +PutLocation (void) +{ + + switch (Roll (5)) + { + case 3: + printf ("My QTH is "); + break; + + case 4: + printf ("My location is "); + break; + + default: + printf ("QTH is "); + break; + + } + PutCityState (); +} + +void +PutRig (void) + +{ + switch (Roll (19)) + { + case 0: + case 1: + printf ("My rig runs %s watts into %s up %s feet.\n", + Choose (Power, NPOWER), A_Or_An (Choose (Antenna, NANTENNA)), + Choose (UpFeet, NUPFEET)); + break; + + case 2: + case 3: + printf ("Rig is a %s watt %s and antenna is %s.\n", + Choose (Power, NPOWER), Choose (Transceiver, NXCVR), + A_Or_An (Choose (Antenna, NANTENNA))); + break; + + case 4: + case 5: + printf ("My transceiver is %s.\n", A_Or_An (Choose (Transceiver, NXCVR))); + printf ("It runs %s watts into %s.\n", + Choose (Power, NPOWER), A_Or_An (Choose (Antenna, NANTENNA))); + break; + + case 6: + case 7: + printf ("The rig is %s running %s watts.\n", + A_Or_An (Choose (Transceiver, NXCVR)), Choose (Power, NPOWER)); + printf ("Antenna is %s up %s m.\n", + A_Or_An (Choose (Antenna, NANTENNA)), Choose (UpFeet, NUPFEET)); + break; + + case 8: + case 9: + case 10: + case 11: + printf ("My rig runs %s watts into %s up %s meters.\n", + Choose (Power, NPOWER), A_Or_An (Choose (Antenna, NANTENNA)), + Choose (UpFeet, NUPFEET)); + break; + + case 12: + printf ("My rig runs %s watts into %s up %s feet, but\nthe antenna has partly fallen.\n", + Choose (Power, NPOWER), A_Or_An (Choose (Antenna, NANTENNA)), + Choose (UpFeet, NUPFEET)); + break; + + case 13: + printf ("Rig is %s running %s watts into %s up %s ft.\n", + A_Or_An (Choose (Transceiver, NXCVR)), Choose (Power, NPOWER), + A_Or_An (Choose (Antenna, NANTENNA)), Choose (UpFeet, NUPFEET)); + break; + + case 14: + printf ("My rig runs %s watts into %s up %s feet.\n", + Choose (Power, NPOWER), A_Or_An (Choose (Antenna, NANTENNA)), + Choose (UpFeet, NUPFEET)); + break; + + case 15: + printf ("Rig is %s watt %s and antenna is %s.\n", + A_Or_An (Choose (Power, NPOWER)), + Choose (Transceiver, NXCVR), + Choose (Antenna, NANTENNA)); + break; + + case 16: + printf ("My transceiver is %s.\n", + A_Or_An (Choose (Transceiver, NXCVR))); + printf ("It runs %s watts into %s.\n", + Choose (Power, NPOWER), + A_Or_An (Choose (Antenna, NANTENNA))); + break; + + case 17: + printf ("The rig is %s running %s watts.\n", + A_Or_An (Choose (Transceiver, NXCVR)), + Choose (Power, NPOWER)); + printf ("Antenna is %s up %s feet.\n", + A_Or_An (Choose (Antenna, NANTENNA)), + Choose (UpFeet, NUPFEET)); + break; + + default: + printf ("Rig is %s ", + A_Or_An (Choose (Transceiver, NXCVR))); + printf ("running %s watts into %s up %s feet.\n", + Choose (Power, NPOWER), + A_Or_An (Choose (Antenna, NANTENNA)), + Choose (UpFeet, NUPFEET)); + break; + } +} + +void +PutRST (void) +{ +register char *TheRST; + + TheRST = Choose (RST, NRST); + + switch (Roll (8)) + { + case 0: + printf ("UR RST %s=%s.\n", TheRST, TheRST); + break; + + case 1: + printf ("RST is %s=%s.\n", TheRST, TheRST); + break; + + case 2: + printf ("RST %s=%s.\n", TheRST, TheRST); + break; + + case 3: + printf ("Your RST %s=%s.\n", TheRST, TheRST); + break; + + case 4: + printf ("Your RST is %s=%s.\n", TheRST, TheRST); + break; + + case 5: + printf ("Your signal is RST %s/%s.\n", TheRST, TheRST); + break; + + case 6: + printf ("UR signal is RST %s,%s.\n", TheRST, TheRST); + break; + + default: + printf ("Your RST is %s/%s.\n", TheRST, TheRST); + break; + } +} + + +void +PutQ_And_Freq (void) +{ + switch (Roll (8)) + { + case 2: + printf (Frqmisc[Roll (NFRQMISC)], make_freq ()); + printf ("\n"); + break; + + case 3: + printf (Callmisc[Roll (NFRQMISC)], + Choose (CallSign, NCALLSIGN)); + printf ("\n"); + break; + + case 4: + printf (FrqCallmisc[Roll (NFRQCALLMISC)], + Choose (CallSign, NCALLSIGN), + make_freq ()); + printf ("\n"); + break; + + case 5: + printf (NumMisc[Roll (NNUMMISC)], + Roll (3) + Roll (2) + 1); + printf ("\n"); + break; + + default: + break; + + } +} + +void +PutFirstCallsign (void) +{ + Sender = Choose (CallSign, NCALLSIGN); + Receiver = Choose (CallSign, NCALLSIGN); + printf ("%s de %s\n", Receiver, Sender); +} + +void +PutLastCallsign (void) +{ + printf ("%s de %s\n", Receiver, Sender); +} + +main (int argc, char **argv) +{ + + NXCVR = CountStrings (Transceiver); + NANTENNA = CountStrings (Antenna); + NUPFEET = CountStrings (UpFeet); + NPOWER = CountStrings (Power); + NRST = CountStrings (RST); + NWX1 = CountStrings (Weather1); + NWX2 = CountStrings (Weather2); + NJOB = CountStrings (Job); + NNAME = CountStrings (Name); + NSTATE = CountStrings (State); + NCITY = CountStrings (City); + NCITYHTS = CountStrings (CityHeights); + NNEW = CountStrings (New); + NHEIGHTS = CountStrings (Heights); + NNEWCITY = CountStrings (NewCity); + NLICENSE = CountStrings (License); + NMISC = CountStrings (Miscellaneous); + NCALLSIGN = CountStrings (CallSign); + NFRQMISC = CountStrings (Frqmisc); + NFRQCALLMISC = CountStrings (FrqCallmisc); + NCALLMISC = CountStrings (Callmisc); + NNUMMISC = CountStrings (NumMisc); + + srand48 ((long) time (0)); + + PutQSO (); + + return 0; +} diff --git a/qso.d/antenna.h b/qso.d/antenna.h new file mode 100644 index 0000000..1452605 --- /dev/null +++ b/qso.d/antenna.h @@ -0,0 +1,33 @@ +"10 meter dipole", +"10 meter whip", +"3 element beam", +"5 band vertical", +"5 element loop", +"7 band beam", +"beam", +"delta loop", +"dipole", +"doublet zepp", +"dummy load", +"ground=plane", +"half wave dipole", +"inverted V", +"light bulb", +"log periodic", +"long=wire", +"monobander", +"parasitic beam", +"quad loop", +"quad vertical", +"quagi", +"quarter wave vertical", +"random wire up 2 kite", +"random wire up to kite", +"random wire", +"rhombic", +"symmetrical delta loop", +"trap doublet", +"tribander", +"whip", +"yagi", +"zepp", diff --git a/qso.d/callsign.h b/qso.d/callsign.h new file mode 100644 index 0000000..ed69af0 --- /dev/null +++ b/qso.d/callsign.h @@ -0,0 +1,108 @@ +"AA0ET", +"AA4LR", +"AA5BT", +"AA6NP", +"AA6YD", +"AA9BK", +"AB5AP", +"AB6FI", +"AC4HF", +"G0GWA", +"GM4ZNX", +"I5FLN", +"IK5AAX", +"JA1BLV", +"JY1", +"K2WK", +"K5RC", +"K6OCK", +"K6XO", +"K9ALD", +"KA0WCH", +"KA1AXY", +"KA1CV", +"KA1UTU", +"KA1ZGC", +"KA2RAF", +"KA6S", +"KB0CY", +"KB2NRH", +"KB6CSP", +"KB6JXT", +"KC6SKV", +"KC6SSS", +"KC6TDR", +"KC6VWV", +"KD3FU", +"KD4AUS", +"KD4CPL", +"KE2TP", +"KE4ZV", +"KF6BZF", +"KF8NH", +"KJ6NN", +"KJ9U", +"KJ9U/KH6", +"KK6JQ", +"KM3T", +"KT7H", +"N1AL", +"N1JCX", +"N4PBK", +"N4VRN", +"N5IAL", +"N5OP", +"N6BIS", +"N6MWC", +"N6TTO", +"N8EMR", +"N9FZX", +"N9JRV", +"N9LFF", +"N9MYI", +"NE3X", +"NH6EG", +"NH6EG/5", +"NH6ZW", +"NJ7E", +"NR3Z", +"NT1G", +"OD5NG", +"OH3BK", +"OH8NUP", +"TG9VT", +"UT5RP", +"VE6MGS", +"VE7EMD", +"VK2BQS", +"VK2EG", +"W0PBV", +"W0RIJ", +"W0RSB", +"W2FG", +"W2JGR", +"W3GRG", +"W3OTC", +"WA1UXA", +"WA2AGE", +"WA3EEC", +"WA3TBL", +"WA3UQV", +"WA5RPF", +"WA6DGX", +"WA7VYJ", +"WA8ZGO", +"WB2CJL", +"WB4JCM", +"WB5FDP", +"WB5FKH", +"WB5NRN", +"WB7CJO", +"WB7EEL", +"WB7TZA", +"WB8EOH", +"WB9IVR", +"WD0EIB", +"WH6UR", +"WH6UR/5", +"WX9T", diff --git a/qso.d/city.h b/qso.d/city.h new file mode 100644 index 0000000..b3c74b9 --- /dev/null +++ b/qso.d/city.h @@ -0,0 +1,179 @@ +"Agassiz", +"Aiea", +"Alexander", +"Asbury", +"Baker", +"Bayaney", +"Beckley", +"Bedford", +"Bixby", +"Branyan", +"Brazoria", +"Broken Arrow", +"Brunswick", +"Bryan", +"Burnsville", +"Buzzard", +"Cambridge", +"Carrizo", +"Catoosa", +"Chamizal", +"Charleston", +"Chepiwanoxet", +"Chesuncook", +"Chinquapin", +"Circleville", +"Claquato", +"Clarksburg", +"Clarksville", +"Clear Lake", +"Cleveland", +"College", +"Crystal", +"Duncanville", +"Elizabeth", +"Enid", +"Ewa", +"Faalaaga", +"Fairbanks", +"Fairfax", +"Fairfield", +"Flamboyant Gardens", +"Flint", +"Gahanna", +"Gappas", +"Glenpool", +"Grant", +"Greensburg", +"Guyandotte", +"Guyanoga", +"Harper Valley", +"Harper", +"Harquahala", +"Hells Crossing", +"Hill Valley", +"Hillsdale", +"Honolulu", +"Hyannis", +"Iraan", +"Iyanbito", +"Jamestown", +"Jefferson", +"Jenks", +"Juncos", +"Kaaawa", +"Kohlsaat", +"Kona", +"Laager", +"Lakewood", +"Lancaster", +"Lawrenceville", +"Leyan", +"Lincoln", +"Litchfield", +"London", +"Long Branch", +"Luxello", +"Lyndale", +"Lyndhurst", +"Lynnville", +"Maaloon", +"Maitwan", +"Manasquan", +"Mansfield", +"Maple", +"Meadows", +"Melbourne", +"Mentor", +"Mercer", +"Mesquite", +"Midland", +"Milldale", +"Milltown", +"Moorestown", +"Moscow", +"Mountain View", +"Moxee", +"Murray", +"Muskogee", +"Musquiz", +"Naxera", +"New London", +"Newfield", +"Newport", +"Nipgen", +"Nisqually", +"Nome", +"Noname", +"Noxubee", +"Nutzotin", +"Oak", +"Occoquan", +"Olmstead", +"Owasso", +"Oxford", +"Oxnard", +"Paradise", +"Paris", +"Pattaquattic", +"Pawtuxet", +"Perry", +"Piscataquis", +"Potter", +"Pottsville", +"Praag", +"Quanah", +"Quebec", +"Redwood", +"Rueechayaam", +"Russellville", +"Salem", +"San Pasqual", +"Sandy", +"Sapulpa", +"Saratoga", +"Sequatchie", +"Smithville", +"Snoqualmie", +"Springdale", +"Springfield", +"Squaxin", +"Starkville", +"Sunnyvale", +"Sunset Valley", +"Suquamish", +"Tahlequah", +"Tahquamenon", +"Texoma", +"Texum", +"Tinker", +"Trenton", +"Tulsa", +"Twisp", +"Umpqua", +"Union", +"Uruguay", +"Utica", +"Vancouver", +"Verona", +"Viroqua", +"Vista", +"Waldberggaard", +"Walnut", +"Warners Landing", +"Warren", +"Warsaw", +"Washington", +"Wesleyanna", +"Weston", +"Wheatfield", +"Williamson", +"Worchester", +"Wyandanch", +"Xanthus", +"Xenia", +"Yangtze", +"Yellowstone", +"Yreka", +"Zolton", +"Zuni", diff --git a/qso.d/cityh.h b/qso.d/cityh.h new file mode 100644 index 0000000..fa1979b --- /dev/null +++ b/qso.d/cityh.h @@ -0,0 +1,46 @@ +"Apple", +"Ashford", +"Baker", +"Baldwin", +"Banner", +"Barnard", +"Benton", +"Cabbot", +"Carson", +"Chester", +"College", +"Conway", +"Cornwall", +"Crystal", +"Duxbury", +"Fletcher", +"Franklin", +"Granite", +"Grant", +"Guyan", +"Hamilton", +"Harper", +"Hickory", +"Hoosick", +"Jefferson", +"Lincoln", +"Maple", +"Mercer", +"Morgan", +"Morris", +"Murray", +"Oak", +"Orwell", +"Oswego", +"Perry", +"Potter", +"Quail", +"Salem", +"Stafford", +"Stone", +"Tinker", +"Walnut", +"Warren", +"Washington", +"Weston", +"Wilton", diff --git a/qso.d/grammar.c b/qso.d/grammar.c new file mode 100644 index 0000000..173309d --- /dev/null +++ b/qso.d/grammar.c @@ -0,0 +1,32 @@ +int +is_vowel (first_char) + char first_char; +{ + if ( + first_char == 'A' || + first_char == 'E' || + first_char == 'I' || + first_char == 'O' || + first_char == 'U' || + first_char == 'a' || + first_char == 'e' || + first_char == 'i' || + first_char == 'o' || + first_char == 'u' + ) + return (1); + return (0); +} + +char buffer[200]; + +char * +A_Or_An (string) + char *string; +{ + if (is_vowel (string[0]) == 1) + sprintf (buffer, "an %s", string); + else + sprintf (buffer, "a %s", string); + return ((char *) buffer); +} diff --git a/qso.d/heights.h b/qso.d/heights.h new file mode 100644 index 0000000..5b7788c --- /dev/null +++ b/qso.d/heights.h @@ -0,0 +1,37 @@ +"Beach", +"Canyon", +"Castle", +"City", +"Corner", +"Cove", +"Creek", +"Estates", +"Forest", +"Gardens", +"Glen", +"Grove", +"Harbor", +"Heights", +"Hill", +"Hills", +"Hole", +"Island", +"Knob", +"Lake", +"Meadow", +"Meadows", +"Mill", +"Mountain", +"Neck", +"Palisades", +"Park", +"Pass", +"Plantation", +"Ridge", +"River", +"Springs", +"Station", +"Swale", +"Terrace", +"Valley", +"Wood", diff --git a/qso.d/init_str.c b/qso.d/init_str.c new file mode 100644 index 0000000..ae69660 --- /dev/null +++ b/qso.d/init_str.c @@ -0,0 +1,266 @@ +char *Transceiver[] = +{ +#include "rig.h" + 0 +}; + +char *Antenna[] = +{ +#include "antenna.h" + 0 +}; + +char *UpFeet[] = +{ + "10", "15", "20", "25", "30", "35", "40", "45", + "50", "55", "60", "65", "70", "75", "80", "85", + "90", "95", "100", + "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", + "10 1/2", "11 1/2", "25", "29 1/2", "30", "35", "40", "42", + "45", "45 1/2", "45.5", + "50", "55", "60", "62", "65", "70", "75", "80", "85", "87 1/3", + "90", "95", "100", "103", "137", "189 1/2", "210", "246", "250", + 0 +}; + +char *Weather1[] = +{ + "sunny", + "rain", + "freezing rain", + "sleet", + "snow", + "cloudy", + "partly cloudy", + "partly sunny", + "clear", + 0 +}; + +char *Weather2[] = +{ +#include "weather.h" + 0 +}; + +char *Power[] = +{ + "2", "5", "10", "20", "25", "40", "50", "80", "100", + "125", "140", "150", "170", "200", "250", "270", "300", + 0 +}; + +char *Job[] = +{ +#include "jobs.h" + 0 +}; + +char *Name[] = +{ +#include "names.h" + 0 +}; + +char *CallSign[] = +{ +#include "callsign.h" + 0 +}; + +char *License[] = +{ + "Novice", + "Technician", + "Tech", + "Tech plus", + "Tech plus", + "Tech plus", + "Tech plus", + "Tech no code", + "General", + "Advanced", + "Extra", + "Extra", + "Extra", + 0 +}; + +char *City[] = +{ +#include "city.h" + 0 +}; + +char *NewCity[] = +{ +#include "newcity.h" + 0 +}; + +char *CityHeights[] = +{ +#include "cityh.h" + 0 +}; + +char *New[] = +{ + "New", + "Old", + "North", + "South", + "East", + "West", + "New", + "Old", + "North", + "Northeast", + "Northwest", + "South", + "Southwest", + "Southeast", + "East", + "West", + "Upper", + "Lower", + 0 +}; + +char *Heights[] = +{ +#include "heights.h" + 0 +}; + +char *State[] = +{ + "Alabama", + "Alaska", + "Arizona", + "Arkansas", + "California", + "Colorado", + "Connecticut", + "District of Columbia", + "Delaware", + "Florida", + "Georgia", + "Guam", + "Hawaii", + "Idaho", + "Illinois", + "Indiana", + "Iowa", + "Kansas", + "Kentucky", + "Louisiana", + "Maine", + "Maryland", + "Massachusetts", + "Michigan", + "Midway", + "Minnesota", + "Mississippi", + "Missouri", + "Montana", + "Nebraska", + "Nevada", + "New Hampshire", + "New Jersey", + "New Mexico", + "New York", + "North Carolina", + "North Dakota", + "Ohio", + "Oklahoma", + "Oregon", + "Pennsylvania", + "Puerto Rico", + "Rhode Island", + "Saipan", + "American Samoa", + "South Carolina", + "South Dakota", + "Tennessee", + "Texas", + "Utah", + "Vermont", + "Virginia", + "Virgin Islands", + "Wake Island", + "Washington", + "West Virginia", + "Wisconsin", + "Wyoming", + 0 +}; + +char *Frqmisc[] = +{ + "QSN %d?", + "QSU %d?", + "QSW %d?", + "QSN %d", + "QSU %d", + "QSW %d", + 0 +}; + +char *Callmisc[] = +{ + "QRK %s", + "QRL %s", + "QRZ %s", + "QSP %s", + "QRK %s?", + "QRL %s?", + "QRZ %s?", + "QSP %s?", + 0 +}; + +char *NumMisc[] = +{ + "QRI %d", + "QRK %d", + "QRM %d", + "QRN %d", + "QRS %d", + "QRY %d", + "QSG %d", + "QTA %d", + "QTC %d", + "QRI %d?", + "QRK %d?", + "QRM %d?", + "QRN %d?", + "QRS %d?", + "QRY %d?", + "QSG %d?", + "QTA %d?", + "QTC %d?", + 0 +}; + +char *Miscellaneous[] = +{ +#include "misc.h" + 0 +}; + +char *RST[] = +{ + "555", + "577", + "578", + "579", + "588", + "589", + "599", + "478", + "354", + "248", + "126", + 0 +}; diff --git a/qso.d/jobs.h b/qso.d/jobs.h new file mode 100644 index 0000000..6605174 --- /dev/null +++ b/qso.d/jobs.h @@ -0,0 +1,71 @@ +"administrator", +"airline pilot", +"artist", +"attorney", +"bricklayer", +"bus driver", +"carpenter", +"chemist", +"clerk", +"clown", +"college student", +"consultant", +"cook", +"corporate liquidator", +"curator", +"dentist", +"designer", +"director", +"doctor", +"driver", +"electrician", +"engineer", +"farmer", +"fireman", +"gardener", +"geophysicist", +"guard", +"high school student", +"hs student", +"human resource consultant", +"investment banker", +"janitor", +"jr college student", +"juggler and unicyclist", +"junior college student", +"lawyer", +"letter carrier", +"librarian", +"mafia killer", +"mathematician", +"mechanic", +"midwife", +"milkman", +"nurse", +"orthodontist", +"pacifist", +"painter", +"petroleum engineer", +"physician", +"physicist", +"police officer", +"politician", +"prison guard", +"professor", +"programmer", +"researcher", +"sailor", +"sanitation worker", +"sculptor", +"secretary", +"security guard", +"semiotician", +"soldier", +"sql programmer", +"stock broker", +"student", +"systems analyst", +"teacher", +"teller", +"vulcanologist", +"writer", diff --git a/qso.d/make_fre.c b/qso.d/make_fre.c new file mode 100644 index 0000000..412a463 --- /dev/null +++ b/qso.d/make_fre.c @@ -0,0 +1,28 @@ +#define M80 2 +#define M40 3 +#define M15 4 +#define M10 5 +#define NUM_BAND 4 + +int +make_freq (void) +{ + switch (Roll (NUM_BAND + 2)) + { + case M80: + return (3675 + Roll (50)); + break; + case M40: + return (7100 + Roll (50)); + break; + case M15: + return (21100 + Roll (100)); + break; + case M10: + return (28100 + Roll (200)); + break; + default: + return (7100 + Roll (50)); + break; + } +} diff --git a/qso.d/misc.h b/qso.d/misc.h new file mode 100644 index 0000000..e10b2ce --- /dev/null +++ b/qso.d/misc.h @@ -0,0 +1,293 @@ +"+%=x/,? 73 just testing you.", +",?/=+9% 73 just testing you.", +",?/=q+% 73 just testing u.", +"8y67fvgb oops cat on keyboard.", +"9p0ojgbhnw23 oops cat on keyboard.", +"%w=+/,? 73 just testing you.", +"A clumsy gecko just fell on my hand.", +"Are you a communist?", +"Are you a democrat?", +"Are you a libertarian?", +"Are you a republican?", +"Are you divorced?", +"Are you good at auto repair?", +"Are you good at calculus? I have a question for you.", +"Are you good at car repair? I have a question for you.", +"Are you good at group theory? I have a question for you.", +"Are you good at summing infinite series?", +"Are you married?", +"Are you on daylight savings time?", +"Are you single?", +"Are you using a linear amplifier?", +"Are you using an iambic key?", +"Are you widowed?", +"Aye, laddie, have you ever been to sea?", +"Can you pick kryptonite locks? Those are tricky.", +"Can you pick kryptonite locks?", +"Can you pick master locks? Those are supposed to be easy.", +"Can you think of something else interesting to say?", +"Copy?", +"Cpy?", +"Did you attend ORU?", +"Did you hear news?", +"Did you hear the news?", +"Do u understand English?", +"Do you have a baby?", +"Do you have a cat?", +"Do you have a dog?", +"Do you have a ferret?", +"Do you have a gecko?", +"Do you have a horse?", +"Do you know morse code?", +"Do you know the word copacetic?", +"Do you know the word garrulous?", +"Do you know the word prosy?", +"Do you know what a pangram is?", +"Do you like bach?", +"Do you like bernstein?", +"Do you like c and w music?", +"Do you like classical music?", +"Do you like country music?", +"Do you like hawaiian music?", +"Do you like jawaiian music?", +"Do you like modern rock?", +"Do you like mozart?", +"Do you like pop music?", +"Do you like reggae music?", +"Do you like rock music?", +"Do you like swing music?", +"Do you listen to Deutsche Welle?", +"Do you listen to Radio Australia?", +"Do you listen to Radio Moscow?", +"Do you listen to Radio New Zealand Intl?", +"Do you listen to Radio Peace Peoples Republic of Korea?", +"Do you listen to VOA?", +"Do you listen to click and clack on PBS?", +"Do you listen to the BBC?", +"Do you prefer metric units?", +"Do you recycle often?", +"Do you understand English?", +"Do you watch Quantum Leap?", +"Do you watch STTNG?", +"Do you watch Simpsons?", +"Gaverete Ruskie?", +"Habla espanol?", +"Has the war started yet?", +"Have a nice T day.", +"Have a nice thanksgiving.", +"Have you been to Hawaii recently?", +"Have you been to Kauai since Iniki?", +"Have you ever been to New Madrid, Missouri?", +"Have you ever been to the Chatham islands?", +"Have you ever contacted Kalawao county, Molokai?", +"Have you ever contacted Loving county, Texas?", +"Have you ever played lemmings?", +"Have you ever played tetris?", +"Have you ever seen a computer virus?", +"How copy so far?", +"How copy?", +"How did you learn morse code?", +"How is my signal?", +"How is the weather?", +"How long have you been a radio amateur?", +"How old is your rig?", +"Hows my signal?", +"Hows the weather?", +"I am mobile and am going to the office.", +"I am mobile and am going to work.", +"I am mobile and driving to work.", +"I am mobile, driving cross country.", +"I am mobile, driving home from work.", +"I am mobile, riding a Peruvian Paso Fino horse.", +"I am mobile, riding a Peruvian Paso horse.", +"I am mobile, stuck in traffic.", +"I am using a linear amplifier.", +"I am using an iambic key.", +"I just saw a bolide.", +"I live at 10 Downing.", +"I live at 1010 Springwood.", +"I live at 1620 Keeaumoku.", +"I live at 2500 Pennsylvania.", +"I live at 61C Escondido.", +"I sometimes monitor ULF for earthquake precursors.", +"I sometimes monitor ulf for earthquake precursors.", +"I sometimes work packet on vhf.", +"Is it green there or brown?", +"Is the bad news true?", +"Is your state the one that doesnt have any city governments?", +"Is your state the one that has a unicameral legislature?", +"Is your state the one that has boroughs instead of counties?", +"Is your state the one that has parishes instead of counties?", +"Is your state the one that has townships instead of counties?", +"Ive fallen and I cant get up.", +"Jocks find quartz glyph, vex BMW.", +"Jocks find quartz glyph, vex BMW.", +"Jocks find quartz glyph, vex BMW.", +"Lots of QRM.", +"Mele kelikimaka and hauoli makahiki hou 1995.", +"Must QRT for Babylon V.", +"Must QRT for Star Trek.", +"Must QRT for bathroom break.", +"Must QRT for breakfast.", +"Must QRT for cold breakfast.", +"Must QRT for cold dinner.", +"Must QRT for cold supper.", +"Must QRT for diarreah break.", +"Must QRT for dinner.", +"Must QRT for hot breakfast.", +"Must QRT for hot dinner.", +"Must QRT for hot lunch.", +"Must QRT for hot supper.", +"Must QRT for lunch.", +"Must QRT for sleep.", +"Must QRT for some sleep.", +"Must QRT for supper.", +"Must QRT invading tanks making too much noise outside to hear you.", +"Must QRT occupation forces knocking at door.", +"Must QRT to hear news about approaching hurricane.", +"Must QRT wind has blown door open again.", +"Must QRT, lightning storm has started.", +"Must QRT, lightning threatens.", +"Must QRT, nuclear attack?", +"Must QRT, tornado sirens sounding.", +"Must QRT, tsunami sirens sounding.", +"Must QRT, weather radio warbling.", +"Our neighbors have a horse named morse code.", +"Our neighbors have a horse named morse.", +"Please QRS.", +"Propagation is good.", +"Propagation is poor.", +"Propagation is very good.", +"Propagation is very poor.", +"QLF?", +"QRG", +"QRH", +"QRI 1", +"QRI 2", +"QRI 3", +"QRI", +"QRJ", +"QRK 1", +"QRK 2", +"QRK 3", +"QRK 4", +"QRK 5", +"QRK", +"QRL", +"QRM", +"QRM?", +"QRN 1", +"QRN 2", +"QRN 3", +"QRN 4", +"QRN 5", +"QRN", +"QRO", +"QRP", +"QRP?", +"QRQ 10", +"QRQ 15", +"QRQ 20", +"QRQ 5", +"QRQ", +"QRS 10", +"QRS 15", +"QRS 20", +"QRS 5", +"QRS", +"QRS?", +"QRU", +"QRV", +"QRW", +"QRX 0300", +"QRX 0500", +"QRX 2000", +"QRX 2300", +"QRX", +"QRX?", +"QRY 1", +"QRY 2", +"QRY 3", +"QRY", +"QRZ", +"QSA 1", +"QSA 2", +"QSA 3", +"QSA 4", +"QSA 5", +"QSA", +"QSB", +"QSD", +"QSG 1", +"QSG 2", +"QSG", +"QSK", +"QSK?", +"QSL", +"QSM", +"QSN", +"QSO", +"QSP", +"QST", +"QSU", +"QSW", +"QSX", +"QSY", +"QSY?", +"QSZ", +"QTB", +"QTC", +"QTH?", +"QTR", +"QTR?", +"Should we QSY?", +"So how is the weather?", +"Sorry, stack of books just fell over.", +"Sprechen Sie Deutsch?", +"Thanks for the call.", +"There is a rainbow outside the window.", +"There is an eclipse of the moon right now.", +"Tnx for the call.", +"Tnx for the report.", +"Tnx for ur call.", +"We are on vacation and I am mobile.", +"We just felt a small quake here.", +"What are your hobbies?", +"What is the air pressure there?", +"What is the air quality there?", +"What is the air temperature there?", +"What is the humidity there?", +"What is your QTH?", +"What is your elevation?", +"What is your hobby?", +"What is your job?", +"What is your sign? I am a cancer.", +"What is your sign? I am a centaur.", +"What is your sign? I am a fish.", +"What time zone are you in?", +"Whats your job?", +"When did you start to learn morse code?", +"Where do you live now?", +"Where do you live?", +"Where is Hollister, California anyway?", +"Where is Parkfield, California anyway?", +"Whoa, we are having an earthquake here. A real roller.", +"Would you have given Morse a Nobel prize?", +"You are my first contact today.", +"You are my last contact today.", +"You are my second contact today.", +"You are using a nonlinear amplifier?", +"You are using an iambic key?", +"Your contest sequence no is 1035.", +"Your contest sequence no is 12.", +"Your contest sequence no is 17.", +"Your contest sequence no is 479.", +"Your contest sequence no is 73.", +"Your contest sequence no is 7v.", +"Your contest sequence no is 826.", +"Your contest sequence no is 99.", +"Your job is?", +"Your signal is chirpy.", +"am using a linear amplifier.", +"ewsqgbhjolpi oops cat on keyboard.", +"ru using linear amplifier?", diff --git a/qso.d/names.h b/qso.d/names.h new file mode 100644 index 0000000..125a1c3 --- /dev/null +++ b/qso.d/names.h @@ -0,0 +1,170 @@ +"Al", +"Alan", +"Alen", +"Alex", +"Alexander", +"Alexandra", +"Alexeev", +"Alice", +"Allen", +"Alma", +"Amber", +"Angel", +"Anne", +"Art", +"Barbara", +"Barbie", +"Bart", +"Bea", +"Betty", +"Bill", +"Bob", +"Bruce", +"Bryant", +"Bud", +"Carl", +"Carol", +"Cathy", +"Cheryl", +"Chris", +"Christy", +"Chuck", +"Dale", +"Dan", +"Dave", +"David", +"Dennis", +"Diane", +"Dick", +"Don", +"Ed", +"Edmund", +"Edward", +"Elaine", +"Eleuterio", +"Ellen", +"Francie", +"Frank", +"Fred", +"Gary", +"George", +"Gilda", +"Gus", +"Hadassah", +"Harry", +"Hedwig", +"Heika", +"Helen", +"Helmut", +"Henry", +"Heriberto", +"Ingrid", +"Isaac", +"Israel", +"Jack", +"Jacob", +"Jake", +"Jakob", +"James", +"Janae", +"Jane", +"Janet", +"Jeff", +"Jenni", +"Jessica", +"Jill", +"Jim", +"JimBob", +"Joan", +"Joe", +"John", +"Jon", +"Kaahumanu", +"Karen", +"Karl", +"Kathy", +"Keith", +"Ken", +"Kent", +"Kevin", +"Kristen", +"Kurt", +"Larry", +"Lauren", +"Liholiho", +"Linda", +"Lou", +"Lourdes", +"Lynda", +"Lynn", +"Marc", +"Margaret", +"Maria", +"Mariam", +"Mark", +"Marty", +"Marv", +"Mary", +"Mike", +"Monica", +"Moses", +"Mosha", +"Nancy", +"Nathan", +"Neil", +"Noelani", +"Oliver", +"Olivia", +"Pal", +"Pat", +"Patrick", +"Paul", +"Paula", +"Peter", +"Peto", +"Phil", +"Pieter", +"Quimby", +"Rachel", +"Ralph", +"Ray", +"Rebekkah", +"Reiko", +"Rex", +"Reza", +"Rich", +"Rick", +"Ron", +"Roy", +"Sally", +"Sam", +"Sara", +"Sarah", +"Scott", +"Scottie", +"Spencer", +"Steve", +"Stew", +"Stu", +"Sue", +"Tello", +"Terry", +"Thomas", +"Tim", +"Timothy", +"Todd", +"Tom", +"Tony", +"Umberto", +"Vicente", +"Victor", +"Wallace", +"Wally", +"Walt", +"Walter", +"Wendy", +"William", +"Xavier", +"Yaohui", +"Yolanda", +"Zelda", diff --git a/qso.d/newcity.h b/qso.d/newcity.h new file mode 100644 index 0000000..b2c6634 --- /dev/null +++ b/qso.d/newcity.h @@ -0,0 +1,29 @@ +"Albany", +"Avalon", +"Barnard", +"Bedford", +"Bethel", +"Boston", +"Brunswick", +"Canaan", +"Chester", +"Conway", +"Dime Box", +"Franklin", +"Granville", +"Hamilton", +"London", +"Morris", +"Oxford", +"Salisbury", +"Scarborough", +"Stafford", +"Stanton", +"Trenton", +"Troy", +"Walpole", +"Warren", +"Weston", +"Wilton", +"Windsor", +"Zulch", diff --git a/qso.d/put_form.c b/qso.d/put_form.c new file mode 100644 index 0000000..f38fc60 --- /dev/null +++ b/qso.d/put_form.c @@ -0,0 +1,130 @@ +#include + +void +PutForm0 (void) +{ + PutRST (); + PutName (); + PutLocation (); + PutMisc (); + PutRig (); + PutWeather (); + PutJob (); + PutAge (); + PutMisc (); + PutQ_And_Freq (); + PutLicense (); +} + +void +PutForm1 (void) +{ + PutLocation (); + PutRST (); + PutRig (); + PutWeather (); + PutMisc (); + PutName (); + PutLicense (); + PutMisc (); + PutQ_And_Freq (); + PutAge (); + PutJob (); +} + +void +PutForm2 (void) +{ + PutThanks (); + PutRST (); + PutName (); + PutWeather (); + PutLocation (); + PutJob (); + PutLicense (); + PutRig (); + PutAge (); + PutQ_And_Freq (); +} + +void +PutForm3 (void) +{ + PutLocation (); + PutRST (); + PutRig (); + PutMisc (); + PutName (); + PutMisc (); + PutAge (); + PutJob (); + PutLicense (); + PutMisc (); + PutWeather (); + PutMisc (); + PutQ_And_Freq (); +} + +void +PutForm4 (void) + +{ + PutThanks (); + PutRST (); + PutJob (); + PutMisc (); + PutMisc (); + PutName (); + PutAge (); + PutLicense (); + PutRig (); + PutLocation (); + PutWeather (); + PutMisc (); +} + +void +PutForm5 (void) +{ + PutLocation (); + PutRST (); + PutRig (); + PutName (); + PutJob (); + PutAge (); + PutMisc (); + PutLicense (); + PutWeather (); + PutMisc (); + PutQ_And_Freq (); +} + +PutQSO (void) +{ + /* printf("VVV VVV\n") ; */ + PutFirstCallsign (); + switch (Roll (6)) + { + case 0: + PutForm0 (); + break; + case 1: + PutForm1 (); + break; + case 2: + PutForm2 (); + break; + case 3: + PutForm3 (); + break; + case 4: + PutForm4 (); + break; + default: + PutForm5 (); + break; + } + printf ("+ %%\n"); + PutLastCallsign (); + printf ("\n"); +} diff --git a/qso.d/rig.h b/qso.d/rig.h new file mode 100644 index 0000000..29646d6 --- /dev/null +++ b/qso.d/rig.h @@ -0,0 +1,69 @@ +"Collins 75S=3", +"Collins KWM=2", +"Drake T=4XB", +"Drake TR3", +"Drake TR4", +"Eico 753", +"Hallicrafters SR150", +"Hallicrafters SR160", +"Hallicrafters SR2000", +"Hallicrafters SR400", +"Hallicrafters SR500", +"Heathkit DX=660B", +"Heathkit HG=10B", +"Heathkit HR=10", +"Heathkit HW100", +"Heathkit HW12", +"Heathkit HW12A", +"Heathkit HW22", +"Heathkit HW22A", +"Heathkit HW32", +"Heathkit HW32A", +"Heathkit HW8", +"Heathkit SB100", +"Homebrew", +"Icom IC=1275", +"Icom IC=275", +"Icom IC=475", +"Icom IC=575", +"Icom IC=725", +"Icom IC=726", +"Icom IC=730", +"Icom IC=735", +"Icom IC=751", +"Icom IC=751A", +"Icom IC=765", +"Icom IC=781", +"Kenwood TR=450", +"Kenwood TR=751", +"Kenwood TR=850", +"Kenwood TR=851", +"Kenwood TS=140", +"Kenwood TS=440", +"Kenwood TS=680", +"Kenwood TS=711", +"Kenwood TS=77", +"Kenwood TS=850", +"National NCL 200", +"National NCX3", +"National NCX5", +"RS HTX=100", +"Radio Shack HTX=100", +"Swan 120", +"Swan 140", +"Swan 180", +"Swan 240", +"Swan 350", +"Ten Tec 562", +"Ten Tec 585", +"Ten Tec Argonaut", +"Ten Tec Delta", +"Ten Tec Omni", +"Yaesu FT=1000", +"Yaesu FT=101", +"Yaesu FT=736", +"Yaesu FT=747", +"Yaesu FT=757", +"Yaesu FT=767", +"Yaesu FT=840", +"Yaesu FT=990", diff --git a/qso.d/util.c b/qso.d/util.c new file mode 100644 index 0000000..4fde89f --- /dev/null +++ b/qso.d/util.c @@ -0,0 +1,55 @@ +/* + ******************** + * Utility routines * + ******************** + */ +extern int their_age; + +int +CountStrings (char *StringVector[]) + /* + * Count the number of string values in the supplied vector + * of pointers. Start with the first pointer and stop when + * NIL (0) is encountered. + */ +{ +register char **SV; +register int Count; + + Count = 0; + + for (SV = StringVector; *SV; SV++) + { + Count++; + } + return (Count); +} + +int +Roll (int Number) +{ +int new_tmp; +double tmp_val; +double drand48 (); + tmp_val = ((int) (drand48 () * (Number /*-1*/ ))); + new_tmp = (int) tmp_val % 32767; + if (new_tmp < 2) + tmp_val = 2; + return ((int) new_tmp); +} + +int +License_Seed (void) +{ + if (their_age > 20) + return (20); + if (their_age < 10) + return (10); + return (their_age - 8); +} + +char * +Choose (char *Words[], int Number) +{ + return (Words[Roll (Number)]); +} diff --git a/qso.d/weather.h b/qso.d/weather.h new file mode 100644 index 0000000..757e798 --- /dev/null +++ b/qso.d/weather.h @@ -0,0 +1,48 @@ +"a blue norther", +"a noreaster", +"a siberia express", +"chinook winds", +"cloudy", +"cold and windy", +"cold/dry", +"cool/windy", +"damp", +"drizzling", +"fog/drizzle", +"foggy", +"gale force winds", +"gentle rain", +"gusting trade winds", +"hailing", +"horizontal rain", +"hot and humid", +"hot and windy", +"hot", +"hot/dry", +"hot/humid", +"hot/muggy", +"hot/smoggy", +"humid", +"kona winds", +"pleasantly cool", +"pleasantly warm", +"raining cats and dogs", +"raining", +"santa anna winds", +"sleeting", +"smoggy", +"snowing", +"spitting rain", +"sunny", +"tornadic winds", +"trade winds", +"uncomfortably hot", +"very cold", +"very hot", +"very windy", +"warm", +"wet", +"wet/foggy", +"wet/windy", +"windy and warm", +"windy", diff --git a/qso/Makefile b/qso/Makefile deleted file mode 100644 index 7368520..0000000 --- a/qso/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -CFLAGS = -O3 - -OBJECTS = QSO.o put_form.o make_fre.o grammar.o util.o init_str.o -INCLUDES = antenna.h callsign.h city.h cityh.h heights.h jobs.h misc.h \ - names.h newcity.h rig.h weather.h - -all: QSO - -QSO: $(OBJECTS) - $(CC) -o $@ $(OBJECTS) - -init_str.o: $(INCLUDES) - -clean: - rm -f *.o QSO diff --git a/qso/QSO.c b/qso/QSO.c deleted file mode 100644 index 764d53a..0000000 --- a/qso/QSO.c +++ /dev/null @@ -1,753 +0,0 @@ -/* - * Copyright (c) 1991 Paul J. Drongowski. - * Copyright (c) 1992 Joe Dellinger. - * Copyright (c) 2005 Eric S. Raymond. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -/* - * Return-Path: - * Received: from cadillac.siemens.com by montebello.soest.hawaii.edu (4.1/montebello-MX-1.9) - * id AA01487; Mon, 10 Aug 92 03:21:41 HST - * Received: from kevin.siemens.com by cadillac.siemens.com (4.1/SMI-4.0) - * id AA25847; Mon, 10 Aug 92 09:21:37 EDT - * Date: Mon, 10 Aug 92 09:21:37 EDT - * From: pjd@cadillac.siemens.com (paul j. drongowski) - * Message-Id: <9208101321.AA25847@cadillac.siemens.com> - * To: joe@montebello.soest.hawaii.edu - * Status: RO - */ - -/* - * This copy is slightly hacked by Joe Dellinger, August 1992 - * And some more... November 1992 - * - * Partially re-written by "murray@vs6.scri.fsu.edu" - * to use better grammar and to avoid some nonsensical - * responses (like claiming to be a person who's been licensed - * longer than they've been alive!), Jan 1994 - * - * Those improvements merged with others by Joe Dellinger, Oct 1994 - */ - -/* - * Generate QSO - */ - -/* - * When run, this program generates a single QSO. The form of the - * QSO is similar to QSO's one would expect to hear at a code test. - * It begins with a series of V's (commented out in this version), - * callsigns of the receiver and - * sender, followed by a few sentences about weather, name, - * occupation, etc. The QSO ends with the callsigns of the receiver - * and sender. - * - * All output is produced using "printf." This should make the - * program easy to port. Output can be piped into another program - * such as sparc-morse on the Sun or it can be redirected into - * a file (without viewing the contents of course!) - * - * The program design is similar to a "random poetry generator" - * or "mad-libs." Each QSO form is generated by its own C function, - * such as "PutForm1." Each function calls other C functions to - * produce the sentences in the QSO. The sentence forms are - * selected somewhat randomly as well as any blanks to be filled. - * Words and phrases are selected from several lists such as - * "Transceiver," "Antenna," "Job," etc. Sometimes this scheme is - * clever as in the formation of city names. Sometimes it is - * stupidly simple-minded and grammatical agreement is lost. - * By the way, the callsigns are real and were picked from - * rec.radio.amateur.misc on USENET. - * - * The program was constructed in C for Sun workstations. It uses - * the library function "drand48" in function "Roll" to produce - * pseudo-random numbers. The library function "srand48" and "time" - * in "main" are used to set the pseudo-random number seed. - * - * Known problems and caveats? Hey, it`s software! All Morse - * training programs handle the procedural signs (e.g., AR, SK) - * differently. The function "PutQSO" currently prints "+ %" - * for the AR and SK at the end of the QSO. These may be ignored, - * mapped into something else, or just plain cause your training - * program to roll over and play dead. I don`t know. This is a - * cheap hack. - * - * And speaking of cheap... The program will not generate all - * characters and pro-signs that are found on an "official" code - * test. This program is for practice only and should be supplemented - * with lots of random code. - * - * Always have fun! - */ - - -#include -#include - -char *A_Or_An (char *); -char *Choose (char *Words[], int Number); -int License_Seed (void); - -int their_age; /* PERSON'S AGE, SO THEY AREN'T LICENSED MORE - * THAN THEIR AGE */ - -extern char *Transceiver[]; -extern char *Antenna[]; -extern char *UpFeet[]; -extern char *Weather1[]; -extern char *Weather2[]; -extern char *Power[]; -extern char *Job[]; -extern char *Name[]; -extern char *CallSign[]; -extern char *License[]; -extern char *City[]; -extern char *NewCity[]; -extern char *CityHeights[]; -extern char *New[]; -extern char *Heights[]; -extern char *State[]; -extern char *Frqmisc[]; -extern char *Callmisc[]; -extern char *NumMisc[]; -extern char *Miscellaneous[]; -extern char *RST[]; - -int NXCVR; -int NANTENNA; -int NUPFEET; -int NWX1; -int NWX2; -int NPOWER; -int NJOB; -int NNAME; -int NCALLSIGN; -char *Sender, *Receiver; -int NLICENSE; -int NCITY; -int NNEWCITY; -int NCITYHTS; -int NNEW; -int NHEIGHTS; -int NSTATE; -int NFRQMISC; -int NFRQCALLMISC; - -char *FrqCallmisc[] = -{ - "QRW %s %d", - "QRZ %s %d", - "QSN %s %d", - "QSX %s %d", - "QRW %s %d?", - "QRZ %s %d?", - "QSN %s %d?", - "QSX %s %d?", - 0 -}; - -int NCALLMISC; -int NNUMMISC; -int NMISC; -int NRST; - - -/* - ************************************* - * Routines to put sentences/clauses * - ************************************* - */ - -void -PutMisc (void) -{ - printf ("%s\n", Choose (Miscellaneous, NMISC)); -} - -void -PutThanks (void) -{ - switch (Roll (6)) - { - case 2: - printf ("Thanks for your call.\n"); - break; - - case 3: - printf ("Tnx for ur call.\n"); - break; - - case 4: - printf ("Tnx for the call.\n"); - break; - - case 5: - printf ("Thanks for the call.\n"); - break; - - default: - printf ("Thanks %s for the call.\n", Choose (Name, NNAME)); - break; - } -} - -void -PutName (void) -{ - switch (Roll (6)) - { - case 2: - printf ("Name is %s.\n", Choose (Name, NNAME)); - break; - - case 4: - printf ("This is %s.\n", Choose (Name, NNAME)); - break; - - case 5: - printf ("%s here.\n", Choose (Name, NNAME)); - break; - - default: - printf ("My name is %s.\n", Choose (Name, NNAME)); - break; - } -} - -void -PutJob (void) -{ - switch (Roll (20)) - { - case 2: - case 3: - printf ("My occupation is %s.\n", Choose (Job, NJOB)); - break; - - case 4: - case 5: - printf ("I work as %s.\n", A_Or_An (Choose (Job, NJOB))); - break; - - case 6: - printf ("I was %s, now unemployed.\n", A_Or_An (Choose (Job, NJOB))); - break; - - case 11: - case 12: - printf ("Occupation is %s.\n", Choose (Job, NJOB)); - break; - - default: - printf ("I am %s.\n", A_Or_An (Choose (Job, NJOB))); - break; - } -} - -void -PutAge (void) -{ - - their_age = Roll (60) + 16; - - switch (Roll (5)) - { - case 3: - printf ("My age is %d.\n", their_age); - break; - - case 4: - printf ("I am %d years old.\n", their_age); - break; - - default: - printf ("Age is %d.\n", their_age); - break; - } -} - -void -PutLicense (void) -{ -int get_years_licence; - - get_years_licence = Roll (License_Seed ()); - if (get_years_licence < 2) - get_years_licence = 2; - - switch (Roll (12)) - { - case 1: - printf ("I have %s class licence.\n", - A_Or_An (Choose (License, NLICENSE))); - break; - - case 2: - printf ("I am %s license ham.\n", - A_Or_An (Choose (License, NLICENSE))); - break; - - case 3: - printf ("I am %s licence ham.\n", - A_Or_An (Choose (License, NLICENSE))); - break; - - case 4: - printf ("I have been licenced %d years as %s class.\n", - get_years_licence, Choose (License, NLICENSE)); - break; - - case 5: - printf ("I have %s class license.\n", - A_Or_An (Choose (License, NLICENSE))); - break; - - case 6: - printf ("I am %s class ham.\n", - A_Or_An (Choose (License, NLICENSE))); - break; - - case 7: - printf ("I have been licensed %d years as %s class.\n", - get_years_licence, Choose (License, NLICENSE)); - break; - - default: - printf ("I have been %s class ham for %d years.\n", - A_Or_An (Choose (License, NLICENSE)), get_years_licence); - break; - } -} - -void -PutTemperature (void) -{ - printf ("Temperature is %d.\n", Roll (80) + 10); -} - -void -PutWeather1 (void) -{ - switch (Roll (17)) - { - case 2: - printf ("WX is %s.\n", Choose (Weather1, NWX1)); - PutTemperature (); - break; - - case 3: - printf ("Weather here is %s.\n", Choose (Weather1, NWX1)); - break; - - case 4: - printf ("Weather is %s.\n", Choose (Weather1, NWX1)); - break; - - case 5: - printf ("WX is %s.\n", Choose (Weather1, NWX1)); - break; - - case 6: - PutTemperature (); - printf ("Weather here is %s.\n", Choose (Weather1, NWX1)); - break; - - case 7: - PutTemperature (); - printf ("Weather is %s.\n", Choose (Weather1, NWX1)); - break; - - case 8: - PutTemperature (); - printf ("WX is %s.\n", Choose (Weather1, NWX1)); - break; - - case 9: - printf ("Weather here is %s and temperature is %d.\n", - Choose (Weather1, NWX1), Roll (80) + 10); - break; - - case 10: - printf ("Weather is %s, temperature %d.\n", - Choose (Weather1, NWX1), Roll (80) + 10); - break; - - case 11: - printf ("WX is %d degrees and %s.\n", - Roll (80) + 10, Choose (Weather1, NWX1)); - break; - - case 12: - printf ("The WX is %s and the temp is %d degrees.\n", - Choose (Weather1, NWX1), Roll (80) + 10); - break; - - case 14: - printf ("Weather is %s.\n", Choose (Weather1, NWX1)); - PutTemperature (); - break; - - case 15: - printf ("Weather here is %s.\n", Choose (Weather1, NWX1)); - PutTemperature (); - break; - - default: - printf ("WX is %s and %d degrees.\n", - Choose (Weather1, NWX1), Roll (80) + 10); - } -} - -void -PutWeather2 (void) -{ - - switch (Roll (10)) - { - case 0: - printf ("It is %s.\n", Choose (Weather2, NWX2)); - break; - - case 1: - printf ("It is %s and %d degrees.\n", - Choose (Weather2, NWX2), Roll (80) + 10); - break; - - case 2: - printf ("The WX is %s and the temp is %d degrees.\n", - Choose (Weather2, NWX2), Roll (80) + 10); - break; - - case 3: - printf ("WX is %s and the temp is %d degrees.\n", - Choose (Weather2, NWX2), Roll (80) + 10); - break; - - case 4: - printf ("It is %s today.\n", Choose (Weather2, NWX2)); - break; - - case 5: - printf ("It is %s and %d degrees.\n", - Choose (Weather2, NWX2), Roll (100) + 3); - break; - - case 6: - printf ("The WX is %s and the temp is %d degrees.\n", - Choose (Weather2, NWX2), Roll (90) + 10); - break; - - case 7: - printf ("WX is %s and the temp is %d degrees.\n", - Choose (Weather2, NWX2), Roll (80) + 10); - break; - - default: - printf ("It is %s here.\n", Choose (Weather2, NWX2)); - break; - } -} - -void -PutWeather (void) -{ - switch (Roll (4)) - { - case 3: - PutWeather1 (); - break; - - default: - PutWeather2 (); - break; - } -} - -void -PutCityState (void) -{ - switch (Roll (6)) - { - case 4: - printf ("%s %s, ", - Choose (CityHeights, NCITYHTS), Choose (Heights, NHEIGHTS)); - break; - - case 5: - printf ("%s %s, ", Choose (New, NNEW), Choose (NewCity, NNEWCITY)); - break; - - default: - printf ("%s, ", Choose (City, NCITY)); - break; - } - printf ("%s.\n", Choose (State, NSTATE)); -} - -void -PutLocation (void) -{ - - switch (Roll (5)) - { - case 3: - printf ("My QTH is "); - break; - - case 4: - printf ("My location is "); - break; - - default: - printf ("QTH is "); - break; - - } - PutCityState (); -} - -void -PutRig (void) - -{ - switch (Roll (19)) - { - case 0: - case 1: - printf ("My rig runs %s watts into %s up %s feet.\n", - Choose (Power, NPOWER), A_Or_An (Choose (Antenna, NANTENNA)), - Choose (UpFeet, NUPFEET)); - break; - - case 2: - case 3: - printf ("Rig is a %s watt %s and antenna is %s.\n", - Choose (Power, NPOWER), Choose (Transceiver, NXCVR), - A_Or_An (Choose (Antenna, NANTENNA))); - break; - - case 4: - case 5: - printf ("My transceiver is %s.\n", A_Or_An (Choose (Transceiver, NXCVR))); - printf ("It runs %s watts into %s.\n", - Choose (Power, NPOWER), A_Or_An (Choose (Antenna, NANTENNA))); - break; - - case 6: - case 7: - printf ("The rig is %s running %s watts.\n", - A_Or_An (Choose (Transceiver, NXCVR)), Choose (Power, NPOWER)); - printf ("Antenna is %s up %s m.\n", - A_Or_An (Choose (Antenna, NANTENNA)), Choose (UpFeet, NUPFEET)); - break; - - case 8: - case 9: - case 10: - case 11: - printf ("My rig runs %s watts into %s up %s meters.\n", - Choose (Power, NPOWER), A_Or_An (Choose (Antenna, NANTENNA)), - Choose (UpFeet, NUPFEET)); - break; - - case 12: - printf ("My rig runs %s watts into %s up %s feet, but\nthe antenna has partly fallen.\n", - Choose (Power, NPOWER), A_Or_An (Choose (Antenna, NANTENNA)), - Choose (UpFeet, NUPFEET)); - break; - - case 13: - printf ("Rig is %s running %s watts into %s up %s ft.\n", - A_Or_An (Choose (Transceiver, NXCVR)), Choose (Power, NPOWER), - A_Or_An (Choose (Antenna, NANTENNA)), Choose (UpFeet, NUPFEET)); - break; - - case 14: - printf ("My rig runs %s watts into %s up %s feet.\n", - Choose (Power, NPOWER), A_Or_An (Choose (Antenna, NANTENNA)), - Choose (UpFeet, NUPFEET)); - break; - - case 15: - printf ("Rig is %s watt %s and antenna is %s.\n", - A_Or_An (Choose (Power, NPOWER)), - Choose (Transceiver, NXCVR), - Choose (Antenna, NANTENNA)); - break; - - case 16: - printf ("My transceiver is %s.\n", - A_Or_An (Choose (Transceiver, NXCVR))); - printf ("It runs %s watts into %s.\n", - Choose (Power, NPOWER), - A_Or_An (Choose (Antenna, NANTENNA))); - break; - - case 17: - printf ("The rig is %s running %s watts.\n", - A_Or_An (Choose (Transceiver, NXCVR)), - Choose (Power, NPOWER)); - printf ("Antenna is %s up %s feet.\n", - A_Or_An (Choose (Antenna, NANTENNA)), - Choose (UpFeet, NUPFEET)); - break; - - default: - printf ("Rig is %s ", - A_Or_An (Choose (Transceiver, NXCVR))); - printf ("running %s watts into %s up %s feet.\n", - Choose (Power, NPOWER), - A_Or_An (Choose (Antenna, NANTENNA)), - Choose (UpFeet, NUPFEET)); - break; - } -} - -void -PutRST (void) -{ -register char *TheRST; - - TheRST = Choose (RST, NRST); - - switch (Roll (8)) - { - case 0: - printf ("UR RST %s=%s.\n", TheRST, TheRST); - break; - - case 1: - printf ("RST is %s=%s.\n", TheRST, TheRST); - break; - - case 2: - printf ("RST %s=%s.\n", TheRST, TheRST); - break; - - case 3: - printf ("Your RST %s=%s.\n", TheRST, TheRST); - break; - - case 4: - printf ("Your RST is %s=%s.\n", TheRST, TheRST); - break; - - case 5: - printf ("Your signal is RST %s/%s.\n", TheRST, TheRST); - break; - - case 6: - printf ("UR signal is RST %s,%s.\n", TheRST, TheRST); - break; - - default: - printf ("Your RST is %s/%s.\n", TheRST, TheRST); - break; - } -} - - -void -PutQ_And_Freq (void) -{ - switch (Roll (8)) - { - case 2: - printf (Frqmisc[Roll (NFRQMISC)], make_freq ()); - printf ("\n"); - break; - - case 3: - printf (Callmisc[Roll (NFRQMISC)], - Choose (CallSign, NCALLSIGN)); - printf ("\n"); - break; - - case 4: - printf (FrqCallmisc[Roll (NFRQCALLMISC)], - Choose (CallSign, NCALLSIGN), - make_freq ()); - printf ("\n"); - break; - - case 5: - printf (NumMisc[Roll (NNUMMISC)], - Roll (3) + Roll (2) + 1); - printf ("\n"); - break; - - default: - break; - - } -} - -void -PutFirstCallsign (void) -{ - Sender = Choose (CallSign, NCALLSIGN); - Receiver = Choose (CallSign, NCALLSIGN); - printf ("%s de %s\n", Receiver, Sender); -} - -void -PutLastCallsign (void) -{ - printf ("%s de %s\n", Receiver, Sender); -} - -main (int argc, char **argv) -{ - - NXCVR = CountStrings (Transceiver); - NANTENNA = CountStrings (Antenna); - NUPFEET = CountStrings (UpFeet); - NPOWER = CountStrings (Power); - NRST = CountStrings (RST); - NWX1 = CountStrings (Weather1); - NWX2 = CountStrings (Weather2); - NJOB = CountStrings (Job); - NNAME = CountStrings (Name); - NSTATE = CountStrings (State); - NCITY = CountStrings (City); - NCITYHTS = CountStrings (CityHeights); - NNEW = CountStrings (New); - NHEIGHTS = CountStrings (Heights); - NNEWCITY = CountStrings (NewCity); - NLICENSE = CountStrings (License); - NMISC = CountStrings (Miscellaneous); - NCALLSIGN = CountStrings (CallSign); - NFRQMISC = CountStrings (Frqmisc); - NFRQCALLMISC = CountStrings (FrqCallmisc); - NCALLMISC = CountStrings (Callmisc); - NNUMMISC = CountStrings (NumMisc); - - srand48 ((long) time (0)); - - PutQSO (); - - return 0; -} diff --git a/qso/antenna.h b/qso/antenna.h deleted file mode 100644 index 1452605..0000000 --- a/qso/antenna.h +++ /dev/null @@ -1,33 +0,0 @@ -"10 meter dipole", -"10 meter whip", -"3 element beam", -"5 band vertical", -"5 element loop", -"7 band beam", -"beam", -"delta loop", -"dipole", -"doublet zepp", -"dummy load", -"ground=plane", -"half wave dipole", -"inverted V", -"light bulb", -"log periodic", -"long=wire", -"monobander", -"parasitic beam", -"quad loop", -"quad vertical", -"quagi", -"quarter wave vertical", -"random wire up 2 kite", -"random wire up to kite", -"random wire", -"rhombic", -"symmetrical delta loop", -"trap doublet", -"tribander", -"whip", -"yagi", -"zepp", diff --git a/qso/callsign.h b/qso/callsign.h deleted file mode 100644 index ed69af0..0000000 --- a/qso/callsign.h +++ /dev/null @@ -1,108 +0,0 @@ -"AA0ET", -"AA4LR", -"AA5BT", -"AA6NP", -"AA6YD", -"AA9BK", -"AB5AP", -"AB6FI", -"AC4HF", -"G0GWA", -"GM4ZNX", -"I5FLN", -"IK5AAX", -"JA1BLV", -"JY1", -"K2WK", -"K5RC", -"K6OCK", -"K6XO", -"K9ALD", -"KA0WCH", -"KA1AXY", -"KA1CV", -"KA1UTU", -"KA1ZGC", -"KA2RAF", -"KA6S", -"KB0CY", -"KB2NRH", -"KB6CSP", -"KB6JXT", -"KC6SKV", -"KC6SSS", -"KC6TDR", -"KC6VWV", -"KD3FU", -"KD4AUS", -"KD4CPL", -"KE2TP", -"KE4ZV", -"KF6BZF", -"KF8NH", -"KJ6NN", -"KJ9U", -"KJ9U/KH6", -"KK6JQ", -"KM3T", -"KT7H", -"N1AL", -"N1JCX", -"N4PBK", -"N4VRN", -"N5IAL", -"N5OP", -"N6BIS", -"N6MWC", -"N6TTO", -"N8EMR", -"N9FZX", -"N9JRV", -"N9LFF", -"N9MYI", -"NE3X", -"NH6EG", -"NH6EG/5", -"NH6ZW", -"NJ7E", -"NR3Z", -"NT1G", -"OD5NG", -"OH3BK", -"OH8NUP", -"TG9VT", -"UT5RP", -"VE6MGS", -"VE7EMD", -"VK2BQS", -"VK2EG", -"W0PBV", -"W0RIJ", -"W0RSB", -"W2FG", -"W2JGR", -"W3GRG", -"W3OTC", -"WA1UXA", -"WA2AGE", -"WA3EEC", -"WA3TBL", -"WA3UQV", -"WA5RPF", -"WA6DGX", -"WA7VYJ", -"WA8ZGO", -"WB2CJL", -"WB4JCM", -"WB5FDP", -"WB5FKH", -"WB5NRN", -"WB7CJO", -"WB7EEL", -"WB7TZA", -"WB8EOH", -"WB9IVR", -"WD0EIB", -"WH6UR", -"WH6UR/5", -"WX9T", diff --git a/qso/city.h b/qso/city.h deleted file mode 100644 index b3c74b9..0000000 --- a/qso/city.h +++ /dev/null @@ -1,179 +0,0 @@ -"Agassiz", -"Aiea", -"Alexander", -"Asbury", -"Baker", -"Bayaney", -"Beckley", -"Bedford", -"Bixby", -"Branyan", -"Brazoria", -"Broken Arrow", -"Brunswick", -"Bryan", -"Burnsville", -"Buzzard", -"Cambridge", -"Carrizo", -"Catoosa", -"Chamizal", -"Charleston", -"Chepiwanoxet", -"Chesuncook", -"Chinquapin", -"Circleville", -"Claquato", -"Clarksburg", -"Clarksville", -"Clear Lake", -"Cleveland", -"College", -"Crystal", -"Duncanville", -"Elizabeth", -"Enid", -"Ewa", -"Faalaaga", -"Fairbanks", -"Fairfax", -"Fairfield", -"Flamboyant Gardens", -"Flint", -"Gahanna", -"Gappas", -"Glenpool", -"Grant", -"Greensburg", -"Guyandotte", -"Guyanoga", -"Harper Valley", -"Harper", -"Harquahala", -"Hells Crossing", -"Hill Valley", -"Hillsdale", -"Honolulu", -"Hyannis", -"Iraan", -"Iyanbito", -"Jamestown", -"Jefferson", -"Jenks", -"Juncos", -"Kaaawa", -"Kohlsaat", -"Kona", -"Laager", -"Lakewood", -"Lancaster", -"Lawrenceville", -"Leyan", -"Lincoln", -"Litchfield", -"London", -"Long Branch", -"Luxello", -"Lyndale", -"Lyndhurst", -"Lynnville", -"Maaloon", -"Maitwan", -"Manasquan", -"Mansfield", -"Maple", -"Meadows", -"Melbourne", -"Mentor", -"Mercer", -"Mesquite", -"Midland", -"Milldale", -"Milltown", -"Moorestown", -"Moscow", -"Mountain View", -"Moxee", -"Murray", -"Muskogee", -"Musquiz", -"Naxera", -"New London", -"Newfield", -"Newport", -"Nipgen", -"Nisqually", -"Nome", -"Noname", -"Noxubee", -"Nutzotin", -"Oak", -"Occoquan", -"Olmstead", -"Owasso", -"Oxford", -"Oxnard", -"Paradise", -"Paris", -"Pattaquattic", -"Pawtuxet", -"Perry", -"Piscataquis", -"Potter", -"Pottsville", -"Praag", -"Quanah", -"Quebec", -"Redwood", -"Rueechayaam", -"Russellville", -"Salem", -"San Pasqual", -"Sandy", -"Sapulpa", -"Saratoga", -"Sequatchie", -"Smithville", -"Snoqualmie", -"Springdale", -"Springfield", -"Squaxin", -"Starkville", -"Sunnyvale", -"Sunset Valley", -"Suquamish", -"Tahlequah", -"Tahquamenon", -"Texoma", -"Texum", -"Tinker", -"Trenton", -"Tulsa", -"Twisp", -"Umpqua", -"Union", -"Uruguay", -"Utica", -"Vancouver", -"Verona", -"Viroqua", -"Vista", -"Waldberggaard", -"Walnut", -"Warners Landing", -"Warren", -"Warsaw", -"Washington", -"Wesleyanna", -"Weston", -"Wheatfield", -"Williamson", -"Worchester", -"Wyandanch", -"Xanthus", -"Xenia", -"Yangtze", -"Yellowstone", -"Yreka", -"Zolton", -"Zuni", diff --git a/qso/cityh.h b/qso/cityh.h deleted file mode 100644 index fa1979b..0000000 --- a/qso/cityh.h +++ /dev/null @@ -1,46 +0,0 @@ -"Apple", -"Ashford", -"Baker", -"Baldwin", -"Banner", -"Barnard", -"Benton", -"Cabbot", -"Carson", -"Chester", -"College", -"Conway", -"Cornwall", -"Crystal", -"Duxbury", -"Fletcher", -"Franklin", -"Granite", -"Grant", -"Guyan", -"Hamilton", -"Harper", -"Hickory", -"Hoosick", -"Jefferson", -"Lincoln", -"Maple", -"Mercer", -"Morgan", -"Morris", -"Murray", -"Oak", -"Orwell", -"Oswego", -"Perry", -"Potter", -"Quail", -"Salem", -"Stafford", -"Stone", -"Tinker", -"Walnut", -"Warren", -"Washington", -"Weston", -"Wilton", diff --git a/qso/grammar.c b/qso/grammar.c deleted file mode 100644 index 173309d..0000000 --- a/qso/grammar.c +++ /dev/null @@ -1,32 +0,0 @@ -int -is_vowel (first_char) - char first_char; -{ - if ( - first_char == 'A' || - first_char == 'E' || - first_char == 'I' || - first_char == 'O' || - first_char == 'U' || - first_char == 'a' || - first_char == 'e' || - first_char == 'i' || - first_char == 'o' || - first_char == 'u' - ) - return (1); - return (0); -} - -char buffer[200]; - -char * -A_Or_An (string) - char *string; -{ - if (is_vowel (string[0]) == 1) - sprintf (buffer, "an %s", string); - else - sprintf (buffer, "a %s", string); - return ((char *) buffer); -} diff --git a/qso/heights.h b/qso/heights.h deleted file mode 100644 index 5b7788c..0000000 --- a/qso/heights.h +++ /dev/null @@ -1,37 +0,0 @@ -"Beach", -"Canyon", -"Castle", -"City", -"Corner", -"Cove", -"Creek", -"Estates", -"Forest", -"Gardens", -"Glen", -"Grove", -"Harbor", -"Heights", -"Hill", -"Hills", -"Hole", -"Island", -"Knob", -"Lake", -"Meadow", -"Meadows", -"Mill", -"Mountain", -"Neck", -"Palisades", -"Park", -"Pass", -"Plantation", -"Ridge", -"River", -"Springs", -"Station", -"Swale", -"Terrace", -"Valley", -"Wood", diff --git a/qso/init_str.c b/qso/init_str.c deleted file mode 100644 index ae69660..0000000 --- a/qso/init_str.c +++ /dev/null @@ -1,266 +0,0 @@ -char *Transceiver[] = -{ -#include "rig.h" - 0 -}; - -char *Antenna[] = -{ -#include "antenna.h" - 0 -}; - -char *UpFeet[] = -{ - "10", "15", "20", "25", "30", "35", "40", "45", - "50", "55", "60", "65", "70", "75", "80", "85", - "90", "95", "100", - "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", - "10 1/2", "11 1/2", "25", "29 1/2", "30", "35", "40", "42", - "45", "45 1/2", "45.5", - "50", "55", "60", "62", "65", "70", "75", "80", "85", "87 1/3", - "90", "95", "100", "103", "137", "189 1/2", "210", "246", "250", - 0 -}; - -char *Weather1[] = -{ - "sunny", - "rain", - "freezing rain", - "sleet", - "snow", - "cloudy", - "partly cloudy", - "partly sunny", - "clear", - 0 -}; - -char *Weather2[] = -{ -#include "weather.h" - 0 -}; - -char *Power[] = -{ - "2", "5", "10", "20", "25", "40", "50", "80", "100", - "125", "140", "150", "170", "200", "250", "270", "300", - 0 -}; - -char *Job[] = -{ -#include "jobs.h" - 0 -}; - -char *Name[] = -{ -#include "names.h" - 0 -}; - -char *CallSign[] = -{ -#include "callsign.h" - 0 -}; - -char *License[] = -{ - "Novice", - "Technician", - "Tech", - "Tech plus", - "Tech plus", - "Tech plus", - "Tech plus", - "Tech no code", - "General", - "Advanced", - "Extra", - "Extra", - "Extra", - 0 -}; - -char *City[] = -{ -#include "city.h" - 0 -}; - -char *NewCity[] = -{ -#include "newcity.h" - 0 -}; - -char *CityHeights[] = -{ -#include "cityh.h" - 0 -}; - -char *New[] = -{ - "New", - "Old", - "North", - "South", - "East", - "West", - "New", - "Old", - "North", - "Northeast", - "Northwest", - "South", - "Southwest", - "Southeast", - "East", - "West", - "Upper", - "Lower", - 0 -}; - -char *Heights[] = -{ -#include "heights.h" - 0 -}; - -char *State[] = -{ - "Alabama", - "Alaska", - "Arizona", - "Arkansas", - "California", - "Colorado", - "Connecticut", - "District of Columbia", - "Delaware", - "Florida", - "Georgia", - "Guam", - "Hawaii", - "Idaho", - "Illinois", - "Indiana", - "Iowa", - "Kansas", - "Kentucky", - "Louisiana", - "Maine", - "Maryland", - "Massachusetts", - "Michigan", - "Midway", - "Minnesota", - "Mississippi", - "Missouri", - "Montana", - "Nebraska", - "Nevada", - "New Hampshire", - "New Jersey", - "New Mexico", - "New York", - "North Carolina", - "North Dakota", - "Ohio", - "Oklahoma", - "Oregon", - "Pennsylvania", - "Puerto Rico", - "Rhode Island", - "Saipan", - "American Samoa", - "South Carolina", - "South Dakota", - "Tennessee", - "Texas", - "Utah", - "Vermont", - "Virginia", - "Virgin Islands", - "Wake Island", - "Washington", - "West Virginia", - "Wisconsin", - "Wyoming", - 0 -}; - -char *Frqmisc[] = -{ - "QSN %d?", - "QSU %d?", - "QSW %d?", - "QSN %d", - "QSU %d", - "QSW %d", - 0 -}; - -char *Callmisc[] = -{ - "QRK %s", - "QRL %s", - "QRZ %s", - "QSP %s", - "QRK %s?", - "QRL %s?", - "QRZ %s?", - "QSP %s?", - 0 -}; - -char *NumMisc[] = -{ - "QRI %d", - "QRK %d", - "QRM %d", - "QRN %d", - "QRS %d", - "QRY %d", - "QSG %d", - "QTA %d", - "QTC %d", - "QRI %d?", - "QRK %d?", - "QRM %d?", - "QRN %d?", - "QRS %d?", - "QRY %d?", - "QSG %d?", - "QTA %d?", - "QTC %d?", - 0 -}; - -char *Miscellaneous[] = -{ -#include "misc.h" - 0 -}; - -char *RST[] = -{ - "555", - "577", - "578", - "579", - "588", - "589", - "599", - "478", - "354", - "248", - "126", - 0 -}; diff --git a/qso/jobs.h b/qso/jobs.h deleted file mode 100644 index 6605174..0000000 --- a/qso/jobs.h +++ /dev/null @@ -1,71 +0,0 @@ -"administrator", -"airline pilot", -"artist", -"attorney", -"bricklayer", -"bus driver", -"carpenter", -"chemist", -"clerk", -"clown", -"college student", -"consultant", -"cook", -"corporate liquidator", -"curator", -"dentist", -"designer", -"director", -"doctor", -"driver", -"electrician", -"engineer", -"farmer", -"fireman", -"gardener", -"geophysicist", -"guard", -"high school student", -"hs student", -"human resource consultant", -"investment banker", -"janitor", -"jr college student", -"juggler and unicyclist", -"junior college student", -"lawyer", -"letter carrier", -"librarian", -"mafia killer", -"mathematician", -"mechanic", -"midwife", -"milkman", -"nurse", -"orthodontist", -"pacifist", -"painter", -"petroleum engineer", -"physician", -"physicist", -"police officer", -"politician", -"prison guard", -"professor", -"programmer", -"researcher", -"sailor", -"sanitation worker", -"sculptor", -"secretary", -"security guard", -"semiotician", -"soldier", -"sql programmer", -"stock broker", -"student", -"systems analyst", -"teacher", -"teller", -"vulcanologist", -"writer", diff --git a/qso/make_fre.c b/qso/make_fre.c deleted file mode 100644 index 412a463..0000000 --- a/qso/make_fre.c +++ /dev/null @@ -1,28 +0,0 @@ -#define M80 2 -#define M40 3 -#define M15 4 -#define M10 5 -#define NUM_BAND 4 - -int -make_freq (void) -{ - switch (Roll (NUM_BAND + 2)) - { - case M80: - return (3675 + Roll (50)); - break; - case M40: - return (7100 + Roll (50)); - break; - case M15: - return (21100 + Roll (100)); - break; - case M10: - return (28100 + Roll (200)); - break; - default: - return (7100 + Roll (50)); - break; - } -} diff --git a/qso/misc.h b/qso/misc.h deleted file mode 100644 index e10b2ce..0000000 --- a/qso/misc.h +++ /dev/null @@ -1,293 +0,0 @@ -"+%=x/,? 73 just testing you.", -",?/=+9% 73 just testing you.", -",?/=q+% 73 just testing u.", -"8y67fvgb oops cat on keyboard.", -"9p0ojgbhnw23 oops cat on keyboard.", -"%w=+/,? 73 just testing you.", -"A clumsy gecko just fell on my hand.", -"Are you a communist?", -"Are you a democrat?", -"Are you a libertarian?", -"Are you a republican?", -"Are you divorced?", -"Are you good at auto repair?", -"Are you good at calculus? I have a question for you.", -"Are you good at car repair? I have a question for you.", -"Are you good at group theory? I have a question for you.", -"Are you good at summing infinite series?", -"Are you married?", -"Are you on daylight savings time?", -"Are you single?", -"Are you using a linear amplifier?", -"Are you using an iambic key?", -"Are you widowed?", -"Aye, laddie, have you ever been to sea?", -"Can you pick kryptonite locks? Those are tricky.", -"Can you pick kryptonite locks?", -"Can you pick master locks? Those are supposed to be easy.", -"Can you think of something else interesting to say?", -"Copy?", -"Cpy?", -"Did you attend ORU?", -"Did you hear news?", -"Did you hear the news?", -"Do u understand English?", -"Do you have a baby?", -"Do you have a cat?", -"Do you have a dog?", -"Do you have a ferret?", -"Do you have a gecko?", -"Do you have a horse?", -"Do you know morse code?", -"Do you know the word copacetic?", -"Do you know the word garrulous?", -"Do you know the word prosy?", -"Do you know what a pangram is?", -"Do you like bach?", -"Do you like bernstein?", -"Do you like c and w music?", -"Do you like classical music?", -"Do you like country music?", -"Do you like hawaiian music?", -"Do you like jawaiian music?", -"Do you like modern rock?", -"Do you like mozart?", -"Do you like pop music?", -"Do you like reggae music?", -"Do you like rock music?", -"Do you like swing music?", -"Do you listen to Deutsche Welle?", -"Do you listen to Radio Australia?", -"Do you listen to Radio Moscow?", -"Do you listen to Radio New Zealand Intl?", -"Do you listen to Radio Peace Peoples Republic of Korea?", -"Do you listen to VOA?", -"Do you listen to click and clack on PBS?", -"Do you listen to the BBC?", -"Do you prefer metric units?", -"Do you recycle often?", -"Do you understand English?", -"Do you watch Quantum Leap?", -"Do you watch STTNG?", -"Do you watch Simpsons?", -"Gaverete Ruskie?", -"Habla espanol?", -"Has the war started yet?", -"Have a nice T day.", -"Have a nice thanksgiving.", -"Have you been to Hawaii recently?", -"Have you been to Kauai since Iniki?", -"Have you ever been to New Madrid, Missouri?", -"Have you ever been to the Chatham islands?", -"Have you ever contacted Kalawao county, Molokai?", -"Have you ever contacted Loving county, Texas?", -"Have you ever played lemmings?", -"Have you ever played tetris?", -"Have you ever seen a computer virus?", -"How copy so far?", -"How copy?", -"How did you learn morse code?", -"How is my signal?", -"How is the weather?", -"How long have you been a radio amateur?", -"How old is your rig?", -"Hows my signal?", -"Hows the weather?", -"I am mobile and am going to the office.", -"I am mobile and am going to work.", -"I am mobile and driving to work.", -"I am mobile, driving cross country.", -"I am mobile, driving home from work.", -"I am mobile, riding a Peruvian Paso Fino horse.", -"I am mobile, riding a Peruvian Paso horse.", -"I am mobile, stuck in traffic.", -"I am using a linear amplifier.", -"I am using an iambic key.", -"I just saw a bolide.", -"I live at 10 Downing.", -"I live at 1010 Springwood.", -"I live at 1620 Keeaumoku.", -"I live at 2500 Pennsylvania.", -"I live at 61C Escondido.", -"I sometimes monitor ULF for earthquake precursors.", -"I sometimes monitor ulf for earthquake precursors.", -"I sometimes work packet on vhf.", -"Is it green there or brown?", -"Is the bad news true?", -"Is your state the one that doesnt have any city governments?", -"Is your state the one that has a unicameral legislature?", -"Is your state the one that has boroughs instead of counties?", -"Is your state the one that has parishes instead of counties?", -"Is your state the one that has townships instead of counties?", -"Ive fallen and I cant get up.", -"Jocks find quartz glyph, vex BMW.", -"Jocks find quartz glyph, vex BMW.", -"Jocks find quartz glyph, vex BMW.", -"Lots of QRM.", -"Mele kelikimaka and hauoli makahiki hou 1995.", -"Must QRT for Babylon V.", -"Must QRT for Star Trek.", -"Must QRT for bathroom break.", -"Must QRT for breakfast.", -"Must QRT for cold breakfast.", -"Must QRT for cold dinner.", -"Must QRT for cold supper.", -"Must QRT for diarreah break.", -"Must QRT for dinner.", -"Must QRT for hot breakfast.", -"Must QRT for hot dinner.", -"Must QRT for hot lunch.", -"Must QRT for hot supper.", -"Must QRT for lunch.", -"Must QRT for sleep.", -"Must QRT for some sleep.", -"Must QRT for supper.", -"Must QRT invading tanks making too much noise outside to hear you.", -"Must QRT occupation forces knocking at door.", -"Must QRT to hear news about approaching hurricane.", -"Must QRT wind has blown door open again.", -"Must QRT, lightning storm has started.", -"Must QRT, lightning threatens.", -"Must QRT, nuclear attack?", -"Must QRT, tornado sirens sounding.", -"Must QRT, tsunami sirens sounding.", -"Must QRT, weather radio warbling.", -"Our neighbors have a horse named morse code.", -"Our neighbors have a horse named morse.", -"Please QRS.", -"Propagation is good.", -"Propagation is poor.", -"Propagation is very good.", -"Propagation is very poor.", -"QLF?", -"QRG", -"QRH", -"QRI 1", -"QRI 2", -"QRI 3", -"QRI", -"QRJ", -"QRK 1", -"QRK 2", -"QRK 3", -"QRK 4", -"QRK 5", -"QRK", -"QRL", -"QRM", -"QRM?", -"QRN 1", -"QRN 2", -"QRN 3", -"QRN 4", -"QRN 5", -"QRN", -"QRO", -"QRP", -"QRP?", -"QRQ 10", -"QRQ 15", -"QRQ 20", -"QRQ 5", -"QRQ", -"QRS 10", -"QRS 15", -"QRS 20", -"QRS 5", -"QRS", -"QRS?", -"QRU", -"QRV", -"QRW", -"QRX 0300", -"QRX 0500", -"QRX 2000", -"QRX 2300", -"QRX", -"QRX?", -"QRY 1", -"QRY 2", -"QRY 3", -"QRY", -"QRZ", -"QSA 1", -"QSA 2", -"QSA 3", -"QSA 4", -"QSA 5", -"QSA", -"QSB", -"QSD", -"QSG 1", -"QSG 2", -"QSG", -"QSK", -"QSK?", -"QSL", -"QSM", -"QSN", -"QSO", -"QSP", -"QST", -"QSU", -"QSW", -"QSX", -"QSY", -"QSY?", -"QSZ", -"QTB", -"QTC", -"QTH?", -"QTR", -"QTR?", -"Should we QSY?", -"So how is the weather?", -"Sorry, stack of books just fell over.", -"Sprechen Sie Deutsch?", -"Thanks for the call.", -"There is a rainbow outside the window.", -"There is an eclipse of the moon right now.", -"Tnx for the call.", -"Tnx for the report.", -"Tnx for ur call.", -"We are on vacation and I am mobile.", -"We just felt a small quake here.", -"What are your hobbies?", -"What is the air pressure there?", -"What is the air quality there?", -"What is the air temperature there?", -"What is the humidity there?", -"What is your QTH?", -"What is your elevation?", -"What is your hobby?", -"What is your job?", -"What is your sign? I am a cancer.", -"What is your sign? I am a centaur.", -"What is your sign? I am a fish.", -"What time zone are you in?", -"Whats your job?", -"When did you start to learn morse code?", -"Where do you live now?", -"Where do you live?", -"Where is Hollister, California anyway?", -"Where is Parkfield, California anyway?", -"Whoa, we are having an earthquake here. A real roller.", -"Would you have given Morse a Nobel prize?", -"You are my first contact today.", -"You are my last contact today.", -"You are my second contact today.", -"You are using a nonlinear amplifier?", -"You are using an iambic key?", -"Your contest sequence no is 1035.", -"Your contest sequence no is 12.", -"Your contest sequence no is 17.", -"Your contest sequence no is 479.", -"Your contest sequence no is 73.", -"Your contest sequence no is 7v.", -"Your contest sequence no is 826.", -"Your contest sequence no is 99.", -"Your job is?", -"Your signal is chirpy.", -"am using a linear amplifier.", -"ewsqgbhjolpi oops cat on keyboard.", -"ru using linear amplifier?", diff --git a/qso/names.h b/qso/names.h deleted file mode 100644 index 125a1c3..0000000 --- a/qso/names.h +++ /dev/null @@ -1,170 +0,0 @@ -"Al", -"Alan", -"Alen", -"Alex", -"Alexander", -"Alexandra", -"Alexeev", -"Alice", -"Allen", -"Alma", -"Amber", -"Angel", -"Anne", -"Art", -"Barbara", -"Barbie", -"Bart", -"Bea", -"Betty", -"Bill", -"Bob", -"Bruce", -"Bryant", -"Bud", -"Carl", -"Carol", -"Cathy", -"Cheryl", -"Chris", -"Christy", -"Chuck", -"Dale", -"Dan", -"Dave", -"David", -"Dennis", -"Diane", -"Dick", -"Don", -"Ed", -"Edmund", -"Edward", -"Elaine", -"Eleuterio", -"Ellen", -"Francie", -"Frank", -"Fred", -"Gary", -"George", -"Gilda", -"Gus", -"Hadassah", -"Harry", -"Hedwig", -"Heika", -"Helen", -"Helmut", -"Henry", -"Heriberto", -"Ingrid", -"Isaac", -"Israel", -"Jack", -"Jacob", -"Jake", -"Jakob", -"James", -"Janae", -"Jane", -"Janet", -"Jeff", -"Jenni", -"Jessica", -"Jill", -"Jim", -"JimBob", -"Joan", -"Joe", -"John", -"Jon", -"Kaahumanu", -"Karen", -"Karl", -"Kathy", -"Keith", -"Ken", -"Kent", -"Kevin", -"Kristen", -"Kurt", -"Larry", -"Lauren", -"Liholiho", -"Linda", -"Lou", -"Lourdes", -"Lynda", -"Lynn", -"Marc", -"Margaret", -"Maria", -"Mariam", -"Mark", -"Marty", -"Marv", -"Mary", -"Mike", -"Monica", -"Moses", -"Mosha", -"Nancy", -"Nathan", -"Neil", -"Noelani", -"Oliver", -"Olivia", -"Pal", -"Pat", -"Patrick", -"Paul", -"Paula", -"Peter", -"Peto", -"Phil", -"Pieter", -"Quimby", -"Rachel", -"Ralph", -"Ray", -"Rebekkah", -"Reiko", -"Rex", -"Reza", -"Rich", -"Rick", -"Ron", -"Roy", -"Sally", -"Sam", -"Sara", -"Sarah", -"Scott", -"Scottie", -"Spencer", -"Steve", -"Stew", -"Stu", -"Sue", -"Tello", -"Terry", -"Thomas", -"Tim", -"Timothy", -"Todd", -"Tom", -"Tony", -"Umberto", -"Vicente", -"Victor", -"Wallace", -"Wally", -"Walt", -"Walter", -"Wendy", -"William", -"Xavier", -"Yaohui", -"Yolanda", -"Zelda", diff --git a/qso/newcity.h b/qso/newcity.h deleted file mode 100644 index b2c6634..0000000 --- a/qso/newcity.h +++ /dev/null @@ -1,29 +0,0 @@ -"Albany", -"Avalon", -"Barnard", -"Bedford", -"Bethel", -"Boston", -"Brunswick", -"Canaan", -"Chester", -"Conway", -"Dime Box", -"Franklin", -"Granville", -"Hamilton", -"London", -"Morris", -"Oxford", -"Salisbury", -"Scarborough", -"Stafford", -"Stanton", -"Trenton", -"Troy", -"Walpole", -"Warren", -"Weston", -"Wilton", -"Windsor", -"Zulch", diff --git a/qso/put_form.c b/qso/put_form.c deleted file mode 100644 index f38fc60..0000000 --- a/qso/put_form.c +++ /dev/null @@ -1,130 +0,0 @@ -#include - -void -PutForm0 (void) -{ - PutRST (); - PutName (); - PutLocation (); - PutMisc (); - PutRig (); - PutWeather (); - PutJob (); - PutAge (); - PutMisc (); - PutQ_And_Freq (); - PutLicense (); -} - -void -PutForm1 (void) -{ - PutLocation (); - PutRST (); - PutRig (); - PutWeather (); - PutMisc (); - PutName (); - PutLicense (); - PutMisc (); - PutQ_And_Freq (); - PutAge (); - PutJob (); -} - -void -PutForm2 (void) -{ - PutThanks (); - PutRST (); - PutName (); - PutWeather (); - PutLocation (); - PutJob (); - PutLicense (); - PutRig (); - PutAge (); - PutQ_And_Freq (); -} - -void -PutForm3 (void) -{ - PutLocation (); - PutRST (); - PutRig (); - PutMisc (); - PutName (); - PutMisc (); - PutAge (); - PutJob (); - PutLicense (); - PutMisc (); - PutWeather (); - PutMisc (); - PutQ_And_Freq (); -} - -void -PutForm4 (void) - -{ - PutThanks (); - PutRST (); - PutJob (); - PutMisc (); - PutMisc (); - PutName (); - PutAge (); - PutLicense (); - PutRig (); - PutLocation (); - PutWeather (); - PutMisc (); -} - -void -PutForm5 (void) -{ - PutLocation (); - PutRST (); - PutRig (); - PutName (); - PutJob (); - PutAge (); - PutMisc (); - PutLicense (); - PutWeather (); - PutMisc (); - PutQ_And_Freq (); -} - -PutQSO (void) -{ - /* printf("VVV VVV\n") ; */ - PutFirstCallsign (); - switch (Roll (6)) - { - case 0: - PutForm0 (); - break; - case 1: - PutForm1 (); - break; - case 2: - PutForm2 (); - break; - case 3: - PutForm3 (); - break; - case 4: - PutForm4 (); - break; - default: - PutForm5 (); - break; - } - printf ("+ %%\n"); - PutLastCallsign (); - printf ("\n"); -} diff --git a/qso/rig.h b/qso/rig.h deleted file mode 100644 index 29646d6..0000000 --- a/qso/rig.h +++ /dev/null @@ -1,69 +0,0 @@ -"Collins 75S=3", -"Collins KWM=2", -"Drake T=4XB", -"Drake TR3", -"Drake TR4", -"Eico 753", -"Hallicrafters SR150", -"Hallicrafters SR160", -"Hallicrafters SR2000", -"Hallicrafters SR400", -"Hallicrafters SR500", -"Heathkit DX=660B", -"Heathkit HG=10B", -"Heathkit HR=10", -"Heathkit HW100", -"Heathkit HW12", -"Heathkit HW12A", -"Heathkit HW22", -"Heathkit HW22A", -"Heathkit HW32", -"Heathkit HW32A", -"Heathkit HW8", -"Heathkit SB100", -"Homebrew", -"Icom IC=1275", -"Icom IC=275", -"Icom IC=475", -"Icom IC=575", -"Icom IC=725", -"Icom IC=726", -"Icom IC=730", -"Icom IC=735", -"Icom IC=751", -"Icom IC=751A", -"Icom IC=765", -"Icom IC=781", -"Kenwood TR=450", -"Kenwood TR=751", -"Kenwood TR=850", -"Kenwood TR=851", -"Kenwood TS=140", -"Kenwood TS=440", -"Kenwood TS=680", -"Kenwood TS=711", -"Kenwood TS=77", -"Kenwood TS=850", -"National NCL 200", -"National NCX3", -"National NCX5", -"RS HTX=100", -"Radio Shack HTX=100", -"Swan 120", -"Swan 140", -"Swan 180", -"Swan 240", -"Swan 350", -"Ten Tec 562", -"Ten Tec 585", -"Ten Tec Argonaut", -"Ten Tec Delta", -"Ten Tec Omni", -"Yaesu FT=1000", -"Yaesu FT=101", -"Yaesu FT=736", -"Yaesu FT=747", -"Yaesu FT=757", -"Yaesu FT=767", -"Yaesu FT=840", -"Yaesu FT=990", diff --git a/qso/util.c b/qso/util.c deleted file mode 100644 index 4fde89f..0000000 --- a/qso/util.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - ******************** - * Utility routines * - ******************** - */ -extern int their_age; - -int -CountStrings (char *StringVector[]) - /* - * Count the number of string values in the supplied vector - * of pointers. Start with the first pointer and stop when - * NIL (0) is encountered. - */ -{ -register char **SV; -register int Count; - - Count = 0; - - for (SV = StringVector; *SV; SV++) - { - Count++; - } - return (Count); -} - -int -Roll (int Number) -{ -int new_tmp; -double tmp_val; -double drand48 (); - tmp_val = ((int) (drand48 () * (Number /*-1*/ ))); - new_tmp = (int) tmp_val % 32767; - if (new_tmp < 2) - tmp_val = 2; - return ((int) new_tmp); -} - -int -License_Seed (void) -{ - if (their_age > 20) - return (20); - if (their_age < 10) - return (10); - return (their_age - 8); -} - -char * -Choose (char *Words[], int Number) -{ - return (Words[Roll (Number)]); -} diff --git a/qso/weather.h b/qso/weather.h deleted file mode 100644 index 757e798..0000000 --- a/qso/weather.h +++ /dev/null @@ -1,48 +0,0 @@ -"a blue norther", -"a noreaster", -"a siberia express", -"chinook winds", -"cloudy", -"cold and windy", -"cold/dry", -"cool/windy", -"damp", -"drizzling", -"fog/drizzle", -"foggy", -"gale force winds", -"gentle rain", -"gusting trade winds", -"hailing", -"horizontal rain", -"hot and humid", -"hot and windy", -"hot", -"hot/dry", -"hot/humid", -"hot/muggy", -"hot/smoggy", -"humid", -"kona winds", -"pleasantly cool", -"pleasantly warm", -"raining cats and dogs", -"raining", -"santa anna winds", -"sleeting", -"smoggy", -"snowing", -"spitting rain", -"sunny", -"tornadic winds", -"trade winds", -"uncomfortably hot", -"very cold", -"very hot", -"very windy", -"warm", -"wet", -"wet/foggy", -"wet/windy", -"windy and warm", -"windy",