SPLat Logo

iiPrintNVText dest# [D>=27]

NOTICE: SPLat Controls has moved. We are now at 1/85 Brunel Rd, Seaford, 3198. map

iiPrintNVText dest# [D>=27]

Print text from NVEM.

The zero-terminated text string currently pointed to by the NVEM Pointer + RecLen x RecNum will be sent to the destination called for in dest. The string can be any series of bytes, but it must end in a 0 byte (and cannot therefore contain a zero byte).

Dialect 27 Firmware failed to apply the RecLen x RecNum offset. This is corrected in dialect 28 firmware.

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.

This instruction allows you to store a text string in NVEM and then invoke it from several places in your program. It can also facilitate creating multi-language applications.

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 - 249

The 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 - 254 The 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.

Example string in NVEM

strQBFMessage:      NV0Byte      "The quick brown fox",0

Dialect restriction: This instruction is not implemented in boards with dialect numbers less than 27.

See also iiPrintText