NedoOS multitasking operating system for ZX-Spectrum

Y'know, other stuff, Sinclair related.
Post Reply
User avatar
PeterJ
Site Admin
Posts: 6878
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

NedoOS multitasking operating system for ZX-Spectrum

Post by PeterJ »

Would one of our Russian friends be able to give brief (not overly technical) overview of NedoOS? I'm particularly interested in the web browser. Is there a demo of this?

I managed to translate the following:
NedoOS is a multitasking operating system for the "Russian ZX Spectrum" with programming environments in assembly language, Basic, Pascal, C, NedoLang. Works on TR-DOS, FAT16 and FAT32 with long names, supports tar, gz, zip, rar2 and almost all actually used Spectrum file formats, network utilities include Web browser and Web server, Telnet client and Telnet server, IRC -client, etc. Games are written for the OS, including network games. Now there are 6 members in the repository. The source code of the entire system (58 programs) is 230 thousand lines in assembly language and 70 thousand lines in C.
Maybe a getting started with the BASIC environment?
User avatar
Weiv
Microbot
Posts: 177
Joined: Fri Apr 06, 2018 5:28 pm
Location: Ukraine

Re: NedoOS multitasking operating system for ZX-Spectrum

Post by Weiv »

I'm far from NedoOS, I know that this system is only for advanced russian clones compatible with ATM-Turbo 2 (ZX-Evo(baseconf), Pentagon 2.666, ATM3,...). Maybe you'll find something there:

Overview (seems like you already found this):https://habr.com/ru/post/521012/
google translation: https://translate.google.com.ua/transla ... F521012%2F .

Video presentation with subs (can be translated by Youtube): [media]https://www.youtube.com/watch?v=0RTZE3V ... pp=desktop[/media]

Official site: http://nedoos.ru
google translation: https://translate.google.com.ua/transla ... Fnedoos.ru.

As I can see, web browser is text only.
Alone Coder
Manic Miner
Posts: 401
Joined: Fri Jan 03, 2020 10:00 am

Re: NedoOS multitasking operating system for ZX-Spectrum

Post by Alone Coder »

Here is a quick walk in NedoOS:
https://youtu.be/RW8bbtY_n00
Opening several websites, showing several pictures (interlace in .gif is not yet implemented), playing downloaded music.
Scratch gfx editor.
NedoBasic.
Command line.
Text editor.
Text viewer.
Hex editor.
User avatar
PeterJ
Site Admin
Posts: 6878
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: NedoOS multitasking operating system for ZX-Spectrum

Post by PeterJ »

[mention]Alone Coder[/mention],

Would it be technically possible to implement simple HTML webpage rendering like this with a UK Spectrum machine and something like the Spectranet or the Interface 1Bis

I always hope that the Next would get this functionality. They are half way there with NXtel:

https://github.com/Threetwosevensixseven/NXtel/wiki/FAQ
Alone Coder
Manic Miner
Posts: 401
Joined: Fri Jan 03, 2020 10:00 am

Re: NedoOS multitasking operating system for ZX-Spectrum

Post by Alone Coder »

HTML rendering in Nedobrowser just generates lines with coordinates and text in a sort of "heap". But a medium HTML page requires more than 128K! The pictures (JNG, GIF, PNG) take even more, over 1MB sometimes. So far, they are rendered separately, but I plan to integrate them in the web page.
Next will run Nedobrowser when the authors will add basic ATM-Turbo 2+ compatibility (memory ports and simple gfx modes). However, I don't know any Spectranet or Interface 1Bis users that can write a driver for their device in NedoOS. It's better to standardize ZX Spectrum hardware extensions, because there are too few programmers to write the same complex software twice or more.
User avatar
RMartins
Manic Miner
Posts: 776
Joined: Thu Nov 16, 2017 3:26 pm

Re: NedoOS multitasking operating system for ZX-Spectrum

Post by RMartins »

PeterJ wrote: Sat Feb 27, 2021 12:35 pm @Alone Coder,

Would it be technically possible to implement simple HTML webpage rendering like this with a UK Spectrum machine and something like the Spectranet or the Interface 1Bis

I always hope that the Next would get this functionality. They are half way there with NXtel:

https://github.com/Threetwosevensixseven/NXtel/wiki/FAQ
Well, given the memory restrictions on a 48k, the best we can hope for is something like a BBS or TeleText system or similar, that would eventually allow to load games remotely.
But this must probably needs something extra hardware for a real 48K, but it's doable on a ZX Next.
User avatar
moroz1999
Manic Miner
Posts: 329
Joined: Fri Mar 30, 2018 9:22 pm

Re: NedoOS multitasking operating system for ZX-Spectrum

Post by moroz1999 »

Alone Coder wrote: Sun Feb 28, 2021 9:30 am The pictures (JNG, GIF, PNG) take even more, over 1MB sometimes. So far, they are rendered separately, but I plan to integrate them in the web page.
I can make a simple opensource webservice to convert the PC images to something acceptable by NedoOS on the fly. Just provide me the format and I will publish it in github.
It can be some script.php?width=100&height=75&url=https://www.somesite.com/images/mylargejpg.jpg, so the script would return some binary.
User avatar
4thRock
Manic Miner
Posts: 415
Joined: Thu Nov 09, 2017 9:35 am
Location: Portugal

Re: NedoOS multitasking operating system for ZX-Spectrum

Post by 4thRock »

An interesting option would be to detect User Agent.
In theory you can have an image link like site.com/spectrumimage.png
But if the browser is a Spectrum, instead of a .png you get a .scr
Alone Coder
Manic Miner
Posts: 401
Joined: Fri Jan 03, 2020 10:00 am

Re: NedoOS multitasking operating system for ZX-Spectrum

Post by Alone Coder »

We can support a specific format for one website, but the point to use a web browser is to view regular web pages. Or else we don't need JPG, GIF, PNG, HTML, HTTP and even TCP, and also pkunzip and tar. But we have all of this.
User avatar
moroz1999
Manic Miner
Posts: 329
Joined: Fri Mar 30, 2018 9:22 pm

Re: NedoOS multitasking operating system for ZX-Spectrum

Post by moroz1999 »

But you can use such script to resize and convert any image from any website, not only one specific. The script would download the requested image and convert it to any required binary format, that's similar to how proxy works. And it can be put to any hosting with simple PHP support.

For example, you are parsing the HTML from some random website somewebsite.com, encountering <img src="https://somewebsite.com/my.png">. Instead of downloading it directly, you make a call to your own hosting with such script: myhosting.com/convert.php?url=https://somewebsite.com/my.png. This scipt downloads, resizes and returns the image in any format you like (16colors per pixel or 6912).
Z80
Drutt
Posts: 9
Joined: Fri Jun 15, 2018 9:27 am

Re: NedoOS multitasking operating system for ZX-Spectrum

Post by Z80 »

Rather than trying to load complex web pages that will of course need too much RAM, I'd be interested in simply being able to mount LAN shared folders as drives (or even just channels).

I think it's too optimistic to focus on the web, and also not especially interesting, apart from simple interaction, such as multiplayer games, bulletin boards (what NXtel does already anyway). though of course moroz1999's suggestion is excellent (display only the text and clickable area for the pictures or other media, and load them separately upon clicking on them, if they can be converted).

Anyway, the currently existing TCP-IP networking hardware are Spectranet, IF 1bis and the Next. Among them, only the Spectranet interface features a full hardware TCP-IP stack and dedicated RAM buffer, the IF 1bis and the Next feature a serial port and rely on an I²C module to allow TC-IP connectivity, and are entirely software controlled.

Among these last two, the IF 1bis also has some RAM and the protocol is provided by the onboard OS in flash memory with extended BASIC commands, while the Next provided nothing and relies on various sample programs (usually DOT commands) for basic tasks, such as onnecting to the local Wi-Fi network, but then it's up to you if you want to do anything with it. However, both of them probably work pretty much the same way (and the optional I²C ethernet module that can be plugged in place of the Wi-Fi module should probably work on the Next as well.

So, rather than stubbornly trying to load several megabytes large web pages on a poor Speccy, what I'd be interested in would just be able to connect to a shared folder on a Linux or Windows PC using the SMB protocol for browsing, loading and saving files... Just this would be wonderful, allowing to backup your work and gather converted data from old media such as microdrives or floppy disks before transferring them to the upgraded Spectrum or Next on an SD card.

The IF 1bis provides its own utility (on both the Spectrum and the PC side), and sol_hsa has developped NextSync, a simple tool allowing to download a full folder contents to the SD card from the Next (which apparently has caused some people to get their contents accidendally overwritten, because of its simplistic nature : you have to carefully select the correct target folder first and you can't chose what you're downloading, so it's basically a blind bulk copy)...

https://www.specnext.com/forum/viewtopi ... =17&t=1715

... So what's actually missing here would be some user friendly browser allowing you to display the contents of at least the source folder, display at least the current target folder with a way to change it (ideally display both contents, Commander style, for instance), allowing to select files and ideally folders (for instance using ticking boxes), allowing recursive copy when a folder is selected, and of course allowing the chose the way (download or upload).

Incidentally, Perrada69 hasdevelopped Calm Commander, a Norton Commander style browser and copy tool, but it only works with local drives on the Next, you can only copy one file at a time, and after a bit of testing, I've found that, for some reason, the target file gets corrupted in the process.

https://github.com/perrada69/CalmCommander

Note that the DOT commands provided with the Next as well as the embedded NextZxOS browser both correctly copy files without any corruption problem, but the NextZxOS browser isn't very handy (it only display one folder at a time, to you have to select the target each time, and of course it only copies one file a a time as well, and can't copy entire folders.

So what we're astually lacking is just a simple, basic, GUI browser with decent individual AND bulk copying/moving/renaming/deleting abilities, plus the possibility to do so on network drives that could be linked to some local (or distant, if you really want) file server, and it would be already amazing. Well, in fact, even without a GUI...

As Alone Coder aptly pointed, there are too many different hardware interfaces and related protocols and software around, and it would be nice if such a tool would be programmed as layers, so that there would be a comman standard base and anything relative to a specific hadware could be added as the last step.

Then once again, both the IF 1bis and the Next probably use a very similar UART and I²C module combination, so it would be nice to plan a computer dependant buffered UART software layer to the project, considering chances are the final hardware module layer would probably work the same, either if it's a Wi-Fi or an Ethernet module (both can work with either DHCP or by setting the IP and gateway, the only difference being the choice of the SSID and setting the password).

Now about the NedoOS project in itself, I'll give it a serious look, because that's precisely what I've had in mind for decades... My Spectrum has been stored when I had to switch to a PC for professional reasons, but now it's a matter of years before retirement, I should find time to resume my project at last, and I'll try to program something similar for the Next.

Now in case you own a classic 48k Spectrum and don't want to butcher it to add more RAM, you can try using an external static memory interface to upgrade it, such as this one :

https://velesoft.speccy.cz/zx/external_ ... /index.htm

You can get a fully assembled one from Ihor Smal (ask him if not available, he can get PCBs made in batches and he assembles them and program the GAL himself) :

https://www.ebay.com/itm/125392963141

The point is, you can mount a 512k 628512 static RAM chip instead of the 628128.

This interface won't give you the shadow screen from the original 128k, but you'll get all the additional RAM banks, up to 512k if you replace the SRAM chip, and none of them are contended. The bank selection uses the same I/O port as the 128k or Pentagon (for the additional banks if you upgrade it to 512k), so existing software will work normally.
Post Reply