Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

It's hard to tune heavily tuned code. :-) -- Larry Wall in <199801141725.JAA07555@wall.org>


devel / comp.os.msdos.programmer / Re: extending parameters

SubjectAuthor
* Re: extending parametersJJ
`* Re: extending parametersmuta...@gmail.com
 `* Re: extending parametersJJ
  `* Re: extending parametersmuta...@gmail.com
   `* Re: extending parametersJJ
    `* Re: extending parametersmuta...@gmail.com
     `* Re: extending parametersJJ
      `* Re: extending parametersmuta...@gmail.com
       `- Re: extending parametersJJ

1
Re: extending parameters

<yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=84&group=comp.os.msdos.programmer#84

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!aioe.org!esscOFPPHccfjlxlZhKy2Q.user.gioia.aioe.org.POSTED!not-for-mail
From: jj4public@gmail.com (JJ)
Newsgroups: comp.os.msdos.programmer
Subject: Re: extending parameters
Date: Mon, 3 May 2021 22:45:19 +0700
Organization: Aioe.org NNTP Server
Lines: 43
Message-ID: <yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net>
References: <32913dab-8517-4ca2-8e4c-b7d01b517cb6n@googlegroups.com> <oavz329kvjp5$.o2a75nvbugyr$.dlg@40tude.net> <8bde3e8f-547e-4773-9901-9eae7f112256n@googlegroups.com> <1m2w5abax2z33$.1k9p9fnzeypqx$.dlg@40tude.net> <acc4dabc-28f5-4e83-a5f4-73698f80aebfn@googlegroups.com> <1ltwm68v43wrq.ib33n7k7gmgw.dlg@40tude.net> <60f490eb-728d-4767-90f2-5adaf20720f7n@googlegroups.com> <17x60hjtjd6dh.vfxs294kth7t.dlg@40tude.net> <c13ece80-33f2-4ab5-bcb7-c68120339391n@googlegroups.com> <d2snh6xuzu23$.1cfkbxt6yxhk4.dlg@40tude.net> <d2dba42b-d2bb-42d7-8bdd-9f433eefc4fan@googlegroups.com> <idq1p6llgqfv.1vkgq1lrlx8sv.dlg@40tude.net> <4568cc17-447e-4823-a8ce-1fb69af318cdn@googlegroups.com>
NNTP-Posting-Host: esscOFPPHccfjlxlZhKy2Q.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@aioe.org
User-Agent: 40tude_Dialog/2.0.15.84
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-Bitcoin: 1LcqwCQBQmhcWfWsVEAeyLchkAY8ZfuMnS
X-Notice: Filtered by postfilter v. 0.9.2
 by: JJ - Mon, 3 May 2021 15:45 UTC

On Sun, 2 May 2021 06:46:17 -0700 (PDT), muta...@gmail.com wrote:
>
> It can be helped. You can avoid the middle component,
> the OS, needing to be changed.

If you don't want to offload the code to the kernel, then yes.

> And the command interpreter is not necessarily on
> either side of that exec() call either.

Not the command line interpreting part. That's irrelevant. It's the program
executing part.

> Going from 8080 CP/M to 8086 MSDOS required conversion
> of code at the assembler source level.

Yes, assuming that the program was created using pure Assembly.

> How do you propose doing a transition from 16-bit
> MSDOS to 32-bit theoretical MSDOS?
>
> Starting with applications that are calling exec()
> in either assembler or C.
....
> Ok, I forgot to mention something there.
>
> I am talking about 16-bit MSDOS programs that were
> written with a reasonably clean (I'm willing to negotiate,
> nothing is set in stone) Pos* interface, and then
> porting those to 32-bit MSDOS.
>
> There is a reasonably clean PosExec() for 16-bit MSDOS,
> but the caller and called will both need to adjust for
> 32-bit MSDOS. I don't see any reasonable way of avoiding
> that, and I don't know what the proposed alternative is
> anyway.

The pointer interpretation is entirely different for both platforms. You'll
juat have to treat pointers differently for each platform. e.g. for 16-bit
DOS, HiWord of the pointer is the Segment, and LoWord of the pointer is the
Offset; and for 32-bit DOS, HiWord is the upper 16 bits of the 32-bit flat
address, and LoWord is the lower 16 bits of the 32-bit flat address.
Assuming that pointer for the 32-bit DOS is a flat address.

Re: extending parameters

<82703a67-99fb-4488-8b39-09cae5c57af7n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=85&group=comp.os.msdos.programmer#85

  copy link   Newsgroups: comp.os.msdos.programmer
X-Received: by 2002:a37:63d2:: with SMTP id x201mr6740350qkb.202.1620058282953; Mon, 03 May 2021 09:11:22 -0700 (PDT)
X-Received: by 2002:ac8:7484:: with SMTP id v4mr17301997qtq.357.1620058282803; Mon, 03 May 2021 09:11:22 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.msdos.programmer
Date: Mon, 3 May 2021 09:11:22 -0700 (PDT)
In-Reply-To: <yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net>
Injection-Info: google-groups.googlegroups.com; posting-host=202.169.113.201; posting-account=CeHKkQoAAAAowY1GfiJYG55VVc0s1zaG
NNTP-Posting-Host: 202.169.113.201
References: <32913dab-8517-4ca2-8e4c-b7d01b517cb6n@googlegroups.com> <oavz329kvjp5$.o2a75nvbugyr$.dlg@40tude.net> <8bde3e8f-547e-4773-9901-9eae7f112256n@googlegroups.com> <1m2w5abax2z33$.1k9p9fnzeypqx$.dlg@40tude.net> <acc4dabc-28f5-4e83-a5f4-73698f80aebfn@googlegroups.com> <1ltwm68v43wrq.ib33n7k7gmgw.dlg@40tude.net> <60f490eb-728d-4767-90f2-5adaf20720f7n@googlegroups.com> <17x60hjtjd6dh.vfxs294kth7t.dlg@40tude.net> <c13ece80-33f2-4ab5-bcb7-c68120339391n@googlegroups.com> <d2snh6xuzu23$.1cfkbxt6yxhk4.dlg@40tude.net> <d2dba42b-d2bb-42d7-8bdd-9f433eefc4fan@googlegroups.com> <idq1p6llgqfv.1vkgq1lrlx8sv.dlg@40tude.net> <4568cc17-447e-4823-a8ce-1fb69af318cdn@googlegroups.com> <yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <82703a67-99fb-4488-8b39-09cae5c57af7n@googlegroups.com>
Subject: Re: extending parameters
From: mutazilah@gmail.com (muta...@gmail.com)
Injection-Date: Mon, 03 May 2021 16:11:22 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 66
 by: muta...@gmail.com - Mon, 3 May 2021 16:11 UTC

On Tuesday, May 4, 2021 at 1:47:20 AM UTC+10, JJ wrote:

> > It can be helped. You can avoid the middle component,
> > the OS, needing to be changed.

> If you don't want to offload the code to the kernel, then yes.

The entirety of the code can't be offloaded from
either the caller or the callee. The only thing you
can entirely offload is the kernel, and that
actually maximizes the usefulness of it.

> > And the command interpreter is not necessarily on
> > either side of that exec() call either.

> Not the command line interpreting part. That's irrelevant. It's the program
> executing part.

I'm talking about the program execution.

PROGA can exec() PROGB without either the kernel
or command.com being involved.

> > There is a reasonably clean PosExec() for 16-bit MSDOS,
> > but the caller and called will both need to adjust for
> > 32-bit MSDOS. I don't see any reasonable way of avoiding
> > that, and I don't know what the proposed alternative is
> > anyway.

> The pointer interpretation is entirely different for both platforms. You'll
> juat have to treat pointers differently for each platform. e.g. for 16-bit
> DOS, HiWord of the pointer is the Segment, and LoWord of the pointer is the
> Offset; and for 32-bit DOS, HiWord is the upper 16 bits of the 32-bit flat
> address, and LoWord is the lower 16 bits of the 32-bit flat address.
> Assuming that pointer for the 32-bit DOS is a flat address.

There is no LoWord in the existing 16-bit MSDOS
exec() parameter block.

In any proposed solution of "how to write MSDOS
programs" I'm expecting to produce a 16-bit
executable that actually works on say real
MSDOS 3.2.

Starting from the above, how do you minimize the
amount of changes required to support a future
32-bit MSDOS? ie the year is 1986. MSDOS 3.2
was just released, and so was the 80386. Gates
just announced he will produce a 32-bit version
of MSDOS, but the exact details haven't been
announced yet.

You're a friend of Gates. You can influence him on
both the design of 32-bit MSDOS and on coding
standards for 16-bit MSDOS programming to make
the transition back and forth to 32-bit as easy as
possible. In any application there will be two distinct
executables created - one for 8086 16-bit MSDOS
and one for 80386 32-bit MSDOS.

Do you have a proposal?

Note that OS/2 1.0 had a "family API" for the same
executable to work on both MSDOS and OS/2, but
that's not a goal here.

BFN. Paul.

Re: extending parameters

<guop7qojrijt$.iwcz72x3sz1v.dlg@40tude.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=86&group=comp.os.msdos.programmer#86

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!aioe.org!esscOFPPHccfjlxlZhKy2Q.user.gioia.aioe.org.POSTED!not-for-mail
From: jj4public@gmail.com (JJ)
Newsgroups: comp.os.msdos.programmer
Subject: Re: extending parameters
Date: Tue, 4 May 2021 18:48:57 +0700
Organization: Aioe.org NNTP Server
Lines: 38
Message-ID: <guop7qojrijt$.iwcz72x3sz1v.dlg@40tude.net>
References: <32913dab-8517-4ca2-8e4c-b7d01b517cb6n@googlegroups.com> <oavz329kvjp5$.o2a75nvbugyr$.dlg@40tude.net> <8bde3e8f-547e-4773-9901-9eae7f112256n@googlegroups.com> <1m2w5abax2z33$.1k9p9fnzeypqx$.dlg@40tude.net> <acc4dabc-28f5-4e83-a5f4-73698f80aebfn@googlegroups.com> <1ltwm68v43wrq.ib33n7k7gmgw.dlg@40tude.net> <60f490eb-728d-4767-90f2-5adaf20720f7n@googlegroups.com> <17x60hjtjd6dh.vfxs294kth7t.dlg@40tude.net> <c13ece80-33f2-4ab5-bcb7-c68120339391n@googlegroups.com> <d2snh6xuzu23$.1cfkbxt6yxhk4.dlg@40tude.net> <d2dba42b-d2bb-42d7-8bdd-9f433eefc4fan@googlegroups.com> <idq1p6llgqfv.1vkgq1lrlx8sv.dlg@40tude.net> <4568cc17-447e-4823-a8ce-1fb69af318cdn@googlegroups.com> <yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net> <82703a67-99fb-4488-8b39-09cae5c57af7n@googlegroups.com>
NNTP-Posting-Host: esscOFPPHccfjlxlZhKy2Q.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@aioe.org
User-Agent: 40tude_Dialog/2.0.15.84
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-Bitcoin: 1LcqwCQBQmhcWfWsVEAeyLchkAY8ZfuMnS
X-Notice: Filtered by postfilter v. 0.9.2
 by: JJ - Tue, 4 May 2021 11:48 UTC

On Mon, 3 May 2021 09:11:22 -0700 (PDT), muta...@gmail.com wrote:
>
> The entirety of the code can't be offloaded from
> either the caller or the callee.

Not the entire code. Only part of it. The CMDLINE creation part.

> The only thing you
> can entirely offload is the kernel, and that
> actually maximizes the usefulness of it.

That would be no different that a bootable application which use its own
private OS. Basically an OS, but isolated.

> I'm talking about the program execution.
>
> PROGA can exec() PROGB without either the kernel
> or command.com being involved.

Offloading the CMDLINE creation code to the kernel which makes the kernel
part of the components, was just a suggestion. It's up to you to decide
whether to choose bigger kernel, or bigger applications; because the code
has to be placed somewhere.

> There is no LoWord in the existing 16-bit MSDOS
> exec() parameter block.

I was referring to your PDOS' pointer type in general.

> Starting from the above, how do you minimize the
> amount of changes required to support a future
> 32-bit MSDOS? ie the year is 1986. MSDOS 3.2
> was just released, and so was the 80386. Gates
> just announced he will produce a 32-bit version
> of MSDOS, but the exact details haven't been
> announced yet.

It's why I asked about the pointer type of your PDOS.

Re: extending parameters

<e31f089b-e953-4a20-9cf7-cfaa7596df8en@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=87&group=comp.os.msdos.programmer#87

  copy link   Newsgroups: comp.os.msdos.programmer
X-Received: by 2002:ac8:7612:: with SMTP id t18mr23494358qtq.102.1620142763776; Tue, 04 May 2021 08:39:23 -0700 (PDT)
X-Received: by 2002:a05:622a:c8:: with SMTP id p8mr23086429qtw.145.1620142763637; Tue, 04 May 2021 08:39:23 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.msdos.programmer
Date: Tue, 4 May 2021 08:39:23 -0700 (PDT)
In-Reply-To: <guop7qojrijt$.iwcz72x3sz1v.dlg@40tude.net>
Injection-Info: google-groups.googlegroups.com; posting-host=202.169.113.201; posting-account=CeHKkQoAAAAowY1GfiJYG55VVc0s1zaG
NNTP-Posting-Host: 202.169.113.201
References: <32913dab-8517-4ca2-8e4c-b7d01b517cb6n@googlegroups.com> <oavz329kvjp5$.o2a75nvbugyr$.dlg@40tude.net> <8bde3e8f-547e-4773-9901-9eae7f112256n@googlegroups.com> <1m2w5abax2z33$.1k9p9fnzeypqx$.dlg@40tude.net> <acc4dabc-28f5-4e83-a5f4-73698f80aebfn@googlegroups.com> <1ltwm68v43wrq.ib33n7k7gmgw.dlg@40tude.net> <60f490eb-728d-4767-90f2-5adaf20720f7n@googlegroups.com> <17x60hjtjd6dh.vfxs294kth7t.dlg@40tude.net> <c13ece80-33f2-4ab5-bcb7-c68120339391n@googlegroups.com> <d2snh6xuzu23$.1cfkbxt6yxhk4.dlg@40tude.net> <d2dba42b-d2bb-42d7-8bdd-9f433eefc4fan@googlegroups.com> <idq1p6llgqfv.1vkgq1lrlx8sv.dlg@40tude.net> <4568cc17-447e-4823-a8ce-1fb69af318cdn@googlegroups.com> <yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net> <82703a67-99fb-4488-8b39-09cae5c57af7n@googlegroups.com> <guop7qojrijt$.iwcz72x3sz1v.dlg@40tude.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e31f089b-e953-4a20-9cf7-cfaa7596df8en@googlegroups.com>
Subject: Re: extending parameters
From: mutazilah@gmail.com (muta...@gmail.com)
Injection-Date: Tue, 04 May 2021 15:39:23 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 81
 by: muta...@gmail.com - Tue, 4 May 2021 15:39 UTC

On Tuesday, May 4, 2021 at 9:50:58 PM UTC+10, JJ wrote:

> > The entirety of the code can't be offloaded from
> > either the caller or the callee.

> Not the entire code. Only part of it. The CMDLINE creation part.

Ok, true, you can do that. But if you do that, you can
avoid the CMDLINE altogether and just create a new
INT 21H function, can't you? And maybe that is the
superior solution, so that we can fix this "envseg"
issue in the parm block at the same time.

> > The only thing you
> > can entirely offload is the kernel, and that
> > actually maximizes the usefulness of it.

> That would be no different that a bootable application which use its own
> private OS. Basically an OS, but isolated.

Well I guess that's what it is. It's a very small OS that
knows about CMDLINE, even though MSDOS 3.2
does not.

Maybe at some level there is no distinction between
OS and application?

> > I'm talking about the program execution.
> >
> > PROGA can exec() PROGB without either the kernel
> > or command.com being involved.

I misspoke above. The kernel is still involved, it just
doesn't know about CMDLINE.

> Offloading the CMDLINE creation code to the kernel which makes the kernel
> part of the components, was just a suggestion. It's up to you to decide
> whether to choose bigger kernel, or bigger applications; because the code
> has to be placed somewhere.

I don't care about the size of either. What I care about is
compatibility.

> > There is no LoWord in the existing 16-bit MSDOS
> > exec() parameter block.

> I was referring to your PDOS' pointer type in general.

> > Starting from the above, how do you minimize the
> > amount of changes required to support a future
> > 32-bit MSDOS? ie the year is 1986. MSDOS 3.2
> > was just released, and so was the 80386. Gates
> > just announced he will produce a 32-bit version
> > of MSDOS, but the exact details haven't been
> > announced yet.

> It's why I asked about the pointer type of your PDOS.

Well, I'm willing to negotiate, but my opening offer, which
is what the PDOS/386 source code currently in sourceforge
does, now that I have fixed binutils 2.14a to stop stripping
relocation information, so that I could disable the VM code
that Alica wrote, is at the same level as 16-bit MSDOS - the
OS and applications all see the exact same flat memory
space, starting at location 0 (ie where you will find real
mode interrupt vectors, which are not the protected mode
interrupt vectors, which are currently not in a fixed location
so can't be directly manipulated by applications - but that's
not necessarily a bad thing).

Very simple. No memory protection. You can write directly
to 0xb8000 and the SVGA graphics card without any fuss
at all. As you can in 16-bit MSDOS if you make it
0xb800:0x0000

This is 32-bit MSDOS, not 32-bit Windows.

Actually I have a 32-bit Windows proposal too, but forget
about that for now, and let's agree what 32-bit MSDOS
should look like.

BFN. Paul.

Re: extending parameters

<1l84xf45qgjea.soxkdjp1wiyz$.dlg@40tude.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=88&group=comp.os.msdos.programmer#88

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!aioe.org!VOaEgAd/dsqvGSjWN9W6Og.user.gioia.aioe.org.POSTED!not-for-mail
From: jj4public@gmail.com (JJ)
Newsgroups: comp.os.msdos.programmer
Subject: Re: extending parameters
Date: Wed, 5 May 2021 17:05:36 +0700
Organization: Aioe.org NNTP Server
Lines: 46
Message-ID: <1l84xf45qgjea.soxkdjp1wiyz$.dlg@40tude.net>
References: <32913dab-8517-4ca2-8e4c-b7d01b517cb6n@googlegroups.com> <oavz329kvjp5$.o2a75nvbugyr$.dlg@40tude.net> <8bde3e8f-547e-4773-9901-9eae7f112256n@googlegroups.com> <1m2w5abax2z33$.1k9p9fnzeypqx$.dlg@40tude.net> <acc4dabc-28f5-4e83-a5f4-73698f80aebfn@googlegroups.com> <1ltwm68v43wrq.ib33n7k7gmgw.dlg@40tude.net> <60f490eb-728d-4767-90f2-5adaf20720f7n@googlegroups.com> <17x60hjtjd6dh.vfxs294kth7t.dlg@40tude.net> <c13ece80-33f2-4ab5-bcb7-c68120339391n@googlegroups.com> <d2snh6xuzu23$.1cfkbxt6yxhk4.dlg@40tude.net> <d2dba42b-d2bb-42d7-8bdd-9f433eefc4fan@googlegroups.com> <idq1p6llgqfv.1vkgq1lrlx8sv.dlg@40tude.net> <4568cc17-447e-4823-a8ce-1fb69af318cdn@googlegroups.com> <yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net> <82703a67-99fb-4488-8b39-09cae5c57af7n@googlegroups.com> <guop7qojrijt$.iwcz72x3sz1v.dlg@40tude.net> <e31f089b-e953-4a20-9cf7-cfaa7596df8en@googlegroups.com>
NNTP-Posting-Host: VOaEgAd/dsqvGSjWN9W6Og.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@aioe.org
User-Agent: 40tude_Dialog/2.0.15.84
X-Bitcoin: 1LcqwCQBQmhcWfWsVEAeyLchkAY8ZfuMnS
X-Notice: Filtered by postfilter v. 0.9.2
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
 by: JJ - Wed, 5 May 2021 10:05 UTC

On Tue, 4 May 2021 08:39:23 -0700 (PDT), muta...@gmail.com wrote:
>
> Ok, true, you can do that. But if you do that, you can
> avoid the CMDLINE altogether and just create a new
> INT 21H function, can't you? And maybe that is the
> superior solution, so that we can fix this "envseg"
> issue in the parm block at the same time.

Sure, the CMDLINE can be omitted and be replaced with a more elegant method,
but didn't you said you want to make it easy to port programs to your OS? If
you remove CMDLINE, you'll have more work porting those programs.

> I don't care about the size of either. What I care about is
> compatibility.

In your case, there's no way to keep 100% compatibility due to platform
difference. What you can do is to minimize the incompatibilities due to that
- if you care about compatibility.

> Well, I'm willing to negotiate, but my opening offer, which
> is what the PDOS/386 source code currently in sourceforge
> does, now that I have fixed binutils 2.14a to stop stripping
> relocation information, so that I could disable the VM code
> that Alica wrote, is at the same level as 16-bit MSDOS - the
> OS and applications all see the exact same flat memory
> space, starting at location 0 (ie where you will find real
> mode interrupt vectors, which are not the protected mode
> interrupt vectors, which are currently not in a fixed location
> so can't be directly manipulated by applications - but that's
> not necessarily a bad thing).
>
> Very simple. No memory protection. You can write directly
> to 0xb8000 and the SVGA graphics card without any fuss
> at all. As you can in 16-bit MSDOS if you make it
> 0xb800:0x0000
>
> This is 32-bit MSDOS, not 32-bit Windows.
>
> Actually I have a 32-bit Windows proposal too, but forget
> about that for now, and let's agree what 32-bit MSDOS
> should look like.

OK.

So, what if you treat segment fields as the upper 16-bit of the 32-bit flat
address?

Re: extending parameters

<e5297418-06c7-49fe-b845-e6793ffc6a90n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=89&group=comp.os.msdos.programmer#89

  copy link   Newsgroups: comp.os.msdos.programmer
X-Received: by 2002:ac8:5ccc:: with SMTP id s12mr2580774qta.362.1620215546287; Wed, 05 May 2021 04:52:26 -0700 (PDT)
X-Received: by 2002:a05:622a:174a:: with SMTP id l10mr26827279qtk.349.1620215546142; Wed, 05 May 2021 04:52:26 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!tr1.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.msdos.programmer
Date: Wed, 5 May 2021 04:52:25 -0700 (PDT)
In-Reply-To: <1l84xf45qgjea.soxkdjp1wiyz$.dlg@40tude.net>
Injection-Info: google-groups.googlegroups.com; posting-host=202.169.113.201; posting-account=CeHKkQoAAAAowY1GfiJYG55VVc0s1zaG
NNTP-Posting-Host: 202.169.113.201
References: <32913dab-8517-4ca2-8e4c-b7d01b517cb6n@googlegroups.com> <oavz329kvjp5$.o2a75nvbugyr$.dlg@40tude.net> <8bde3e8f-547e-4773-9901-9eae7f112256n@googlegroups.com> <1m2w5abax2z33$.1k9p9fnzeypqx$.dlg@40tude.net> <acc4dabc-28f5-4e83-a5f4-73698f80aebfn@googlegroups.com> <1ltwm68v43wrq.ib33n7k7gmgw.dlg@40tude.net> <60f490eb-728d-4767-90f2-5adaf20720f7n@googlegroups.com> <17x60hjtjd6dh.vfxs294kth7t.dlg@40tude.net> <c13ece80-33f2-4ab5-bcb7-c68120339391n@googlegroups.com> <d2snh6xuzu23$.1cfkbxt6yxhk4.dlg@40tude.net> <d2dba42b-d2bb-42d7-8bdd-9f433eefc4fan@googlegroups.com> <idq1p6llgqfv.1vkgq1lrlx8sv.dlg@40tude.net> <4568cc17-447e-4823-a8ce-1fb69af318cdn@googlegroups.com> <yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net> <82703a67-99fb-4488-8b39-09cae5c57af7n@googlegroups.com> <guop7qojrijt$.iwcz72x3sz1v.dlg@40tude.net> <e31f089b-e953-4a20-9cf7-cfaa7596df8en@googlegroups.com> <1l84xf45qgjea.soxkdjp1wiyz$.dlg@40tude.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e5297418-06c7-49fe-b845-e6793ffc6a90n@googlegroups.com>
Subject: Re: extending parameters
From: mutazilah@gmail.com (muta...@gmail.com)
Injection-Date: Wed, 05 May 2021 11:52:26 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 87
 by: muta...@gmail.com - Wed, 5 May 2021 11:52 UTC

On Wednesday, May 5, 2021 at 8:05:40 PM UTC+10, JJ wrote:

> > Ok, true, you can do that. But if you do that, you can
> > avoid the CMDLINE altogether and just create a new
> > INT 21H function, can't you? And maybe that is the
> > superior solution, so that we can fix this "envseg"
> > issue in the parm block at the same time.

> Sure, the CMDLINE can be omitted and be replaced with a more elegant method,
> but didn't you said you want to make it easy to port programs to your OS? If
> you remove CMDLINE, you'll have more work porting those programs.

Sure, it's a tradeoff. I'm not expecting every MSDOS
program to work unchanged in the transition from
16-bit to 32-bit.

But e.g. every MSDOS program that was written in C90
will port with zero changes whatsoever, other than the
C library itself, which is to be expected.

But C90 doesn't give you the ability to retrieve file
attributes. But can that be done in a portable manner,
sticking reasonable close to INT 21H AH=43H. All it
needs is a wrapper function, ie:

int PosGetFileAttributes(const char *fnm,int *attr)

That seems perfectly reasonable to me. Gates could
have created that API function above and told everyone
to start using that instead of setting ds/dx manually,
in preparation for a move to 32-bit, and even a move
to 64-bit. The function above will work even for 256-bit.

So to the question of CMDLINE - I don't think much
application code is spend doing direct exec() calls
with long parameters. It is more likely to be hidden
in a system() call, so you just need the C runtime
library author to make that change, once.

I really don't care how difficult it is for a C runtime
library author to convert from 16-bit MSDOS to
32-bit and 64-bit. I only care about the application
programmer.

> > I don't care about the size of either. What I care about is
> > compatibility.

> In your case, there's no way to keep 100% compatibility due to platform
> difference. What you can do is to minimize the incompatibilities due to that

That's true for the 32-bit move, but the CMDLINE
solution works even for old versions of 16-bit
MSDOS, which seems like a good solution to me.

> > Very simple. No memory protection. You can write directly
> > to 0xb8000 and the SVGA graphics card without any fuss
> > at all. As you can in 16-bit MSDOS if you make it
> > 0xb800:0x0000
> >
> > This is 32-bit MSDOS, not 32-bit Windows.
> >
> > Actually I have a 32-bit Windows proposal too, but forget
> > about that for now, and let's agree what 32-bit MSDOS
> > should look like.

> OK.
>
> So, what if you treat segment fields as the upper 16-bit of the 32-bit flat
> address?

Is this just for exec() or in general?

It's a lot of work to go to just for exec(), and it still won't
work anyway. Because if you only provide the upper
16 bits, it means you need to be able to allocate memory
on a 64k boundary, requiring a non-standard call. As soon
as you start doing non-standard stuff, you may as well
just write the conditional code.

In addition, when you move to 64-bit, you will be presented
with the same problem. Are you going to make the segment
the upper 16 bits of a 64-bit address? Or perhaps arrange
for memory allocation below 4 GB so that the upper 32 bits
are all 0, the next 16 bits will come from the segment, and
the lower 16 bits will be 0. This manipulation requires
conditional compilation. And basically buys nothing.

BFN. Paul.

Re: extending parameters

<dtykz18x4q5w$.44rchn1mikfz.dlg@40tude.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=90&group=comp.os.msdos.programmer#90

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!aioe.org!38DygP+ILIZ41NVK6PUULw.user.gioia.aioe.org.POSTED!not-for-mail
From: jj4public@gmail.com (JJ)
Newsgroups: comp.os.msdos.programmer
Subject: Re: extending parameters
Date: Thu, 6 May 2021 17:58:54 +0700
Organization: Aioe.org NNTP Server
Lines: 28
Message-ID: <dtykz18x4q5w$.44rchn1mikfz.dlg@40tude.net>
References: <32913dab-8517-4ca2-8e4c-b7d01b517cb6n@googlegroups.com> <oavz329kvjp5$.o2a75nvbugyr$.dlg@40tude.net> <8bde3e8f-547e-4773-9901-9eae7f112256n@googlegroups.com> <1m2w5abax2z33$.1k9p9fnzeypqx$.dlg@40tude.net> <acc4dabc-28f5-4e83-a5f4-73698f80aebfn@googlegroups.com> <1ltwm68v43wrq.ib33n7k7gmgw.dlg@40tude.net> <60f490eb-728d-4767-90f2-5adaf20720f7n@googlegroups.com> <17x60hjtjd6dh.vfxs294kth7t.dlg@40tude.net> <c13ece80-33f2-4ab5-bcb7-c68120339391n@googlegroups.com> <d2snh6xuzu23$.1cfkbxt6yxhk4.dlg@40tude.net> <d2dba42b-d2bb-42d7-8bdd-9f433eefc4fan@googlegroups.com> <idq1p6llgqfv.1vkgq1lrlx8sv.dlg@40tude.net> <4568cc17-447e-4823-a8ce-1fb69af318cdn@googlegroups.com> <yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net> <82703a67-99fb-4488-8b39-09cae5c57af7n@googlegroups.com> <guop7qojrijt$.iwcz72x3sz1v.dlg@40tude.net> <e31f089b-e953-4a20-9cf7-cfaa7596df8en@googlegroups.com>
<1l84xf45qgjea.soxkdjp1wiyz$.dlg@40tude.net> <e5297418-06c7-49fe-b845-e6793ffc6a90n@googlegroups.com>
NNTP-Posting-Host: 38DygP+ILIZ41NVK6PUULw.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@aioe.org
User-Agent: 40tude_Dialog/2.0.15.84
X-Bitcoin: 1LcqwCQBQmhcWfWsVEAeyLchkAY8ZfuMnS
X-Notice: Filtered by postfilter v. 0.9.2
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
 by: JJ - Thu, 6 May 2021 10:58 UTC

On Wed, 5 May 2021 04:52:25 -0700 (PDT), muta...@gmail.com wrote:
>
> I really don't care how difficult it is for a C runtime
> library author to convert from 16-bit MSDOS to
> 32-bit and 64-bit. I only care about the application
> programmer.

Well you can't have both an entirely different specification, and
compatibility. You'll have to choose one and sacrifice the other. Whichever
is easier for software developers.

> Is this just for exec() or in general?

I meant DOS data structures which have segment fields instead of pointer
fields. IOTW, special handling for those type of DOS structures only.
Nothing more.

> It's a lot of work to go to just for exec(), and it still won't
> work anyway. Because if you only provide the upper
> 16 bits, it means you need to be able to allocate memory
> on a 64k boundary, requiring a non-standard call.

That is the downside, unfortunately.

Either way, it's like what I've mentioned earlier. You can't have both.
You'll have to choose one. Do you want to keep DOS compatibility, or (third
party) software compatibility? Whichever it's easier for the software
developer.

Re: extending parameters

<ee10c815-0123-48a4-af2b-08dc4e44c4b0n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=91&group=comp.os.msdos.programmer#91

  copy link   Newsgroups: comp.os.msdos.programmer
X-Received: by 2002:ad4:5588:: with SMTP id e8mr5429767qvx.10.1620317560792; Thu, 06 May 2021 09:12:40 -0700 (PDT)
X-Received: by 2002:a0c:f307:: with SMTP id j7mr5269406qvl.36.1620317560604; Thu, 06 May 2021 09:12:40 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!tr1.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.msdos.programmer
Date: Thu, 6 May 2021 09:12:40 -0700 (PDT)
In-Reply-To: <dtykz18x4q5w$.44rchn1mikfz.dlg@40tude.net>
Injection-Info: google-groups.googlegroups.com; posting-host=202.169.113.201; posting-account=CeHKkQoAAAAowY1GfiJYG55VVc0s1zaG
NNTP-Posting-Host: 202.169.113.201
References: <32913dab-8517-4ca2-8e4c-b7d01b517cb6n@googlegroups.com> <oavz329kvjp5$.o2a75nvbugyr$.dlg@40tude.net> <8bde3e8f-547e-4773-9901-9eae7f112256n@googlegroups.com> <1m2w5abax2z33$.1k9p9fnzeypqx$.dlg@40tude.net> <acc4dabc-28f5-4e83-a5f4-73698f80aebfn@googlegroups.com> <1ltwm68v43wrq.ib33n7k7gmgw.dlg@40tude.net> <60f490eb-728d-4767-90f2-5adaf20720f7n@googlegroups.com> <17x60hjtjd6dh.vfxs294kth7t.dlg@40tude.net> <c13ece80-33f2-4ab5-bcb7-c68120339391n@googlegroups.com> <d2snh6xuzu23$.1cfkbxt6yxhk4.dlg@40tude.net> <d2dba42b-d2bb-42d7-8bdd-9f433eefc4fan@googlegroups.com> <idq1p6llgqfv.1vkgq1lrlx8sv.dlg@40tude.net> <4568cc17-447e-4823-a8ce-1fb69af318cdn@googlegroups.com> <yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net> <82703a67-99fb-4488-8b39-09cae5c57af7n@googlegroups.com> <guop7qojrijt$.iwcz72x3sz1v.dlg@40tude.net> <e31f089b-e953-4a20-9cf7-cfaa7596df8en@googlegroups.com> <1l84xf45qgjea.soxkdjp1wiyz$.dlg@40tude.net> <e5297418-06c7-49fe-b845-e6793ffc6a90n@googlegroups.com> <dtykz18x4q5w$.44rchn1mikfz.dlg@40tude.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ee10c815-0123-48a4-af2b-08dc4e44c4b0n@googlegroups.com>
Subject: Re: extending parameters
From: mutazilah@gmail.com (muta...@gmail.com)
Injection-Date: Thu, 06 May 2021 16:12:40 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 57
 by: muta...@gmail.com - Thu, 6 May 2021 16:12 UTC

On Thursday, May 6, 2021 at 8:58:56 PM UTC+10, JJ wrote:

> > I really don't care how difficult it is for a C runtime
> > library author to convert from 16-bit MSDOS to
> > 32-bit and 64-bit. I only care about the application
> > programmer.

> Well you can't have both an entirely different specification, and
> compatibility. You'll have to choose one and sacrifice the other. Whichever
> is easier for software developers.

I'm having trouble understanding your position.

What options are available for software developers,
just considering these two "concepts":

int PosGetFileAttributes(const char *fnm, int *attr)
0x43

void PosExec(char *prog, POSEXEC_PARMBLOCK *parmblock)
0x4b

Noting that we want to support 16, 32 and 64-bit
versions of MSDOS, and we expect a recompile
of applications for each of those 3 targets.

> > Is this just for exec() or in general?

> I meant DOS data structures which have segment fields instead of pointer
> fields. IOTW, special handling for those type of DOS structures only.
> Nothing more.

I don't think there are many of those.

> > It's a lot of work to go to just for exec(), and it still won't
> > work anyway. Because if you only provide the upper
> > 16 bits, it means you need to be able to allocate memory
> > on a 64k boundary, requiring a non-standard call.

> That is the downside, unfortunately.

The downside is the same either way, so you may as
well use the opportunity to do it properly.

> Either way, it's like what I've mentioned earlier. You can't have both.
> You'll have to choose one. Do you want to keep DOS compatibility, or (third
> party) software compatibility? Whichever it's easier for the software
> developer.

It depends what you mean by "DOS compatibility".

I'm not expecting 32-bit software to run on 16-bit
hardware, and vice-versa.

That's an assumption I didn't think to voice out, sorry,
so may alter your answer.

BFN. Paul.

Re: extending parameters

<yvlaynsrt4l4$.14b4yy7j0bs68.dlg@40tude.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=92&group=comp.os.msdos.programmer#92

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!aioe.org!38DygP+ILIZ41NVK6PUULw.user.gioia.aioe.org.POSTED!not-for-mail
From: jj4public@gmail.com (JJ)
Newsgroups: comp.os.msdos.programmer
Subject: Re: extending parameters
Date: Fri, 7 May 2021 19:35:48 +0700
Organization: Aioe.org NNTP Server
Lines: 8
Message-ID: <yvlaynsrt4l4$.14b4yy7j0bs68.dlg@40tude.net>
References: <32913dab-8517-4ca2-8e4c-b7d01b517cb6n@googlegroups.com> <1m2w5abax2z33$.1k9p9fnzeypqx$.dlg@40tude.net> <acc4dabc-28f5-4e83-a5f4-73698f80aebfn@googlegroups.com> <1ltwm68v43wrq.ib33n7k7gmgw.dlg@40tude.net> <60f490eb-728d-4767-90f2-5adaf20720f7n@googlegroups.com> <17x60hjtjd6dh.vfxs294kth7t.dlg@40tude.net> <c13ece80-33f2-4ab5-bcb7-c68120339391n@googlegroups.com> <d2snh6xuzu23$.1cfkbxt6yxhk4.dlg@40tude.net> <d2dba42b-d2bb-42d7-8bdd-9f433eefc4fan@googlegroups.com> <idq1p6llgqfv.1vkgq1lrlx8sv.dlg@40tude.net> <4568cc17-447e-4823-a8ce-1fb69af318cdn@googlegroups.com> <yf3qmurg0zwy$.z2wj9truynqj$.dlg@40tude.net> <82703a67-99fb-4488-8b39-09cae5c57af7n@googlegroups.com> <guop7qojrijt$.iwcz72x3sz1v.dlg@40tude.net> <e31f089b-e953-4a20-9cf7-cfaa7596df8en@googlegroups.com> <1l84xf45qgjea.soxkdjp1wiyz$.dlg@40tude.net> <e5297418-06c7-49fe-b845-e6793ffc6a90n@googlegroups.com>
<dtykz18x4q5w$.44rchn1mikfz.dlg@40tude.net> <ee10c815-0123-48a4-af2b-08dc4e44c4b0n@googlegroups.com>
NNTP-Posting-Host: 38DygP+ILIZ41NVK6PUULw.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@aioe.org
User-Agent: 40tude_Dialog/2.0.15.84
X-Notice: Filtered by postfilter v. 0.9.2
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-Bitcoin: 1LcqwCQBQmhcWfWsVEAeyLchkAY8ZfuMnS
 by: JJ - Fri, 7 May 2021 12:35 UTC

On Thu, 6 May 2021 09:12:40 -0700 (PDT), muta...@gmail.com wrote:
>
> It depends what you mean by "DOS compatibility".
>
> I'm not expecting 32-bit software to run on 16-bit
> hardware, and vice-versa.

If you think "DOS compatibility" is a hardware related, then I give up.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor