Commit Graph

325 Commits

Author SHA1 Message Date
nickysn
a0924c9bbb * perform the viewport adjustment in asm instead of pascal in PutPixelX
git-svn-id: trunk@41034 -
2019-01-24 15:21:05 +00:00
nickysn
55f8c0f99a * use 8086/8088-compatible instructions in the asm version of PutPixelX
git-svn-id: trunk@41033 -
2019-01-24 15:18:30 +00:00
nickysn
bf711c4586 * PutPixelX split into pure pascal and asm version
git-svn-id: trunk@41032 -
2019-01-24 15:13:02 +00:00
nickysn
8e832f31dc * fix register in comment
git-svn-id: trunk@41031 -
2019-01-24 13:52:00 +00:00
nickysn
9c3d65b08f * use lodsb instead of mov in GetPixelX
git-svn-id: trunk@41030 -
2019-01-24 13:45:23 +00:00
nickysn
948328160b * use SI instead of DI in the asm GetPixelX
git-svn-id: trunk@41029 -
2019-01-24 13:43:34 +00:00
nickysn
8da6e23d0d * fixed and enabled the asm version of GetPixelX
git-svn-id: trunk@41028 -
2019-01-24 13:41:10 +00:00
nickysn
57ffb6fb07 * FPC_GRAPH_SUPPORTS_TRUECOLOR support in the asm GetPixelX
git-svn-id: trunk@41020 -
2019-01-23 15:24:32 +00:00
nickysn
c86da93af8 * asm version of GetPixelX converted to pure asm
git-svn-id: trunk@41019 -
2019-01-23 15:23:48 +00:00
nickysn
46f3c742f3 * viewport adjustment converted to asm in the asm version of GetPixelX
git-svn-id: trunk@41018 -
2019-01-23 15:22:20 +00:00
nickysn
d5b8e84352 * use only 8086/8088-compatible instructions in the asm GetPixelX
git-svn-id: trunk@41017 -
2019-01-23 15:02:38 +00:00
nickysn
f06cb31746 * huge model fixes in asm GetPixelX
git-svn-id: trunk@41016 -
2019-01-23 15:00:03 +00:00
nickysn
44a193a027 * split GetPixelX into strictly pascal and strictly asm version
git-svn-id: trunk@41015 -
2019-01-23 13:37:06 +00:00
nickysn
b48e901ed8 + also save/restore DS before/after the int 10h call inside SetCGAPalette and SetCGABorder
git-svn-id: trunk@41014 -
2019-01-23 13:31:43 +00:00
nickysn
9da40ee818 * use SegB000 instead of the $B000 constant in InitHGC720. This will make the
code compatible with 16-bit protected mode DOS targets, when they get
  implemented.

git-svn-id: trunk@41013 -
2019-01-23 13:23:29 +00:00
nickysn
ec580d81b7 * factored out the repeating code for setting a BIOS graphics mode into a common procedure InitInt10hMode
git-svn-id: trunk@41012 -
2019-01-23 12:20:54 +00:00
nickysn
39db7fd9d9 * only load the low byte from the page parameter in SetVisual200_350
git-svn-id: trunk@41011 -
2019-01-23 12:10:11 +00:00
nickysn
4569d47417 * SetVisual200 and SetVisual350 combined into one procedure, because they share the same code
git-svn-id: trunk@41010 -
2019-01-23 12:09:08 +00:00
nickysn
be29c1d39e * all procedures and functions that call NotInGraphicsMode marked 'noreturn' to
avoid warnings about function result not being set, etc.

git-svn-id: trunk@41009 -
2019-01-23 12:05:21 +00:00
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
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
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