Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to index page
Thread view  Board view
segin

Homepage E-mail

Springfield, MO, USA,
12.08.2023, 09:55
 

NetShow Player 2.0 for Windows 3.1 - there's multithreading? (Developers)

Or at least, this appears to be the purpose of NSTHRD16.DLL.

There's a number of exported functions related to threading, like CREATHETHREAD(), GETCURRENTTHREAD() and GETCURRENTTHREADID() (which are identical to each other, opcodes and all), etc.

There's also exported versions of various Windows API functions that are implemented elsewhere, like CREATEFILE(), READFILE(), WRITEFILE(), etc. Most of these reimplementations are simple wrappers around the DOS interrupt vector API.

I'm trying to reverse engineer the threading code to determine how it performs it's magic, but while I'm doing that... does anyone here have any clue as to how it works? Or even how it might work? AFAIK, VMM only multitasks VMs, not individual Windows programs (which all share the root VM.)

bocke

20.08.2023, 00:33

@ segin
 

NetShow Player 2.0 for Windows 3.1 - there's multithreading?

> Or at least, this appears to be the purpose of NSTHRD16.DLL.
>
> There's a number of exported functions related to threading, like
> CREATHETHREAD(), GETCURRENTTHREAD() and GETCURRENTTHREADID() (which are
> identical to each other, opcodes and all), etc.
>
> There's also exported versions of various Windows API functions that are
> implemented elsewhere, like CREATEFILE(), READFILE(), WRITEFILE(), etc.
> Most of these reimplementations are simple wrappers around the DOS
> interrupt vector API.
>
> I'm trying to reverse engineer the threading code to determine how it
> performs it's magic, but while I'm doing that... does anyone here have any
> clue as to how it works? Or even how it might work? AFAIK, VMM only
> multitasks VMs, not individual Windows programs (which all share the root
> VM.)

Maybe it's a user-space implementation of the threads? Well, multithreading can be implemented on top of other APIs in the kernel (like in early Linux kernel). But, I'm not sure if Win16 exposes anything but cooperative multitasking to Win16 apps. So, maybe this threading code also use some kind of cooperative model using appropriate functions in Win16 API.

Just guessing. Sorry if I didn't help. :)

Back to index page
Thread view  Board view
22049 Postings in 2034 Threads, 396 registered users, 49 users online (0 registered, 49 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum