Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

User exception handler in C (Developers)

posted by Rugxulo Homepage, Usono, 17.08.2020, 22:26

> It would be also cool to test in this way the SSE instruction.
> The SSE must be supported by hardware (can be obtained with CPUID) but also
> switched on by software by privileged instruction (MOV CR4,???)

Let the OS (or DOS extender, in this case) enable it for you. That means DOS/32A, Causeway 4.x, HDPMI32, or CWSDPMI (r5 2008 or r7). Or whatever Win9x or WinNT versions.

Honestly, it may not be any faster than plain MMX, so it may not be worth your time. (Depends on cpu.)

> So the elegant way how to obtain the SSE is to check the CPUID status and
> then set the exception handler and just to try to call some.


sse_supported:
  fxsave [xmm_save]
  mov dword ptr [xmm_save+160],"C0DE"
  fxrstor [xmm_save]
  mov dword ptr [xmm_save+160],"D00D"
  fxsave [xmm_save]
  cmp dword ptr [xmm_save+160],"C0DE"
  mov eax,0
  jnz sse_supported_bye
  inc al                              ; if OSFXSR not turned on,
sse_supported_bye:                    ;    XMM* are not saved
  ret


So you can indeed know if running under old CWSDPMI (r5 2000) without SSE support and then fallback to MMX only. (Unless your BIOS enables it for you. One guy said his did, but none of mine did.)

 

Complete thread:

Back to the forum
Board view  Mix view
22049 Postings in 2034 Threads, 396 registered users, 250 users online (1 registered, 249 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum