|
|
1.1 root 1: ;---------------------------Module-Header------------------------------;
2: ; Module Name: vgaregs.asm
3: ;
4: ; Copyright (c) 1992 Microsoft Corporation
5: ;-----------------------------------------------------------------------;
6: ;-----------------------------------------------------------------------;
7: ; VOID vInitRegs(void)
8: ;
9: ; Sets the VGA's data control registers to their default states.
10: ;
11: ;-----------------------------------------------------------------------;
12:
13: .386
14:
15:
16: ifndef DOS_PLATFORM
17: .model small,c
18: else
19: ifdef STD_CALL
20: .model small,c
21: else
22: .model small,pascal
23: endif; STD_CALL
24: endif; DOS_PLATFORM
25:
26: assume cs:FLAT,ds:FLAT,es:FLAT,ss:FLAT
27: assume fs:nothing,gs:nothing
28:
29: .xlist
30: include stdcall.inc ;calling convention cmacros
31: include i386\egavga.inc
32: include i386\strucs.inc
33: .list
34:
35: .code
36:
37: cProc vInitRegs
38:
39: ; Initialize sequencer to its defaults (all planes enabled, index
40: ; pointing to Map Mask).
41:
42: mov dx,VGA_BASE + SEQ_ADDR
43: mov ax,(MM_ALL shl 8) + SEQ_MAP_MASK
44: out dx,ax
45:
46: ; Initialize graphics controller to its defaults (set/reset disabled for
47: ; all planes, no rotation & ALU function == replace, write mode 0 & read
48: ; mode 0, color compare ignoring all planes (read mode 1 reads always
49: ; return 0ffh, handy for ANDing), and the bit mask == 0ffh, gating all
50: ; bytes from the CPU.
51:
52: mov dl,GRAF_ADDR
53: mov ax,(0 shl 8) + GRAF_ENAB_SR
54: out dx,ax
55:
56: mov ax,(DR_SET shl 8) + GRAF_DATA_ROT
57: out dx,ax
58:
59: mov ax,((M_PROC_WRITE or M_DATA_READ) shl 8) + GRAF_MODE
60: out dx,ax
61:
62: mov ax,(0 shl 8) + GRAF_CDC
63: out dx,ax
64:
65: mov ax,(0FFh shl 8) + GRAF_BIT_MASK
66: out dx,ax
67:
68: cRet vInitRegs
69:
70:
71: endProc vInitRegs
72:
73: end
74:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.