home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 05 / einsteig / listing2.asm < prev    next >
Encoding:
Assembly Source File  |  1990-01-30  |  1.9 KB  |  70 lines

  1. TITLE Listing2.asm 
  2. ;----------------------------------------------------------
  3. ;* Das Programm demonstriert die Abfrage auf den Rechner-
  4. ;* typ und eine davon abhängige Umschaltung der Betriebs-
  5. ;* arten sowie das Auslesen des Maschinenstatus-Register im
  6. ;* Protected Mode unter MS-DOS bzw. PC-DOS.
  7. ;-------- M A K R O S -------------------------------------
  8.  
  9. Ausgabe MACRO Text
  10.      mov ax, CS
  11.      mov DS, ax
  12.      mov ah, 09
  13.      mov dx, offset CS:Text
  14.      int 21h
  15. ENDM 
  16.  
  17. ;----------------------------------------------------------
  18.  
  19. .model small
  20. .stack
  21. .code
  22. ID_Byte   DB '?'
  23. XT_Text   DB 'Programm läuft nur mit 80286/386/486 Rechnern'
  24.           DB ' im Protected Mode!', 13, 10, '$'
  25.  
  26. AT_Text   DB 'Prozessor befindet sich nun im Protected Mode'
  27.           DB '!', 13, 10, '$'
  28.  
  29. ;------------------ Unterprogramme -------------------------
  30.  
  31. who_am_i proc
  32.      push ax
  33.      push bx                            
  34.      mov ax,0F000h                      ;Offset ID-Byte
  35.      mov ES,ax
  36.      mov bl, ES:0FFFEh
  37.      mov CS:ID_Byte,bl
  38.      pop bx
  39.      pop ax
  40.      ret     
  41. who_am_i endp
  42.  
  43. ;------------------ Hauptprogramm --------------------------
  44. .8086                         ;Real-Mode
  45. Start: 
  46.      call who_am_i
  47.      mov al, CS:ID_Byte
  48.      cmp al, 0FFh             ;PC 8086 ?
  49.      je kein_AT 
  50.      cmp al, 0FEh             ;PC/XT ?
  51.      je kein_AT
  52.      cmp al, 0FBh             ;256/640 KB System ?
  53.      je kein_AT
  54.      jmp Pro_Mode
  55. kein_AT:
  56.      Ausgabe XT_Text
  57.      jmp Ende
  58.  
  59. ;------- ab hier kann im Protected Mode gearbeitet werden --     
  60.  
  61. Pro_Mode:
  62. .286P          
  63.      smsw ax                  ;Maschinenstatus-Reg.(MSW)->AX     
  64.      test ax, 1               ;wenn Bit 0 = 1 dann läuft
  65.      jnz Ende                 ;Prozessor im Protected Mode 
  66.      Ausgabe AT_Text
  67. Ende:
  68.      mov ah,4Ch               ;zurück zu DOS
  69.      int 21h            
  70. end Start