Annotation of ntddk/src/video/displays/vga/i386/driver.inc, revision 1.1.1.1

1.1       root        1: ;******************************Module*Header*******************************\
                      2: ; Module Name: driver.inc
                      3: ;
                      4: ; driver prototypes
                      5: ;
                      6: ; Copyright (c) 1992 Microsoft Corporation
                      7: ;**************************************************************************/
                      8: 
                      9: 
                     10: ;!!! Make this match driver.h  I want to see the same include structure
                     11: ;!!! for assembler as for C
                     12: 
                     13: DDI_DRIVER_VERSION  EQU 010000h
                     14: 
                     15: ;/* gflDrv */
                     16: 
                     17: DRV_ENABLED_ONCE    EQU 1
                     18: DRV_ENABLED_PDEV    EQU 2
                     19: 
                     20: ; Space required for working storage when working with banking on adapters
                     21: ; that don't support two independent read/write windows. The largest supported
                     22: ; bank is 64K; this constant provides for storing four 64K planes.
                     23: ; Mirrors DRIVER.H.
                     24: 
                     25: BANK_BUFFER_SIZE equ    10000h*4
                     26: 
                     27: ; Start offsets of planes within the bank buffer.
                     28: ; Mirrors DRIVER.H.
                     29: 
                     30: BANK_BUFFER_PLANE_SIZE equ 04000h
                     31: 
                     32: PLANE_0_OFFSET  equ     0
                     33: PLANE_1_OFFSET  equ     BANK_BUFFER_PLANE_SIZE
                     34: PLANE_2_OFFSET  equ     BANK_BUFFER_PLANE_SIZE*2
                     35: PLANE_3_OFFSET  equ     BANK_BUFFER_PLANE_SIZE*3
                     36: 
                     37: 
                     38: ; Indicates type of bank justification within banking window. Matches
                     39: ; typedef enum BANK_JUST in DRIVER.H.
                     40: 
                     41: JustifyTop      equ     0
                     42: JustifyBottom   equ     1
                     43: 
                     44: 
                     45: ; Specifies which window is to be mapped by two-window bank handler.
                     46: 
                     47: MapSourceBank   equ     0
                     48: MapDestBank     equ     1
                     49: 
                     50: 
                     51: ; /* This device can have only one PDEV */
                     52: ; BUGBUG should support multiple PDEVs
                     53: 
                     54: DRV_ONE_PDEV  EQU  1
                     55: 
                     56: ; Miscellaneous driver flags in pdev.fl
                     57: ;---mirrors driver.h---;
                     58: 
                     59: DRIVER_USE_OFFSCREEN equ 02h  ; if not set, don't use offscreen memory
                     60: 
                     61: ; Maximum width and height handled by this driver (controls buffer sizes).
                     62: ; BUGBUG everything should be allocated to the needed size on the stack, or
                     63: ; should use the work buffer hanging off the DSURF
                     64: 
                     65: CX_SCREEN_MAX   equ     1280
                     66: CY_SCREEN_MAX   equ     1024
                     67: cj_max_scan     equ     (CX_SCREEN_MAX/8)
                     68: 
                     69: ; Macro to do a simple RET, with no stack stuff, in a proc.
                     70: PLAIN_RET macro
                     71:         db      0c3h
                     72:         endm
                     73: 
                     74: ; Macro to generate BSWAP, which the assembler doesn't support.
                     75: M_BSWAP macro   REG
                     76:         ifidni  <eax>,<&REG>
                     77:          db     0fh, 0c8h + 000b
                     78:          exitm
                     79:         endif
                     80:         ifidni  <ecx>,<&REG>
                     81:          db     0fh, 0c8h + 001b
                     82:          exitm
                     83:         endif
                     84:         ifidni  <edx>,<&REG>
                     85:          db     0fh, 0c8h + 010b
                     86:          exitm
                     87:         endif
                     88:         ifidni  <ebx>,<&REG>
                     89:          db     0fh, 0c8h + 011b
                     90:          exitm
                     91:         endif
                     92:         ifidni  <esp>,<&REG>
                     93:          db     0fh, 0c8h + 100b
                     94:          exitm
                     95:         endif
                     96:         ifidni  <ebp>,<&REG>
                     97:          db     0fh, 0c8h + 101b
                     98:          exitm
                     99:         endif
                    100:         ifidni  <esi>,<&REG>
                    101:          db     0fh, 0c8h + 110b
                    102:          exitm
                    103:         endif
                    104:         ifidni  <edi>,<&REG>
                    105:          db     0fh, 0c8h + 111b
                    106:          exitm
                    107:         endif
                    108:         endm    ;M_BSWAP
                    109: 
                    110: ; Macro to generate BSWAP equivalent for 386, which doesn't support the
                    111: ; instruction.
                    112: M_BSWAP_386 macro   REG
                    113:         ifidni  <eax>,<&REG>
                    114:          xchg   ah,al
                    115:          ror    eax,16
                    116:          xchg   ah,al
                    117:          exitm
                    118:         endif
                    119:         ifidni  <ecx>,<&REG>
                    120:          xchg   ch,cl
                    121:          ror    ecx,16
                    122:          xchg   ch,cl
                    123:          exitm
                    124:         endif
                    125:         ifidni  <edx>,<&REG>
                    126:          xchg   dh,dl
                    127:          ror    edx,16
                    128:          xchg   dh,dl
                    129:          exitm
                    130:         endif
                    131:         ifidni  <ebx>,<&REG>
                    132:          xchg   bh,bl
                    133:          ror    ebx,16
                    134:          xchg   bh,bl
                    135:          exitm
                    136:         endif
                    137:         ifidni  <esp>,<&REG>
                    138:          ror    sp,8
                    139:          ror    esp,16
                    140:          ror    sp,8
                    141:          exitm
                    142:         endif
                    143:         ifidni  <ebp>,<&REG>
                    144:          ror    bp,8
                    145:          ror    ebp,16
                    146:          ror    bp,8
                    147:          exitm
                    148:         endif
                    149:         ifidni  <esi>,<&REG>
                    150:          ror    si,8
                    151:          ror    esi,16
                    152:          ror    si,8
                    153:          exitm
                    154:         endif
                    155:         ifidni  <edi>,<&REG>
                    156:          ror    di,8
                    157:          ror    edi,16
                    158:          ror    di,8
                    159:          exitm
                    160:         endif
                    161:         endm    ;M_BSWAP
                    162: 
                    163: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.