NEW AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 .TF bin/uname *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i .INB inc/mli.e.i *-------------------------------------- .DUMMY .OR ZPBIN ZS.START ZPPtr1 .BS 2 ZPPtr2 .BS 2 Index .BS 1 Count .BS 1 bHostName .BS 1 bMachineType .BS 1 bCPUType .BS 1 bCPUSpeed .BS 1 bAltCPU .BS 1 bKernelVersion .BS 1 bKernelMode .BS 1 bKernelClk .BS 1 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.EVENT .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data SegmentSize .DA #32 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE L.MSG.CRLF .DA MSG.CRLF L.TYPES .DA TYPE.UNKNOWN .DA TYPE.IIe .DA TYPE.IIc .DA TYPE.IIgs L.CPUS .DA CPU.65C02 .DA CPU.65R02 .DA CPU.65816 L.CPU.SPEED .DA CPU.SPEED L.KERNEL.VER .DA KERNEL.VER L.KERNEL.MODES .DA KERNEL.POLLING .DA KERNEL.IRQ .DA KERNEL.PREEMPT .DA 0 *-------------------------------------- CS.INIT clc rts *-------------------------------------- CS.RUN ldy #S.PS.ARGC lda (pPS),y beq .8 .1 inc Index lda Index >SYSCALL ArgV bcs CS.RUN.PRINT >STYA ZPPtr1 lda (ZPPtr1) cmp #'-' bne .99 ldy #1 lda (ZPPtr1),y beq .99 jsr CS.RUN.CheckOpt bcc .1 .99 >PUSHW L.MSG.USAGE >PUSHBI 0 >SYSCALL PrintF lda #E.SYN sec rts .8 lda #$ff sta bKernelVersion sta bKernelMode sta bMachineType sta bCPUType sta bCPUSpeed *-------------------------------------- CS.RUN.PRINT bit bHostName bpl .1 .1 bit bMachineType bpl .2 lda A2osX.HWType asl tax >LDYA L.TYPES,x jsr CS.RUN.PRINTYA .2 bit bCPUType bpl .3 lda A2osX.CPUTYPE asl and #$0F tax >LDYA L.CPUS-2,x jsr CS.RUN.PRINTYA .3 bit bCPUSpeed bpl .4 >PUSHW L.CPU.SPEED >PUSHW A2osX.CPUSPEED >PUSHBI 2 jsr CS.RUN.PRINTF .4 bit bAltCPU bpl .5 .5 bit bKernelVersion bpl .6 >PUSHW L.KERNEL.VER >PUSHW A2osX.KVER >PUSHBI 2 jsr CS.RUN.PRINTF .6 bit bKernelMode bpl .7 ldx #0 bit A2osX.IRQMode bpl .60 inx inx bit A2osX.F bvc .60 inx inx .60 >LDYA L.KERNEL.MODES,x jsr CS.RUN.PRINTYA .7 bit bKernelClk bpl .8 .8 >PUSHW L.MSG.CRLF >PUSHBI 0 >SYSCALL PrintF lda #0 sec rts *-------------------------------------- CS.RUN.PRINTYA >PUSHYA >PUSHBI 0 CS.RUN.PRINTF lda Count beq .1 lda #C.SPACE >SYSCALL PutChar .1 >SYSCALL PrintF inc Count CS.DOEVENT sec rts *-------------------------------------- CS.QUIT .8 clc rts *-------------------------------------- CS.RUN.CheckOpt ldy #1 lda (ZPPtr1),y ldx #OptionVars-OptionList-1 .2 cmp OptionList,x beq .3 dex bpl .2 sec rts .3 ldy OptionVars,x ldx #$ff stx 0,y clc rts *-------------------------------------- CS.END *-------------------------------------- OptionList .AS "HhMmCcSsAaVvKkZz" OptionVars .DA #bHostName,#bHostName .DA #bMachineType,#bMachineType .DA #bCPUType,#bCPUType .DA #bCPUSpeed,#bCPUSpeed .DA #bAltCPU,#bAltCPU .DA #bKernelVersion,#bKernelVersion .DA #bKernelMode,#bKernelMode .DA #bKernelClk,#bKernelClk *-------------------------------------- MSG.USAGE .AS "Usage : UNAME\r\n" .AS " -H : Hostname\r\n" .AS " -M : Machine Type/SubType\r\n" .AS " -C : CPU Type\r\n" .AS " -S : CPU Speed\r\n" .AS " -A : Alternate CPU\r\n" .AS " -V : Kernel Version\r\n" .AS " -K : Kernel Mode\r\n" .AS " -Z : Kernel Timing\r\n" MSG.CRLF .AZ "\r\n" TYPE.UNKNOWN .AZ "Unknown_HW" TYPE.IIe .AZ "Apple//e" TYPE.IIc .AZ "Apple//c" TYPE.IIgs .AZ "AppleIIgs" CPU.65C02 .AZ "65c02" CPU.65R02 .AZ "65r02" CPU.65816 .AZ "65816" CPU.SPEED .AZ "%d.%02dmhz" KERNEL.VER .AZ "A2osX_%d.%02d" KERNEL.POLLING .AZ "Polling_Mode" KERNEL.IRQ .AZ "IRQ_Mode" KERNEL.PREEMPT .AZ "Preemptive_Mode" *-------------------------------------- .DUMMY .OR 0 DS.START DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/uname.s ASM