/sys$common/syshlp/helplib.hlb MACRO, VAX MACRO Assembler, Instructions, MOVTUC *Conan The Librarian (sorry for the slow response - running on an old VAX) |
Purpose: To move and translate a character string, handling escape codes (until character) Format: opcode srclen.rw,srcaddr.ab,esc.rb,tbladdr.ab, dstlen.rw,dstaddr.ab C. Codes: N = {srclen LSS dstlen}, Z = {srclen EQL dstlen}, V = {terminated by escape}, C = {srclen LSSU dstlen} Exceptions: None Opcode: 2F MOVTUC Move translated until character Description: The source operand string specified by srclen and srcaddr is translated and replaces the destination string as specified by dstlen and dstaddr. Translation is done by using each byte of src as an index into tbl (256 byte array). The selected byte is placed in dst. Translation continues until a translated byte equals esc or either string is exhausted. If translation is terminated by esc, the condtion code V-bit is set. If dst overlaps src or tbl, dst and the registers are unpredictable. Notes: After execution: R0 = number of bytes remaining in source string (including the byte that caused the escape); R0 is 0 only if the entire source string was translated and moved without escape R1 = address of the byte that resulted in destination string exhaustion or escape; or if no exhaustion or escape, address of one byte beyond the source string R2 = 0 R3 = address of the table R4 = number of bytes remaining in the destination string R5 = address of the byte in the destination string that would have received the translated byte that caused the escape, or would have received a translated byte if the source string were not exhausted; or if no exhaustion or escape, the address of one byte beyond the destination string
|