home *** CD-ROM | disk | FTP | other *** search
- TITLE Listing2.asm
- ;----------------------------------------------------------
- ;* Das Programm demonstriert die Abfrage auf den Rechner-
- ;* typ und eine davon abhängige Umschaltung der Betriebs-
- ;* arten sowie das Auslesen des Maschinenstatus-Register im
- ;* Protected Mode unter MS-DOS bzw. PC-DOS.
- ;-------- M A K R O S -------------------------------------
-
- Ausgabe MACRO Text
- mov ax, CS
- mov DS, ax
- mov ah, 09
- mov dx, offset CS:Text
- int 21h
- ENDM
-
- ;----------------------------------------------------------
-
- .model small
- .stack
- .code
- ID_Byte DB '?'
- XT_Text DB 'Programm läuft nur mit 80286/386/486 Rechnern'
- DB ' im Protected Mode!', 13, 10, '$'
-
- AT_Text DB 'Prozessor befindet sich nun im Protected Mode'
- DB '!', 13, 10, '$'
-
- ;------------------ Unterprogramme -------------------------
-
- who_am_i proc
- push ax
- push bx
- mov ax,0F000h ;Offset ID-Byte
- mov ES,ax
- mov bl, ES:0FFFEh
- mov CS:ID_Byte,bl
- pop bx
- pop ax
- ret
- who_am_i endp
-
- ;------------------ Hauptprogramm --------------------------
- .8086 ;Real-Mode
- Start:
- call who_am_i
- mov al, CS:ID_Byte
- cmp al, 0FFh ;PC 8086 ?
- je kein_AT
- cmp al, 0FEh ;PC/XT ?
- je kein_AT
- cmp al, 0FBh ;256/640 KB System ?
- je kein_AT
- jmp Pro_Mode
- kein_AT:
- Ausgabe XT_Text
- jmp Ende
-
- ;------- ab hier kann im Protected Mode gearbeitet werden --
-
- Pro_Mode:
- .286P
- smsw ax ;Maschinenstatus-Reg.(MSW)->AX
- test ax, 1 ;wenn Bit 0 = 1 dann läuft
- jnz Ende ;Prozessor im Protected Mode
- Ausgabe AT_Text
- Ende:
- mov ah,4Ch ;zurück zu DOS
- int 21h
- end Start