NEW AUTO 3,1 */-------------------------------------- * # StrVGet * ## ASM * `>PUSHB hSTRV` * `>PUSHB index` * `>PUSHW ptr` * `>SYSCALL StrVGet` * ## RETURN VALUE * CC: Y,A = Ptr * CS: Y,A = NULL *\-------------------------------------- K.StrVGet >PULLW FORPNT ptr */-------------------------------------- * # StrVShift * ## ASM * `>PUSHB hSTRV` * `>PUSHB index` * `>SYSCALL StrVShift` * ## RETURN VALUE *\-------------------------------------- K.StrVShift >PULLA index eor #$ff tay >PULLA hSTRV jmp K.SYSCALL.JMPX */-------------------------------------- * # StrVAdd * ## ASM * `>PUSHB hSTRV` * `>PUSHW str` * `>SYSCALL StrVAdd` * ## RETURN VALUE * CC : str added to hSTRV * CS : hSTRV full *\-------------------------------------- K.StrVAdd >PULLW TXTPTR str >PULLA jmp K.SYSCALL.JMPX *-------------------------------------- STRV.Ptr1Ptr2cpy ldx #0 ldy #0 .4 lda (ZPPtr1),y sta (ZPPtr2),y beq .6 .5 iny bne .4 inc ZPPtr1+1 inc ZPPtr2+1 bra .4 .6 inx iny bne .7 inc ZPPtr1+1 inc ZPPtr2+1 .7 lda (ZPPtr1),y sta (ZPPtr2),y Ending \0 ? bne .5 rts *-------------------------------------- MAN SAVE usr/src/sys/kernel.s.strv LOAD usr/src/sys/kernel.s ASM