Module:Money
Description: coin changer driver
Source: money.asm
Wrapper: money.c
  money.h

Description:

The Money module handles detecting when coins are inserted, as well as controlling the parts of the hardware that are connected to the Coke machine coin changer. When a coin is inserted and accepted, the appropriate message is generated.

Messages:

MESSAGE_Money_NickelInserted a nickel was deposited
MESSAGE_Money_DimeInserted a dime was deposited
MESSAGE_Money_QuarterInserted a quarter was deposited

Commands:

cokerr Money_QueryVersion (char* versionstring)
returns the version string.

cokerr Money_SetCREMs (byte cremstate)
accepts or rejects incoming coins. If cremstate is 0, coins are rejected; if cremstate is 1, coins are accepted (except when a purchase is pending) and generate messages.

cokerr Money_SetLight (byte lightstate)
turns on or off the "Exact Change Required" light. If lightstate is 0, the light is turned off; if lightstate is 1, the light is turned on.

cokerr Money_AllowPurchase ()
puts the machine in a state where the next virtual button push (Button_Push ()) will release a frosty beverage. Button_ReleaseBeverage() is recommended instead, to take care of the entire process.

cokerr Money_ReleaseNickel ()
makes a nickel fall into the coin return slot. This command can be called multiple times in succession in order to release multiple nickels.

cokerr Money_CheckNickelTube ()
returns successful if there are nickels in the nickel tube; returns an error if the nickel tube is empty (no more nickels can be released).
Errors: ERROR_Money_NickelTubeEmpty