.title delarg ;+ ; subroutine delarg(narg) ;- ap=%5 narg=2 ; ; ; .psect $r.roi,con,ro,rel,lcl,i .enabl lsb delarg:: mov @narg(ap),r1 ; get argument number ble 20$ ; if <= 0, invalid - return cmp r1,r$argc ; see if too large bge 20$ ; if >=, YES dec r$argc ; reduce argument count clc ; multiply n by 2 to get word rol r1 ; offset into argv add #r$argv,r1 ; address of destination mov r1,r0 ; address of source after tst tst (r0)+ ; 11$: cmp r0,#r$arge ; at end of pointers? beq 20$ ; YES mov (r0)+,(r1)+ ; copy pointer over obsolete one br 11$ ; go again 20$: return .end