Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

"Freedom is still the most radical idea of all." -- Nathaniel Branden


devel / comp.os.msdos.programmer / DOS 4.0

SubjectAuthor
* DOS 4.0Paul Edwards
`* Re: DOS 4.0JJ
 `* Re: DOS 4.0Paul Edwards
  `* Re: DOS 4.0JJ
   `* Re: DOS 4.0Paul Edwards
    +- Re: DOS 4.0Paul Edwards
    `- Re: DOS 4.0Paul Edwards

1
DOS 4.0

<urj2ch$2p9il$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=675&group=comp.os.msdos.programmer#675

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mutazilah@gmail.com (Paul Edwards)
Newsgroups: comp.os.msdos.programmer
Subject: DOS 4.0
Date: Tue, 27 Feb 2024 06:12:29 +0800
Organization: A noiseless patient Spider
Lines: 14
Message-ID: <urj2ch$2p9il$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 26 Feb 2024 22:12:33 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="5e4b01b379beb652ed23052ab3b571b5";
logging-data="2926165"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+R/j/J6IM+Q5iBLfcArj1Ar1Tkz/+tlgI="
User-Agent: Mozilla/5.0 (OS/2; Warp 4.5; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:OiPiNrddyLe7CpcsVJLF2YM5GrY=
X-Mozilla-News-Host: news://news.eternal-september.org:119
 by: Paul Edwards - Mon, 26 Feb 2024 22:12 UTC

I see some documentation for DOS 4.0 here:

https://pcdosretro.github.io/multitaskingmsdos4.htm

It says NE executables don't have a PSP.

Is there another way of retrieving:

1. The command line (I believe this would have predated
the use of CMDLINE).

2. The environment pointer.

Thanks. Paul.

Re: DOS 4.0

<i4ljcjj149hl$.11fagx45sumyx$.dlg@40tude.net>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=676&group=comp.os.msdos.programmer#676

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!paganini.bofh.team!not-for-mail
From: jj4public@outlook.com (JJ)
Newsgroups: comp.os.msdos.programmer
Subject: Re: DOS 4.0
Date: Wed, 28 Feb 2024 02:29:55 +0700
Organization: To protect and to server
Message-ID: <i4ljcjj149hl$.11fagx45sumyx$.dlg@40tude.net>
References: <urj2ch$2p9il$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Injection-Info: paganini.bofh.team; logging-data="4106827"; posting-host="hI3KQunanXsMXEyF66KD+w.user.paganini.bofh.team"; mail-complaints-to="usenet@bofh.team"; posting-account="9dIQLXBM7WM9KzA+yjdR4A";
User-Agent: 40tude_Dialog/2.0.15.84
Cancel-Lock: sha256:8QppWhnU0XoH75kOnuKR3pTF7e8XvCfIIzzzsVl3kOc=
X-Bitcoin: 1LcqwCQBQmhcWfWsVEAeyLchkAY8ZfuMnS
X-Face: \*\`0(1j~VfYC>ebz[&O.]=,Nm\oRM{of,liRO#7Eqi4|!]!(Gs=Akgh{J)605>C9Air?pa d{sSZ09u+A7f<^paR"/NH_#<mE1S"hde\c6PZLUB[t/s5-+Iu5DSc?P0+4%,Hl
X-Notice: Filtered by postfilter v. 0.9.3
 by: JJ - Tue, 27 Feb 2024 19:29 UTC

On Tue, 27 Feb 2024 06:12:29 +0800, Paul Edwards wrote:
> I see some documentation for DOS 4.0 here:
>
> https://pcdosretro.github.io/multitaskingmsdos4.htm
>
> It says NE executables don't have a PSP.
>
> Is there another way of retrieving:
>
> 1. The command line (I believe this would have predated
> the use of CMDLINE).
>
> 2. The environment pointer.
>
> Thanks. Paul.

OS/2 v1.0's SDK might shed some light. Assuming that it's available
somewhere.

Re: DOS 4.0

<urmb5d$3lqq2$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=677&group=comp.os.msdos.programmer#677

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mutazilah@gmail.com (Paul Edwards)
Newsgroups: comp.os.msdos.programmer
Subject: Re: DOS 4.0
Date: Wed, 28 Feb 2024 12:00:44 +0800
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <urmb5d$3lqq2$1@dont-email.me>
References: <urj2ch$2p9il$1@dont-email.me>
<i4ljcjj149hl$.11fagx45sumyx$.dlg@40tude.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 28 Feb 2024 04:00:45 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="502f8de6b28ef0ddcf3708890a9caeea";
logging-data="3861314"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18zCi3TLVA7maY6ZNdT+blBCKuRIDa17nM="
User-Agent: Mozilla/5.0 (OS/2; Warp 4.5; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:5yRDmSMJmMbqCD1Rq2v/8iVOsaY=
In-Reply-To: <i4ljcjj149hl$.11fagx45sumyx$.dlg@40tude.net>
 by: Paul Edwards - Wed, 28 Feb 2024 04:00 UTC

On 28/02/24 03:29, JJ wrote:
> On Tue, 27 Feb 2024 06:12:29 +0800, Paul Edwards wrote:
>> I see some documentation for DOS 4.0 here:
>>
>> https://pcdosretro.github.io/multitaskingmsdos4.htm
>>
>> It says NE executables don't have a PSP.
>>
>> Is there another way of retrieving:
>>
>> 1. The command line (I believe this would have predated
>> the use of CMDLINE).
>>
>> 2. The environment pointer.
>>
>> Thanks. Paul.
>
> OS/2 v1.0's SDK might shed some light. Assuming that it's available
> somewhere.

What relevance is OS/2 v1.0 to MSDOS?

Thanks. Paul.

Re: DOS 4.0

<1mi4l7tqket1c$.86w2pvkaulgm.dlg@40tude.net>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=678&group=comp.os.msdos.programmer#678

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!paganini.bofh.team!not-for-mail
From: jj4public@outlook.com (JJ)
Newsgroups: comp.os.msdos.programmer
Subject: Re: DOS 4.0
Date: Wed, 28 Feb 2024 13:52:14 +0700
Organization: To protect and to server
Message-ID: <1mi4l7tqket1c$.86w2pvkaulgm.dlg@40tude.net>
References: <urj2ch$2p9il$1@dont-email.me> <i4ljcjj149hl$.11fagx45sumyx$.dlg@40tude.net> <urmb5d$3lqq2$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Injection-Info: paganini.bofh.team; logging-data="133816"; posting-host="hI3KQunanXsMXEyF66KD+w.user.paganini.bofh.team"; mail-complaints-to="usenet@bofh.team"; posting-account="9dIQLXBM7WM9KzA+yjdR4A";
User-Agent: 40tude_Dialog/2.0.15.84
Cancel-Lock: sha256:BlLhYaXCqDNSIZXaYDWj9Wg/SSAF5E+342ubzOib8Q4=
X-Bitcoin: 1LcqwCQBQmhcWfWsVEAeyLchkAY8ZfuMnS
X-Face: \*\`0(1j~VfYC>ebz[&O.]=,Nm\oRM{of,liRO#7Eqi4|!]!(Gs=Akgh{J)605>C9Air?pa d{sSZ09u+A7f<^paR"/NH_#<mE1S"hde\c6PZLUB[t/s5-+Iu5DSc?P0+4%,Hl
X-Notice: Filtered by postfilter v. 0.9.3
 by: JJ - Wed, 28 Feb 2024 06:52 UTC

On Wed, 28 Feb 2024 12:00:44 +0800, Paul Edwards wrote:
> On 28/02/24 03:29, JJ wrote:
>> On Tue, 27 Feb 2024 06:12:29 +0800, Paul Edwards wrote:
>>> I see some documentation for DOS 4.0 here:
>>>
>>> https://pcdosretro.github.io/multitaskingmsdos4.htm
>>>
>>> It says NE executables don't have a PSP.
>>>
>>> Is there another way of retrieving:
>>>
>>> 1. The command line (I believe this would have predated
>>> the use of CMDLINE).
>>>
>>> 2. The environment pointer.
>>>
>>> Thanks. Paul.
>>
>> OS/2 v1.0's SDK might shed some light. Assuming that it's available
>> somewhere.
>
> What relevance is OS/2 v1.0 to MSDOS?
>
> Thanks. Paul.

It's relevant to Multitasking MS-DOS. Not MS-DOS.

Multitasking MS-DOS and MS-DOS are architecturely quite different, and quite
incompatible with MS-DOS.

https://betawiki.net/wiki/Multitasking_MS-DOS_4

PS) the above article describe the subject much more in-depth than
Wikipedia.

Re: DOS 4.0

<urn66g$3s3eg$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=679&group=comp.os.msdos.programmer#679

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mutazilah@gmail.com (Paul Edwards)
Newsgroups: comp.os.msdos.programmer
Subject: Re: DOS 4.0
Date: Wed, 28 Feb 2024 19:42:07 +0800
Organization: A noiseless patient Spider
Lines: 50
Message-ID: <urn66g$3s3eg$1@dont-email.me>
References: <urj2ch$2p9il$1@dont-email.me>
<i4ljcjj149hl$.11fagx45sumyx$.dlg@40tude.net> <urmb5d$3lqq2$1@dont-email.me>
<1mi4l7tqket1c$.86w2pvkaulgm.dlg@40tude.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 28 Feb 2024 11:42:09 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="502f8de6b28ef0ddcf3708890a9caeea";
logging-data="4066768"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+t6f1czePlvAhvrOz3vedbaFHQOlRp7jU="
User-Agent: Mozilla/5.0 (OS/2; Warp 4.5; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:4IXPy6m14BdOv38cN5nOiJrZZCg=
In-Reply-To: <1mi4l7tqket1c$.86w2pvkaulgm.dlg@40tude.net>
 by: Paul Edwards - Wed, 28 Feb 2024 11:42 UTC

Resending - ES was down ...

On 28/02/24 14:52, JJ wrote:

> https://betawiki.net/wiki/Multitasking_MS-DOS_4
>
> PS) the above article describe the subject much more in-depth than
> Wikipedia.

Thanks. I read the article in full, but it didn't
explain how to get the command line or environment
variables - so as you said, maybe the OS/2 1.0 SDK
has some clues.

I know how to get these things in OS/2 1.0, but
the syscall:

DosGetEnv(&seg, &offs)

is not one of the ones available for MT MSDOS
that I saw.

But the above two values are also in AX and BX
on program entry for OS/2 1.0:

https://retrocomputing.stackexchange.com/questions/26111/initial-contents-of-cpu-registers-at-os-2-1-x-program-startup

And that references RBIL:

https://fd.lod.bz/rbil/interrup/dos_kernel/214b.html

which is more general about "new executable" being
as above.

So I would guess that that means those registers are
the ONLY official way of retrieving both the environment
and the command line.

Which means the startup code for an application must be
written in assembler for MT MSDOS, unlike OS/2 1.x and
2.x which should be possible to do in C since registers
are not needed, and the stack can be ignored too, which
is helpful to me.

And the program name would presumably be at the end of
the environment block, as with MSDOS >3.

BFN. Paul.

Re: DOS 4.0

<urp231$bn8u$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=680&group=comp.os.msdos.programmer#680

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mutazilah@gmail.com (Paul Edwards)
Newsgroups: comp.os.msdos.programmer
Subject: Re: DOS 4.0
Date: Thu, 29 Feb 2024 12:44:14 +0800
Organization: A noiseless patient Spider
Lines: 39
Message-ID: <urp231$bn8u$1@dont-email.me>
References: <urj2ch$2p9il$1@dont-email.me>
<i4ljcjj149hl$.11fagx45sumyx$.dlg@40tude.net> <urmb5d$3lqq2$1@dont-email.me>
<1mi4l7tqket1c$.86w2pvkaulgm.dlg@40tude.net> <urn66g$3s3eg$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 29 Feb 2024 04:44:17 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1e4215355a6b1652a4ea0b1f6d71c2f5";
logging-data="384286"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19YTgkqEZBQLzYl7QEPfqQkxbLtbp1v3cQ="
User-Agent: Mozilla/5.0 (OS/2; Warp 4.5; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:mam6uj+AjiTJ/snPb/2SFVzjbTs=
In-Reply-To: <urn66g$3s3eg$1@dont-email.me>
 by: Paul Edwards - Thu, 29 Feb 2024 04:44 UTC

On 28/02/24 19:42, Paul Edwards wrote:

> So I would guess that that means those registers are
> the ONLY official way of retrieving both the environment
> and the command line.
>
> Which means the startup code for an application must be
> written in assembler for MT MSDOS, unlike OS/2 1.x and
> 2.x which should be possible to do in C since registers
> are not needed, and the stack can be ignored too, which
> is helpful to me.
>
> And the program name would presumably be at the end of
> the environment block, as with MSDOS >3.

I just realized that for MSDOS (normal MZ) I should
be able to ignore the stack and the registers and
get the environment pointer and command line by
calling this:

DOS 3.0+ - GET CURRENT PSP ADDRESS
AH = 62h

And thus have the entry point as C code.

Note that I have managed to get rid of my dependence on
the traditional Unix stack (which PDOS/386 does not
provide), for my Linux ELF programs too. And have
system() working too, even though PDOS/386 doesn't provide
a fork(). (it now has a dummy fork though).

And then for all PDOS environments I will be able to
switch in the PDOS-generic stack and still have
"properly written" executables (still conforming to
the specs of existing OSes) run. While allowing
PDOS-generic apps to run too.

BFN. Paul.

Re: DOS 4.0

<ursgmv$17lhm$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=681&group=comp.os.msdos.programmer#681

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mutazilah@gmail.com (Paul Edwards)
Newsgroups: comp.os.msdos.programmer
Subject: Re: DOS 4.0
Date: Fri, 1 Mar 2024 20:12:08 +0800
Organization: A noiseless patient Spider
Lines: 78
Message-ID: <ursgmv$17lhm$1@dont-email.me>
References: <urj2ch$2p9il$1@dont-email.me>
<i4ljcjj149hl$.11fagx45sumyx$.dlg@40tude.net> <urmb5d$3lqq2$1@dont-email.me>
<1mi4l7tqket1c$.86w2pvkaulgm.dlg@40tude.net> <urn66g$3s3eg$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 1 Mar 2024 12:12:16 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1f04345046046ea4eb841c70e7979180";
logging-data="1300022"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Tkxbj2KmcVRJpdfiFIgDLpBsPQYHnH70="
User-Agent: Mozilla/5.0 (OS/2; Warp 4.5; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:hmfZsI9osMqtQel/OCMi0XAj/3E=
In-Reply-To: <urn66g$3s3eg$1@dont-email.me>
 by: Paul Edwards - Fri, 1 Mar 2024 12:12 UTC

On 28/02/24 19:42, Paul Edwards wrote:

> I know how to get these things in OS/2 1.0, but
> the syscall:
>
> DosGetEnv(&seg, &offs)
>
> is not one of the ones available for MT MSDOS
> that I saw.
>
> So I would guess that that means those registers are
> the ONLY official way of retrieving both the environment
> and the command line.
>
> Which means the startup code for an application must be
> written in assembler for MT MSDOS, unlike OS/2 1.x and
> 2.x which should be possible to do in C since registers
> are not needed, and the stack can be ignored too, which
> is helpful to me.

I spoke too soon about OS/2 2.x. It turned out that
DosGetEnv was not available.

For a while I thought I would be in the same boat
as MSDOS 4.0 - required to rely on the stack on
entry to the program (which I don't want to do,
because I want to redefine that for PDOS-generic).

After a lot of looking, I found how to do it
another way:

#ifdef __16BIT__
{
USHORT seg, offs;

if (DosGetEnv(&seg, &offs) != 0)
{
p = "\0"; /* two NUL characters */
}
else
{
p = (char *)(((unsigned long)seg << 16)
| offs);
}
}
#else
{
PIB *pib;

if (DosGetInfoBlocks(NULL, &pib) != 0)
{
p = "\0"; /* two NUL characters */
}
else
{
/* skip three 32-bit values and then you get a
pointer to the command line */
p = pib->pib_pchcmd;
}
}
#endif

I didn't see an equivalent of DosGetInfoBlocks
for MSDOS 4.0, so I still may be dependent on
the registers on entry to the NE executable.
I don't know if I can still get an "artificial"
PSP for an NE executable on MSDOS 4.0 by calling
the appropriate INT 21H.

But it's not important to be able to support
MSDOS 4.0 anyway - which I don't have to test
(and don't bother sending me a link to it - I
know I can get it if I want a bootleg copy).

BFN. Paul.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor