Changes made to bring CRobots from 2.2 to 2.3: ============================================== Improved the encoding routines. Now compiled robots can be as much as 50% smaller than in previous versions. Added checks for files being write/read/delete protected. Improved the IF-THEN generating section of the compiler. It no longer generates unneeded instructions when there is no ELSE part. Postfix increment and decrement are now implemented (a++ and a--). Be aware that these operations use 5 instructions, while prefix operations only use three. Added a table for the time needed to complete common actions in terms of CPU cycles. More to be added later. Some changes in the docs to conform to the above new features. Compiler and debug mode now use a 0 based addressing. This means you should now get the same numbers every time you compile a robot. Note that there are several different pools for these numbers: The instruction pool, the stack, and the external function stack. The compiler will now list the name of the variable, rather than just it's offset in the {local|external} pool. Note that once a robot is fully compiled, this symbolic info is trashed, so you have to use the offsets in debug mode. Improved function closing. If a function returns a value of it's own, the compiler will not generate a "CONST 1, RETSUB" for the function. This did not cause the robot to go slower, but did take up 2 instructions in the code area whether it was needed or not. When compiling you will not get the occasional "ILLEGAL xxx" instructions at the end of a valid function definition. Also fixed a problem in which it sometimes displayed the code for another function instead of stopping after decompiling the previous function. New flag "NOWAIT" to turn off the "press any key to continue" messages. This allows complete operation from within a script. Changes made to bring CRobots from 2.1 to 2.2: ============================================== Fixed a bug with the NOSHOW option preventing compiled output from being saved. Because nothing ever stated that a BOB needs the BorderLine field in the VS filled in, I was not creating it. This was stomping on location 0, and has been fixed. Fixed it so that it doesn't open the icon library everytime the mysetup() function is called. Modified the mysetup() function to close the previous window (if any) before it tries to open the new one. This should let it run on a 512k machine. Cleaned up the encode string routines. Seperated the intuition executable code from the general data/include files so that it may be debugged/traced under the optimizer Corrected a problem in the DEBUG mode which improperly initialized the robot position, by multiplying the location by 100 instead of CLICK, which is 10. Prettied up the compiler output somewhat. Cleaned up the output in debug mode. Now displays the characters used for binary operations. Corrected a problem with the Other robots being displayed in the top left corner when the first robot was displayed for the first time. Fixed a problem with the Y axis by inversed for graphics Changed the motion update values so that the robot CPU's get the same number of cycles before a position change as they did in the text-only/IBM version. To do: ====== Sound Voice Graphics for debug mode A run mode as well as a step mode while using DEBUG