home *** CD-ROM | disk | FTP | other *** search
-
- include model.h
-
- ;
- ; VGAKIT Version 4.1
- ;
- ; Copyright 1988,89,90,91 John Bridges
- ; Free for use in commercial, shareware or freeware applications
- ;
- ; SVGAMODE.ASM
- ;
- ;
- .data
- extrn cirrus:byte,everex:byte,paradise:byte,tseng:byte,trident:byte
- extrn t8900:byte,ativga:byte,aheada:byte,aheadb:byte
- extrn oaktech:byte,video7:byte,chipstech:byte,tseng4:byte,genoa:byte
- extrn ncr:byte,compaq:byte,vesa:byte
- extrn vga512:byte,vga1024:byte
-
- extrn curbk:word
-
- public maxx,maxy,xwidth
-
- maxx dw ? ;xwidth of screen in pixels
- maxy dw ? ;height of screen in pixels
- xwidth dw ? ;actual xwidth of screen in bytes
-
- .code
-
- public svgamode
- public txtmode
- public setmany
-
- svgamode proc ;Set 640x480x256 on most SVGA cards
- cmp [vesa],0
- jz novs
- mov ax,4f02h
- mov bx,101h
- jmp godo
- novs: cmp [compaq],0
- jz nocp
- mov ax,2eh
- jmp godo
- nocp: cmp [genoa],0
- jz nogn
- mov ax,5ch
- jmp godo
- nogn: cmp [ncr],0
- jz noncr
- mov ax,5fh
- jmp godo
- noncr: cmp [oaktech],0
- jz noak
- mov ax,53h
- jmp short godo
- noak: cmp [aheada],0
- jnz @f
- cmp [aheadb],0
- jz noab
- @@: mov ax,61h
- jmp short godo
- noab: cmp [everex],0
- jz noev
- mov ax,70h
- mov bl,30h
- jmp short godo
- noev: cmp [ativga],0
- jz noati
- mov ax,62h
- jmp short godo
- noati: cmp [trident],0
- jz notr
- mov ax,5dh
- jmp short godo
- notr: cmp [video7],0
- jz nov7
- mov ax,6f05h
- mov bl,67h
- jmp short godo
- nov7: cmp [chipstech],0
- jz noct
- mov ax,79h
- jmp short godo
- noct: cmp [paradise],0
- jz nopd
- mov ax,5fh
- jmp short godo
- nopd: cmp [tseng],0
- jz nots
- mov ax,2eh
- godo: int 10h
-
- mov [curbk],-1
- mov ax,640
- mov [maxx],ax ;default xwidth to 640 for now
- cmp [compaq],0
- jz nokludge
- mov ax,1024
- nokludge:
- mov [xwidth],ax
- mov ax,40h
- mov es,ax
- mov al,es:[84h] ;get height of screen
- inc al
- mul byte ptr es:[85h]
- mov [maxy],ax
-
- nots: ret
- svgamode endp
-
- txtmode proc
- mov ax,3
- int 10h
- ret
- txtmode endp
-
- setmany proc palbuf:ptr byte,begcol:word,numcol:word
- if @Datasize
- les dx,[palbuf]
- else
- mov ax,ds
- mov es,ax
- mov dx,[palbuf]
- endif
- mov bx,[begcol]
- mov cx,[numcol]
- mov ax,1012h
- int 10h
- ret
- setmany endp
-
- end
-