Knowledge Base

iiPrintFill dest#,count,value [D>=23]

<dest[0...count-1]> = value; I = (dest < 250) ? (I + count) : I

Send count bytes of value to destIf dest is in RAM, fills count bytes. If dest is a serial output channel, sends count characters.

count can be 1 to 255, so long as it doesn’t overflow RAM (if RAM is the destination). The maximum number of bytes per message to the serial port is 255. However, the serial transmit buffer is 128 bytes (which could change in future Firmware revisions). If you try to send out more than the buffer can hold, your program will stall until there is room in the buffer (this is your whole program, not just a single MultiTrack task). You can avoid this by using COMTx_Space to ensure there is room before attempting to output.

Used mainly to clear a RAM data block. Typically RAM will be used as the destination when data is destined for an Xwire device.

This instruction is automatically indexed.

When printing to RAM the index register I is added to the dest address and the result is stored in that location. I is then incremented by the number of characters stored. This allows several things to be “printed” to RAM.

“Printing” to RAM is typically used for communicating with an Xwire peripheral.

The dest argument determines where the result of the instruction is directed.

Destination address (dest)Where the result is directed
0 – 249The result is stored in successive RAM locations, starting at dest. It will occupy as many RAM locations as are needed to contain the result, one location per character. For example, the result of iifPrintWFW 25,7,3 will occupy 7 bytes, RAM locations 25 through 31, because the format specifier calls for 7 digits of output. A runtime error will occur if the output over-runs the end of RAM (address 249). Using RAM as the destination is particularly useful for sending data out on Xwire.Note: These addresses are not jndexed. Instead they use I as an offset from the dest address, and automatically increment I by the number of bytes stored in RAM by the instruction.
251 – 254The result is directed to the serial port at the address given, providing the selected protocol is “User programmable”, and that the controller you are programming has a serial port at that address. This is the primary means of generating any arbitrary serial output under program control.

Dialect exclusions: Not available in dialects before 23