English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 26 June 2021, 15:41   #201
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Hi guys.

Just a quick update that I have released PDOS for the 80386 here: http://pdos.org

Thanks to suggestions in this (Amiga) group that the BIOS exists to isolate the OS from the hardware, I plan to remove the one place where there is direct hardware manipulation (enabling A20).

That is my vision for what 32-bit MSDOS should have looked like.

For AmigaPDOS it would look almost exactly the same, except it would be running 680x0 executables following the D7 standard.

One difference would be that there is no kernel32.dll, as those services are provided via SysBase.

Also I'm not clear about the msvcrt.dll. I'd like to make that a library chained to from SysBase, and each time a C90 subprogram gets executed, it would get a fresh copy of the DLL loaded to give it a C library. I believe there is an existing AmigaOS library that does something like this, but I would be providing my own version (at the level of AmigaPDOS, with an adjusted SysBase, I can't access any AmigaOS stuff without going through the mini-BIOS).

Note that the mini-BIOS is just a normal-looking C program running under AmigaOS, providing services to AmigaPDOS. I have proof of concept already running on the Amiga - see the "bios" subdirectory in the source.

Thanks again for the inspiration. It triggered a lot of activity and understanding.

I am training up (and paying) people to work on PDOS and I hope they will eventually get to the Amiga and the Atari and the mainframe. It's a slow process though.
kerravon is offline  
Old 30 October 2021, 08:58   #202
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Hi everyone.

I'm not sure if anyone actually understood my "PDOS-generic" concept which was inspired by the people on this board.

The proof of concept is now available. A BIOS written in pure C90, an OS written in pure C90, so you can take the OS and applications written for it to any environment. It treats the existing OS as a glorified BIOS.

I have tested the Windows version, but not the Amiga version. Both are available from the bottom of http://pdos.org and if you just want to look at the technology to comment, you can see the PDOS-generic operating system source code here:

https://sourceforge.net/p/pdos/gitco...generic/pdos.c

So basically you get an MSDOS lookalike environment, but all the executables are 68020. The application executables are tiny, as they make use of an exported C library (exported by the OS).

I'm interested in any technical analysis.

Thanks.
kerravon is offline  
Old 30 October 2021, 10:02   #203
Locutus
Registered User
 
Join Date: Jul 2014
Location: Finland
Posts: 1,176
I don't really understand your PD goal document, which of those make them incompatible with say, MIT/BSD/Apache licensing?
Locutus is offline  
Old 30 October 2021, 10:09   #204
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Quote:
Originally Posted by Locutus View Post
I don't really understand your PD goal document, which of those make them incompatible with say, MIT/BSD/Apache licensing?
The PDOS code is public domain, meaning you can use it in MIT etc projects. There are ZERO rules/conditions you need to follow when using/selling/modifying PDOS, so if you see a commercial opportunity - go for it.

If that doesn't answer your question, please be more specific.
kerravon is offline  
Old 30 October 2021, 10:43   #205
Locutus
Registered User
 
Join Date: Jul 2014
Location: Finland
Posts: 1,176
how does MIT or BSD license prevent one from modifying, reselling and not disclosing source code of your product?

As that's what i read is your stated aim.
Locutus is offline  
Old 30 October 2021, 12:11   #206
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Quote:
Originally Posted by Locutus View Post
how does MIT or BSD license prevent one from modifying, reselling and not disclosing source code of your product?

As that's what i read is your stated aim.
All of those people deliberately went to the effort of writing the word "copyright", refusing to instead write the phrase "released to the public domain". That means they're trying to impose conditions that they know some people don't wish to follow. I don't know what their game is, and I don't want to know. You'll find out what their game is when they take you to court for failing to comply with their "implied" desires on what is unquestionably THEIR code as it has a friggin copyright notice plastered all over it. I'm not going to touch anything that someone is insisting they retain ownership of. I'm catering to the people who don't want any rules set by the code owners, because there are no code owners, other than "the public".
kerravon is offline  
Old 30 October 2021, 12:28   #207
Locutus
Registered User
 
Join Date: Jul 2014
Location: Finland
Posts: 1,176
That seems like an irrational reaction to what the BSD and MIT licenses actually say.
Locutus is offline  
Old 30 October 2021, 12:31   #208
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Quote:
Originally Posted by Locutus View Post
That seems like an irrational reaction to what the BSD and MIT licenses actually say.
I cater for whatever percentage of the programming population meets your definition of "irrational". As far as I'm concerned, until someone releases code to the public domain, the job hasn't been done yet.
kerravon is offline  
Old 30 October 2021, 13:36   #209
Locutus
Registered User
 
Join Date: Jul 2014
Location: Finland
Posts: 1,176
I guess you'll find a niche, what kind of competitive use cases do you have in mind for PDOS and your C std library? I get the idea from the manifesto you are intending this to be commercially useful?
Locutus is offline  
Old 30 October 2021, 13:47   #210
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Quote:
Originally Posted by Locutus View Post
I guess you'll find a niche, what kind of competitive use cases do you have in mind for PDOS and your C std library? I get the idea from the manifesto you are intending this to be commercially useful?
I'm not sure what the requirements are for embedded systems. And someone contacted me about wanting to use PDOS in some closed-source commercial robot application, but that project has yet to eventuate. The main thing I had in mind was simply that if you wish to develop an OS for any reason, there was no need to start from scratch - there was an unrestricted base you could start from. Nothing specific.

PDOS/386 is now able to drive a serial port and do zmodem file transfers (and the zmodem code is portable, so maybe it could be exercised on the Amiga too), and I'm basically planning on retreating to my BBS system that I used to run 25 years ago, but this time with public domain software, including the OS. Most of the components are in place already.
kerravon is offline  
Old 31 October 2021, 03:21   #211
Bruce Abbott
Registered User
 
Bruce Abbott's Avatar
 
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,544
Quote:
Originally Posted by kerravon View Post
I have tested the Windows version, but not the Amiga version. Both are available from the bottom of http://pdos.org
Doesn't work.

At this point it had used up ~30MB of FastRAM. I can't imagine how it could work on an MSDOS machine with that memory usage.
Attached Thumbnails
Click image for larger version

Name:	Pdos_crash.png
Views:	151
Size:	22.3 KB
ID:	73637  
Bruce Abbott is offline  
Old 31 October 2021, 03:45   #212
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Quote:
Originally Posted by Bruce Abbott View Post
Doesn't work.
Hi Bruce. Thanks for testing that. There was a bug in my fseek() implementation - I assumed that Seek() returned the new file position but it actually returns the old position. I've rebuilt - could you download and try again please?

Quote:
At this point it had used up ~30MB of FastRAM. I can't imagine how it could work on an MSDOS machine with that memory usage.
It unconditionally allocates 28 MB of RAM (although it only needs 2 MB) because my goal is ultimately to run GCC 3.2.3 which uses about 23 MB to rebuild itself.

I'm not sure what you mean by an "MSDOS machine". It's a 32-bit application meant to run on machines like the 80386. It looks like MSDOS and it uses an MSDOS-like API.
kerravon is offline  
Old 01 November 2021, 10:20   #213
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by Bruce Abbott View Post
I can't imagine how it could work on an MSDOS machine with that memory usage.
Apparently it does not. It is MSDOS like but won't work on top of MSDOS itself. Doing this would require horrors such as DOS/4G.



Quote:
Originally Posted by kerravon View Post
There was a bug in my fseek() implementation - I assumed that Seek() returned the new file position but it actually returns the old position.
That looks weird to me - do you divide by the value returned by Seek ?
As the error above (80000005) is a division by zero.


Quote:
Originally Posted by kerravon View Post
It unconditionally allocates 28 MB of RAM (although it only needs 2 MB) because my goal is ultimately to run GCC 3.2.3 which uses about 23 MB to rebuild itself.
So it has no graphics, no sound, no multitask (etc) and it already uses 2 MB ?
I'm afraid there is something wrong somewhere.
meynaf is offline  
Old 01 November 2021, 11:03   #214
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Quote:
Originally Posted by meynaf View Post
Apparently it does not. It is MSDOS like but won't work on top of MSDOS itself. Doing this would require horrors such as DOS/4G.
I don't know what the point is of running MSDOS under MSDOS, but if you were to run the Windows distribution under HX under MSDOS, it should work.

Quote:
That looks weird to me - do you divide by the value returned by Seek ?
As the error above (80000005) is a division by zero.
I wasn't expecting the Seek to fail, so the VBR wasn't read, which meant that everything was 0 when it was time to do FAT calculations.

Quote:
So it has no graphics, no sound, no multitask (etc) and it already uses 2 MB ?
I'm afraid there is something wrong somewhere.
The Amiga loader doesn't yet have the logic to only allocate memory actually required for the executable so it just allocates 1 MB for the executable. There are two executables loaded, the OS and the command processor.

It is proof of concept. My desire is to get to a point where I have a complete development system which would e.g. allow me to go to an Amiga, continue using what looks like MSDOS with no disruption, and be able to modify every component, including the compiler itself, and rebuild with full optimization. And as I said, it requires a bit over 20 MiB of memory for GCC to recompile itself.

Anyway, I'm currently waiting on someone to test http://pdos.org/temp4.zip
kerravon is offline  
Old 01 November 2021, 19:18   #215
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Quote:
Originally Posted by kerravon View Post
Anyway, I'm currently waiting on someone to test http://pdos.org/temp4.zip
Someone has tested it (not sure if he wants to be named) and it is working on the Amiga as designed! Latest version is http://pdos.org/temp6.zip
kerravon is offline  
Old 01 November 2021, 21:58   #216
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Oh, something I should mention.

In the POC I pass the C library and the OS API to the executable. But I am thinking I should do it similar to the Amiga and do an explicit open of some named library. The library doesn't necessarily need to exist on disk, it can be always-available-in-RAM.

So basically although I call this "MSDOS-like" it is actually Amiga-like in some respects too.
kerravon is offline  
Old 04 November 2021, 04:15   #217
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
I had another thought about where I am coming from.

When the Amiga came out, and was better value for money than the IBM PC, my expectation was that in a sane world, armed with a high level language, all applications should have simply been recompiled for the new machine, and the Amiga takes over the world.

That didn't happen. What was the barrier to that happening?

C90 is the high level language I would like to focus on to start with. I know that programs written in that could simply be recompiled for the Amiga. But people were using MSDOS extensions. Which ones, and why?

Now that I have PDOS/386 and PDOS-generic, I have discovered the following deviations from C90:

1. You need to be able to traverse directories. MSDOS used FAT, and some custom APIs that were FAT-focused. I now know that this can be implemented on the Amiga too.

2. Forget graphics - there needs to be a way to do full-screen editing. Micro-emacs has an ANSI flavor for that. MSDOS has an ANSI.SYS but it didn't provide for ANSI controls for keyboard. I think the Amiga has ANSI support (ie ESC [ 2 J works) for output, I'm not sure about input.

If we can sort this out, all we need is a time machine (*) and we can get the Amiga to take over the business world too!


(*) sold separately
kerravon is offline  
Old 04 November 2021, 08:12   #218
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by kerravon View Post
That didn't happen. What was the barrier to that happening?
Nothing technical at all. The reasons why it didn't happen were 100% marketing :
1. Buying IBM was considered "safe" as IBM wouldn't go bankrupt overnight, and they didn't truly protect their machine against cloning.
2. Commodore mismanaged.
That's all.
meynaf is offline  
Old 04 November 2021, 10:29   #219
kerravon
Registered User
 
Join Date: Mar 2021
Location: Sydney, Australia
Posts: 184
Quote:
Originally Posted by meynaf View Post
Nothing technical at all. The reasons why it didn't happen were 100% marketing :
1. Buying IBM was considered "safe" as IBM wouldn't go bankrupt overnight, and they didn't truly protect their machine against cloning.
2. Commodore mismanaged.
That's all.
There was no guarantee the clones wouldn't go bankrupt overnight either. I expect the computer to be treated like a commodity item. So long as it is able to run the appropriate software - ie MSDOS software - at native (ie compiled for 68000) speed, it should have been a fast PC.

At the very least the 68000 MSDOS environment should EXIST.
kerravon is offline  
Old 04 November 2021, 11:11   #220
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
Quote:
Originally Posted by kerravon View Post
There was no guarantee the clones wouldn't go bankrupt overnight either.
For a single individual maybe, but all together certainly not.


Quote:
Originally Posted by kerravon View Post
I expect the computer to be treated like a commodity item. So long as it is able to run the appropriate software - ie MSDOS software - at native (ie compiled for 68000) speed, it should have been a fast PC.
But perhaps MSDOS software isn't appropriate.
Compiling it for 68000 isn't enough. MSDOS has nothing for graphics, sound, etc. It depends fully on PC/x86 architecture. So yes you can do something similar but that's all.


Quote:
Originally Posted by kerravon View Post
At the very least the 68000 MSDOS environment should EXIST.
Why ? We have much better already. MSDOS has no technical quality to justify it becoming a standard. It got dropped 20 years ago and for good reasons (for once).
meynaf is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 01:23.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.10675 seconds with 13 queries