NEW PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 .TF /A2OSX.BUILD/BIN/PS *-------------------------------------- .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/KERNEL.I *-------------------------------------- ZPPtr .EQ ZPBIN *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 .DA CS.END-CS.START CS .DA DS.END-DS.START DS .DA #64 SS .DA #2 ZP .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT L.MSG0 .DA MSG0 L.MSGK .DA MSGK L.MSG1 .DA MSG1 .DA 0 *-------------------------------------- CS.INIT clc rts *-------------------------------------- CS.RUN >LDYA pData >SYSCALL GetPSStat.YA >LDYA L.MSG0 >SYSCALL printf >PUSHB.G PS.KCPU >LDYA L.MSGK >SYSCALL printf >LDA.G PS.Count beq .8 lda #1 >STA.G PS.Index .1 >INC.G PS.Index tay lda (pData),y PID >SYSCALL GetMemPtr.A >STYA ZPPtr ldy #S.PS.hARGS lda (ZPPtr),y >SYSCALL GetMemPtr.A >PUSHYA ldy #S.PS.PPID lda (ZPPtr),y >PUSHA Parent PID ldy #S.PS.UID lda (ZPPtr),y >PUSHA jsr CS.RUN.DecodeFlags >PUSHEA.G PS.FLAGS >INC.G PS.Index tay lda (pData),y >PUSHA CPU% ldy #S.PS.PID lda (ZPPtr),y >PUSHA >LDYA L.MSG1 >SYSCALL printf .7 >DEC.G PS.COUNT bne .1 .8 * lda #0 tell Kernel that all done ok, but sec we do not want to stay in memory rts *-------------------------------------- CS.RUN.DecodeFlags lda (ZPPtr) Get flags ldy #PS.FLAGS+7 ldx #7 .2 lsr pha lda #'-' bcc .3 lda MSG.FLAGS,x .3 sta (pData),y pla dey dex bpl .2 rts *-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- CS.QUIT clc rts *-------------------------------------- CS.END MSG0 .AZ "ID CPU\% Flags UID PID Command Line\r\n" MSGK .AZ "000 %03d\% -------- 000 --- *KERNEL*\r\n" MSG1 .AZ "%03d %03d\% %s %03d %03d %s\r\n" MSG.FLAGS .AS "IRQDHSed" *-------------------------------------- .DUMMY .OR 0 DS.START PS.COUNT .BS 1 PS.KCPU .BS 1 PS.DATA .BS K.PS.MAX*2 PS.Index .BS 1 PS.FLAGS .BS 9 DS.END .ED *-------------------------------------- MAN SAVE /A2OSX.SRC/BIN/PS.S ASM