]> 4ch.mooo.com Git - 16.git/blob - 16/xw__/modex/MATH.INC
16_ca needs huge amounts of work and I should remember what needs to be done soon...
[16.git] / 16 / xw__ / modex / MATH.INC
1 ;\r
2 ; MATH.INC - Include file for THREED.ASM\r
3 ;\r
4 \r
5 ; 3-dimensional point, coordinates in fixed format (16:16)\r
6 ;\r
7 TPOINT  STRUC\r
8         X       DD      ?\r
9         Y       DD      ?\r
10         Z       DD      ?\r
11 TPOINT  ENDS\r
12 \r
13 ; 2-dimensional point, coordinates in integer format\r
14 ;\r
15 TIMAGEPOINT     STRUC\r
16         IX      DW      ?\r
17         IY      DW      ?\r
18 TIMAGEPOINT     ENDS\r
19 \r
20 ; Fixed-point divide: EAX = EAX / arg\r
21 ;\r
22 .xdiv   MACRO   arg\r
23         xor     edx, edx\r
24         shld    edx, eax, 16\r
25         shl     eax, 16\r
26         idiv    arg\r
27 ENDM\r
28 \r
29 ; Fixed-point multiply: EAX = EAX * arg\r
30 ;\r
31 .xmul   MACRO   arg\r
32         imul    arg\r
33         shrd    eax, edx, 16\r
34 ENDM\r