Commit Graph

55320 Commits

Author SHA1 Message Date
nickysn
b9a0b03e4b * use stosb instead of mov in DirectPutPixel16
git-svn-id: trunk@41007 -
2019-01-22 17:22:06 +00:00
nickysn
4336c4d793 * optimizations in DirectPutPixel16 to avoid the mul instruction
git-svn-id: trunk@41006 -
2019-01-22 17:20:38 +00:00
nickysn
a854411e7c * perform the clipping before initializing ES in PutPixel320, so it runs faster
when the pixel happens to be outside the viewport

git-svn-id: trunk@41005 -
2019-01-22 16:56:16 +00:00
nickysn
7c4466025a * PutPixel16 converted to pure asm routine
git-svn-id: trunk@41004 -
2019-01-22 16:40:51 +00:00
nickysn
1533f1e218 * implement the clipping in assembly instead of pascal in PutPixel16
git-svn-id: trunk@41003 -
2019-01-22 16:23:47 +00:00
nickysn
0199177c21 * perform the viewport adjustment in asm instead of pascal in PutPixel16
git-svn-id: trunk@41002 -
2019-01-22 16:11:41 +00:00
nickysn
d299ed7756 * moved the loading of the X and Y coordinates to registers in the front of the asm block in PutPixel16
git-svn-id: trunk@41001 -
2019-01-22 16:10:37 +00:00
nickysn
16c6090f30 * yet another mov eliminated by using different registers in GetPixel16
git-svn-id: trunk@41000 -
2019-01-22 16:07:51 +00:00
nickysn
820ba7dfb5 * use stosb instead of mov for writing a byte (the value doesn't matter) into EGA/VGA memory in PutPixel16
git-svn-id: trunk@40999 -
2019-01-22 16:05:29 +00:00
nickysn
83766c7462 * optimizations in PutPixel16 that remove the slow 'mul' instruction
git-svn-id: trunk@40998 -
2019-01-22 16:04:08 +00:00
nickysn
36c349696e * some minor optimizations in PutPixel16 (more efficient register usage, resulting in less mov instructions)
git-svn-id: trunk@40997 -
2019-01-22 15:50:31 +00:00
nickysn
5ba5b871bf * GetScanLine16 changed so that it reads video memory in 16-bit words, instead
of 32-bit longints, because 16-bit generates more efficient code on the i8086

git-svn-id: trunk@40996 -
2019-01-22 15:32:44 +00:00
marco
6cc8ed3256 * don't hangt on corrupt gifs, exit loops at end of streams.
Fixes mantis #34919

git-svn-id: trunk@40995 -
2019-01-22 15:11:04 +00:00
nickysn
06dbc518e4 * swap AL and AH in the last 'or' instruction in GetPixel16, so the result is
combined directly into AL and a 'mov al, ah' instruction is removed

git-svn-id: trunk@40994 -
2019-01-22 14:49:18 +00:00
nickysn
8cf2792c89 * replaced 'mov al,es:[si]' with 'seges lodsb' in GetPixel16
git-svn-id: trunk@40993 -
2019-01-22 14:35:32 +00:00
nickysn
95f2fffaf8 * replaced bl with al in the final bit read in GetPixel16
git-svn-id: trunk@40992 -
2019-01-22 14:34:47 +00:00
nickysn
5abb5b0658 * use xchg ax,cx instead of mov in GetPixel16
git-svn-id: trunk@40991 -
2019-01-22 14:33:41 +00:00
nickysn
fc61a2e62e * moved the initial GC port output to the beginning of GetPixel16
git-svn-id: trunk@40990 -
2019-01-22 14:32:01 +00:00
nickysn
98bbc0ab14 * swapped di and ax in the beginning of GetPixel16
git-svn-id: trunk@40989 -
2019-01-22 14:30:18 +00:00
nickysn
f1ad989ba1 * moved the ES register initialization in GetPixel16 to the beginning of the function
git-svn-id: trunk@40988 -
2019-01-22 14:28:46 +00:00
nickysn
6753237fe4 * replaced the slow mul instruction in GetPixel16 with faster shifts and adds
git-svn-id: trunk@40987 -
2019-01-22 14:27:48 +00:00
nickysn
985ec0688a * some more optimizations in GetPixel16
git-svn-id: trunk@40986 -
2019-01-22 12:58:02 +00:00
nickysn
0c440183c6 + enabled the true color support in ptcgraph
git-svn-id: trunk@40985 -
2019-01-22 09:07:37 +00:00
nickysn
d653193c36 * some optimizations in GetPixel16
git-svn-id: trunk@40984 -
2019-01-22 01:29:02 +00:00
nickysn
3b2fc5d34b * save another 2 bytes from the InitModeX code :)
git-svn-id: trunk@40983 -
2019-01-21 23:09:58 +00:00
nickysn
81aea037ec * reenabled the asm version of InitModeX
git-svn-id: trunk@40982 -
2019-01-21 23:07:51 +00:00
nickysn
596c1e7efa * huge memory model fixes in InitModeX
git-svn-id: trunk@40981 -
2019-01-21 22:54:08 +00:00
nickysn
37c05b3749 + added pascal version of InitModeX
git-svn-id: trunk@40980 -
2019-01-21 22:50:50 +00:00
florian
4fb7b5d3ff * fix MovOpMov2MovOp optimization if no -Cpcoreavx2 is used
git-svn-id: trunk@40979 -
2019-01-21 21:57:07 +00:00
nickysn
f6aa6e5b58 * another byte saved in the InitModeX routine :)
git-svn-id: trunk@40978 -
2019-01-21 18:06:07 +00:00
nickysn
5655b04b1c * use 'cmp mem,const' to check DontClearGraphMemory, instead of first loading it
into a register in InitModeX. This saves 1 byte of code from an initialization
  routine. Hurrah! :)

git-svn-id: trunk@40977 -
2019-01-21 17:43:57 +00:00
nickysn
5738ba19bb * converted InitModeX to a pure asm routine
git-svn-id: trunk@40976 -
2019-01-21 16:47:30 +00:00
nickysn
c26df36bc5 * size of the DrawnList buffer moved to a local variable, to avoid repeated code and repeated calculations
git-svn-id: trunk@40975 -
2019-01-21 16:24:46 +00:00
nickysn
6bb104a16d * unified the out of memory check in FloodFill and perform proper cleanup, so no memory leaks arise
git-svn-id: trunk@40974 -
2019-01-21 16:22:11 +00:00
nickysn
b654c34d64 * read the planes in reverse order, so that less shift instructions are required in GetPixel16
git-svn-id: trunk@40973 -
2019-01-21 16:09:13 +00:00
nickysn
33c330b3bc * store the size of the s1,s2 and s3 buffers, used inside FloodFill in a
variable, so memory allocation and disposal becomes easier, with less ifdefs

git-svn-id: trunk@40972 -
2019-01-21 16:08:38 +00:00
nickysn
f356add031 * moved the s1,s2,s3 scanline memory allocation in FloodFill before changing
CurrentColor, so it doesn't get changed if the function exits prematurely due
  to out of memory

git-svn-id: trunk@40971 -
2019-01-21 15:46:34 +00:00
nickysn
003a08f040 * use 'cbw' and 'cwd' instead of 'xor reg, reg' in the asm version of GetPixel16
git-svn-id: trunk@40970 -
2019-01-21 15:43:31 +00:00
nickysn
300e584936 * use 'cwd' instead of 'xor dx, dx' in the asm version GetPixel320
git-svn-id: trunk@40969 -
2019-01-21 15:30:58 +00:00
nickysn
57c931cb4c * use lodsb with a segment override prefix instead of mov in the asm version of GetPixel320
git-svn-id: trunk@40968 -
2019-01-21 15:28:22 +00:00
nickysn
1b4fcabc1d * use the si register instead of di in the asm version of GetPixel320
git-svn-id: trunk@40967 -
2019-01-21 15:18:51 +00:00
nickysn
cab9b4cb6b * fixed return of result in the asm version of GetPixel320
git-svn-id: trunk@40966 -
2019-01-21 15:16:16 +00:00
nickysn
92304ce573 * moved the check in FloodFill whether x,y are within the current viewport in
the beginning, before any heap memory allocations, to avoid memory leaks when
  FloodFill is invoked with a point that is outside the current viewport

git-svn-id: trunk@40965 -
2019-01-21 14:50:26 +00:00
nickysn
e6835e8ff7 * added check to ensure the memory allocation for DrawnList inside FloodFill hasn't returned nil
git-svn-id: trunk@40964 -
2019-01-21 14:47:48 +00:00
nickysn
f322b45611 * ignore VideoOfs entirely in mode 13h, since it doesn't support video pages
git-svn-id: trunk@40962 -
2019-01-21 14:12:17 +00:00
nickysn
698f8679d4 - removed comment saying that and/or/not put is not implemented, because it is implemented now
git-svn-id: trunk@40961 -
2019-01-21 14:10:41 +00:00
nickysn
39e1e4d2e7 + enabled the asm version of DirectPutPixel320
git-svn-id: trunk@40960 -
2019-01-21 14:09:25 +00:00
nickysn
907e3afae4 * 8086/8088 support in the asm version of DirectPutPixel320
git-svn-id: trunk@40959 -
2019-01-21 13:52:08 +00:00
nickysn
88f062dec8 + implemented all the write modes in the asm version of DirectPutPixel320
git-svn-id: trunk@40958 -
2019-01-21 13:51:40 +00:00
nickysn
f1467fdaaf * only load the low byte of CurrentColor in the asm version of DirectPutPixel320
git-svn-id: trunk@40957 -
2019-01-21 13:42:59 +00:00