Jump to content
mobluse

Fuzix (Unix like OS) for X16

Recommended Posts

Fuzix (a Unix like OS for 8 bit computers) has lately become popular due to that Fuzix now supports the Raspberry Pi Pico $4 microcontroller.

I searched for Fuzix implementations for Commodore 64, but there is none, but Commodore is mentioned here:
https://github.com/EtchedPixels/FUZIX/issues?q=is%3Aissue+commodore

Fuzix exists for some 6502 based system, but the Fuzix developers thought the floppy disk drives for Commodore were too slow, but Commander's SD card might be fast enough. Also commander has 2 MB RAM maximum, but C64 could have 2 MB RAM using REU.

It might be interesting for someone to port Fuzix to Commander X16.

I found some video demonstrating Fuzix on a ZX Spectrum: 

 

Edited by mobluse

Share this post


Link to post
Share on other sites

Ah, there's also the Acheron VM.  http://acheronvm.github.io/acheronvm/

In the owner's own words, "AcheronVM: 16-bit code on the 6502, taken too far".  

 

Quote

AcheronVM is a small, customizable 16-bit software CPU for the 6502. It has thrown out traditional models to pursue all 3 competing aspects of density, speed, and power solely from within the context of the 6502's tradeoffs. Notable features include a unique hybrid register model, try/catch/finally support, pointer-offset addressing modes, easy instruction set modifications, and a purely ca65 macro-based implementation. This talk spans its design, implementation, and use.

 

Edited by rje

Share this post


Link to post
Share on other sites

GeckOS looks(ed) interesting but struggles due to limited ram of the 64 (feels weird typing that) Could be great if an X16 port leveraged bank switching.

  • Like 1

Share this post


Link to post
Share on other sites

Never heard of that. Interesting concept.

Pro-tip: Call this port FuziX16, to let people know that this is a Commander X16 port.

  • Like 2

Share this post


Link to post
Share on other sites
9 hours ago, rje said:

Ah, there's also the Acheron VM.  http://acheronvm.github.io/acheronvm/

In the owner's own words, "AcheronVM: 16-bit code on the 6502, taken too far".  

AcheronVM seems more to be a VM than a complete OS. There would also need to be a C compiler for the VM for it to be useful.

Share this post


Link to post
Share on other sites
13 hours ago, desertfish said:

There's this as well...  so many unixes.... 😛

 

Fuzix is not a GUI OS. A GUI OS might be too slow.

Share this post


Link to post
Share on other sites

GeckOS was last developed in 2013 so it might be difficult to get help porting it to X16, but Fuzix is currently developed and the developers are willing to help with ports. I suppose that the only 6502 system that Fuzix runs on yet is a 6502 emulator: https://github.com/EtchedPixels/Virtual65

Share this post


Link to post
Share on other sites
3 minutes ago, mobluse said:

GeckOS was last developed in 2013 so it might be difficult to get help porting it to X16, but Fuzix is currently developed and the developers are willing to help with ports. I suppose that the only 6502 system that Fuzix runs on yet is a 6502 emulator: https://github.com/EtchedPixels/Virtual65

GeckOS was last released in 2013, but development continues and there were commits by the developer about 8 months ago: https://github.com/fachat/GeckOS-V2/commits/master.  A C64 fan has a YouTube video of his presentation at a vintage computing festival, and more info, including a detailed analysis, at https://www.lyonlabs.org/commodore/GeckOS/index.html.

 

  • Like 1

Share this post


Link to post
Share on other sites

Just watched the Fuzix video.  It’s no joke. As a Unix SA for 10 years (before it became commoditized), this appears to have the looks of being complete from a user point of view.  I hoped to see vi exercise the curses package but it didn’t get that far.

The GeckOS demo I saw showed multi user, pushing processes into the bg, inter process communication etc but due to extreme memory constraints, couldn’t even produce a proper ps -ef.

Heavily limited by screen real estate, I’d have to think that the availability of > 256k, SD card based virtual disk, and quicker clock speed can make this fun to noodle with (and ADVENT) on the Commander Platform.

 

  • Like 3

Share this post


Link to post
Share on other sites

There are some 6502 Fuzix ports, of varying degrees of workingness. The main issue is that everything's written in C, and the 6502 is a very difficult architecture to compile C for, with really bloaty code. Hardware-wise, Fuzix wants to be able to bank-switch memory starting at 0x0000 with a fixed segment at the top of memory which provides the system call handler and bank-switching stuff. The kernel and video memory live in their own user banks. This gives each process up to about 63kB of available space. My understanding is that the X16 uses a similar mapping model to the C64 with the mapping registers in zero page at 0x0000. This will make it difficult to run 6502 binaries from other platforms, but if you're going to recompile all the userland yourself that's not a problem.

I have, by the way, a compiler for an Ada-like language which will actually run on the 6502: http://cowlark.com/cowgol/ I was able to get this partially working on a C64 but with the kernal and video memory eating big chunks of the address space there's just not enough RAM left to do anything useful. Also, the C64 DOS is dreadful --- I need to be able to seek inside files, and get their size. You can, however, cross-compile from a BBC Micro or CP/M machine (or a from a Linux PC if you want to be boring).

...I also made this: https://github.com/davidgiven/cshell ...which might be useful for people doing machine code programming.

  • Like 1

Share this post


Link to post
Share on other sites

Actually, I realise now that I was mixing up the X16 and the Mega65! The X16 is much less like a C64.

Unfortunately, I don't think the X16 can effectively run Fuzix. AFAICT there's only a single 8kB memory window at 0xa000. As on these systems Fuzix has to use memory mapping for task switching, that means each user process would have to fit in that 8kB, and I think that's too small to run any useful programs. It should be theoretically possible, with the kernel in low memory, but I'm not sure the result would be worth it. It's a shame that you can't map RAM into the rest of the memory map. (Also, it'd have been really useful to have the I/O pushed up to the top of memory, overlaying the ROM space; that would have allowed a contiguous address space.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Please review our Terms of Use