FGETSEL.ASM 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. ;
  2. ; Command & Conquer Red Alert(tm)
  3. ; Copyright 2025 Electronic Arts Inc.
  4. ;
  5. ; This program is free software: you can redistribute it and/or modify
  6. ; it under the terms of the GNU General Public License as published by
  7. ; the Free Software Foundation, either version 3 of the License, or
  8. ; (at your option) any later version.
  9. ;
  10. ; This program is distributed in the hope that it will be useful,
  11. ; but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ; GNU General Public License for more details.
  14. ;
  15. ; You should have received a copy of the GNU General Public License
  16. ; along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. ;
  18. ;***************************************************************************
  19. ;** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S **
  20. ;***************************************************************************
  21. ;* *
  22. ;* Project Name : Get the Defines selectors *
  23. ;* *
  24. ;* File Name : FGETSEL.ASM *
  25. ;* *
  26. ;* Programmer : Jeff Wilson *
  27. ;* *
  28. ;* Start Date : March 28, 1994 *
  29. ;* *
  30. ;* Last Update : March 28, 1994 [] *
  31. ;* *
  32. ;*-------------------------------------------------------------------------*
  33. ;* Functions: *
  34. ;* GetDefaultSelectors -- Return the current default selectors. *
  35. ;* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
  36. IDEAL
  37. P386
  38. MODEL USE32 FLAT
  39. GLOBAL GetDefaultSelectors :NEAR
  40. GLOBAL DataSelector :WORD
  41. GLOBAL ScreenSelector :WORD
  42. GLOBAL GraphicsSelector :WORD
  43. GLOBAL PspSelector :WORD
  44. GLOBAL EnvSelector :WORD
  45. GLOBAL DosMemSelector :WORD
  46. GLOBAL Fp1167Selector :WORD
  47. GLOBAL FpWeitekSelector :WORD
  48. GLOBAL FpCyrixSelector :WORD
  49. GLOBAL CodeSelector :WORD
  50. DATASEG
  51. ; It is very important that this section remain untouch
  52. ; is not really needed by Rational System but is here to
  53. ; keep compatibility with the TNT dos extender.
  54. DataSelector dw 0
  55. ScreenSelector dw 0
  56. GraphicsSelector dw 0
  57. PspSelector dw 0
  58. EnvSelector dw 0
  59. DosMemSelector dw 0
  60. Fp1167Selector dw 0
  61. FpWeitekSelector dw 0
  62. FpCyrixSelector dw 0
  63. CodeSelector dw 0
  64. ;============================================================================
  65. CODESEG
  66. ;***************************************************************************
  67. ;* GetDefaultSelectors -- Setup the defaults selector values to have the *
  68. ;* Correct Descriptor table and IOPL. *
  69. ;* *
  70. ;* *
  71. ;* *
  72. ;* INPUT: NONE *
  73. ;* *
  74. ;* OUTPUT: *
  75. ;* *
  76. ;* WARNINGS: *
  77. ;* *
  78. ;* HISTORY: *
  79. ;* 03/28/1994 jaw: Created. *
  80. ;*=========================================================================*
  81. PROC GetDefaultSelectors C near
  82. USES eax,esi,ecx
  83. lea edi,[DataSelector]
  84. lea ecx,[CodeSelector]
  85. sub ecx,edi
  86. shr ecx,1
  87. mov ax,ds
  88. rep stosw
  89. mov ax,cs
  90. mov [word ptr CodeSelector] , ax
  91. ret
  92. ;====================
  93. ENDP GetDefaultSelectors
  94. END
  95.