home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / C-ASM_VI.ARJ / PROGASM.ZIP / PROG028P.ASM < prev    next >
Assembly Source File  |  1988-05-25  |  2KB  |  40 lines

  1.  
  2. ;************************************************************************
  3. ; Determine maximum number of scan lines using the display type         *
  4. ; from BIOS variables in segment zero                                   *
  5. ; Exit: AX - Maximum number of scanlines (200, 350, 480)                *
  6. ;************************************************************************
  7.  
  8.         PUBLIC  Get_Scanlines
  9.  
  10. Get_Scanlines  PROC FAR
  11.         PUSH    ES                      ;Preserve ES
  12.         MOV     AX,1A00H                ;Look for VGA (using BIOS)
  13.         INT     10H
  14.         CMP     AL,1AH                  ;Is VGA there? (AL=1A)
  15.         JNE     No_VGA                  ;...No, go check EGA
  16.         MOV     AX,480                  ;...Yes, must be 480 lines
  17.         JMP     Found_Lines
  18. No_VGA:
  19.         XOR     AX,AX                   ;Move segment zero into ES
  20.         MOV     ES,AX
  21.         MOV     AL,ES:[BIOS_Equipment]  ;Fetch mono/color bit
  22.         AND     AL,2                    ;Isolate bit1 and move it
  23.         SHR     AL,1                    ; into bit0
  24.         CMP     AL,1                    ;Was display type 1 (mono)?
  25.         MOV     AX,350                  ;...assume so
  26.         JE      Found_Lines             ;...Yes, we are done
  27.                                         ;...No, must look at switches
  28.         MOV     CL,ES:[BIOS_Switch]     ;Fetch switch settings
  29.         AND     CL,0FH                  ;Isolate config switches
  30.         MOV     AX,350                  ;Assume Enhanced display
  31.         CMP     CL,9H                   ;Is switch 'off on on off'?
  32.         JE      Found_Lines             ;...Yes, we are done
  33.         CMP     CL,3                    ;Is switch 'off off on on'?
  34.         JE      Found_Type              ;...Yes, we are done
  35.         MOV     AX,200                  ;...No, must be color display
  36. Found_Lines:
  37.         POP     ES                      ;Restore ES
  38.         RET
  39. Get_Scanlines  ENDP
  40.