home *** CD-ROM | disk | FTP | other *** search
- include model.h
-
- ;
- ; VGAKIT Version 3.5
- ;
- ; Copyright 1988,89,90,91 John Bridges
- ; Free for use in commercial, shareware or freeware applications
- ;
- ; MODE13X.ASM
- ;
- ; Set the VGA 360 by 480 256 color mode.
- ;
- ;
- .data
- extrn maxx:word,maxy:word,xwidth:word
- .code
-
- vptbl dw 06b00h ; horz total
- dw 05901h ; horz displayed
- dw 05a02h ; start horz blanking
- dw 08e03h ; end horz blanking
- dw 05e04h ; start h sync
- dw 08a05h ; end h sync
- dw 00d06h ; vertical total
- dw 03e07h ; overflow
- dw 04009h ; cell height
- dw 0ea10h ; v sync start
- dw 0ac11h ; v sync end and protect cr0-cr7
- dw 0df12h ; vertical displayed
- dw 02d13h ; offset
- dw 00014h ; turn off dword mode
- dw 0e715h ; v blank start
- dw 00616h ; v blank end
- dw 0e317h ; turn on byte mode
- vpend label word
-
-
- mode13x proc
- mov [maxx],360
- mov [xwidth],80
- mov [maxy],480
- push ds
- mov ax,cs
- mov ds,ax
-
- mov ax,13h ; start with standard mode 13h
- int 10h ; let the bios set the mode
-
- mov dx,3c4h ; alter sequencer registers
- mov ax,0604h ; disable chain 4
- out dx,ax
-
- mov ax,0f02h ; set write plane mask to all bit planes
- out dx,ax
- push di
- xor di,di
- mov ax,0a000h ; screen starts at segment A000
- mov es,ax
- mov cx,21600 ; ((XSIZE*YSIZE)/(4 planes))/(2 bytes per word)
- xor ax,ax
- cld
- rep stosw ; clear the whole of the screen
- pop di
-
- mov ax,0100h ; synchronous reset
- out dx,ax ; asserted
- mov dx,3c2h ; misc output
- mov al,0e7h ; use 28 mHz dot clock
- out dx,al ; select it
- mov dx,3c4h ; sequencer again
- mov ax,0300h ; restart sequencer
- out dx,ax ; running again
-
- mov dx,3d4h ; alter crtc registers
-
- mov al,11h ; cr11
- out dx,al ; current value
- inc dx ; point to data
- in al,dx ; get cr11 value
- and al,7fh ; remove cr0 -> cr7
- out dx,al ; write protect
- dec dx ; point to index
- cld
- mov si,offset vptbl
- mov cx,((offset vpend)-(offset vptbl)) shr 1
- outlp: lodsw
- out dx,ax
- loop outlp
- pop ds
- ret
- mode13x endp
-
- end
-