Annotation of ntddk/src/video/displays/s3/i386/lines.inc, revision 1.1

1.1     ! root        1: ;---------------------------- Include File Header ---------------------------;
        !             2: ; lines.inc
        !             3: ;
        !             4: ; Line drawing constants and structures.
        !             5: ;
        !             6: ; NOTE: This file mirrors LINES.H.  Changes here must be reflected in
        !             7: ; the .h file!
        !             8: ;
        !             9: ;----------------------------------------------------------------------------;
        !            10: 
        !            11: ; We have special strip routines when all strips have at most this many
        !            12: ; pixels:
        !            13: 
        !            14: MAX_SHORT_STROKE_LENGTH equ 15
        !            15: 
        !            16: ; # of strip drawers in every group:
        !            17: 
        !            18: NUM_STRIP_DRAW_DIRECTIONS equ 4
        !            19: 
        !            20: ; # of strip drawers for doing either solid lines or styled lines:
        !            21: 
        !            22: NUM_STRIP_DRAW_STYLES equ 8
        !            23: 
        !            24: STYLE_MAX_COUNT         equ 16
        !            25: STYLE_MAX_VALUE         equ 3fffh
        !            26: RUN_MAX                 equ 20
        !            27: STRIP_MAX               equ 100
        !            28: STYLE_DENSITY           equ 3
        !            29: 
        !            30: ; Flip and round flags:
        !            31: 
        !            32: FL_H_ROUND_DOWN         equ 00000080h   ; Set if x = 1/2 rounds to x = 1
        !            33: FL_V_ROUND_DOWN         equ 00008000h   ; Set if y = 1/2 rounds to y = 1
        !            34: 
        !            35: FL_FLIP_D               equ 00000005h   ; Diagonal flip
        !            36: FL_FLIP_V               equ 00000008h   ; Vertical flip
        !            37: FL_FLIP_SLOPE_ONE       equ 00000010h   ; If slope is exactly one
        !            38: FL_FLIP_HALF            equ 00000002h   ; Half flip
        !            39: FL_FLIP_H               equ 00000200h   ; Horizontal (right-to-left) exchange
        !            40: 
        !            41: FL_ROUND_MASK           equ 0000001ch   ; Rounding is dependent on diagonal,
        !            42: FL_ROUND_SHIFT          equ 2           ;  vertical flips and if slope is one
        !            43: 
        !            44: FL_RECTLCLIP_MASK       equ 0000000ch   ; When we unflip to do clipping, we
        !            45: FL_RECTLCLIP_SHIFT      equ 2           ;  only have to look at diagonal and
        !            46:                                         ;  vertical flips
        !            47: 
        !            48: FL_STRIP_MASK           equ 00000003h   ; Which strip drawer we call is based
        !            49: FL_STRIP_SHIFT          equ 0           ;  on if we did diagonal and/or half
        !            50:                                         ;  flips
        !            51: 
        !            52: FL_SIMPLE_CLIP          equ 00000020h   ; Denotes our clipping complexity
        !            53: FL_COMPLEX_CLIP         equ 00000040h
        !            54: FL_CLIP                 equ (FL_SIMPLE_CLIP + FL_COMPLEX_CLIP)
        !            55: 
        !            56: FL_SET                  equ 00000800h   ; If ROP is such that we don't have to
        !            57:                                         ;  read video memory
        !            58: FL_ARBITRARYSTYLED      equ 00000400h   ; If the line is styled
        !            59: FL_STYLED               equ (FL_ARBITRARYSTYLED)
        !            60: 
        !            61: FL_STRIP_ARRAY_MASK     equ 00000C00h   ; Which strip arrays we look up depends
        !            62: FL_STRIP_ARRAY_SHIFT    equ 10          ;  on if we're doing style and/or have
        !            63:                                         ;  a 'set' style ROP
        !            64: 
        !            65: ; Simple flag bits in high byte:
        !            66: 
        !            67: FL_DONT_DO_HALF_FLIP    equ 00002000h
        !            68: FL_PHYSICAL_DEVICE      equ 00004000h
        !            69: 
        !            70: ; Miscellaneous DDA defines:
        !            71: 
        !            72: F                       equ 16
        !            73: FLOG2                   equ 4
        !            74: 
        !            75: STRIPS struc
        !            76:     ST_cStrips         dd  ?
        !            77:     ST_flFlips          dd  ?
        !            78:     ST_ptlStart         dd  2 dup(?)
        !            79:     ST_alStrips                dd  STRIP_MAX dup (?)
        !            80: STRIPS ends
        !            81: 
        !            82: LINESTATE struc
        !            83:     LS_lNextScan        dd  ?
        !            84:     LS_chAnd            db  ?
        !            85:     LS_chXor            db  ?
        !            86:     LS_filler1          db  2 dup (?)
        !            87:     LS_pspStart         dd  ?
        !            88:     LS_pspEnd           dd  ?
        !            89:     LS_psp              dd  ?
        !            90:     LS_spRemaining      dd  ?
        !            91:     LS_spTotal          dd  ?
        !            92:     LS_spTotal2         dd  ?
        !            93:     LS_spNext           dd  ?
        !            94:     LS_spComplex        dd  ?
        !            95:     LS_aspRtoL          dd  ?
        !            96:     LS_aspLtoR          dd  ?
        !            97:     LS_jStyleMask       db  ?
        !            98:     LS_filler2          db  3 dup (?)
        !            99:     LS_xyDensity        dd  ?
        !           100:     LS_cStyle           dd  ?
        !           101:     LS_ulStyleMaskLtoR  dd  ?
        !           102:     LS_ulStyleMaskRtoL  dd  ?
        !           103:     LS_jStartMask       db  ?
        !           104:     LS_filler3          db  3 dup (?)
        !           105: LINESTATE ends
        !           106: 
        !           107: RUN struc
        !           108:     RUN_iStart          dd  ?
        !           109:     RUN_iStop           dd  ?
        !           110: RUN ends
        !           111: 
        !           112: 
        !           113: ; S3 Equates
        !           114: 
        !           115: FIFO_7_STATUS           equ 0080h
        !           116: FIFO_6_STATUS           equ 0040h
        !           117: FIFO_5_STATUS           equ 0020h
        !           118: FIFO_4_STATUS           equ 0010h
        !           119: FIFO_3_STATUS           equ 0008h
        !           120: FIFO_2_STATUS           equ 0004h
        !           121: FIFO_1_STATUS           equ 0002h
        !           122: FIFO_0_STATUS           equ 0001h
        !           123: 
        !           124: FIFO_1_EMPTY            equ FIFO_7_STATUS
        !           125: FIFO_2_EMPTY            equ FIFO_6_STATUS
        !           126: FIFO_3_EMPTY            equ FIFO_5_STATUS
        !           127: FIFO_4_EMPTY            equ FIFO_4_STATUS
        !           128: FIFO_5_EMPTY            equ FIFO_3_STATUS
        !           129: FIFO_6_EMPTY            equ FIFO_2_STATUS
        !           130: FIFO_7_EMPTY            equ FIFO_1_STATUS
        !           131: FIFO_8_EMPTY            equ FIFO_0_STATUS
        !           132: 
        !           133: DRAWING_DIRECTION_0     equ 0000h
        !           134: DRAWING_DIRECTION_45    equ 0020h
        !           135: DRAWING_DIRECTION_90    equ 0040h
        !           136: DRAWING_DIRECTION_135   equ 0060h
        !           137: DRAWING_DIRECTION_180   equ 0080h
        !           138: DRAWING_DIRECTION_225   equ 00A0h
        !           139: DRAWING_DIRECTION_270   equ 00C0h
        !           140: DRAWING_DIRECTION_315   equ 00E0h
        !           141: 
        !           142: PLUS_X                  equ 0020h
        !           143: PLUS_Y                  equ 0080h
        !           144: MAJOR_Y                 equ 0040h
        !           145: DRAW                    equ 0010h
        !           146: DIR_TYPE_XY             equ 0000h
        !           147: DIR_TYPE_RADIAL         equ 0008h
        !           148: MULTIPLE_PIXELS         equ 0002h
        !           149: WRITE                   equ 0001h
        !           150: DRAW_LINE               equ 2000h
        !           151: LAST_PIXEL_OFF             equ 0004h
        !           152: 
        !           153: DEFAULT_DRAW_CMD           equ (DRAW_LINE+DRAW+DIR_TYPE_XY+MULTIPLE_PIXELS+WRITE+ \
        !           154:                              LAST_PIXEL_OFF)

unix.superglobalmegacorp.com

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