kerravon

Sydney, Free World South, 07.11.2022, 00:31 |
nuclear war (Miscellaneous) |
In a discussion elsewhere (hercules-380), I was told
that in a nuclear war, it is possible that all
industrial cities in the world will be nuked, so that
they don't have a competitive advantage.
And that the only people who will still be able to
manufacture processors will be universities, and
they will only be able to do 8-bit computers, not
16-bit.
So there will be a time delay before new 16-bit
computers become available.
In addition, the 16-bit computers, when available,
may or may not go through the same historical
process, ie segmentation. It can't be ruled out.
So, DOS really may be "ain't dead".
As such, if anyone else has nothing better to do,
let's standardize 16-bit segmentation computing.
It doesn't necessarily need to be 8086.
And it's probably possible for the same source
base to be used for future 32-bit programming.
I have made an opening offer/POC already, but it is
not set in stone.
BFN. Paul. |
kerravon

Sydney, Free World South, 10.12.2022, 05:54
@ DosWorld
|
nuclear war |
> > I mentioned that SubC already generates
> > 8086 assembler
> > That's the backend, right?
>
> No. This is compiler frontend plus zero-level (or stub-level) backend.
> IMHO, this is wrong way, because generated code quality could not be
> greater then Turbo Pascal 6/7.0 or gcc -O0.
Ok, again, I don't know which one this is, but
we do have a new player:
https://github.com/wxwisiasdf/cc23/tree/master
It's being actively worked on as we speak.
And I asked him if he could do 8086 huge
memory model too, and he said yes.
BFN. Paul. |
DosWorld
26.11.2022, 22:53 (edited by DosWorld, 27.11.2022, 00:08)
@ kerravon
|
nuclear war |
> Can you tell me more about the "art"? Is it the
> thrill of provably being able to run in less
> than 640k?
> Or is it 16-bit?
1. Partly, yes. Dos (memory model) can be full applicable to solve all problems, until your program have 'size(int) < 65536'. Also, dos is real-time (or very near).
2. Over-engineering (over-complicated) applications (which consume too much resources) with low quality of programmers in modern 'industrial programming' (enterprise etc). Example of this over-engineering - web browser engines. When i do programming for dos - i am free (not need reproduce/reuse over complicated things to solve something simple).
When you have interview, I don't recommend talk about B+Tree and restrict your brain to student-level knowledge about binary/avl/red-black tree (one time, i was looks like a person who tells wonderful-lie story) and learn very well all syntax sugar in modern language (which you will use).
You talk about memory restrictions - imho it is not so important.
(I am more restricted with 2gb file limit)
> Are you interested in going lower, e.g. programming
> the C64? What about the 68000 Amiga 500? It came with
> 512k memory from memory.
It is a little bit different scene, for me.
And this is more about home-computer.
I have no idea, why home computer must have more then one core and tons of features from mainframes (enterprise computers). And consume too much of energy. Also, Personal Computer (PC) with multiuser OS. Does it sounds strange? (next, need expect multiuser toothbrush on market)
This is applicable for normal life (when you live a happy life and can waste resources), but we live in mad world with crazy people ("sorry, i have no better planet for you" (c) me). It will be broken with first small problem. At last blackout this week, i have only one real working source of news. Hey! Where is yours web2.0? I dont see it! 
But my HP LX200 can continue work near to unlimited time. --- Make DOS great again!
Make Russia small again! |
glennmcc

North Jackson, Ohio (USA), 26.11.2022, 17:24
@ kerravon
|
nuclear war |
> Are you interested in going lower, e.g. programming
> the C64? What about the 68000 Amiga 500? It came with
> 512k memory from memory.
>
Perhaps you should go back to BASIC & ASM programming for the
Z80 CPU in the RadioShack TRS-80 model 1 with 4KB of RAM ?  --- --
http://glennmcc.org/ |
kerravon

Sydney, Free World South, 26.11.2022, 09:31
@ DosWorld
|
nuclear war |
> > I'm curious why you're not recompiling your software
> > for x64 or ARM instead.
>
> Because i love real mode dos. For me it sort of non-commercial art.
> If can't run it - i'll use VM with x86 bytecode 
Can you tell me more about the "art"? Is it the
thrill of provably being able to run in less
than 640k?
Or is it 16-bit?
How would you feel about running in PM16, still being
able to do INT 21h, but having more than 640k of
memory available, and also your application runs in
kernel mode.
It should then be identical to RM16, shouldn't it,
except you have more memory?
But if low memory is the attraction, that is useless.
Are you interested in going lower, e.g. programming
the C64? What about the 68000 Amiga 500? It came with
512k memory from memory.
BFN. Paul. |
DosWorld
25.11.2022, 22:39
@ kerravon
|
nuclear war |
> I'm curious why you're not recompiling your software
> for x64 or ARM instead.
Because i love real mode dos. For me it sort of non-commercial art.
If can't run it - i'll use VM with x86 bytecode  --- Make DOS great again!
Make Russia small again! |
kerravon

Sydney, Free World South, 25.11.2022, 22:34
@ DosWorld
|
nuclear war |
> > I looked at your link. Maybe if I spent enough
> > effort I could understand it, but for now I
> > want to avoid it.
>
> For me, it will be great improvement - we can speed up our software x2/x3
> times just recompile it.
I'm curious why you're not recompiling your software
for x64 or ARM instead.
But yeah, I do agree that it would be nice for people
to improve compilers, and make all software bug-free
too, instead of just replacing one bit of buggy
software with a new version with a different set of
bugs. |
DosWorld
25.11.2022, 22:27
@ kerravon
|
nuclear war |
> I quit after they started teaching
> differential equations
I am also ate this cactus (in 90's), but remember about it the same as you.
So, you don't waste time.
> I looked at your link. Maybe if I spent enough
> effort I could understand it, but for now I
> want to avoid it.
For me, it will be great improvement - we can speed up our software x2/x3 times just recompile it. But it not so easy way. May be i am will try. --- Make DOS great again!
Make Russia small again! |
kerravon

Sydney, Free World South, 25.11.2022, 19:38
@ DosWorld
|
nuclear war |
> > I mentioned that SubC already generates
> > 8086 assembler
> > That's the backend, right?
>
> No. This is compiler frontend plus zero-level (or stub-level) backend.
> IMHO, this is wrong way, because generated code quality could not be
> greater then Turbo Pascal 6/7.0 or gcc -O0.
Ok, I don't know much about compilers.
And I'm not very good with complex algorithms.
I have skills - I don't know how to describe
them - but they aren't algorithms.
My dad convinced me to do engineering instead
of computer science, but in the 2nd year of
university I quit after they started teaching
differential equations and I decided this
wasn't for me.
I managed to get work as a tape jockey when I
was 18.
I looked at your link. Maybe if I spent enough
effort I could understand it, but for now I
want to avoid it.
What I know is that for literally 50 years, no-one
has been willing to release even a basic C90-compliant
compiler. Everyone who has the skills wants to lock
it down with a copyright. SubC is where it's at.
It's not far from being usable. Well, "not far" may
still be another 50 years, no-one knows for sure at
the moment.
BFN. Paul. |
DosWorld
25.11.2022, 18:20 (edited by DosWorld, 25.11.2022, 18:35)
@ kerravon
|
nuclear war |
> I mentioned that SubC already generates
> 8086 assembler
> That's the backend, right?
No. This is compiler frontend plus zero-level (or stub-level) backend. IMHO, this is wrong way, because generated code quality could not be greater then Turbo Pascal 6/7.0 or gcc -O0.
Here is example of standalone backend. (+LLVM etc).
Here is article and code by Alexfru which could be as a first step. --- Make DOS great again!
Make Russia small again! |
kerravon

Sydney, Free World South, 23.11.2022, 12:28
@ DosWorld
|
nuclear war |
> > > > > 2. Compiler backend
> > > > This already exists for 8086, 80386
> > > Which one?
> > Both of those targets are available. Plus
> > ARM32 and x64.
>
> Sorry, i am use wrong words.
> Which one compiler backend you mean?
I don't understand your question. You are the
one who said that "compiler backend" was a
problem.
I mentioned that SubC already generates 8086
assembler (small memory model only).
That's the backend, right?
BFN. Paul. |
DosWorld
23.11.2022, 12:00
@ kerravon
|
nuclear war |
> > > > 2. Compiler backend
> > > This already exists for 8086, 80386
> > Which one?
> Both of those targets are available. Plus
> ARM32 and x64.
Sorry, i am use wrong words.
Which one compiler backend you mean? --- Make DOS great again!
Make Russia small again! |
kerravon

Sydney, Free World South, 23.11.2022, 01:10
@ DosWorld
|
nuclear war |
> > > 2. Compiler backend
> > This already exists for 8086, 80386
>
> Which one?
Both of those targets are available. Plus
ARM32 and x64.
Note that 8086 is small memory model only
currently.
BFN. Paul. |
DosWorld
22.11.2022, 19:19
@ kerravon
|
nuclear war |
> > 2. Compiler backend
> This already exists for 8086, 80386
Which one? --- Make DOS great again!
Make Russia small again! |
kerravon

Sydney, Free World South, 21.11.2022, 23:38
@ DosWorld
|
nuclear war |
> > lack of compilers backend
>
> Also, if somebody work in this direction, i am will be happy to join.
You're willing to work on SubC?
I thought you said it didn't make sense?
It makes sense to me because I want a public
domain compiler, for the same reason that the
GCC copyright owners refuse to make theirs
public domain.
BTW, I noticed that your linker is copyrighted.
Are you happy to release any work on SubC as
public domain?
> We have 3 "problem":
> 1. Compiler frontend (not a big problem)
This is actually the major problem. Finding
someone with the skills to get this close
enough to C90. It's already very close.
> 2. Compiler backend
This already exists for 8086, 80386 and ARM,
which is all I'm really interested in. Well,
I'm interested in S/370 too.
> 3. Linker
We already have pdld386 for the 80386 and now
we have ld86 for the 8086. I am not aware of
any problem with either of them for the purpose
I require.
> I am try to start from #1 (few times), but need understand #2 and #3 limits
> to have a success on step #1.
> Each time, i am receive (as result) student-grade compiler with similar
> problem (one of example).
I'm happy to live with student grade so long
as it works. Improving that is a job for future
generations.
BFN. Paul. |
DosWorld
21.11.2022, 19:09 (edited by DosWorld, 21.11.2022, 19:21)
@ DosWorld
|
nuclear war |
> lack of compilers backend
Also, if somebody work in this direction, i am will be happy to join.
We have 3 "problem":
1. Compiler frontend (not a big problem)
2. Compiler backend
3. Linker
I am try to start from #1 (few times), but need understand #2 and #3 limits to have a success on step #1.
Each time, i am receive (as result) student-grade compiler with similar problem (one of example).
So, i am stop try to create frontend and start go in reverse direction - from step #3. Now, i am had solve #3 (16/32 bit linker). --- Make DOS great again!
Make Russia small again! |
glennmcc

North Jackson, Ohio (USA), 21.11.2022, 17:41
@ DosWorld
|
nuclear war |
> > Jean-Marc (PDAndro) has said that he is going to
> > start working on SubC for the i386.
>
> IMHO this is has not so much sense.
> More cause problem - lack of compilers backend (gcc-grade, but without
> gcc), we have gcc:
> a) strong require use full gcc-toolchain (which has strange assembler
> syntax, own file formats and have "overfat" size etc)
> b) this gcc is old
Full agreement here.... that's total nonsense.
All of the 'tools' already exist that are needed for compiling programs
to run on all currently existing CPUs and OSs
(most are available to download free)
IMHO, Attempting to write new compilers is simply reinventing the wheel.
And _this_ is what happens when you reinvent the wheel.
http://glennmcc.org/images/reinvented-wheel.jpg
 --- --
http://glennmcc.org/ |
DosWorld
21.11.2022, 16:40
@ kerravon
|
nuclear war |
> Jean-Marc (PDAndro) has said that he is going to
> start working on SubC for the i386.
IMHO this is has not so much sense.
More cause problem - lack of compilers backend (gcc-grade, but without gcc), we have gcc:
a) strong require use full gcc-toolchain (which has strange assembler syntax, own file formats and have "overfat" size etc)
b) this gcc is old --- Make DOS great again!
Make Russia small again! |
kerravon

Sydney, Free World South, 21.11.2022, 13:49
@ tkchia
|
nuclear war |
> I do not suppose you have actually found a public domain (N.B.) C compiler
> for x86-16 that actually knows about the various memory models? If there
> is such a thing I am sure the community here (me included) would be
> super-interested to know.
Jean-Marc (PDAndro) has said that he is going to
start working on SubC for the i386.
Can you tell me why you are interested in a public
domain C compiler for x86-16?
He might be willing to give that target priority
after doing i386.
The work on i386 will likely be applicable to all
other targets anyway, as it is the front-end
language processing that is lacking, not the code
generation.
BFN. Paul. |
kerravon

Sydney, Free World South, 18.11.2022, 02:56
@ kerravon
|
nuclear war |
I realized there was a problem with my code
so I have committed a new version.
BFN. Paul. |
kerravon

Sydney, Free World South, 18.11.2022, 01:33
@ tkchia
|
nuclear war |
> The best way to test your code is probably not to ask Internet randos.
> Get an actual 16-bit C compiler, then test your code against an actual C
> compiler. This is how stuff is done.
I already did that. I built it using Watcom C in
various memory models, and ran the resultant
executable on PDOS/86.
Even though it works, it may randomly corrupt
something in the future and that's why I was
hoping for someone to desk-check it.
> I do not suppose you have actually found a public domain (N.B.) C compiler
> for x86-16 that actually knows about the various memory models? If there
> is such a thing I am sure the community here (me included) would be
> super-interested to know.
Not quite, but SubC exists, and I have made modifications
to it myself, and have paid someone else to make
modifications to it, and I have already verified that
as86 can handle its output.
I have been trying to think of an easy way to get it to
do more than small memory model, and my current thought
is to bump up the size of "int" to 32-bits using dx+ax
etc, and use large and maybe huge memory model so that
pointers are also 4 bytes.
That should produce valid 8086 code, which is at least
a starting point.
But before doing that I want to get 80386 working
satisfactorily, where I don't need to mess around
with that. And the barrier there is isolating a
subset of C90 that is close enough for my code to
work, or perhaps I can make some small changes to
my code. It depends what is possible. Also I don't
know if I can survive without "unsigned" (which I
currently define as nothing). I'll probably get
back to SubC soon, but as86 is the current priority
since it is being actively worked on.
> My original point was that not everything that corporations do should be
> attributed to nefarious intent. If you can easily end up doing the same
> things without nefarious intent, then why not other people?
Sure, I didn't mean to suggest that every corporate
action was due to nefarious intent. It's more just
the two monopolies (Microsoft and IBM) trying to
maintain their monopoly that is not so much nefarious -
it is not their job to break their own monopoly -
but needs to be recognized.
> So I will not be surprised if a lot of design decisions, such as recent
> versions of Windows requiring x86-64's with certain CPU features, turn out
> to be due to practical considerations.
I guess that's possible. But I don't like Microsoft
bragging about their carbon footprint when they're
the ones forcing people to upgrade PCs, which is
where they make money. I'd rather they just kept
quiet. If they're not going to keep quiet, they
should be exposed for their hypocrisy.
BFN. Paul. |
tkchia

18.11.2022, 00:38 (edited by tkchia, 18.11.2022, 00:56)
@ kerravon
|
nuclear war |
Hello kerravon,
> Thanks for clearing up that mystery!!!
> Does this look correct to you?
> https://sourceforge.net/p/pdos/gitcode/ci/master/tree/pdpclib/dosstart.asm#l72
The best way to test your code is probably not to ask Internet randos. Get an actual 16-bit C compiler, then test your code against an actual C compiler. This is how stuff is done.
(However, if your code is not working — for some reason — and you have trouble figuring out why it is not working, or if you have trouble figuring out how to test it in the first place, then maybe we can help there.)
If you want your startup code to work with Turbo C++ (e.g.) what you can try to do is to replace the startup module (probably c0t.obj , c0h.obj , etc.) on the linker command line with your own. Or if you are thinking of linking up with code from a different C compiler, then try replacing the startup module from that, etc.
I do not suppose you have actually found a public domain (N.B.) C compiler for x86-16 that actually knows about the various memory models? If there is such a thing I am sure the community here (me included) would be super-interested to know.
> > > Was the purpose of a new OS design so that if it
> > > did become popular, Commodore could lock people
> > > in somehow?
> > Huh? Not everything is a deliberate conspiracy to squeeze more money from
> > customers. After all, you yourself created a new C-level API that is
> At the moment I am not claiming that what I did
> was the right thing to do. I wasn't actually
> aware of what came before besides people calling
> int86x and POSIX, neither of which I liked. And
My original point was that not everything that corporations do should be attributed to nefarious intent. If you can easily end up doing the same things without nefarious intent, then why not other people?
At the end of the day, programming is a very crass, pragmatic endeavour. No amount of verbiage can change that, and maybe that is just as it should be. When your code is deployed, it either works, or it does not. So you try your best to ensure that your code works on whatever machines it is meant to run on.
So I will not be surprised if a lot of design decisions, such as recent versions of Windows requiring x86-64's with certain CPU features, turn out to be due to practical considerations.
Thank you! --- https://gitlab.com/tkchia · https://codeberg.org/tkchia · 😴 "MOV AX,0D500H+CMOS_REG_D+NMI" |
kerravon

Sydney, Free World South, 17.11.2022, 23:55
@ tom
|
nuclear war |
> > There is not enough in common between the different
> > small OSes, right, e.g. MSDOS and AmigaOS? So it's
> > not the API that needs standardization first, the
> > root problem is that people keep writing new OSes
> > (like AmigaOS) in a way that prohibits having a
> > standard API?
> >
> > Was it a mistake for AmigaOS to do that instead of
> > copying MSDOS?
>
> there was little worth copying from MSDOS.
MSDOS was capable of running business applications
for many years.
It was valuable enough that people went to the
effort of running an 8086 emulator on the Amiga
so that they could run MSDOS software.
I'm simply wanting to replace that emulator with
native 68000. Without changing one line of code.
Was that possible? At least if C programmers had
"done the right thing" and maybe if MSDOS had
"done the right thing" too.
> as far as I remember, AmigaOS was HUGE, compared to MSDOS.
>
> it did MultiMedia, preemptive multitasking, Graphics, and probably more.
> even a mouse was part of AmigaOS.
>
> now explain to us how your new "standard" is dealing with multitasking,
> multimedia, graphics, or even a mouse.
I don't need my new standard to cover any of that.
I don't care what the Amiga added.
I just want to cover MSDOS.
BFN. Paul. |
kerravon

Sydney, Free World South, 17.11.2022, 23:51
@ tkchia
|
nuclear war |
> Hello kerravon,
>
> > Was the purpose of a new OS design so that if it
> > did become popular, Commodore could lock people
> > in somehow?
> > It seems that Microsoft is doing something like that.
> > Instead of making sure that their code works on an
> > 80386 up, or the first x64, they deliberately look
> > for a new processor feature and make it mandatory.
> > Which forces people to buy new computers. And the
> > new computers require a new Windows license which
> > is how Microsoft then makes money.
>
> Huh? Not everything is a deliberate conspiracy to squeeze more money from
> customers. After all, you yourself created a new C-level API that is
> incompatible with everything that came before. And you should know that
> you are not engaged in a conspiracy to squeeze money.
At the moment I am not claiming that what I did
was the right thing to do. I wasn't actually
aware of what came before besides people calling
int86x and POSIX, neither of which I liked. And
I have a "bias for action" as someone described
it, so just started reproducing MSDOS in C to
see what I ended up with. I wasn't claiming to
be an OS expert either - quite the opposite.
Since then I have a new design though, different
from MSDOS. That's what PDOS-generic is. But that
came at the end of a process, not the beginning.
I'm not claiming Commodore were right or wrong
with their new API either. I'm asking that question.
BFN. Paul. |
kerravon

Sydney, Free World South, 17.11.2022, 23:45
@ glennmcc
|
nuclear war |
> > > Which forces people to buy new computers. And the
> > > new computers require a new Windows license which
> > > is how Microsoft then makes money.
> >
> > Huh? Not everything is a deliberate conspiracy to squeeze more money
> from
> > customers. After all, you yourself created a new C-level API that is
> > incompatible with everything that came before. And you should know that
> > you are not engaged in a conspiracy to squeeze money.
> >
>
> We don't know that for sure.
>
> For all we know, kerravon might be the CEO of a huge consortium
> engaging in the conspiracy of squeezing money from the survivors
> of the (apparently in his opinion), impending nuclear war. 
I'm curious what you think I would actually do
with a huge amount of money.
But a Ferrari? There's nowhere I actually want to go.
I've seen trees before. I've seen mountains. I've
seen people. I've seen cars. I've seen cows. Boring.
Pay someone to teach me how DOS memory models work?
Would that be better than reading Wikipedia (online
or offline)? Also I would have difficulty finding the
right people to hire.
BFN. Paul. |
kerravon

Sydney, Free World South, 17.11.2022, 23:40
@ tkchia
|
nuclear war |
> > And only about 24 hours ago (part of the delay here)
> > I realized I didn't know (and still don't know) how
> > it is technically possible for compilers to support
> > the small memory model, given that a buffer can
> > reside on either the stack or in the data segment.
>
> "Small model" in x86-16 coding simply means that there are two program
> segments, one for code, and one for data — and stack! So within the
> program you have cs ? ds =
> ss : the stack segment is the same as the data segment.
Thanks for clearing up that mystery!!!
Does this look correct to you?
https://sourceforge.net/p/pdos/gitcode/ci/master/tree/pdpclib/dosstart.asm#l72
; In tiny, small and medium memory models, you need to set
; ss to ds (MSDOS will have set them to different values
; when it loaded the executable).
if @DataSize
else
mov bx,ss
mov ax,ds
sub bx,ax
mov cl,4
shl bx,cl
endif
...
; It appears that in the tiny memory model, you are still required
; to set ds to the same as cs yourself, presumably because ds is
; pointing to the PSP while cs is probably pointing to the beginning
; of the executable. DGROUP may also get the correct value, presumably
; zero. es is set to ds a bit later. And you need to set ss to that
; value too
if @Model eq 1
push cs
pop ds
push cs
pop ax
mov bp, sp
sub bp, bx
mov ss, ax
mov sp, bp
; And that null PSP thing needs to be redone
mov ax, 0
push ax
else
mov ds,dx
; small and medium memory models have ds and ss the same so that
; near pointers can refer to either stack or data and still work
if @DataSize
else
mov bp, sp
sub bp, bx
mov ss, dx
mov sp, bp
; And that null PSP thing needs to be redone
mov ax, 0
push ax
endif
endif |
glennmcc

North Jackson, Ohio (USA), 17.11.2022, 18:42
@ tkchia
|
nuclear war |
> > Which forces people to buy new computers. And the
> > new computers require a new Windows license which
> > is how Microsoft then makes money.
>
> Huh? Not everything is a deliberate conspiracy to squeeze more money from
> customers. After all, you yourself created a new C-level API that is
> incompatible with everything that came before. And you should know that
> you are not engaged in a conspiracy to squeeze money.
>
We don't know that for sure.
For all we know, kerravon might be the CEO of a huge consortium
engaging in the conspiracy of squeezing money from the survivors
of the (apparently in his opinion), impending nuclear war.  --- --
http://glennmcc.org/ |
tom

Germany (West), 17.11.2022, 11:10
@ kerravon
|
nuclear war |
> There is not enough in common between the different
> small OSes, right, e.g. MSDOS and AmigaOS? So it's
> not the API that needs standardization first, the
> root problem is that people keep writing new OSes
> (like AmigaOS) in a way that prohibits having a
> standard API?
>
> Was it a mistake for AmigaOS to do that instead of
> copying MSDOS?
there was little worth copying from MSDOS.
as far as I remember, AmigaOS was HUGE, compared to MSDOS.
it did MultiMedia, preemptive multitasking, Graphics, and probably more.
even a mouse was part of AmigaOS.
now explain to us how your new "standard" is dealing with multitasking, multimedia, graphics, or even a mouse. |
tkchia

17.11.2022, 00:52
@ kerravon
|
nuclear war |
Hello kerravon,
> Was the purpose of a new OS design so that if it
> did become popular, Commodore could lock people
> in somehow?
> It seems that Microsoft is doing something like that.
> Instead of making sure that their code works on an
> 80386 up, or the first x64, they deliberately look
> for a new processor feature and make it mandatory.
> Which forces people to buy new computers. And the
> new computers require a new Windows license which
> is how Microsoft then makes money.
Huh? Not everything is a deliberate conspiracy to squeeze more money from customers. After all, you yourself created a new C-level API that is incompatible with everything that came before. And you should know that you are not engaged in a conspiracy to squeeze money.
Thank you! --- https://gitlab.com/tkchia · https://codeberg.org/tkchia · 😴 "MOV AX,0D500H+CMOS_REG_D+NMI" |
kerravon

Sydney, Free World South, 16.11.2022, 23:54
@ marcov
|
nuclear war |
> > What "implementation" do you suggest for small
> > computers to follow, to allow portability at the
> > C90 source code level, above and beyond what C90
> > itself supports? POSIX doesn't cut it. It relies
> > on the existence of virtual memory.
>
> Which should give you an insight to the futility of it. There is simply not
> enough in common, and the separation between OS and application is vague.
Could you elaborate on both of these things please?
There is not enough in common between the different
small OSes, right, e.g. MSDOS and AmigaOS? So it's
not the API that needs standardization first, the
root problem is that people keep writing new OSes
(like AmigaOS) in a way that prohibits having a
standard API?
Was it a mistake for AmigaOS to do that instead of
copying MSDOS?
Is it technically possible to copy MSDOS, with the
only change being to switch processor (to 68000)?
Or would doing so prohibit enhancements?
Was the purpose of a new OS design so that if it
did become popular, Commodore could lock people
in somehow?
It seems that Microsoft is doing something like that.
Instead of making sure that their code works on an
80386 up, or the first x64, they deliberately look
for a new processor feature and make it mandatory.
Which forces people to buy new computers. And the
new computers require a new Windows license which
is how Microsoft then makes money.
IBM are doing something different. They refuse to
sell z/OS on any non-IBM hardware. Cute.
So the second thing - the separation between
application and OS - do you mean the application
is free to directly manipulate the hardware?
Someone made a comment that C gives you the rope
to hang yourself. If that's the issue, I'm not
worried about that. I just want the system to be
logically correct for logically correct programs.
If wild pointers cause everything to crash and
burn, so be it. That's a separate issue to deal
with at a later date. First I just want simple
things to work.
> But I would investigate e.g. FreeRTOS standards. It seems to be the most
> used somewhat portable OS for small systems.
Thanks for that reference!
I found this:
https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_IO/FreeRTOS_open.html
Their concept is to return an abstract type instead
of an integer handle. I'm not sure whether that is
a good idea or not. Windows does that too. But POSIX
does not.
In addition, it takes two parameters, using data types
from C99. I'm after C90. And those data types preclude
implementation on a 36-bit machine. They should have
used int_least32_t instead of int_32_t, if they wanted
to use the C99 data types.
So, I don't like the look of this API. And I note that
this is a copyrighted product. If they at least made
the API explicitly public domain that would be a good
start.
But they did the exact opposite, explicit copyright
of even a header file:
https://github.com/maniacbug/FreeRTOS/blob/master/FreeRTOS.h
So, your thoughts?
Thanks. Paul. |
marcov
16.11.2022, 21:52
@ kerravon
|
nuclear war |
> What "implementation" do you suggest for small
> computers to follow, to allow portability at the
> C90 source code level, above and beyond what C90
> itself supports? POSIX doesn't cut it. It relies
> on the existence of virtual memory.
Which should give you an insight to the futility of it. There is simply not enough in common, and the separation between OS and application is vague.
But I would investigate e.g. FreeRTOS standards. It seems to be the most used somewhat portable OS for small systems. |
tkchia

16.11.2022, 18:16 (edited by tkchia, 16.11.2022, 23:05)
@ kerravon
|
nuclear war |
Hello kerravon,
> > wut? "Figure out" an API for an existing system "from first principles"?
> > How? And why?
> To understand and find out anything I am missing.
> E.g. it was only recently that I found out that
> people normally develop new systems using an
> emulator on an existing system, but DOS was instead
> developed with the aid of a "monitor". Apparently
> use of a monitor is a lost art, but I was previously
> unaware that the art even existed.
Yes, indeed, it is a good idea to find out about prior art(s). Please continue to do that.
(In contrast, it is usually not a good idea to deduce facts about the real world from "Pure Thought" or "Pure Wisdom". That way madness lies.)
> And only about 24 hours ago (part of the delay here)
> I realized I didn't know (and still don't know) how
> it is technically possible for compilers to support
> the small memory model, given that a buffer can
> reside on either the stack or in the data segment.
"Small model" in x86-16 coding simply means that there are two program segments, one for code, and one for data — and stack! So within the program you have cs ≠ ds = ss : the stack segment is the same as the data segment.
If you run a debugger on a small model program compiled by Turbo C++ or Open Watcom or some other 16-bit compiler, you will find that ds = ss by the time you reach main () . So there you go.
This is straightforward for the compiler to implement in most cases.
(*** begin long aside ***)
However, a problem arises when compiling an interrupt handler routine (via a compiler-specific interrupt or _interrupt keyword). The interrupt handler might be called in the middle of some BIOS or DOS routine which sets ss to point outside the program: then you have ss ≠ program's data segment (let us call it .data ).
The interrupt handler can easily set ds := .data , but temporarily moving the stack pointer ss:sp into the program data segment is not easy, and not always possible.
It turns out that Turbo C++ (version 2, at least) kind of glosses over this issue. It assumes ss = ds = .data , without setting ss (!). But it will normally access automatic stack variables via (ss: )bp and static storage variables via other registers or addressing modes, i.e. via ds . This happens to work most of the time if you do not happen to mix stack addresses and static storage addresses. But it may fail.
Open Watcom in contrast explicitly handles this case, and will compile the interrupt handler in a special mode which takes into account that we might have ss ≠ ds := .data .
Bart Oldeman, myself, and a few other folks, had a discussion about this case (among other matters) back in 2018, when I was trying to add far function support to Andrew Jenner's gcc-ia16 toolchain: https://github.com/tkchia/gcc-ia16/issues/19#issuecomment-367183866 .
(*** end long aside ***)
Thank you! --- https://gitlab.com/tkchia · https://codeberg.org/tkchia · 😴 "MOV AX,0D500H+CMOS_REG_D+NMI" |
kerravon

Sydney, Free World South, 16.11.2022, 17:26
@ tkchia
|
nuclear war |
> Hello kerravon,
>
> > Previously I was under the impression that there
> > was no apparent standard for small systems, but
> > currently I am saying "apparently there is - what
> > is it? Can you figure out what it is from first
> > principles? Why didn't the Amiga use it? Was it
> > because of copyright issues?".
>
> wut? "Figure out" an API for an existing system "from first principles"?
> How? And why?
To understand and find out anything I am missing.
E.g. it was only recently that I found out that
people normally develop new systems using an
emulator on an existing system, but DOS was instead
developed with the aid of a "monitor". Apparently
use of a monitor is a lost art, but I was previously
unaware that the art even existed.
And only about 24 hours ago (part of the delay here)
I realized I didn't know (and still don't know) how
it is technically possible for compilers to support
the small memory model, given that a buffer can
reside on either the stack or in the data segment.
BTW, I can't remember if I mentioned it, but there
is now a public domain 8086 assembler:
https://github.com/robertapengelly/as86
and it assembles most of my hand-written code.
So I'm getting closer and closer to not just having
a public domain OS, but also the entire toolchain
to maintain and build all the applicable source code.
Oh - I also got PDPCLIB to support memory models
other than large - specifically tiny and compact.
medium and small seem to be technically impossible
as per above, but somehow the problem was solved
even though it is nominally impossible.
BFN. Paul. |
tkchia

16.11.2022, 16:23
@ kerravon
|
nuclear war |
Hello kerravon,
> Previously I was under the impression that there
> was no apparent standard for small systems, but
> currently I am saying "apparently there is - what
> is it? Can you figure out what it is from first
> principles? Why didn't the Amiga use it? Was it
> because of copyright issues?".
wut? "Figure out" an API for an existing system "from first principles"? How? And why?
Thank you! --- https://gitlab.com/tkchia · https://codeberg.org/tkchia · 😴 "MOV AX,0D500H+CMOS_REG_D+NMI" |
kerravon

Sydney, Free World South, 16.11.2022, 03:24
@ glennmcc
|
nuclear war |
> > No, you don't get the difficulty in bringing
> > freedom to humanity.
> >
>
> No-one living in any society is truly free.
I'm not sure what your definition of "truly free" is.
In most of our democracies, we have implemented a
definition of "freedom". The only thing left is
quibbling. E.g. do I have a "right" to take heroin?
> Everyone/everywhere is living under the control of their particular
> government.
Every law that the government is enforcing can be
overturned via a non-violent process. If you can't
get the laws you want, it's because you can't
convince 50.00001% of the population that you can
do a better job than those currently doing the job.
> Freedom is just another word for nothing left to lose. :(
No it isn't. If you had ever had your tongue cut out
by your own government, or been raped by your own
government, you would understand that freedom has a
meaning and value.
But you've had your human rights protected to the nth
degree since the day you were born so have lost the
concept of what it means to be a (state) slave.
BFN. Paul. |
kerravon

Sydney, Free World South, 16.11.2022, 03:19
@ marcov
|
nuclear war |
> > Wrong. I'm not claiming that a standard is or
> > isn't useful to anyone besides me. I have no
> > idea. I just know that at a minimum one person
> > wants it. Absolute bare minimum.
>
> That's not a standard. That is an implementation.
Individual companies normally have coding standards.
They may not be "internationally recognized" (whoever
that is), but they're still standards.
If I write all my code to a particular standard, even
as far as the number of spaces for indentation, that's
still a standard, even if I'm the only user of that
standard.
Regardless, if you want to call it an implementation,
I don't wish to engage in a semantic debate.
What "implementation" do you suggest for small
computers to follow, to allow portability at the
C90 source code level, above and beyond what C90
itself supports? POSIX doesn't cut it. It relies
on the existence of virtual memory.
Thanks. Paul. |
DosWorld
16.11.2022, 00:03
@ glennmcc
|
nuclear war |
> Freedom is just another word for nothing left to lose. :(
But you don't have anything. Just a family and dust. --- Make DOS great again!
Make Russia small again! |
glennmcc

North Jackson, Ohio (USA), 13.11.2022, 18:24
@ kerravon
|
nuclear war |
>
> No, you don't get the difficulty in bringing
> freedom to humanity.
>
No-one living in any society is truly free.
Everyone/everywhere is living under the control of their particular government.
Freedom is just another word for nothing left to lose. :( --- --
http://glennmcc.org/ |
marcov
13.11.2022, 12:02
@ kerravon
|
nuclear war |
> Wrong. I'm not claiming that a standard is or
> isn't useful to anyone besides me. I have no
> idea. I just know that at a minimum one person
> wants it. Absolute bare minimum.
That's not a standard. That is an implementation. |
kerravon

Sydney, Free World South, 12.11.2022, 11:43
@ kerravon
|
nuclear war |
By the way - the Australian constitution doesn't
guarantee freedom of speech, nor do we have a
bill of rights.
It does say that the Governor General controls
our Navy though.
Like all pieces of paper, it's a joke.
Chamberlain once waved around a piece of paper
too, making a fool of himself.
BFN. Paul. |
kerravon

Sydney, Free World South, 12.11.2022, 11:38
@ kerravon
|
nuclear war |
Oh yeah, and I called the cops on myself (anonymously)
for one of my posts where I was saying I was going to shoot
my wife because she was in pain because she had cancer.
I wasn't married. No-one I knew had cancer. I don't
own a gun.
The police did turn up, and I was taken to see a
psychiatrist, but they refused to arrest me for
anything.
I haven't read the 253,729,122 and counting laws
in Australia and NSW, but apparently there's
nothing in there that can actually stick.
BFN. Paul. |
DosWorld
12.11.2022, 11:35 (edited by DosWorld, 12.11.2022, 11:49)
@ tkchia
|
nuclear war |
> What does it even mean to "win" a "War on Terror"? I can understand waging
> specific wars on specific groups, such as Al-Qaeda, or the Islamic State,
> or the Taliban. But how does one stamp out all possible "terrorist"
> activity in the past, present, and even future? At which point can one
> truly declare, "mission accomplished"?
1. There is no strong terrorism, there is a weak West.
2. It is easier to fight terrorism, seksism (sorry, word filter), racism and toxicity than with a real military opponent (or real problem). Where is all of this fighters? I don't see anyone here. ZER0. (excluding Banksy - we see some his works here, 2, 3) --- Make DOS great again!
Make Russia small again! |
kerravon

Sydney, Free World South, 12.11.2022, 11:34
@ tkchia
|
nuclear war |
> I thought
> democracy is supposed to be, at least in part, about the freedom to
> disagree?
By the way, I sent an email to the Chinese dictator
asking him to nuke Canberra because I wanted the
Australian constitution changed to be like the
Chinese one.
The reasons for sending the email were far more
complex than that, but one of the things I wanted
to test was whether I could goad the Australian
government into arresting me for expressing an
extreme political opinion.
The Australian government yawned.
I've run out of things to actually say, so have
moved on from testing my own institutions.
BFN. Paul. |
kerravon

Sydney, Free World South, 12.11.2022, 11:30
@ tkchia
|
nuclear war |
> Hello kerravon,
>
> > > I find this "War on Terror" terminology even worse and more vague than
> > the
> > > whole "Cold War" thing.
> ...
> > Sort of. There were really 2 ideologies we were
> > up against - communism and Russian nationalism.
> > The first of those hasn't truly been defeated
> > even in the free world. The second is causing
> > people to die as we speak.
>
> So you think that the freedom to disagree with your "ideology" is something
> that, "even in the free world", must be "defeated" in a "war".
Hell no. We need Devil's Advocates at the very minimum.
From time to time I tell people I'm a "true communist"
too, as evidenced by all my public domain software.
I'm demonstrating the "from each according to their
ability", without the need for a communist dictator.
Most communists I have met are very good at the
"to each according to their needs (and they "need"
a lot)" but not so good when I start asking what
they can do that is within their ability.
> I thought
> democracy is supposed to be, at least in part, about the freedom to
> disagree?
Absolutely! I even disagree with myself. I am
constantly challenging everything in my brain.
Previously I was under the impression that there
was no apparent standard for small systems, but
currently I am saying "apparently there is - what
is it? Can you figure out what it is from first
principles? Why didn't the Amiga use it? Was it
because of copyright issues?".
BFN. Paul. |
tkchia

12.11.2022, 11:13
@ kerravon
|
nuclear war |
Hello kerravon,
> > I find this "War on Terror" terminology even worse and more vague than
> the
> > whole "Cold War" thing.
...
> Sort of. There were really 2 ideologies we were
> up against - communism and Russian nationalism.
> The first of those hasn't truly been defeated
> even in the free world. The second is causing
> people to die as we speak.
So you think that the freedom to disagree with your "ideology" is something that, "even in the free world", must be "defeated" in a "war". I thought democracy is supposed to be, at least in part, about the freedom to disagree?
Thank you! --- https://gitlab.com/tkchia · https://codeberg.org/tkchia · 😴 "MOV AX,0D500H+CMOS_REG_D+NMI" |
kerravon

Sydney, Free World South, 12.11.2022, 10:29
@ tkchia
|
nuclear war |
> Hello kerravon,
>
> > > Well, OK: this "victory" of "ours" in the "Cold War" is all sunshine
> and
> > > roses, we just need to furiously turn a blind eye to all those parts
> > that
> > > are not sunshine and roses. Truly a glorious victory.
> > We're not turning a blind eye. We're doing our
> > best to free the rest of the world too.
>
> Sorry, you just do not get it.
No, you don't get the difficulty in bringing
freedom to humanity.
> > You are the one making the claim that no-one else
> > in the entire world now or in the future will ever
> > have a use for a standardized API for small
> > computer systems. So the burden of proof is on you.
>
> Maybe the world will need a standard, but I am pretty sure that we
> do not need your proposed standard,
My proposal was just an example. I have no
particular desire to have that exact
standard adopted. I do have a particular
desire to make sure it isn't Posix unless
they remove fork() from it, just for starters.
> since it does not do anything
> that is not already covered by other more established standards and
> practices.
>
> Hope that clears things up.
Can you be specific please? What is the
existing standard/practice that you see
for small computer systems, and would you
have recommended that standard/practice
be used on the Amiga so that Commodore
didn't go bankrupt?
Commodore instead created another API.
BFN. Paul. |
kerravon

Sydney, Free World South, 12.11.2022, 10:25
@ tkchia
|
nuclear war |
> I find this "War on Terror" terminology even worse and more vague than the
> whole "Cold War" thing.
Correct. It is totally wide, and ultimately requires
the root source of conflict (all conflict) to be
determined, since terrorism can be done by individuals,
not just states.
> At least the Cold War had a definite end point
> — the dissolution of the Soviet Union.
Sort of. There were really 2 ideologies we were
up against - communism and Russian nationalism.
The first of those hasn't truly been defeated
even in the free world. The second is causing
people to die as we speak.
> What does it even mean to "win" a "War on Terror"? I can understand waging
> specific wars on specific groups, such as Al-Qaeda, or the Islamic State,
> or the Taliban. But how does one stamp out all possible "terrorist"
> activity in the past, present, and even future? At which point can one
> truly declare, "mission accomplished"?
Never. There is a saying "the price of freedom
is eternal vigilence". You need to constantly
scan the horizon.
> Nobody speaks of a "War on First-Degree Murder" or a "War on Drunk Driving
> Accidents", in the same vein as one speaks (or spoke) of a "War on Terror".
> Why?
You can if you want.
> Really... think about these things.
I've been thinking about them since circa 1981 when
I tuned in to Radio Moscow to find out why they
were anti-freedom and wrote to them for an
explanation and got a whole lot of propaganda in
reply instead of the expected "good point - we'll
hold democratic elections in all the dictatorships
under our thumb, including our own, within the next
6 months - we were real dumbasses for not being
able to figure that out for ourselves".
I've pursued finding the root cause of conflict and
the fundamentals of programming the entire time,
non-stop. Once I went for 7 days without sleep.
That was a programming breakthrough.
I have published all my findings already.
Here's one from a Russian that actually did the
above, sort of. Note that I have been talking to
him, often multiple times per day, for 11 years
or something, trying to sort out the damned Russians.
https://sabodog.livejournal.com/2291.html
BFN. Paul. |
tkchia

12.11.2022, 10:20
@ kerravon
|
nuclear war |
Hello kerravon,
> > Well, OK: this "victory" of "ours" in the "Cold War" is all sunshine and
> > roses, we just need to furiously turn a blind eye to all those parts
> that
> > are not sunshine and roses. Truly a glorious victory.
> We're not turning a blind eye. We're doing our
> best to free the rest of the world too.
Sorry, you just do not get it.
> > Well, you are the one proposing a "standard", and there is this thing in
> > the world called the "burden of proof". To wit: the burden is on you to
> > demonstrate that your proposed standard is actually useful to the
> > world. The onus is not on the rest of us to prove to you why we do
> not
> > need your "standard".
...
> You are the one making the claim that no-one else
> in the entire world now or in the future will ever
> have a use for a standardized API for small
> computer systems. So the burden of proof is on you.
Maybe the world will need a standard, but I am pretty sure that we do not need your proposed standard, since it does not do anything that is not already covered by other more established standards and practices.
Hope that clears things up.
Thank you! --- https://gitlab.com/tkchia · https://codeberg.org/tkchia · 😴 "MOV AX,0D500H+CMOS_REG_D+NMI" |
tkchia

12.11.2022, 10:10
@ kerravon
|
nuclear war |
Hello kerravon,
By the way:
> (2 hot, 1 cold), won in our favor already. And
> I count the "War on Terror" as World War 4 too.
> Yet another ideological war (the same as 3).
> But to actually beat "terror" requires a
> comprehensive war covering a ridiculous number
> of ideologies and even ideas, and at an
> individual level, not just a leadership level.
I find this "War on Terror" terminology even worse and more vague than the whole "Cold War" thing. At least the Cold War had a definite end point — the dissolution of the Soviet Union.
What does it even mean to "win" a "War on Terror"? I can understand waging specific wars on specific groups, such as Al-Qaeda, or the Islamic State, or the Taliban. But how does one stamp out all possible "terrorist" activity in the past, present, and even future? At which point can one truly declare, "mission accomplished"?
Nobody speaks of a "War on First-Degree Murder" or a "War on Drunk Driving Accidents", in the same vein as one speaks (or spoke) of a "War on Terror". Why?
Really... think about these things.
Thank you! --- https://gitlab.com/tkchia · https://codeberg.org/tkchia · 😴 "MOV AX,0D500H+CMOS_REG_D+NMI" |
kerravon

Sydney, Free World South, 12.11.2022, 09:59
@ tkchia
|
nuclear war |
> Well, OK: this "victory" of "ours" in the "Cold War" is all sunshine and
> roses, we just need to furiously turn a blind eye to all those parts that
> are not sunshine and roses. Truly a glorious victory.
We're not turning a blind eye. We're doing our
best to free the rest of the world too.
It's very difficult. There aren't a lot of tools
available.
> > > The very idea of creating a "standard" is to offer something to the
> > > world. If your only motivation for proposing a standard is
> because
> > "I"
> > > (i.e. you) want it, then you are doing it wrong.
> > You haven't established that the world is not
> > being offered anything. You just stated it.
>
> Well, you are the one proposing a "standard", and there is this thing in
> the world called the "burden of proof". To wit: the burden is on you to
> demonstrate that your proposed standard is actually useful to the
> world. The onus is not on the rest of us to prove to you why we do not
> need your "standard".
Wrong. I'm not claiming that a standard is or
isn't useful to anyone besides me. I have no
idea. I just know that at a minimum one person
wants it. Absolute bare minimum.
You are the one making the claim that no-one else
in the entire world now or in the future will ever
have a use for a standardized API for small
computer systems. So the burden of proof is on you.
Good luck proving a negative. You'll be the first
person in history.
> If I try to sell you stuff, is it your responsibility to "establish" to me
> why you do not need to buy my stuff? Of course not; the very idea is
> absurd.
Sorry, you're the one making wild claims, not me.
Burden is on you.
BFN. Paul. |
tkchia

12.11.2022, 09:39
@ kerravon
|
nuclear war |
Hello kerravon,
> > And perhaps parts
> > of Oceania. Never mind the impact, good or bad, that this "winning" of
> > "ours" has on the rest of the world. The important thing is that "we"
> > "won", whatever that means.
> It has a meaning, even if you like to pretend
> it doesn't.
Well, OK: this "victory" of "ours" in the "Cold War" is all sunshine and roses, we just need to furiously turn a blind eye to all those parts that are not sunshine and roses. Truly a glorious victory.
(By the way, in my part of the world we just call it "the dissolution of the Soviet Union".)
> > The very idea of creating a "standard" is to offer something to the
> > world. If your only motivation for proposing a standard is because
> "I"
> > (i.e. you) want it, then you are doing it wrong.
> You haven't established that the world is not
> being offered anything. You just stated it.
Well, you are the one proposing a "standard", and there is this thing in the world called the "burden of proof". To wit: the burden is on you to demonstrate that your proposed standard is actually useful to the world. The onus is not on the rest of us to prove to you why we do not need your "standard".
If I try to sell you stuff, is it your responsibility to "establish" to me why you do not need to buy my stuff? Of course not; the very idea is absurd.
Thank you! --- https://gitlab.com/tkchia · https://codeberg.org/tkchia · 😴 "MOV AX,0D500H+CMOS_REG_D+NMI" |