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 hFILE .BS 1 bHostName .BS 1 bMachineType .BS 1 bCPUType .BS 1 bCPUSpeed .BS 1 bAltCPU .BS 1 bKernelVersion .BS 1 bKernelBuild .BS 1 bKernelMode .BS 1 bKernelHz .BS 1 bFSID .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.ETCHOSTNAME .DA ETCHOSTNAME L.ETCVERSION .DA ETCVERSION L.TYPES .DA TYPE.UNKNOWN .DA TYPE.IIe .DA TYPE.IIc .DA TYPE.IIgs L.SUBT.ROM .DA SUBT.ROM L.SUBT.IIE .DA SUBT.ENH .DA SUBT.LCCARD 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 L.FSID .DA FSID.PRODOS .DA FSID.FX L.KERNEL.HZ .DA KERNEL.HZ .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 >LDYA L.MSG.USAGE >SYSCALL PutS lda #E.SYN sec rts .8 lda #$ff sta bKernelVersion sta bKernelBuild sta bKernelMode sta bMachineType sta bCPUType sta bCPUSpeed sta bFSID *-------------------------------------- CS.RUN.PRINT bit bHostName bpl .1 jsr CS.RUN.GetHostName bcs .1 >LDYA pData jsr CS.RUN.PRINTYA .1 bit bMachineType bpl .2 jsr CS.RUN.TYPESUBT .2 bit bCPUType bpl .3 jsr CS.RUN.CPUType .3 bit bCPUSpeed bpl .4 jsr CS.RUN.CPUSpeed .4 bit bAltCPU bpl .5 .5 bit bKernelVersion bpl .6 jsr CS.RUN.KVER .6 bit bKernelBuild bpl .7 jsr CS.RUN.GetBuild bcs .7 >LDYA pData jsr CS.RUN.PRINTYA .7 bit bKernelMode bpl .8 jsr CS.RUN.KMode .8 bit bKernelHz bpl .9 jsr CS.RUN.HZ .9 bit bFSID bpl .10 jsr CS.RUN.FSID .10 >PUSHW L.MSG.CRLF >PUSHBI 0 >SYSCALL PrintF lda #0 sec rts *-------------------------------------- CS.RUN.GetHostName >LDYA L.ETCHOSTNAME bra CS.RUN.GetFile CS.RUN.GetBuild >LDYA L.ETCVERSION CS.RUN.GetFile stz hFILE >PUSHYA >PUSHBI O.RDONLY >PUSHBI 0 sta (pData) >PUSHWZ >SYSCALL FOpen bcs .9 sta hFILE >LEA.G FGetSBuf >STYA ZPPtr1 .1 >PUSHB hFILE >PUSHW ZPPtr1 >PUSHWI 64 >SYSCALL FGetS bcs .8 lda (ZPPtr1) beq .1 cmp #'#' beq .1 ldy #$ff .2 iny lda (ZPPtr1),y sta (pData),y bne .2 .8 clc .9 php pha lda hFILE beq .90 >SYSCALL FClose .90 pla plp rts *-------------------------------------- CS.RUN.TYPESUBT lda A2osX.HWT asl tax >LDYA L.TYPES,x jsr CS.RUN.PRINTYA lda A2osX.HWT beq .8 Unknown cmp #A2osX.HWT.IIc bcc .1 >PUSHW L.SUBT.ROM //c & IIgs >PUSHB A2osX.HWSubT >PUSHBI 1 >SYSCALL PrintF rts .1 lda A2osX.HWSubT //e beq .8 asl tax >PUSHW L.SUBT.IIE-2,x >PUSHBI 0 >SYSCALL PrintF .8 rts *-------------------------------------- CS.RUN.HZ >PUSHW L.KERNEL.HZ >PUSHB A2osX.HZ >PUSHBI 1 jmp CS.RUN.PRINTF *-------------------------------------- CS.RUN.FSID ldx #0 bit A2osX.FSID bpl .1 inx inx .1 >LDYA L.FSID,x jmp CS.RUN.PRINTYA *-------------------------------------- CS.RUN.KVER >PUSHW L.KERNEL.VER >PUSHW A2osX.KVER >PUSHBI 2 jmp CS.RUN.PRINTF *-------------------------------------- CS.RUN.KMode ldx #0 bit A2osX.IRQMode bpl .1 inx inx bit A2osX.F bvc .1 inx inx .1 >LDYA L.KERNEL.MODES,x jmp CS.RUN.PRINTYA *-------------------------------------- CS.RUN.CPUSpeed >PUSHW L.CPU.SPEED >PUSHW A2osX.CPUSPEED >PUSHBI 2 jmp CS.RUN.PRINTF *-------------------------------------- CS.RUN.CPUType lda A2osX.CPUTYPE asl and #$0F tax >LDYA L.CPUS-2,x *-------------------------------------- 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 "HhMmCcSsAaVvBbKkZzXx" OptionVars .DA #bHostName,#bHostName .DA #bMachineType,#bMachineType .DA #bCPUType,#bCPUType .DA #bCPUSpeed,#bCPUSpeed .DA #bAltCPU,#bAltCPU .DA #bKernelVersion,#bKernelVersion .DA #bKernelBuild,#bKernelBuild .DA #bKernelMode,#bKernelMode .DA #bKernelHz,#bKernelHz .DA #bFSID,#bFSID *-------------------------------------- MSG.USAGE .CS "Usage : UNAME\r\n" .CS " -H : Hostname\r\n" .CS " -M : Machine Type/SubType\r\n" .CS " -C : CPU Type\r\n" .CS " -S : CPU Speed\r\n" .CS " -A : Alternate CPU\r\n" .CS " -V : Kernel Version\r\n" .CS " -B : Kernel Build\r\n" .CS " -K : Kernel Mode\r\n" .CS " -Z : Kernel Timing\r\n" .CS " -X : ProDOS | FX" MSG.CRLF .CZ "\r\n" *-------------------------------------- ETCHOSTNAME .AZ "${ROOT}etc/hostname" ETCVERSION .AZ "${ROOT}etc/version" *-------------------------------------- TYPE.UNKNOWN .AZ "Unknown_HW" TYPE.IIe .AZ "Apple//e" TYPE.IIc .AZ "Apple//c" TYPE.IIgs .AZ "AppleIIgs" SUBT.ROM .AZ "_ROM%h" SUBT.ENH .AZ "_Enh" SUBT.LCCARD .AZ "_LCCard" 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" KERNEL.HZ .AZ "%d0hz" FSID.PRODOS .AZ "ProDOS" FSID.FX .AZ "FX" *-------------------------------------- .DUMMY .OR 0 DS.START .BS 65 FGetSBuf .BS 65 DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/uname.s ASM