SymbOS multitasking operating system for the Next

The Speccy's spritely young offspring. Discuss everything from FPGA to ZX
Post Reply
User avatar
Prodatron
Drutt
Posts: 9
Joined: Tue Jun 06, 2023 3:21 pm

SymbOS multitasking operating system for the Next

Post by Prodatron »

Since december I am a lucky owner of a Spectrum NEXT and so finally I decided to port SymbOS to this very nice machine.

Between xmass and new year I did the low level screen driver:
Image
SymbOS is using Layer2 at 640x256x16. It's the first time I did a 16colour screen driver, which has to be handled 100% by the Z80 (no blitter like on the MSX). 80K is really a lot of video memory...

Then I had to do some normal work, and last weekend I had time again and ported the kernel and started the device drivers.

On Saturday I could already see SymbOS booting and alive on my NEXT:
Image

Then I added the keyboard and mouse driver and was able to open some system windows:
Image

There is still an error displaying 16-color bitmaps, but I decided to continue with the mass storage device driver so that I was able to load the first applications on Monday:
Image

Two bugs in the memory mapping part of the kernel had to be fixed before it was possible to load any number of apps:
Image

Finally I was able to carry out a first test with several existing applications. Even Einars' ZX0 decompressor, which is directly integrated into the kernel, is working fine:
Image

Tomorrow (erm, today already) I will try to fix two remaining screen driver bugs. Currently it doesn't load stuff from the SD card on the real Next, there seems to be an issue with my partition detection. Btw I am using ZEsarUX, thanks a lot for this great emulator!

The Next is really an amazing machine, and finally I can do something in the Spectrum world as well, which was always a dream. Some years ago I already developed a SymbOS screen driver for the original ULA. I am planning to make a version for this screen, too. Unfortunately the normal ZX Spectrum doesn't seem to have the ability for the required memory mapping.
akeley
Dynamite Dan
Posts: 1048
Joined: Sat Feb 01, 2020 5:47 pm

Re: SymbOS multitasking operating system for the Next

Post by akeley »

Impressive work! What's the ETA?
Hood
Drutt
Posts: 42
Joined: Thu Nov 11, 2021 7:09 am
Location: Czech Republic
Contact:

Re: SymbOS multitasking operating system for the Next

Post by Hood »

Oh, keep working, please. SymbOS looks really just perfect.
User avatar
stupidget
Dynamite Dan
Posts: 1644
Joined: Wed Jan 24, 2018 2:09 pm
Location: Sunny Wolverhampton

Re: SymbOS multitasking operating system for the Next

Post by stupidget »

This looks brilliant. I was only thinking the other day that having a multitasking OS would make the Next an even better machine. Running something like GetIt whilst playing a Level 9 adventure in another windows would be great :dance

Happy to do some beta testing if you like.
User avatar
cha05e90
Dizzy
Posts: 66
Joined: Sun Nov 19, 2017 7:02 pm

Re: SymbOS multitasking operating system for the Next

Post by cha05e90 »

This looks very promising! Thanks for your efforts...
48K/+/+/+/+128K/Vega/Next&80/81&88
User avatar
Prodatron
Drutt
Posts: 9
Joined: Tue Jun 06, 2023 3:21 pm

Re: SymbOS multitasking operating system for the Next

Post by Prodatron »

Thanks for the nice words! :)
akeley wrote: Tue Jan 23, 2024 2:26 am What's the ETA?
I hope I can release a first version this weekend.

Currently I wonder what screen mode would be the best one for a fast 80x25 textmode?
User avatar
Seven.FFF
Manic Miner
Posts: 744
Joined: Sat Nov 25, 2017 10:50 pm
Location: USA

Re: SymbOS multitasking operating system for the Next

Post by Seven.FFF »

Next has a native hardware tilemap, with four variants:
  • 40x32, 16 colours per tile, individual tiles can specify one of 16 subpalettes
  • 80x32, 16 colours per tile, individual tiles can specify one of 16 subpalettes
  • 40x32, 2 colours per tile, individual tiles can specify one of 128 subpalettes of paper/ink pairs
  • 80x32, 2 colours per tile, individual tiles can specify one of 128 subpalettes of paper/ink pairs
There's a wide range of flexibility in how the tileset and map can be configured within 128K bank 5 and the bottom half of bank 7, with pointers to control where they live, and map sizes and clipping windows for when you want the visible area to be smaller than the full area. And a true monocgrome mode where there is only one map byte per cell, and the attribute info comes globally from a nextreg instead. There's an article here which touches on most of this, apart from 2 colour mode. That is not really documented in plain english anywhere apart from in the master nextreg list, but the relevent place to turn on 2 colour mode is nextreg 107 bit 3. (If you haven't seen the master nextreg list yet, then the other half of that nugget is the master port list.)

Generally the 2 colours per tile variations are great for textmode. CP/M, .guide and Odin use this. The ZXZVM interpreter uses a 16 colour mode, but I think that's mostly because it's an older feature and hasn't been converted to the newer 2 colour mode yet. ZXDB-dl and GetIt also use the 2 colour variants, I think. You should check out a couple of these to see how they look. CP/M, .guide and ZXZVM are part of the standard Next distro.

You should be aware that many screens will not display the full 32 rows, particularly at 60Hz and in HDMI on the older cores. We usually recommend a safe area that doesn't put any critical info in the top 8 or bottom 8 lines. Very occasionally somebody also reports left or right columns being cut off, in a way that can't be asdjusted in their display settings. The Solaris assembler editor is a good example of how this goes wrong - it puts the command line in the last row, and on my screen I can't see it at all, somewhat limiting its use. CP/M defaults to a Zenith Z-19 80x24 terminal, but you can set any size with e.g. TERMSIZE 0 0 32 80.

Like the other layers, tilemap can have transparency colours set, which allows layers below to show through, Judicious use of clip windows also lets you have smaller windows floated on top of other layers, where the parts outside the clip area are transparent.

As an aside, if you really didn't know there was a hardware tilemap yet (I wasn't sure), please feel free to ask me more tech questions, and I'll be happy to answer in detail. Apart from on here, you can find me (and other people who know the hardware very well) for realtime chat on discord.
Robin Verhagen-Guest
SevenFFF / Threetwosevensixseven / colonel32
NXtel NXTP ESP Update ESP Reset CSpect Plugins
User avatar
Prodatron
Drutt
Posts: 9
Joined: Tue Jun 06, 2023 3:21 pm

Re: SymbOS multitasking operating system for the Next

Post by Prodatron »

Thanks a lot for the information, SevenFFF!

The port is almost complete, so I've created a little video showing SymbOS running on the Spectrum Next:

This should give you an idea of how SymbOS runs on the Next. I hope you won't be disappointed.

The Next is truly a powerful Z80 beast, a perfect SymbOS platform in my opinion.
A few bugs are still present and a few features are still missing (mainly SymShell CLI in fullscreen text mode and the screensaver modification for the Next). Anyway, I'll release a beta version tomorrow.
User avatar
mdr
Dizzy
Posts: 50
Joined: Fri Jan 22, 2021 9:12 am
Contact:

Re: SymbOS multitasking operating system for the Next

Post by mdr »

Holy crap, that multitasks like a beast. It was impressive at the start (nice tracker tune, too!) and then the windows just kept on coming. I'm floored - I hope I can run this on my MiSTer ZX Next core. Incredible work!
Visit my Spectranet TNFS server at tnfs.markround.com or try it through a web browser!
16,000+ games, demos and utilities online | message wall | hall of fame | articles | more...
User avatar
Prodatron
Drutt
Posts: 9
Joined: Tue Jun 06, 2023 3:21 pm

Re: SymbOS multitasking operating system for the Next

Post by Prodatron »

Thanks mdr!

A preview package can be downloaded now:
http://www.symbos.org/download.htm#marke3

Direct link:
http://www.symbos.org/download/preview/ ... symnxt.zip

You should really read the #README.TXT, especially if you don't have a PS/2 mouse connected to your Next.
Please report all issues, which are not mentioned in the readme. No idea, if it will work fine on all machines, I just hope so.


Image
Hood
Drutt
Posts: 42
Joined: Thu Nov 11, 2021 7:09 am
Location: Czech Republic
Contact:

Re: SymbOS multitasking operating system for the Next

Post by Hood »

Dear Prodatron,

I have all file on their place (hopefully), butwhen I click to main screen icons I receive a winfow error with message "File not found: The file or the path don't exist. Please check your input".

AM I doing something wrong?

Thanks

Hood
Hood
Drutt
Posts: 42
Joined: Thu Nov 11, 2021 7:09 am
Location: Czech Republic
Contact:

Re: SymbOS multitasking operating system for the Next

Post by Hood »

... and when I was trying to save file in WOrdpad, it returned "Error while saving file" window. May this be a hint? Hood

Otherwise, the system looks simply great!!!!!!


Hood
Hood
Drutt
Posts: 42
Joined: Thu Nov 11, 2021 7:09 am
Location: Czech Republic
Contact:

Re: SymbOS multitasking operating system for the Next

Post by Hood »

Oh dear, my SYMBOS dir contained subdir SYMBOS with all files in it. So, I moved all the subfiles and subfolder to the SYMBOS dir and all is ok.
Hood
Drutt
Posts: 42
Joined: Thu Nov 11, 2021 7:09 am
Location: Czech Republic
Contact:

Re: SymbOS multitasking operating system for the Next

Post by Hood »

.... the save error was due to long file name, when file name is shor, no save error. Thanks. Great system to me.
User avatar
mdr
Dizzy
Posts: 50
Joined: Fri Jan 22, 2021 9:12 am
Contact:

Re: SymbOS multitasking operating system for the Next

Post by mdr »

Just tested it on my MiSTer core and it's working well! Incredible work.

Image
Visit my Spectranet TNFS server at tnfs.markround.com or try it through a web browser!
16,000+ games, demos and utilities online | message wall | hall of fame | articles | more...
User avatar
clebin
Manic Miner
Posts: 979
Joined: Thu Jun 25, 2020 1:06 pm
Location: Vale of Glamorgan
Contact:

Re: SymbOS multitasking operating system for the Next

Post by clebin »

Prodatron wrote: Tue Jan 30, 2024 10:38 pm A preview package can be downloaded now:
Great work, thanks Prodatron! It runs perfectly on my Next. I was using the mouse keys so I need to dig out a PS/2 to USB adaptor to get the best effect (I assume a kempston mouse won't work?). I was impressed at the near instant boot to desktop too.
User avatar
Nitrowing
Manic Miner
Posts: 607
Joined: Mon Sep 21, 2020 8:38 pm
Location: Cleethorpes

Re: SymbOS multitasking operating system for the Next

Post by Nitrowing »

This seems to be the "Must have" I didn't know I needed - I'm seriously considering plugging in my Next to try! :o
User avatar
stupidget
Dynamite Dan
Posts: 1644
Joined: Wed Jan 24, 2018 2:09 pm
Location: Sunny Wolverhampton

Re: SymbOS multitasking operating system for the Next

Post by stupidget »

Just got this working on my NEXT and it's simply stunning. It's so bloody smooth and fast. I used NextSYnc to copy the unzipped folder onto my Next over WIFi from my Mac. All I had to do was copy the SymbOS folder into root an everything worked perfectly.

SymCommander reminds me of XTree Gold (the best file management solution ever!!)
User avatar
Prodatron
Drutt
Posts: 9
Joined: Tue Jun 06, 2023 3:21 pm

Re: SymbOS multitasking operating system for the Next

Post by Prodatron »

Thanks a lot for your feedback!
I will do some bug fixing until tomorrow evening and post another version.
Unfortunately starting from February there won't be much time for 8bit stuff due to normal work, but I hope to release a nearly final version during spring/early summer. SymbOS 4.0 final will probably be released end of this year - of course including the Next port.
User avatar
Prodatron
Drutt
Posts: 9
Joined: Tue Jun 06, 2023 3:21 pm

Re: SymbOS multitasking operating system for the Next

Post by Prodatron »

Preparing a second preview package took some more time as I wanted to finish as much as possible, and so here is
a new beta version for the ZX Spectrum Next:
http://www.symbos.org/download.htm#marke3
Direct link:
http://www.symbos.org/download/preview/ ... symnxt.zip

Improvements since last:
- ZX Spectrum like keyboard definition
- new resolutions 512x212 and 640x226 added which maybe useful especially in VGA mode
- joystick support added
- 1MB ram available on 2MB machines, 640K ram available on 1MB machines
- SymShell with full screen mode (type "full" or press alt+return)
- Starfield screensaver added
- Standard drive letter is now "C" for the SD card (instead of "A")
- NextZXOS ram is beeing restored during SymbOS shutdown

Image

Image

Image

The Next port should be nearly completed now. I will be away for some weeks until mid of march but of course any bug report is always welcome!
Post Reply