﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
470	Suggest to import flat DS selector instead of computing it	Lars Erdmann	eco	"I just tried my suggestion to import the values from FlatCS and FlatDS from DOSCALLS and it works.[[BR]]
Looking at the code: you erroneously took the ADDRESS of the symbol (extrn DOSFLATDS: WORD)
but the value is an ABSOLUTE value (extrn DOS32FLATDS:ABS).

Therefore:[[BR]]
\src\acpi\psd\makefile:[[BR]]
...[[BR]]
LIBRARY ACPI[[BR]]
;PROTMODE[[BR]]
;DATA PRELOAD SINGLE SHARED MOVABLE[[BR]]
;CODE PRELOAD MOVABLE[[BR]]
IMPORTS [[BR]]
   DOS32FLATCS=DOSCALLS.369 [[BR]]
   DOS32FLATDS=DOSCALLS.370 [[BR]]
EXPORTS [[BR]]
   PSD_APP_COMM         = _PSD_APP_COMM[[BR]]
   PSD_INSTALL          = _PSD_INSTALL[[BR]]
   PSD_DEINSTALL        = _PSD_DEINSTALL[[BR]]
   PSD_INIT             = _PSD_INIT[[BR]]
   PSD_GET_NUM_OF_PROCS = _PSD_GET_NUM_OF_PROCS[[BR]]
   PSD_PROC_INIT        = _PSD_PROC_INIT[[BR]]
   PSD_START_PROC       = _PSD_START_PROC[[BR]]
   PSD_GEN_IPI          = _PSD_GEN_IPI[[BR]]
   PSD_END_IPI          = _PSD_END_IPI[[BR]]
   PSD_IRQ_MASK         = _PSD_IRQ_MASK[[BR]]
   PSD_IRQ_REG          = _PSD_IRQ_REG[[BR]]
   PSD_IRQ_EOI          = _PSD_IRQ_EOI[[BR]]
   PSD_SET_ADV_INT_MODE = _PSD_SET_ADV_INT_MODE[[BR]]
   PSD_RESET_MODE       = _PSD_RESET_MODE[[BR]]
   PSD_SET_PROC_STATE   = _PSD_SET_PROC_STATE[[BR]]
   PSD_PROC_HLT         = _PSD_PROC_HLT[[BR]]
[[BR]]
<<keep[[BR]]
[[BR]]
src\acpi\psd\oshdl.asm:

   ...[[BR]]
   extrn    PASCAL DOS32FLATDS:ABS [[BR]]
   extrn    PASCAL DOS32FLATCS:ABS

in ""IntVector"", around line 369:[[BR]]
   ...[[BR]]
   SwitchStackBack                                   ; Switch stack back[[BR]]
   push  ds[[BR]]
   ASSUME  DS: FLAT                                  ;[[BR]]
   mov   bx,DOS32FLATDS[[BR]]
   mov   ds,bx[[BR]]
   ...[[BR]]
[[BR]]
in ""SwitchStackToMyPSD"", around line 38:[[BR]]
   ...[[BR]]
   push  ds                                          ; Save DS[[BR]]
   ASSUME  DS: FLAT                                  ;[[BR]]
   mov   ax,DOS32FLATDS[[BR]]
   mov   ds,ax[[BR]]
   ...[[BR]]

"	enhancement	closed	trivial		ACPI PSD	3.17	No Change Needed		
