Editing Vending Machine Export IC10
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | |||
This solution will export a given quantity of the specified item from a vending machine. | This solution will export a given quantity of the specified item from a vending machine. | ||
[[File:VendingExporterSetup.png|thumb|right|Connect the three devices with chutes as shown in the diagram.]] | [[File:VendingExporterSetup.png|thumb|right|Connect the three devices with chutes as shown in the diagram.]] | ||
Line 18: | Line 17: | ||
</span><span style="color: #00FFFF;">alias</span><span> </span><span>rTemp</span><span> </span><span>r0</span><span> | </span><span style="color: #00FFFF;">alias</span><span> </span><span>rTemp</span><span> </span><span>r0</span><span> | ||
</span><span style="color: #00FFFF;">alias</span><span> </span><span>rTemp2</span><span> </span><span>r1</span><span> | </span><span style="color: #00FFFF;">alias</span><span> </span><span>rTemp2</span><span> </span><span>r1</span><span> | ||
+ | </span><span style="color: #00FFFF;">alias</span><span> </span><span>rSorterBusy</span><span> </span><span>r6</span><span> | ||
+ | </span><span style="color: #00FFFF;">alias</span><span> </span><span>rSorterOutput</span><span> </span><span>r7</span><span> | ||
</span><span style="color: #00FFFF;">alias</span><span> </span><span>rBusy</span><span> </span><span>r2</span><span> | </span><span style="color: #00FFFF;">alias</span><span> </span><span>rBusy</span><span> </span><span>r2</span><span> | ||
</span><span style="color: #00FFFF;">alias</span><span> </span><span>rReqHash</span><span> </span><span>r9</span><span> | </span><span style="color: #00FFFF;">alias</span><span> </span><span>rReqHash</span><span> </span><span>r9</span><span> | ||
Line 64: | Line 65: | ||
</span><span style="color: #00FFFF;">ls</span><span> </span><span>rMaxUnitStack</span><span> </span><span>dStacker</span><span> </span><span>2</span><span> </span><span>MaxQuantity</span><span> | </span><span style="color: #00FFFF;">ls</span><span> </span><span>rMaxUnitStack</span><span> </span><span>dStacker</span><span> </span><span>2</span><span> </span><span>MaxQuantity</span><span> | ||
</span><span style="color: #FF0000;">jal</span><span> </span><span>_WaitForDevices</span><span> | </span><span style="color: #FF0000;">jal</span><span> </span><span>_WaitForDevices</span><span> | ||
+ | </span><span style="color: #00FFFF;">s</span><span> </span><span>db</span><span> </span><span>Setting</span><span> </span><span>rMaxUnitStack</span><span> | ||
</span><span style="color: #6666FF;">min</span><span> </span><span>rStackerSetting</span><span> </span><span>rReqCount</span><span> </span><span>rMaxUnitStack</span><span> | </span><span style="color: #6666FF;">min</span><span> </span><span>rStackerSetting</span><span> </span><span>rReqCount</span><span> </span><span>rMaxUnitStack</span><span> | ||
</span><span style="color: #6666FF;">min</span><span> </span><span>rStackerSetting</span><span> </span><span>rStackerSetting</span><span> </span><span>rStackerCount</span><span> | </span><span style="color: #6666FF;">min</span><span> </span><span>rStackerSetting</span><span> </span><span>rStackerSetting</span><span> </span><span>rStackerCount</span><span> | ||
Line 69: | Line 71: | ||
</span><span style="color: #FF0000;">bgt</span><span> </span><span>rReqCount</span><span> </span><span>rStackerCount</span><span> </span><span>ExportItemLoop</span><span> | </span><span style="color: #FF0000;">bgt</span><span> </span><span>rReqCount</span><span> </span><span>rStackerCount</span><span> </span><span>ExportItemLoop</span><span> | ||
</span><span style="color: #00FFFF;">s</span><span> </span><span>dStacker</span><span> </span><span>Setting</span><span> </span><span>rStackerSetting</span><span> | </span><span style="color: #00FFFF;">s</span><span> </span><span>dStacker</span><span> </span><span>Setting</span><span> </span><span>rStackerSetting</span><span> | ||
− | </span><span style="color: # | + | </span><span style="color: #6666FF;">move</span><span> </span><span>rSorterOutput</span><span> </span><span>0</span><span> |
</span><span style="color: #FF0000;">jal</span><span> </span><span>_RunStacker</span><span> | </span><span style="color: #FF0000;">jal</span><span> </span><span>_RunStacker</span><span> | ||
</span><span style="color: #00FFFF;">ls</span><span> </span><span>rStackerCount</span><span> </span><span>dStacker</span><span> </span><span>2</span><span> </span><span>Quantity</span><span> | </span><span style="color: #00FFFF;">ls</span><span> </span><span>rStackerCount</span><span> </span><span>dStacker</span><span> </span><span>2</span><span> </span><span>Quantity</span><span> | ||
Line 77: | Line 79: | ||
</span><span style="color: #FF0000;">beqz</span><span> </span><span>rStackerCount</span><span> </span><span>ExportItemExit</span><span> | </span><span style="color: #FF0000;">beqz</span><span> </span><span>rStackerCount</span><span> </span><span>ExportItemExit</span><span> | ||
</span><span style="color: #00FFFF;">s</span><span> </span><span>dStacker</span><span> </span><span>Setting</span><span> </span><span>rStackerCount</span><span> | </span><span style="color: #00FFFF;">s</span><span> </span><span>dStacker</span><span> </span><span>Setting</span><span> </span><span>rStackerCount</span><span> | ||
− | </span><span style="color: # | + | </span><span style="color: #6666FF;">move</span><span> </span><span>rSorterOutput</span><span> </span><span>1</span><span> |
</span><span style="color: #FF0000;">jal</span><span> </span><span>_RunStacker</span><span> | </span><span style="color: #FF0000;">jal</span><span> </span><span>_RunStacker</span><span> | ||
+ | </span><span style="color: #FF8000;">#wait for item to arrive | ||
+ | </span><span style="color: #00FFFF;">l</span><span> </span><span>rTemp</span><span> </span><span>dVender</span><span> </span><span>ImportCount</span><span> | ||
+ | </span><span style="color: #00FFFF;">l</span><span> </span><span>rTemp2</span><span> </span><span>dVender</span><span> </span><span>ImportCount</span><span> | ||
+ | </span><span style="color: #FF0000;">breq</span><span> </span><span>rTemp</span><span> </span><span>rTemp2</span><span> </span><span>-1</span><span> | ||
</span><span>ExportItemExit:</span><span> | </span><span>ExportItemExit:</span><span> | ||
</span><span style="color: #6666FF;">pop</span><span> </span><span>ra</span><span> | </span><span style="color: #6666FF;">pop</span><span> </span><span>ra</span><span> | ||
Line 85: | Line 91: | ||
</span><span>_RunStacker:</span><span> | </span><span>_RunStacker:</span><span> | ||
</span><span style="color: #6666FF;">push</span><span> </span><span>ra</span><span> | </span><span style="color: #6666FF;">push</span><span> </span><span>ra</span><span> | ||
+ | </span><span style="color: #00FFFF;">s</span><span> </span><span>dSorter</span><span> </span><span>Output</span><span> </span><span>rSorterOutput</span><span> | ||
</span><span style="color: #00FFFF;">l</span><span> </span><span>rTemp</span><span> </span><span>dSorter</span><span> </span><span>ImportCount</span><span> | </span><span style="color: #00FFFF;">l</span><span> </span><span>rTemp</span><span> </span><span>dSorter</span><span> </span><span>ImportCount</span><span> | ||
</span><span style="color: #00FFFF;">s</span><span> </span><span>dStacker</span><span> </span><span>Output</span><span> </span><span>1</span><span> | </span><span style="color: #00FFFF;">s</span><span> </span><span>dStacker</span><span> </span><span>Output</span><span> </span><span>1</span><span> | ||
Line 125: | Line 132: | ||
* Place all components listed above and connect them using [[Cables]] and [[Chutes]] as shown in the picture. (For cables just connect everything) | * Place all components listed above and connect them using [[Cables]] and [[Chutes]] as shown in the picture. (For cables just connect everything) | ||
* Load the code into the IC and turn everything on | * Load the code into the IC and turn everything on | ||
− | |||
== Usage == | == Usage == | ||
Line 137: | Line 143: | ||
== How It Works == | == How It Works == | ||
− | === | + | === Control And Initialization === |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | + | * Wait until both memory modules have a non-zero value, then configure the sorter and stacker with the right mode and reset their counters. Reset the memory module for quantity. |
− | === | + | === Main ExportItem Loop === |
* Request the item from the vender and wait for it to arrive into the stacker, then run _WaitForDevices to make sure nothing is busy. | * Request the item from the vender and wait for it to arrive into the stacker, then run _WaitForDevices to make sure nothing is busy. | ||
* Calculate the setting for the stacker depending on the remaining items, the quantity inside the stacker and the maximum stacking size (in manual mode, it won't do anything until the Output parameter is set to 1) | * Calculate the setting for the stacker depending on the remaining items, the quantity inside the stacker and the maximum stacking size (in manual mode, it won't do anything until the Output parameter is set to 1) |