quote:
Originally posted by Nitram Draw:
I know that if you are convinced something can't be done you are beaten. I believe anything is possible, especially if you don't know any better.
A perfect straight line available when I came back to post! Thanks!
I know about UPS but never needed one before. The problem is a circuit breaker that trips in the new house. I have been informed that the problem will go away in the next few weeks as microfuzz causing heating on the contacts wears down. Since my bank account is seriously depleted by the move, I would have to wait till next month to spring for a 2 hour battery backup UPS anyway, because it costs $200.
Just out of curiousity since there seems to be some interest, I did a web search using Hotbot with the following results :
1) general purpose simulator -44,200 2) same +macro -5900 3) same +parse -1200 4) same +relocatable -56 5) same +overlay -43 6) same + macrocommand -1
So it looks like there is probably action going on, but most of it is not posted where the public can see it. The searches at level 4+ mostly hit on dictionaries.
"What we have here is a lack of communication."
Basically a macrocommand is an instruction in a LANGUAGE INVENTED ON THE FLY. As an example TDS-11 had over 300 macrocommands of varying length written in assembler. Assembler was used because it was a 1982 PDP-11 under RT-11 in a 64k byte address space. So both time and memory were critical. Nowadays a macrocommand would be written in any language at all so long as the MIE and RE working together know how to call and pass a single address to it - the address of its ADB. You invoke a macrocommand in the macrocommand language instruction files by simply giving the name of the relocatable code file as a command name, followed by the list of calling arguments referencing macrocommand variables. Each relocatable file has a function in it labeled the same as the file name, which is the entry point function. The functions in the macrocommand file are allowed to call any function library routine by invoking the engine function calldown with the (engine designer defined) index number of the function to be called and a pointer to a structure containing the required calling arguments of the invoked function. A macrocommand function in one relocatable file is NOT allowed to call macrocommand functions in other relocatable files, because it would not know the address. If you want to do that you do it as a macrocommand language instruction to be parsed. The most powerful macrocommands are CALLU/RETU the universal call/return and FORKU the universal fork. They are provided by the engine designer. Basically CALLU must make sure the invoked macrocommand language instruction file has been loaded into memory, if not load it. Then point to the next line to be parsed in the current file in the macrocommand call stack and start parsing at the line label in the new file's stream of macrocommands. RETU simply pops the stack and resumes parsing there. With FORKU you provide a macrocommand variable name containing an index and a list of macrocommand line labels in the current file being parsed. It works just like a computed goto.
So basically you see that the GPS engine is an interface to an operating system(s) that makes it possible to mix Languages in the same application and to add new functions to an application without having the language specific source code for existing functions - programmers paradise. It does not have to be a linker for labels found in the relocatable files except for the one entry point function in each file because all other labels are resolved locally by the compiler used by the macrocommand author. The TDS-11 engines had to be overlay loaders because of the 64kbyte address space and I see no reason to skip that because I can see this engine being used in applications which exceed a Gigabyte very easily. While at Datapoint in 83-86 I had to write my own overlay loader and overlay manager because the 8600 also had a 64kbyte address space and the Manufacturing Automated Test System I wrote (91000 lines source and still going strong when I left) exceeded the physical (2 megabytes) memory space of the machine as well. With a rich library of macrocommands available for gaming applications, the player can mod his purchased game to be something very different if he so desires by changing the macrocommand language instruction streams, in effect becoming another game author. If that looks too complicated, the player can experient with the configuration generator and the seed data files to create very different game universes, becoming a scenario designer. If the player finds that too complicated, he can just be an emperor using the game AI managers to do the grunt work, with occasional changes to their priorities. If he still does not like what he sees then he can get down and dirty and look at the data being manipulated by the managers to develop his own management rules, becoming an AI designer.
So far as my estimate of source lines goes, you will note that (if I do it at all) I plan to generate a macrocommand library that has only the basics in it. For elaborate games or simulations the designer of the game must invent his own macrocommands and use them with the existing library to generate new macrocommand language instruction files specific to his enhanced game. Seeds and other data needed by the configuration generator would probably also be tailored for new games.
I do not drink or use drugs, so my mind is not fantasizing. I have written over 5000 pages of software from 73-93. I know what I am talking about and am not just blowing smoke. Most of it has been done before, so I have two major concerns :
1) I do not want to re-invent the wheel if somebody else is already doing it.
2) I want TO GET PAID WHAT IT IS WORTH IF I DO IT.
Economics, politics, or warfare it makes no difference, because the interaction between game items is just another black box transfer function based on abilities, dependencies, and derivatives. I am an engineer and design for functionality, when possible also optimizing for time and memory, ie COST. Programmers often do things differently so they look like they are doing a lot of work. As an example of the way engineers see things differently, I can say in one line what Ayn Rand said in 800 pages :
I can do it. You can't, stupid. So PAY me what it is worth.
I suppose that if she had been paid for clarity of thought rather than by the word, she would have written a shorter "Atlas Shrugged"...........