Annotation of ntddk/src/video/displays/vga/i386/driver.inc, revision 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.