GRANDPRIX 1.0 The ultimate buddy along the racetrack! (Jarno Peschier, jpeschie@cs.ruu.nl) INTRODUCTION ============ My father has done quite some years of motorcycle racing (in fact I grew up on paddocks and racetracks in the summer weekends). Only national of course, but still... That's why I'm also a racing fan really (how could one not be, being named after a well-known motorcycle racer from Finland?). The past few days (june 24, 25 and 26, 1994) I have been with my family to Assen for a week of vacation. Needless to say that we were (also) there to go to the Dutch TT. Since I have my HP48G calculator I always take it with me on holidays and stuff like that, so - of course - I had it with me when we were watching the trainings at Assen (I detest large crowds actually, so unfortunately I was stupid enough not to go the race day itself; I watched those superb races from our caravan, on a nearby camping...). Then I got the idea to write a program that would give me names, racing teams etc. after typing in the number of a bike (I'm not that good in remembering all of them). Of course this got completely out of hand, as it always does. It ended with... Grandprix version 1.0. INSTALLING IT ============= Just upload the file GP to your HP48G(X) with binary upload - an S(X) will maybe partly work, but the setup part and the shell around this set of programs uses stuff like CHOOSE and INFORM quite a lot, so my guess is it won't run on a S(X) at all... You will have a directory called GP, containing the separate programs, a shell around them, a sub-directory containing all the data (phew, smoking fingers from typing that!), some auxilirary programs and a CST menu (which starts the shell for you). That is all! COPYRIGHTS ========== You can change GP to your own needs if you want and also enhance it. The only restrictions I place are: 1) my name is not removed from it (you may of course add your own, if you make substatial changes), 2) you contact me if you like it and/or have enhanced it in some way (so I know what is happening to it; I like that ;-)) and 3) nobody asks money for it; it is put into the public dmain by me, and it has to stay there. Have fun with it! USING IT ======== Grandprix 1.0 consists of the following programs: NUMBER, NAME, SPEED, STOPWATCH, CLASS and SETUP which can be used seperately by putting parameters on stack (if neccesary) and running the programs. The programs do little or no parameter checking... It is strongly advised to use the SHELL (or the GP menuentry in CST) to access these programs from a nice menu. NUMBER - Searching for a certain bike number ============================================ You can put a number on stack and run this program, or you can run it on an empty stack to let the program prompt you for a number. Then it looks for that number in the current class (see CLASS). If the number is found the info (name of the rider(s), name of his team and the brand of his bike) is shown. If the number "does not exist" the program just shows "Not found...". Note that searching is still simple and linear, and therefore quite slow. Maybe this is something for version 1.1...? NAME - Searching for a certain rider (or team, or bike) ======================================================= You can put a string on stack and run this program, or you can run it on an empty stack to let the program prompt you for a string. Then the program starts searching for an entry in the current class that contains the string and all matches are shown, one after another. This enables you to find Kevin Schwantz in the 500cc class for instance by entering "KEVI" (which shows you there's another Kevin in the 500cc), or you can enter "HONDA" to find all riders that ride on a Honda bike. SPEED - Calculating average speeds ================================== You can put a laptime - e.g. one that you hear announced through a local speaker - on stack (in the form mm.ss) and run this program, or you can run it on an empty stack to let the program prompt you for a string. Then the program calculates the average speed on the current circuit using the length of one lap (stored in LAP in the DATA directory) and displays it in a MSGBOX. It can be displayed in any unit of the form ###_X/h where X is any length unit available on the HP48, by putting the length of one lap on the circuit into LAP in unit X. I prefer kilometers, but I can imagine people prefering miles (or even parsecs or yoctameters ;-)). STOPWATCH - A stopwatch that warns you ====================================== You can run this program whenever you like. It waits for a keypress to start the stopwatch (Backspace cancels the stopwatch, if you ran the program "by accident") and then it waits for another keypress to stop it. The resulting time (calculated using TICKS) is put on stack and SPEED is automatically run to show you the time and corresponding average speed. When the stopwatch is running an estimate of the time is shown (calculated using TIME) and when the time reaches the moment at which the average speed on the current circuit would be some high value (I believe it's now 185 km/h; look in the source) it beeps for a short time, warning you that the rider you are clocking at the moment is due to arrive again soon. I personally think this is *really* handy. CLASS - Switching between classes ================================= You can run this program whenever you like. It opens a CHOOSE box from which you can choose what class NAME and NUMBER are referring to from now on. You can choose from the 250cc (the default after downloading), the 500cc, the 125cc and the sidecars. The new name of the datastructure in DATA (one of C250, C500, C125 or SIDECAR) is put in the variable CURRENT in the DATA directory. CLASS just changes CURRENT for you (you could even do it yourself, if you want). Since the classes in each GP are run in the order that CLASS shows them, CLASS will make the next class the default, so running CLASS and just pressing Enter always advances you to the next class (e.g. 500cc -> 125cc). SETUP - Changing the GP and circuit =================================== You can run this program whenver you like. It opens an INFORM box in which you can change the name of the event/grandprix (kept in variable TITLE in the DATA directory, with a default of "Dutch TT 1994"), the name of the circuit (kept in variable CIRCUIT, with a default of "Assen") and the length of one lap at that circuit (kept in variable LAP, with a default of 6.047 km for Assen). Of course this works only during one season, because after that the numbers and even riders change (even every race there are changes: just look at the wildcard riders). For changes in C250, C500, C125 or SIDECAR you should edit those variabels "by hand", just as I have to... SHELL - Using everything easily =============================== This is the advised manner to use the above programs. It starts with an introscreen, stating program, version, copyright, my E-Mail address and in bigger letters the contents of TITLE and CIRCUIT (see SETUP). After pressing ON you will see a CHOOSE box. The title of this CHOOSE box is TITLE followed by CURRENT, e.g. "DUTCH TT 1994: C250", so you can see what the current class is. The options correspond to the programs mentioned above. There is only one extra option, which turns your HP48 off, returning to Grandprix 1.0 when turned on again. CONCLUDING ========== I have used this set of programs myself at the 64th Dutch TT and found them really handy. I had also put every event (all free trainings, qualifying trainings, warm-ups and races) in my alarm list, and one extra option in the shell that called my NEXTALARM program, so I really didn't need the sold program anymore after I had typed it all in. And what program leaflet has a builtin stopwatch and calculator...? STILL TO DO...? =============== The searching still isn't very fast (when you have the program open at the correct page for the currently running class, a simple "human lookup" is still faster unfortunately...), but that could be changed by some sort of indexing and/or putting that data in a binary tree. Furthermore I think it's bit confining that you can't do anything (like looking up a number or name) while the stopwatch is running. Since it works with remembering TICKS values, it should be possible to create options "Start stopwatch" and "Stop stopwatch" in stead of just "Stopwatch". And then there is the fact that year after year the GP's are run the same circuits over and over again, so I'm thinking about a database of circuits where you can choose from when running setup. So... maybe there will be some version 1.1 once... Jarno Peschier jpeschie@cs.ruu.nl