About asmBots SDI
Have fun while learning how to program!
Citizens of the Galaxy! The end of War and poverty is upon us. The Prodigal Devourers are extinct and the Shared Blessings of the galaxy are once again, ours.
With the end of the Great Abstracted War, the Union of Empathy and Quintessence designated an enormous amount of military robots as surplus. The Union authorized demilitarization and re-utilization of many robots and other surplus equipment.
The Coalition for Expanded Knowledge (an official Public Trust recognized by the Union), constructed a Robot Proving Ground for All magnanimous Citizens of the Galaxy.
Each arena on The 'Proving Grounds' has a field and a mainframe computer. The mainframe controls the game. The mainframe transmits a view of the action to your access device.
While in a game, touch your access device, to display the mainframe control panel. You can adjust the game speed, pause or play the game (step or run), select the robot being developed, and bring up a robot's code.
When in code view, the current line of code is highlighted. Clicking on the STEP button, will cause the robot to run the highlighted code. The mainframe will update the game view.
Long-clicking on a line of code opens the code options. To edit the line of code, select EDIT from the code options.
When editing code, you do not need to type the commands or registers because the interface provides drop-downs for the commands and registers.
Central to each robot is a floating point Central Processing Unit (CPU) and a Function Coprocessor (FCP).
The CPU consists of a set of REGISTERS that contain numbers. The CPU recognizes a set of commands that operate on the REGISTERS (or the numbers they contain).
The FCP monitors certain REGISTERS and automatically responds based on the value in the register. The FPU automatically updates certain registers as well.
An example of a REGISTER being read by the FCP is the directional register. The FCP constantly reads the direction register and instructs the various sub-processors that cause the robot's servos and hydraulics to run in the specified direction.
An example of the FCP updating registers is the robot's position. The FCP updates the position registers with the robots current position obtained from the navigation sub-processor.
Your bot is always moving and the direction and speed is determined by the values in the DIR and SPD registers. The FCP accesses these registers and controls the bot's sub-systems.
The FCP recognizes two modes of operation. You can control the mode by setting the NMOD register.
Mode 0 - FCP sets the DIR register causing movement towards the point contained in TRGX, TRGY.
Mode 1 - Your program must set the DIR register.
You can stop by setting the SPD register to 0.
Coding Code
Code is a series of instructions in sequential order.
Commands occupy a line of code and are generally followed by one or more parameters.
KICK GOLR 10
Parameters can be either a literal number (such as 10), a register (such a GOLR), or a Label (such as :KICK_BALL_AT_GOAL).
Besides commands, code can also contain labels. Labels in code mark a point that can be jumped to from another location.
RSET NMOD 0
:START
RSET TRGX BALX
RSET TRGY BALY
JMPA :START
The code above represents a complete (but simple) program that will cause the robot to chase the ball.
The first line, RSET NMOD 0, tells the FCP that we will set our target position, and the FCP will automatically set the DIR register.
The second and third lines set our target position to the position of the ball. The last line, JMPA :START, jumps back to the label :START, and from there, the TRGX and TRGY registers are set again to the balls position, and then the JMPA command sends the program back to start, and it begins again. This is an infinite loop, but because the FCP is constantly update the ball's position, BALX and BALY, the effect is the robot chases the ball.
by Q####:
Better than I imagined