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