Team OS/2 Italia - Developer Assistant

------------------------------------------

Programmare in Assembler con OS/2


;
; Code
;


CSeg                segment
                    assume cs:CSeg,ds:DGROUP,es:DGROUP,ss:DGROUP

start:
                    mov       eax,[esp+12]
                    mov       EnvAddr,eax         ; Save environment address
                    mov       eax,offset Banner
                    call	Write               ; Print banner
                    mov       eax,[esp+16]
                    mov       CmdLine,eax
m_skip_name:
                    inc	eax
                    cmp       byte ptr [eax],0
                    jne       m_skip_name
                    inc       eax
                    mov       Parameters,eax
                    mov       esi,eax
                    call      parse
                    call      check_cpu
                    call      check_fpu
                    call      print
                    push      CPUType
                    push      1
                    call      DosExit
                    ret
CSeg                ends

DSeg                segment
Banner              db "CPUID ver 1.0 by Giovanni Pagni",10,10,13,0
Help                db "Usage: CPUID [options]",10,10,13
                    db "       -f       Full info",10,13
                    db "       -c       Force CPUID instruction",10,13
                    db "       -?       Show this message",10,10,13,0
InvalidSwitch       db "Invalid switch.",10,13,0
Head                db "This system has a",0
c386                db "n 80386",0
fx87                db " processor with an 80"
f087                db "287 co"
Processor           db "processor.",10,13,0
c486dx              db "n 80486 DX processor or 80487 SX math co",0
c486sx              db "n 80486 SX ",0
Intel486            db " Genuine Intel486(TM)",0
Pentium             db " Genuine Intel Pentium(TM)",0
AMD5x86             db "n AMD 5x86 processor with ",0
AMD486              db "n AMD 486 processor with ",0
WriteBack           db "Write-Back",0
WriteThrough        db "Write-Through"
Cache               db " cache.",10,13,0

Family              db 10,13
		db "Processor Family: ",0
fx86                db "086",10,13,0
Model               db "Model           : ",0
number              db "0",10,13,0
Stepping            db "Stepping        : ",0
Sign                db "Signature       : ",0
fpu_msg             db "This processor contains a FPU.",10,13,0
mce_msg             db "This processor supports the Machine Check Exception.",10,13,0
cmp_msg             db "This processor supports the CMPXCHG8B instruction.",10,13,0
Unknown1            db "n unknown Intel CPU (PentiumPro ?).",10,13,0
Unknown2            db "n unknown AMD ",0
Unknown3            db "n unknown 80x86 processor (at least 80486).",10,13
                    db "I cannot fully undertand CPUID information."
crlflf              db 10
crlf		db 10,13,0
                    
IntelID             db "GenuineIntel"
AmdID               db "AuthenticAMD"

DSeg                ends


BSeg                segment
EnvAddr             dd        ?
CmdLine             dd        ?
Parameters          dd        ?
BSeg                ends

---------------------------------------------------

Torna alla nostra HomePage - Pagina a cura di: Giovanni Pagni
Last modified 24-10-97