code    segment
        assume  cs:code,ds:code
        org     100h

start:
        mov     ax,1114h                ; 1114h- 30 lines; 1111h- 34 lines
        int     10h

        lea     si,SeqData
        mov     dx,3c4h
        mov     cx,5
        cld
lp1:    lodsw
        out     dx,ax
        loop    lp1                     ; loop sequencer write
        mov     dl,0c2h
        mov     al,0e7h                 ; code for 480
        out     dx,al                   ; write misc register
        mov     dl,0c4h                 ; sequencer adr. again
        lodsw   
        out     dx,ax
        mov     dl,0d4h                 ; 0b4h for mono
        mov     cx,9
lp2:    lodsw
        out     dx,ax
        loop    lp2                     ; loop CRTC write

        xor     ax,ax
        mov     es,ax
        mov     byte ptr es:484h,29     ; 33 for 34 lines
	and	byte ptr es:487h,not 1	; for cursor emulate
	


	mov	ah,9
	lea	dx,mes
	int	21h
        ret


Mes	db	'VGA: 480 scan lines',13,10
	db	'(c) 1992 Dmitry A. Gurtjak',13,10,'$'

SeqData dw      00100h
        dw      00001h
        dw      00302h
        dw      00003h
        dw      00204h
        dw      00300h

        dw      00c11h
        dw      00b06h
        dw      03e07h
        dw      04f09h          ; 04d09h for 34 lines
        dw      0ea10h
        dw      08c11h
        dw      0df12h		; 0db12h for 34 lines
        dw      0e715h
        dw      00416h

code    ends
        end     start
