|
|
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)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.