Another OS for P2? PC/GEOS source & Apps now on Git!

thejthej Posts: 173
edited December 4 in Propeller 2 Vote Up0Vote Down
There entirety of the PC/GEOS operating system, it’s SDK and apparently, ALL of it’s software, have been posted up on Git for community availability and further development !

It appears to be at least PC/GEOS 2.0 and possibly newer. Many files are dated 1991 and many have additional revision dates of “97/04/04 NewDeal” which is at least version 2.5 I believe.

Most of the code is written in C and an updated (??) Watcom C compiler is also available from the author on his Git.
It was common to write GEOS software with “ObjectASM” in i386 assembly. Their object technology was a key advantage they had over other OSes at the time.

You can find the Git repo here:
https://github.com/bluewaysw/pcgeos

Here is the Wikipedia page:
https://en.wikipedia.org/wiki/GEOS_(16-bit_operating_system)

…and here is a link to a PDF of the “PC/GEOS System Software Overview”.
This document gives an overview of the system architecture and other details for developers.
https://www.lyonlabs.org/commodore/onrequest/geos/PC-GEOS-System-Software-Overview.pdf


The main reason I bring this to the Propeller community is that PC/GEOS could run quite well on an 8088 with 512KB of RAM !! I personally was installing PC/GEOS on these types of PC’s back in the day. One time in particular, I had installed PC/GEOS on an 8MHz 8086 with 640KB RAM and ran it side by side with a 16MHz 286 with 1MB of RAM running Win3.1 and GEOS ran circles around it !! It was ridiculous how much faster GEOS was !!

J

Comments

  • 12 Comments sorted by Date Added Votes
  • Things like this is a reminder of why supporting a C compiler on propeller is important.
  • Ym2413a wrote: »
    Things like this is a reminder of why supporting a C compiler on propeller is important.

    +1000, exactly.
  • The Git rep has been updated stating that it is Breadbox Ensemble 4.13.

    For those that haven't seen it before or those that want to see what it performs like on an 8086, then YouTube to the rescue!
    Version 3.1 (New Deal) running on an 8MHz 8086.


    Enjoy!

    j
  • Ha! The video is great. That guy shared his frank impressions.

    Honestly, that software runs respectably. 8Mhz, 640k RAM. And that is an Intel 8 Mhz. Back then, one could basically divide by two for some idea relative to the 6502, 6809.

    It is thought provoking to think about what could happen on a P2 wirh a reasonable storage and RAM add on.

    Do not taunt Happy Fun Ball! @opengeekorg ---> Be Excellent To One Another SKYPE = acuity_doug
    Parallax colors simplified: https://forums.parallax.com/discussion/123709/commented-graphics-demo-spin<br>
  • The problem with GEOS is that it's probably 75%+ i86 assembly language.

  • There are a lot of possibilities like this.
    QNX comes to mind as an even better one.

    If someone wanted to spend their own time working on this, thats fine. There are a ton of other things that are quite a bit higher in priority that need looking at if P2 is going to be useful in its primary niche.
    ---- This space available for rent ----<br>
  • thejthej Posts: 173
    edited December 13 Vote Up0Vote Down
    pedward wrote: »
    The problem with GEOS is that it's probably 75%+ i86 assembly language.

    I can't believe I forgot the threads about x86 emulation.
    8086 Emulation
    https://forums.parallax.com/discussion/153088/a-propeller-based-8086-emulator-couldnt-be-that-far-away
    MCL86 & MCL51 FPGA cores
    https://forums.parallax.com/discussion/164468/mcl86-now-mcl51-micro-sequencer-fpga-cores-308-312-lut

    A 8086 emulator would be a great start to running PC/GEOS at much faster-than-original-hardware speeds !!
    ...especially over clocked to 360MHz ;-)

    Would ZiCOG work for this? or is that 8080?

    J
  • Well, there's a lot more to running GEOS than just emulating an 8086. The 8086 is just a minor part of the PC ecosystem.

    You've got the 8253 timer, 8259 interrupt controller, 8237 DMA controller, BIOS, and all the peripheral hardware like FDC, HDD, Video.

    To be fair, the HDD was implemented with BIOS extensions hooking INT 13h, so stuff like XTIDE do the same, but much simpler.

    Not to poopoo on your excitement, but there is a long journey ahead to emulating a full PC on the P2. Although that would make for a neat thing.

    Another caveat: the PC had 64/256k memory, the XT had 256/512k (IIRC), and the AT had 512/640k, the P2 only has 512k, so off-chip RAM will come into play.

    That said, even off-chip RAM on a P2 is probably faster than the native memory access speeds even on a 386, due to wait states and such.
  • ke4pjwke4pjw Posts: 258
    edited December 13 Vote Up0Vote Down
    I had thought of attempting to port NitrOS-9. That may be a step too far for my skills, but it might be fun to try :)
    Feel the need for speed between your PC's com port and Prop?
    Try the FTDI 245 and the FullDuplexParallel Object.

    Check out my spin driver for the Parallax "96 x 64 Color OLED Display Module" Product ID: 28087
  • pedward wrote: »
    Well, there's a lot more to running GEOS than just emulating an 8086. The 8086 is just a minor part of the PC ecosystem.

    You've got the 8253 timer, 8259 interrupt controller, 8237 DMA controller, BIOS, and all the peripheral hardware like FDC, HDD, Video.

    To be fair, the HDD was implemented with BIOS extensions hooking INT 13h, so stuff like XTIDE do the same, but much simpler.

    Not to poopoo on your excitement, but there is a long journey ahead to emulating a full PC on the P2. Although that would make for a neat thing.

    Another caveat: the PC had 64/256k memory, the XT had 256/512k (IIRC), and the AT had 512/640k, the P2 only has 512k, so off-chip RAM will come into play.

    That said, even off-chip RAM on a P2 is probably faster than the native memory access speeds even on a 386, due to wait states and such.

    Yes definitely! My message was too brief.
    I'm only pointing to the 8086 CPU as a starting point. The rest of the mobo would need to be added on from there.

    Reading back into the old threads on ZiCog and seeing that it was able to operating on only one cog looks encouraging to have an 8086 in one P2 cog as well. I have done no work to determine that of course but it seems like it might be reasonable.

    j
  • pedwardpedward Posts: 1,547
    edited December 13 Vote Up0Vote Down
    It should be possible to get away without DMA, since most things didn't use DMA. Also, one cog should be capable of handling the faux interrupt, timer, and other duties.

    The timer is the only active thing, as the interrupts are generated by peripherals (aside from timer interrupt, full circle).

    In a PC you'd have Int 2 for video retrace, Int 3/4 for serial, Int 1 for timer (IIRC), Int 7 for parallel port.

    Most software doesn't rely on Int 2 working, since that was universally supported -- they rely on polling the display status register.

    So that really just leaves an interrupt driven timer and mouse input on com1.

    The 8086 COG will need to implement some sort of memory mapping, using the LUT for page mapping would be a good choice. You'd want to implement another COG for paging of memory from an external RAM, or you could just make the whole thing linear and use an external 1MB static ram and page it into the LUT on demand. You might want to use main ram for the video framebuffer, to reduce contention. The BIOS could be preloaded into the external RAM, so that's neatly handled.

    Come to think of it, it would be nice if you could shadow map the LUT to an external address space, so the LUT address space becomes a window into an external memory.
  • ke4pjw wrote: »
    I had thought of attempting to port NitrOS-9. That may be a step too far for my skills, but it might be fun to try :)
    +1 on that thought.

    Actually porting a powerful little real-time multi-tasking OS like OS-9 (or NitrOS-9) would be a very interesting and educational project. Perhaps nicely matched to the P2's capabilities, especially with the process based multitasking extended to support the P2's concurrent cogs.
    Potentially a powerful RTOS platform for developing on the P2, as a standalone system.

    Of course existing OS-9 programs wouldn't run, unless implemented with 6809/6309 emulation. But it would be much more interesting to natively re-write the OS code as a potentially powerful native RTOS for the P2. Which could certainly add to the developer base for P2, by making it even more accessible with more retro enthusiast appeal.

    Then again, perhaps someone with contacts in the OS-9000 crowd could convince someone to look at adding P2 support (but again, that would require C compiler support).

    No disrespect to the OP, but something like OS-9 / NitrOS-9 is perhaps a more practical (more useful?) little RTOS for a P2, rather than a later more desktop GUI focussed PC/GEOS?

    Just my initial 2c on the "Another OS for P2" topic. :smile:
Sign In or Register to comment.