NEW AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 .TF bin/kill *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i *-------------------------------------- * Zero Page Segment, up to 32 bytes *-------------------------------------- .DUMMY .OR ZPBIN ZS.START ZPTmpPtr .BS 2 ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA #0 S.PS.F .DA #0 .DA CS.END-CS.START Code Length To Relocate .DA DS.END-DS.START Data Segment to Allocate .DA #16 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE L.SSCANF.PID .DA SSCANF.PID .DA 0 *-------------------------------------- CS.INIT clc rts *-------------------------------------- CS.RUN ldy #S.PS.ARGC lda (pPS),y beq .9 lda #1 >STA.G Signal .1 >INC.G ArgIndex >SYSCALL ArgV bcs .9 >STYA ZPTmpPtr lda (ZPTmpPtr) cmp #'-' bne .2 ldy #1 lda (ZPTmpPtr),y beq .9 cmp #'0' bcc .9 cmp #'9'+1 bcs .9 and #$0F >STA.G Signal bra .1 .9 >LDYA L.MSG.USAGE >SYSCALL PutS lda #E.SYN sec rts .2 >PUSHW ZPTmpPtr >PUSHW L.SSCANF.PID >PUSHEA.G PID >PUSHBI 2 1 Ptr >SYSCALL SScanF bcs .9 >PUSHB.G PID >PUSHB.G Signal >SYSCALL Kill bcs .99 lda #0 sec .99 rts *-------------------------------------- CS.DOEVENT sec do not discard TIMER event rts *-------------------------------------- CS.QUIT clc rts *-------------------------------------- CS.END MSG.USAGE .CS "Usage : KILL PID\r\n" .CS " -0 : No Signal\r\n" .CS " -1 : SIGQUIT\r\n" .CZ " -2 : SIGKILL\r\n" SSCANF.PID .CZ "%d" *-------------------------------------- .DUMMY .OR 0 DS.START ArgIndex .BS 1 Signal .BS 1 PID .BS 1 DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/kill.s ASM