📄 tmap.s
字号:
// Emacs style mode select -*- C++ -*- //-----------------------------------------------------------------------------//// $Id: tmap.s,v 1.5 2000/09/28 20:57:18 bpereira Exp $//// Copyright (C) 1998-2000 by DooM Legacy Team.//// This program is free software; you can redistribute it and/or// modify it under the terms of the GNU General Public License// as published by the Free Software Foundation; either version 2// of the License, or (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.////// $Log: tmap.s,v $// Revision 1.5 2000/09/28 20:57:18 bpereira// no message//// Revision 1.4 2000/08/10 14:58:42 ydario// OS/2 port//// Revision 1.3 2000/04/24 20:24:38 bpereira// no message//// Revision 1.2 2000/02/27 00:42:11 hurdler// fix CR+LF problem//// Revision 1.1.1.1 2000/02/22 20:32:32 hurdler// Initial import into CVS (v1.29 pr3)////// DESCRIPTION:// optimised drawing routines for span/column rendering//////-----------------------------------------------------------------------------// structures, must match the C structures!#include "asm_defs.inc"// Rappel: seuls EAX, ECX, EDX peuvent 阾re 閏ras閟 librement.// il faut sauver esi,edi, cd...gs/* Attention aux comparaisons! *//* *//* Intel_compare: *//* *//* cmp A,B // A-B , set flags *//* jg A_greater_than_B *//* *//* AT&T_compare: *//* *//* cmp A,B // B-A , set flags *//* jg B_greater_than_A *//* *//* (soustrait l'op閞ande source DE l'op閞ande destination, *//* comme sur Motorola! ) */// RAPPEL: Intel// SECTION:[BASE+INDEX*SCALE+DISP]// devient SECTION:DISP(BASE,INDEX,SCALE)//----------------------------------------------------------------------//// R_DrawColumn//// New optimised version 10-01-1998 by D.Fabrice and P.Boris// TO DO: optimise it much farther... should take at most 3 cycles/pix// once it's fixed, add code to patch the offsets so that it// works in every screen width.////---------------------------------------------------------------------- .data#ifdef LINUX .align 2#else .align 4#endif C(loopcount): .long 0C(pixelcount): .long 0C(tystep): .long 0C(vidwidth): .long 0 //use this one out of the inner loops //so you don't need to patch everywhere...#ifdef USEASM#if !defined( LINUX) && !defined( __OS2__) .text#endif.globl C(ASM_PatchRowBytes)C(ASM_PatchRowBytes): pushl %ebp movl %esp, %ebp // assure l'"adressabilit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -