home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / asmutil / 80x0393.zip / SET_HGC.ASM < prev    next >
Assembly Source File  |  1993-03-30  |  2KB  |  45 lines

  1. ; ********************************************************************
  2. ; Set_HGC.    Switch Hercules in Graphics mode
  3. ; Code hereby placed into the PublicDomain
  4. ; by Oliver Reubens
  5. ; (nc) No Copyright 1993, No rights reserved, Nopetent Pending.
  6. ; ********************************************************************
  7.  
  8. CTRC_Parms DB   00h,35h    ; Hor. Total = 54 characters
  9.            DB   01h,2Dh    ; Hor. Displayed = 45 characters
  10.            DB   02h,2Eh    ; Hor. Sync Pos. = on 46 character
  11.            DB   03h,07h    ; Hor. Sync Width = 7 character clocks
  12.            DB   04h,5Bh    ; Vert. Total = 92 characters (368 Lines)
  13.            DB   05h,02h    ; Vert. Adjust = 2 Scanlines
  14.            DB   06h,57h    ; Vert. Displayed = 87 character rows
  15.            DB   07h,57h    ; Vert. Sync Pos. = At 87 character rows
  16.            DB   09h,03h    ; Max Scan Line = 4 scanlines/character
  17.  
  18. Set_HGC    PROC NEAR
  19.            CLD             ; increment on string instructions
  20.            MOV  AX,0B000h  ; \
  21.            MOV  ES,AX      ;  \
  22.            MOV  DI,0       ;   \  Clear screen
  23.            MOV  CX,16000   ;   /
  24.            XOR  AX,AX      ;  /
  25.            REP  STOSW      ; /
  26.  
  27.            MOV  DX,003BFh  ; Configuration switch port
  28.            MOV  AL,1       ; \ BIT 0 = 1 : Make Graphmode possible
  29.            OUT  DX,AL      ; / BIT 1 = 0 : Exclude second 32K of video
  30.            MOV  DX,003B8h  ; Mode control port of CRTC
  31.            XOR  AL,AL      ; Bit 3 = 0 -> DISABLE VIDEO SIGNAL
  32.            OUT  DX,AL
  33.      ; PROGRAM THE CRTC
  34.            SUB  DL,4       ; DX=3B4h = ADDRES REGISTER OF CRTC
  35.            MOV  SI,OFFSET CRTC_Parms
  36.            MOV  CX,9       ; Change 9 CRTC parameters NEXT:      LODSW
  37.            OUT  DX,AX
  38.            LOOP NEXT
  39.       ; INITIALIZE GRAPHICS }
  40.            ADD  DL,4       ; DX=3B8h = Mode control port of CRTC
  41.            MOV  AL,0Ah     ; \ BIT 1 = 1 -> Graphics on
  42.            OUT  DX,AL      ; / BIT 3 = 1 -> Video on
  43.            RET
  44. Set_HGC    ENDP
  45.