+;\r
+; MATH.INC - Include file for THREED.ASM\r
+;\r
+\r
+; 3-dimensional point, coordinates in fixed format (16:16)\r
+;\r
+TPOINT STRUC\r
+ X DD ?\r
+ Y DD ?\r
+ Z DD ?\r
+TPOINT ENDS\r
+\r
+; 2-dimensional point, coordinates in integer format\r
+;\r
+TIMAGEPOINT STRUC\r
+ IX DW ?\r
+ IY DW ?\r
+TIMAGEPOINT ENDS\r
+\r
+; Fixed-point divide: EAX = EAX / arg\r
+;\r
+.xdiv MACRO arg\r
+ xor edx, edx\r
+ shld edx, eax, 16\r
+ shl eax, 16\r
+ idiv arg\r
+ENDM\r
+\r
+; Fixed-point multiply: EAX = EAX * arg\r
+;\r
+.xmul MACRO arg\r
+ imul arg\r
+ shrd eax, edx, 16\r
+ENDM\r