.TITLE MOVC - Move a chracter string. .VERSION 20 .ENABLE 7BIT / ++ / MOVC Y2.0 / / (c) 1988, 1989 by Johnny Billquist / / History: / / 88/12/29 15:15 BQT X1.0. Initial coding. / 89/01/04 15:35 BQT X1.1. Split into PRSLIB. / 89/12/27 05:00 BQT Y2.0. Made from STRLIB. / / -- / .FSECT XMOVC / / MOVC moves a string to another address (and field) / 0 /For return address. CLA TAD I XMOVC /Get arg1. ISZ XMOVC DCA SP$ /Save as source pointer. TAD I XMOVC /Get arg2. ISZ XMOVC TAD (CDF) DCA SF$ /Save as source field. TAD I XMOVC /Get arg3. ISZ XMOVC DCA DP$ /Save as destination pointer. TAD I XMOVC /Get arg4. ISZ XMOVC TAD (CDF) DCA DF$ /Save as destination field. TAD I XMOVC /Get arg5. ISZ XMOVC CIA DCA LC$ /Save as max length. RDF /Get return field. TAD (CDF CIF) DCA R$ SF$: HLT /Change to source field. TAD I SP$ /Get from source. ISZ SP$ /Bump source pointer. SNA /End of string? JMP E$ /Yes. Return. DF$: HLT /Change to destination field. DCA I DP$ /Save in destination. ISZ DP$ /Bump destination pointer. ISZ LC$ /Bump max count. JMP SF$ /Not max yet. Repeat. E$: DCA I DP$ /NUL end. R$: HLT /Done. Return field. JMP I XMOVC /Return. SP$: 0 /Source pointer. DP$: 0 /Destination pointer. LC$: 0 /Loop count. Max length. / $