SymbOS 3.0 is ready

SymbOS 3.0 is ready

by ro on 31-08-2017, 15:04
Topic: Software
Languages:

A huge project called SymboS has been in development for years already. This graphical multi-tasking Operating System is available for MSX, next to Amstrad and others. In 2014 SymbOS 2.1 was released, which is now exactly 3 years ago! Now we can enjoy SymbOS 3.0! It’s really amazing how much time was spend on this project beside all the effort to continue as well over such long period! A lot has been changed since 2.1.

Changelog Release 3.0 [30.08.2017]

Network enabled

  • Network daemon: The new Network Daemon application enables SymbOS for full TCP/IP based network and internet access includung multiple connections for multiple applications at the same time. Both TCP and UDP protocols within the transportation layer are supported as well as services like DHCP and DNS. The Network Daemon runs as a background service and can be used by any application via its network API.
  • Supported network hardware: SymbOS supports the DenYoNet (MSX), the GR8NET (MSX) and the M4Board (CPC) hardware expansions for internet access via ethernet or wifi.
  • Local host: A special local host version of the Network Daemon makes it possible to run all network apps even on machines without additional network hardware.
  • Tools and games: Standard tools like WGET, NSLOOKUP and NETSTAT have been developed as well as more complex applications like syMIRC and TELNET and even network games (see "new applications on the Symbos website").

Enterprise port

  • 4th supported Z80 platform: SymbOS has been fully ported to the Enterprise 64/128 machines as well. After the Amstrad CPC, the MSX and the PCW Joyce it's the fourth supported Z80 platform now.
  • FDC and SD card support: SymbOS EP contains a driver for the standard EXDOS WD1772 based floppy disc controller as well as for the "SD adapter premium" by Szergej Butov.
  • Standard screen resolutions: SymbOS currently supports CPC-like screen resolutions of 320x200 (4 colours) and 640x200 (2 colours).
  • Taskbar with own colours: Due to the capabilities of the Nick video chip the task bar can have its own separated 4 colours.
  • EnterMice and BoxSoft mouse support: Beside via keyboard and joystick it is also possible to control the mouse pointer with the BoxSoft interface as well as with the new EnterMice hardware, which allows to connect a proportional PS/2 mouse to the Enterprise.
  • 1MB support: SymbOS EP supports up to 1024KB of RAM. As a special feature of the EP version it also handles fragmented memory banks within the 4MB address space.
  • Adapted sound apps: SymAmp (by Geco) and Speech (by Gflorez) have been ported to the Enterprise "Dave" music chip; it's not AY compatible but it is able to emulate it in a good way.

MSX 1 support

  • MSX1 with V9990: SymbOS MSX is now running on MSX1 machines with an attached Graphics9000 or Powergraph graphic card (V9990), too. Of course enough RAM (128KB) and a mass storage device is required as usual.

Extended Desktop

  • Desktop replacement: The extension module, which could already be optionally loaded since SymbOS 1.1 on machines with memory expansions, now includes the "Extended Desktop" which now behaves more or less like the desktop of Windows 98.
  • Advanced icon handling: The Extended Desktop supports any amount of 4 and 16 colour desktop icons. Icons can be added (right click an empty area), renamed ("slow" double click an icon) and changed (right click the icon) directly inside the desktop via intuitive dialogues. Icons can be lined up, auto arranged, copied, pasted and deleted directly.
  • Nested startmenu entries: There is no real limit for startmenu entries anymore, too. Nested submenus are possible as well as any name and path lengths. Beside inside the "program" menu you can also add new entries and submenus on top of the start menu. The new startmenu editor application is part of the control panel.
  • Autostart menu: Beside the existing autostart option (control panel -> system -> autostart) you can also add as many entries as needed to the "Autostart" folder of the startmenu. All these entries will be automatically executed after booting.
  • Desktop widgets: Widgets are little applications, which are integrated directly inside the desktop without having own forms. They are working like typical widgets known from existing desktop GUIs and smartphones (clock, weather, CPU meter etc.). They can be freely placed inside the desktop area and usually resized as well.

Operating system (general)

  • Help browser: The new help browser allows displaying and browsing through HLP files, which will be included now in many applications. Documents may contain nested chapters, links and different font types. The search function returns a complete result list.
  • Micro kernel: Process priorities can be changed during runtime; new slot/subslot switching function available for MSX hardware drivers.
  • Browse dialogue: File extensions will be added automatically when typing in filenames without a dot at the end. E.g. if you save a new textfile in Notepad and you don't specify an extension, ".TXT" will be added.
  • Keyboard presets: File extensions will be added automatically when typing in filenames without a dot at the end. E.g. if you save a new textfile in Notepad and you don't specify an extension, ".TXT" will be added.

Desktop Manager

  • Colour schemes: For a uniform look of the GUI the user can define a colour scheme, so that all apps appear in the same coloured way.
  • Full 16 colour support completed: All remaining GUI elements and form controls have been extended with 16 colour support, either directly of by using the user defined colour scheme.
  • Systray icons: The systray area of the taskbar can now been used by applications for adding and removing their own clickable systray-icons.
  • Context menus: This new feature introduces context menus, which can appear at any place within an application (e.g. on right-click).
  • 16 colour icons: Apps may contain an additional 16 colour version of their icons, which will be used for the desktop links of the "Extended Desktop".

Additional supported hardware

  • GR8NET SD card reader: With the network and SD card driver the important parts of one of the most powerful MSX hardware of the last time are supported in SymbOS.
  • M4Board SD card reader: The M4 makes it possible: First time, that you can access FAT32 32GB SD cards on the CPC in SymbOS directly in "highspeed mode".
  • HxC direct SD card access: SymbOS CPC supports the direct mode of the HxC floppy emulator as well. Using the internal FDC765 as a mass storage interface is slow, but you are still able to access very big files from a FAT32 32GB SD card - for the first time on a CPC.
  • Albireo USB mouse: The Albireo interface makes it possible to connect real proportional USB mouses to the CPC - and yes, again for the first time! SymbOS supports up to 3 buttons and the wheel. Gaming mouses may not work due to their enhanced USB protocol.
  • Rookie drive USB mouse: Nearly the same interface is available for the MSX: Beside other USB hardware the Rookie drive allows to connect real proportional mouses to the MSX in the same way.
  • MultiPlay Amiga mouse: You can connect original Amiga mouses to the CPC with the MultiPlay interface and use them for SymbOS.
  • Dobbertin Smart Watch: Beside the SYMBiFACE II RTC SymbOS now also supports the Dobbertin Smart Watch (real time clock) and its new clone. Together with the already mentioned new hardware it's now possible to replace the whole SYMBiFACE II hardware expansion - ops yes, for the first time - after 10 years Smile
  • SE-ONE radio: Now you can listen to any available FM radio station with SymbOS MSX, using the SE-ONE and the new Radio application.

SymShell 2.0

  • TAB autocomplete: just type the first few letters of a filename or directory and SymShell will find the full name after pressing TAB multiple times; this is working for any nested subdirectory as well.
  • advanced COPY command: supports filemasks and complex path statements, uses up to 64K copy buffer and is able to copy multiple files into one destination file.
  • multiple file handling: for REN, MOVE and TYPE
  • new DATE/TIME commands: for reading and setting the actual time and date.
  • new ATTRIB command:: for editing all attributes of existing files.
  • file attribution flags: New options for all multiple file commands (COPY, REN, MOVE, TYPE, ATTRIB)
  • extended HELP command: SymShell includes a new help system based on a central "MAN" file. Type HELP for any details.
  • Path function: SymShell apps can use a special path function for merging user-typed pathes with the actual one.
  • System path: If not present in the actual folder the system will search for COM files in the system path as well and execute them there if found.

New applications

  • UnZip: ZIP/GZ archive uncompressor; the first Unzip implementation for Amstrad CPC, PCW and Enterprise in history thanks to the Gunzip MSX project
  • SymTel: Telnet client with ANSI, VT100 and VT52 terminal support
  • syMIRC: IRC client with multiple channel support (by EdoZ, using Quigs)
  • Wget: HTTP file download utility
  • Symple Messenger: proprietary internet messenger (by Trebmint & EdoZ, using Quigs)
  • Columns: Puzzle game (by EdoZ, using Quigs)
  • Battleship: this classical battle ship implementation is the first SymbOS network game ever (by EdoZ, using Quigs)
  • Snake: classic snake implementation; the first realtime multiplayer network game for SymbOS (by EdoZ, using Quigs)
  • Picture-Slider: classical puzzle game (by Trebmint, using Quigs); the first Quigs game which has ever been started many years ago
  • FM Radio: search for available FM radio stations and listen to them in SymbOS MSX (by EdoZ, using Quigs)
  • Performance monitor: system performance measurement (by EdoZ, using Quigs)
  • SymBUS: remote control utility (by EdoZ, using Quigs)
  • DiMon: simple sector dump utility
  • Ahead: batch utility for adding and removing AMSDOS binary fileheaders in multiple files
  • Network tools: NsLookup, Netstat
  • Desktop widgets: Clock, CPU Meter
  • Little demos: Bubble and Flying SymbOS demo animations (by EdoZ, using Quigs)

Miscellaneous

  • New professional SymbOS manual: The new SymbOS manual is designed and written by EdoZ and is available as a full-featured english PDF document. With a lot of pictures and screenshots this documentation makes it really easy to get started with SymbOS and its applications on any supported Z80 platform.
  • Upgraded website: The website has been extended with a new application area. Beeing database generated it's now always up-to-date and more detailed. A new area about the supported platforms and supported hardware expansions have been added to the website as well.
  • Files renamed: For an improved readability filenames of existing apps as well as of system files have been renamed, the old "app*.exe" and "cmd*.com" schematic isn't used anymore.
  • Bug fixing: Bugs have been removed as usual, including some very very old ones (e.g. releasing clusters in the AMSDOS filesystem driver).

relevant link: SymbOS website, including installation packages and applications.
relevant link: Installation PDF
relevant link: Edoz appstore

Comments (54)

By sd_snatcher

Prophet (3675)

sd_snatcher's picture

31-08-2017, 15:35

Congratulations for everyone involved in this project. It keeps getting better and better! Big smile

If I would ask for something right now, it would be some documentation on how to create disk drivers for it.

By tfh

Prophet (3422)

tfh's picture

31-08-2017, 15:56

I am very impressed that this has been achieved on our beloved 8-bit system :-)

By Grauw

Ascended (10818)

Grauw's picture

31-08-2017, 17:51

Really, really impressive guys.

Also, gunzip! Big smile

By karloch

Prophet (2159)

karloch's picture

31-08-2017, 18:32

SymbOS continues to amaze me more and more. Congratulations for the great work Podatron and Edoz Smile Thinking seriously to put as main operating system in my MSX. However... I should have some way to launch games, demos and legacy apps from there; not to mention the OPFXSD tool for MegaFlashROM. How crazy would be to make a command line window compatible with MSX-DOS 1? If I recall correctly, UZIX did some short of this, although I think it required minimal adaptation of the running application.

By iamweasel2

Paladin (722)

iamweasel2's picture

31-08-2017, 20:38

Indeed it is amazing what SymbOS has achieved. I remember that some msx users said it wouldn't be possible to do what SymbOS already did in his first version. And now it does even more. Congratulations to all of you that made this possible. Smile

By iamweasel2

Paladin (722)

iamweasel2's picture

31-08-2017, 20:39

Grauw wrote:

Really, really impressive guys.

Also, gunzip! Big smile

Now we need a SymbOS version of VGMPlay. Wink

By Latok

msx guru (3959)

Latok's picture

31-08-2017, 21:35

The completeness of this package and the care they put into it all is amazing Smile

By luppie

Paladin (869)

luppie's picture

31-08-2017, 22:33

With the version number 3 (that was for me the number I started with Windows) I'm wondering how SymbOS XP would look like Wink

Really amazing what the team has accomplished. A+++++

By edoz

Prophet (2501)

edoz's picture

01-09-2017, 09:28

karloch wrote:

However... I should have some way to launch games, demos and legacy apps from there;.

Yes, this is something i would like myself as well Big smile Thing is, SymbOS does not know anything about the MSX configuration after it is started. It does not use any bios or what so ever. The question here is how can we execute MSXDOS from SymbOS without reboot. There is no BIOS call which can do that. (Only a reboot) as far i know? (Because of storage configuration?) In the past i was thinking about some kind of status dump. (memory, cpu state) before starting SymbOS, which you can execute from SymbOS. I don't have the skills to make something like this. (Not sure if this is possible as well) If someone could make something like this, a MSXDOS program, which saves the system status of the machine, which we could execute from SymbOS. Then you can make a shortcut on your desktop which execute something in MSXDOS. But of course you leave the OS then. But in such case you can use SymbOS as a HD menu kind of thing.

Trebmint (Unify) and Prodatron are the real programmers here Wink I only have some basic program skills. But yes.. this idea is really something cool for MSX!

By Grauw

Ascended (10818)

Grauw's picture

01-09-2017, 11:34

Seeing how many of the new applications you made, I don’t think you should underplay yourself Big smile.

By karloch

Prophet (2159)

karloch's picture

01-09-2017, 11:50

Quote:

Yes, this is something i would like myself as well Big smile Thing is, SymbOS does not know anything about the MSX configuration after it is started. It does not use any bios or what so ever.

I know, UZIX is the very same, as it is other different OS with different kernel.

I just took a look at the sources and there is, indeed a MSX-DOS 1.0 / CP/M 2.2 emulator, with BDOS included. The file BDOSEMU.AS has following header:

;----------------------------------------------------------
;         MSXDOS 1.0 / CP/M 2.2 emulator for UZIX
;	    a port of EMU.ASZ by Harold F.Bower
;         Copyright (C) 1999,2001 by A&L Software
;----------------------------------------------------------
;
; BDOSEMU:
; It provides a minimal CP/M 2.2 functional subset to allow
; applications to execute in an UZIX process.  It must be
; compiled under Hitech-C to create a "host" UZIX program,
; that will  contain the  CP/M  application.  It  will  be
; "inserted" on the compiled code by the CPM2UZIX program.
; The BDOS code is a port of EMU.ASZ from UZI180 by Harold
; F. Bower,  with  many  parts  enhanced  and/or modified.
;
; MSXDOSEMU:
; MSX-DOS Emulator for UZIX (MSX-DOSEMU) provides a minimal
; CP/M 2.2 functional subset to allow MSX-DOS (mainly CP/M)
; applications to be executed in an UZIX process.  It  must
; be compiled under Hitech-C to be  a  true  UZIX  program.
; The core of MSX-DOSEMU is BDOSEMU,UZIX CP/M 2.2 emulator,
; a port of EMU.ASZ from UZI180 by  Harold  F.  Bower.  The
; advantage of MSX-DOSEMU is that it can  run  the  MSX-DOS
; applications without the need of converting them to  UZIX
; with BDOSEMU.
;
;----------------------------------------------------------

How feasible is to take advantage of this in SymbOS... I guess only Prodatron could say :)

By Maggoo

Paragon (1218)

Maggoo's picture

01-09-2017, 18:17

I cannot express how cool this is! The amount of work and details put into this ia mindboggling to someone like me!

And while this is clearly not the intend, this is probably one of the most impressive technical demo of what a 8 bit computer can do! Congratulation!

By Pippo

Hero (521)

Pippo's picture

01-09-2017, 20:19

This is a magnificent and excellent work!!
All Msx World thanks the authors for their brilliant software.

By giuseve

Paladin (809)

giuseve's picture

02-09-2017, 09:23

@edoz @prodratron
Yes guys, your work is simply fantastic: thanks for all.
About the games, I remember the days of the 386 when the best choise was to launch the game in DOS to have more ram free as possible (usually with an "ad-hoc" version of autoexec.bat) and to use windows for word, excel, to play audio and video and so on.
Well, I think this must be the filosophy of SYMBOS 4
ADD a Word Processor, a Spreadsheet, audio player, video player and axtend the compatibility with all MSX format known (and not only)
Notepad, browser etc are already included .. great
If you want you can add an MSX1 game player as a killer application (maybe only the smallest ones with max 32k and only rom??)

What do you think about?

By Manuel

Ascended (19676)

Manuel's picture

02-09-2017, 10:06

Um audio and video player are already in...

By karloch

Prophet (2159)

karloch's picture

02-09-2017, 13:40

Quote:

ADD a Word Processor, a Spreadsheet, audio player, video player and axtend the compatibility with all MSX format known (and not only)

There are already audio and video players. For the office-like suite, I don't think it has actual value on the MSX (but ey, George RR Martin still uses WordStar 4.0), and even so, we have the impressive EASE from OperaSoft. However, a Notepad-like app would be very useful, but it is already there.

Quote:

If you want you can add an MSX1 game player as a killer application (maybe only the smallest ones with max 32k and only rom??)

That exists already, it is called SymROM, done by NYYRIKKI. It can load roms up to 48K.

SymbOS is already quite complete :)

By giuseve

Paladin (809)

giuseve's picture

02-09-2017, 15:44

OK, i mean audio and video player with all extensions supported
Mods files, SCC, opll, opl4 chip.
The hope is: why have i to use so many software to play my music why symbos can do it?

By edoz

Prophet (2501)

edoz's picture

02-09-2017, 17:20

Hi, Yesterday i converted some more backgrounds which i added to the current background package.

In total around 120 backgrounds can be found here as well.

Backgrounds.

Here some exampels:



By JohnFante

Expert (73)

JohnFante's picture

02-09-2017, 18:02

Very cool! :-)

BTW: Where can I get the new 3.0 version? There is only the 2.1 version in the download section at Symbos.

http://www.symbos.de/download.htm

By karloch

Prophet (2159)

karloch's picture

02-09-2017, 21:19

You must be cached. The URL you are pointing has the 3.0 version Smile

By Pippo

Hero (521)

Pippo's picture

03-09-2017, 05:29

Many, many thanks, Edoz, for the backgrounds. Smile
You and your team are great developers, really. Smile

By JohnFante

Expert (73)

JohnFante's picture

03-09-2017, 08:31

karloch wrote:

You must be cached. The URL you are pointing has the 3.0 version Smile

Apparently I was :-)

It works now. Thank you!

By inyigo

Champion (355)

inyigo's picture

04-09-2017, 20:16

By Prodatron

Paragon (1856)

Prodatron's picture

05-09-2017, 22:04

Thanks so much for all your kind words!! That's always probably THE main reason at all, why such stupid hobby projects are being developed Big smile I love the MSX scene (since 11 years)! And the Z80 scene anyway Big smile

By Prodatron

Paragon (1856)

Prodatron's picture

05-09-2017, 22:17

sd_snatcher wrote:

If I would ask for something right now, it would be some documentation on how to create disk drivers for it.

Any support regarding mass storage drivers is so much welcome! Source codes of the existing ones are already available, but I will add a detailed documentation now. @sd_snatcher, will inform you about this soon!

By Prodatron

Paragon (1856)

Prodatron's picture

05-09-2017, 22:22

iamweasel2 wrote:
Grauw wrote:

Really, really impressive guys.

Also, gunzip! Big smile

Now we need a SymbOS version of VGMPlay. Wink

Oh yes, that would be great! The UnZip project in 2015 was already a very interesting thing!

By Prodatron

Paragon (1856)

Prodatron's picture

06-09-2017, 00:50

Maggoo wrote:

And while this is clearly not the intend, this is probably one of the most impressive technical demo of what a 8 bit computer can do!

I had the same idea at the beginning, too...
"SymbOS should become a demonstration, what could be possible on the CPC since its beginning in the early 80ies."
( http://www.symbos.org/facts.htm )
But now there are much more reasons and motivations around it haha! :D

By Prodatron

Paragon (1856)

Prodatron's picture

06-09-2017, 00:56

iamweasel2 wrote:

Now we need a SymbOS version of VGMPlay. Wink

Absolutely! Having a modular player for all different types of sound modules and hardware would be a dream. SymAmp has been started with this kind of philosophy (multiple platforms [CPC, MSX, EP], multiple music hardware [PSG, MP3, DAVE], multiple file formats [ST2, SKM, PT3, MP3]) many years ago, but it should be a little bit redesigned again for a better and easier support.

By Prodatron

Paragon (1856)

Prodatron's picture

06-09-2017, 01:03

karloch wrote:

I should have some way to launch games, demos and legacy apps from there; not to mention the OPFXSD tool for MegaFlashROM. How crazy would be to make a command line window compatible with MSX-DOS 1?

This is something which would be really cool for sure!
Currently you have NYYRIKKIs ROM starter for the MSX and my emulator SNApshot loader for the CPC for starting games.
I was already thinking about an app, which would start any kind of native CPC app/game within the SymbOS environment. You reboot the system but add some little code, which won't be deleted during reset. SymbOS could even freeze itself during such a game session, if you have enough ram. But that's a nice project for the future again (and completely app-based - no need to modify SymbOS itself).

By karloch

Prophet (2159)

karloch's picture

07-09-2017, 00:59

Prodatron wrote:
karloch wrote:

I should have some way to launch games, demos and legacy apps from there; not to mention the OPFXSD tool for MegaFlashROM. How crazy would be to make a command line window compatible with MSX-DOS 1?

This is something which would be really cool for sure!
Currently you have NYYRIKKIs ROM starter for the MSX and my emulator SNApshot loader for the CPC for starting games.
I was already thinking about an app, which would start any kind of native CPC app/game within the SymbOS environment. You reboot the system but add some little code, which won't be deleted during reset. SymbOS could even freeze itself during such a game session, if you have enough ram. But that's a nice project for the future again (and completely app-based - no need to modify SymbOS itself).

You have done more than we ever could dream of Prodatron! I was just thinking out load. I want to say a really really big THANK YOU for the effort.

By the way, the SymStudio website seems to be down. Where can we get latest version and some documentation for development?

By edoz

Prophet (2501)

edoz's picture

08-09-2017, 14:20

Unify is the "next" release of SymStudio. I still have a beta version of Unify which i have on my personal share, including my basic projects. Unify beta
Trebmint stopped Unify as well, because of code loss and because of other reasons (stop support of blitz, which he used as development environment) Currently the new project is called Quigs, which is still in development.
Unify is very beta. So don't expect everything. There is less documentation as well. Maybe it would help to have a look to my projects as well. But don't look to my ugly code. Other nice feature is the auto- fill in the editor. (which shows you the commands, not all but some)

Some years ago Trebmint released some introduction movies as well: (which will be somewhat the same like in Unify)

Introduction 1
A sample project part 1
And part 2

Without Trebmint i was not able to make applications for SymbOS, so i like his work very much! And i hope he will release Quigs someday!

By Robby

Master (219)

Robby's picture

08-09-2017, 22:16

Somebody already Advanced Desktop working (checkbox enabled in CP), when installing Symbos on a Gr8net (mode24,1, so 512kb), while inserted in a standard msx2 (128kb)?

Edit: i already noticed my background pictures were not (yet) enabled via Display. Tongue

By ToriHino

Paladin (925)

ToriHino's picture

08-09-2017, 23:44

edoz wrote:

Unify is the "next" release of SymStudio. I still have a beta version of Unify which i have on my personal share, including my basic projects. Unify beta
Trebmint stopped Unify as well, because of code loss and because of other reasons (stop support of blitz, which he used as development environment) Currently the new project is called Quigs, which is still in development.
Unify is very beta. So don't expect everything. There is less documentation as well. Maybe it would help to have a look to my projects as well. But don't look to my ugly code. Other nice feature is the auto- fill in the editor. (which shows you the commands, not all but some)

Some years ago Trebmint released some introduction movies as well: (which will be somewhat the same like in Unify)

Introduction 1
A sample project part 1
And part 2

Without Trebmint i was not able to make applications for SymbOS, so i like his work very much! And i hope he will release Quigs someday!

Yes it would really help to get the development environment up and running, especially also with the documentation. The more applications are written for SymbOS the more users it will attract. Making it more interesting again to develop for it :P

By inyigo

Champion (355)

inyigo's picture

09-09-2017, 07:55

Here is a video from VRoBIT's Youtube Channel. In this video we can watch the HC3000 that is a prototype of a new MSX, where version 3.0 of the incredible Symbos operating system for MSX is running. They do it using a TurboR machine and by the way, they show the use of the config command to switch between HDMI (digital) or TV (analog) screens.

https://youtu.be/CSdhPkjon44

More info: https://vrobit.com/en/computers/11-vr-computer.html

By edoz

Prophet (2501)

edoz's picture

10-09-2017, 13:31

inyigo wrote:

Here is a video from VRoBIT's Youtube Channel. In this video we can watch the HC3000 that is a prototype of a new MSX, where version 3.0 of the incredible Symbos operating system for MSX is running. They do it using a TurboR machine and by the way, they show the use of the config command to switch between HDMI (digital) or TV (analog) screens.

https://youtu.be/CSdhPkjon44

More info: https://vrobit.com/en/computers/11-vr-computer.html

Interesting youtube movie ;) Seems that you are using a old beta version of SymbOS. Looks like a nice machine. I wonder if it also possible to start the MSX without putting in commands? Can you explain a bit what are you doing with the different displays in this presentation? I also see this border in SymbOS. Is it possible to display it fullscreen? (Like in OpenMSX with F12?)

By -Neo-

Champion (398)

-Neo-'s picture

15-09-2017, 01:14

@Prodatron and/or Edoz
I was wondering, for the GR8NET Eugeny made streaming MP3 radio stations possible in basic. Shouldn't this also be feasible on SymbOS. Maybe URL support in Symamp? Not mentioned I think but I tested the SE-ONE with SymAmp and the MP3's played fine.

By edoz

Prophet (2501)

edoz's picture

15-09-2017, 11:05

-Neo- wrote:

@Prodatron and/or Edoz
I was wondering, for the GR8NET Eugeny made streaming MP3 radio stations possible in basic. Shouldn't this also be feasible on SymbOS. Maybe URL support in Symamp? Not mentioned I think but I tested the SE-ONE with SymAmp and the MP3's played fine.

Yes! This will be a really good idea!! Streaming radio would be possible. Let's see if that can be done in the future. Big smile
About the SE-ONE! I'm glad it works with MP3. The Radio app works as well, but have some small issues as well. Be sure you use the last SE-ONE firmware and radio app.

By edoz

Prophet (2501)

edoz's picture

15-09-2017, 11:07

ToriHino wrote:

Yes it would really help to get the development environment up and running, especially also with the documentation. The more applications are written for SymbOS the more users it will attract. Making it more interesting again to develop for it Tongue

Yes! It would be cool if other people will start developing as well! I'm very sure there are better programmers here which can make much more cool things in SymbOS than i can't do! (i only can do some basic code, I still need to learn Assembly)

By Grauw

Ascended (10818)

Grauw's picture

15-09-2017, 14:36

In the past I heard that in SymbOS applications the alternate register set (ex, exx) can not be used, since it is in use by the OS. This is quite a limitation for assembly IMO, the limited number of registers are already quite a puzzle to work with. Would be good if this restriction was lifted.

Also it would be nice to have a brief overview of the 64K application memory layout, how one does banking, what common system calls exist, what limitations there are, what handy system features exist (any memory mgmt / threading classes?), etc. At the same time, is there also low level access so that I can hook up my current routines with a slightly different implementation? Can I define a fast ISR? What are the do's and don'ts?

Currently the TPA size is one of my biggest enemies, and I’m still trying to think of a quick and fairly transparent system that’s not too hard to integrate in my codebases. I’m thinking maybe coroutines with context switches, or 16K code blocks with far calls, something like that. I wonder if you guys came up with anything fancy for SymbOS.

Basically, from an assembly programmers POV, what makes SymbOS a better programming environment than DOS2 and ROM, and how easy is it to port code written for one of those?

By gdx

Enlighted (6422)

gdx's picture

16-09-2017, 09:05

I finally installed SymbOS since v3.0 was released. Here's my first impression:

  • Setup is relatively easy even we must manually allocate the slave disk and partitons to disks to mount, and also go to Start menu -> Setting -> SAVE to save any system parameters. We must manually found and select too the keyboard type.
  • Extended partitions of Sunrise CF are not supported so we can mount until four partitions only but this is not a problem if we use a 12bit partition for the system boot and 16bit partition(s).
  • The UI could be more intuitive. We can’t select more than one file with the mouse alone and the choice of keys is sometimes strange for some functions.
  • Mouse is auto detected in port 1 or 2.
  • SNES mouse works too fine with JoySNES adapter. Smile

I noticed two bugs:

  • SymbOS froze if the second CF is not inserted in the slave slot when SymCommander tries to browse the files on the corresponding disk.
  • A graphic bug occurs when one disk only is present and I'm still trying to select a disc with the little icon.

In conclusion: I'm impressed with the work done by the team. There are small improvements to be made but SymbOS is globally functional and can be useful for many users even for people who prefer as me an UI like MultiMente or M file manager. SymbOS can be installed in extra without disturbance.

By edoz

Prophet (2501)

edoz's picture

16-09-2017, 13:31

gdx wrote:

ISetting -> SAVE to save any system parameters.

In the control panel there is a setting which can be set, called "auto save" If you enable that, (save it), your changes will be saved automatically if you do a proper shutdown. (start -> shutdown)

gdx wrote:

SymbOS froze if the second CF is not inserted in the slave slot when SymCommander tries to browse the files on the corresponding disk.

Yes, SymbOS expects the disk to be there, but it is removed from the hardware. Maybe it helps to select the option in the setup that the disk is not fixed. (Removable disk setting, see page 18 of the installation manual) Not sure if the Sunrise supports this feature, but you can give it a try. Maybe a new feature like a auto mounter will solve this issue as well

gdx wrote:

A graphic bug occurs when one disk only is present and I'm still trying to select a disc with the little icon.

Which icon do you mean? Probably this is the same reason as above. Try to set it as a removable device.

By edoz

Prophet (2501)

edoz's picture

16-09-2017, 13:51

Grauw wrote:

In the past I heard that in SymbOS applications the alternate register set (ex, exx) can not be used, since it is in use by the OS. This is quite a limitation for assembly IMO, the limited number of registers are already quite a puzzle to work with. Would be good if this restriction was lifted.

Also it would be nice to have a brief overview of the 64K application memory layout, how one does banking, what common system calls exist, what limitations there are, what handy system features exist (any memory mgmt / threading classes?), etc. At the same time, is there also low level access so that I can hook up my current routines with a slightly different implementation? Can I define a fast ISR? What are the do's and don'ts?

Currently the TPA size is one of my biggest enemies, and I’m still trying to think of a quick and fairly transparent system that’s not too hard to integrate in my codebases. I’m thinking maybe coroutines with context switches, or 16K code blocks with far calls, something like that. I wonder if you guys came up with anything fancy for SymbOS.

Basically, from an assembly programmers POV, what makes SymbOS a better programming environment than DOS2 and ROM, and how easy is it to port code written for one of those?

Those are all interesting questions. Not sure if i can answer those Wink Think prodatron needs to answer those Big smile Big smile
Not sure about DOS programming. In SymbOS you can use 63 k for your code area. (Data area is limited to the amount of free memory left in the system.) The alternate register set is used by the OS i think, because of the multitasking. At least i know because Prodatron removed those when converting the zipper project to SymbOS. You can have multiple processes and do communications between the different applications / processes. The network daemon works like that in SymbOS.

I hope Prodatron can answer such questions Big smile

There is also some documentation about this. Docs section
The source code for every app can be downloaded as well (application section)

By stefA

Rookie (32)

stefA's picture

07-12-2017, 19:43

Hi,
Symbos is impressive, incredible, awesome! I really love it!
I’m just a bit disappointed that in my turboR only the internal memory is usable (which make it not usable with only 256 k installed on my ST)...
Anyway, I was just just curious about the the techinical reason that make Symbos unable to use the external memory mapper of my MFR or C2 (while they actually work on my MSX2+). Does anybody know why?
Cheers

By Robby

Master (219)

Robby's picture

09-12-2017, 23:08

Symbos will work with at least 128kb, and external memory mappers are supported....

RJ.

By NYYRIKKI

Enlighted (6088)

NYYRIKKI's picture

10-12-2017, 09:45

stefA wrote:

Anyway, I was just just curious about the the techinical reason that make Symbos unable to use the external memory mapper of my MFR or C2 (while they actually work on my MSX2+). Does anybody know why?

Actually SymbOS does not have anything to do with this "problem". SymbOS uses just the mapper that MSX-DOS has already selected as primary... And why MSX-DOS selects the internal mapper as primary? -> Because internal memory is a LOT faster to use than external memory in case of MSX tR & R800 CPU. If you switch to external memory you can really see the speed difference with plain eyes... So in the end this is a selection made by ASCII between two bads... Either less mem fast or more mem slowly...

By Grauw

Ascended (10818)

Grauw's picture

10-12-2017, 17:51

SymbOS does have everything to do with this “problem”, since it is an OS that chooses to use the primary mapper only. Especially when it’s an OS, it truly has nothing to do with DOS.

ASCII is not to be blamed for software not supporting secondary mappers anyway, the API they offer is perfectly fine and their choice to use the turboR’s internal mapper as primary is perfectly logical. Software supporting primary mapper only is lazy coding, and if this is restrictive, blame the software.

VGMPlay supports secondary mappers, this is truly no hassle at all, I just store two bytes per allocated segment (bank id + slot id) instead of one, that’s it.

I think for software supporting up to 160K it is ok use primary mapper only; 256K - 32K for DOS2 - 64K for DRAM mode. 224K if you put the turboR in ROM mode. Anything above that should support secondary mappers.

By NYYRIKKI

Enlighted (6088)

NYYRIKKI's picture

10-12-2017, 20:19

Ok, maybe I didn't select my words carefully, but don't shoot the messenger... I was just trying to answer the "Does anybody know why?"-question... And yes it is a hassle. (Pretty much everything related to MSX slot handling is due to "must do" slot swapping on page 3. Worst MSX design error if you ask me.) Swapping slot every once in a while is not a big thing, but I can imagine it starts to pile up in an multitasking environment where the processes are swapped in/out from memory pretty much hundreds of times in a second... You can see this if you ie. compare printing text on BASIC to SCREEN 3 on MSX1 and MSX2... The MSX2 is more than 4x slower due to slot swapping.

I bet this same explains also the reservation of secondary shadow registers... I guess no one would do such a thing "just for fun". It is a painful sacrifice done for multitasking performance. No one can prevent you to disable interrupts and taking control of shadow registers, but it may have bad effect to performance if you don't do it carefully. How ever I think it is better left for program than do it on OS level that causes huge overload no matter if the registers were used or not... but this is just opinion... I know it is not always quite so straight forward, but same method has been used many times on games interrupt handlers due to same performance reasons.

By Grauw

Ascended (10818)

Grauw's picture

10-12-2017, 21:02

There is no argument from me that slot switching is not unnecessarily complicated.

But you don’t need to swap slots if you have enough memory in your primary mapper. Only overhead is a simple comparison. So the only case we’re discussing is if you don’t have enough memory. In that case, the choice is between 1. not being able to run at all because the program/OS refuses to look at secondary mappers, or 2. having things run a little bit slower when the system is at 100% CPU (otherwise it’ll be absorbed by idle). Seems like a no-brainer to me, I don’t see a good reason to choose the first, except for the most timing-critical of applications such as screensplits.

VGMPlay as an example is happy to run a little slower when exceeding the 256K or 512K internal memory on the turboR, in practice it’s not noticeable, and it allows me to play a lot more VGMs. I think choosing to support only primary mappers so that my program only uses the fast memory would’ve been a mistake. For an OS, it is definitely a mistake.

Things like this, and the inability to use shadow registers, don’t make it easy for me to consider SymbOS for development or porting apps. I do have interest in and thoughts for other OSes, e.g. a much larger TPA would be well appreciated, but I would want less limitations, not new ones.

Note this is not to bash SymbOS, but just my developer opinion / critique, and I hope it will get better in regards such as this. Though to be frank, a lot of it is heresay, I’m not sure where I can find good information on the SymbOS programming environment.

By NYYRIKKI

Enlighted (6088)

NYYRIKKI's picture

10-12-2017, 21:37

I can understand your point about slot switching... and I don't see reason why this could not really be added in the future... I can also see why this has not been high in the list... This is very MSX specific code that requires identifying memory mappers etc. SymbOS also can use memory only up to 1MB. I think the main reason why things are like they are is that SymbOS does not originate from MSX. This kind of multiplatform OS like CP/M or SymbOS rarely support all features available in hardware... and even I as MSX user consider that there are more important things to put Prodatron's effort into... such as internet radio etc.

Grauw wrote:

Things like this, and the inability to use shadow registers, don’t make it easy for me to consider SymbOS for development or porting apps. I do have interest in and thoughts for other OSes, e.g. a much larger TPA would be well appreciated, but I would want less limitations, not new ones.

It is a bit about the view you want to take... I can see that you feel that these features have been taken away from you as developer, but in my opinion they have been used vicely by the OS to make the OS what it is... Naturally this means that porting application code1/1 to this OS is not possible, but developing for multitasking OS is quite different anyway. You just can't expect that you can mess around like you do when you have full access to everything and you don't need to share any resources. In perfect world we would have CPU that could take care all of these problems, but unfortunately what we have here is just plain old Z80. I think the user experience that SymbOS offers proves it self that the design decisions taken have not been that bad.

Quote:

Though to be frank, a lot of it is heresay, I’m not sure where I can find good information on the SymbOS programming environment.

True... The time spent to documentation has not been great, but it is a good idea to take a look at the sources... Almost all of the applications have sources included and the include files are even very well documented and explain what they do... Sure it would be more nice if there could be some big documentation with all the information in nice ordered fashion. There is also quite little to be found from inner parts of OS, but as those parts are still subject to change even in quite radical ways and they contain platform specific code I understand also this quite a well. Giving people free access to inner parts of the OS would also pretty much work against the original idea of making multiplatform OS. We also have to remember that this is pretty much one man's vision done on free time, so we can't really expect it to have professional level support, can we?

By Grauw

Ascended (10818)

Grauw's picture

10-12-2017, 22:05

An article introducing the programming environment along with a simple “hello world”, like you would find in an MSX magazine of yore, would be a nice introduction for many of us. It might help 3rd party support. Right now I’m at “I wouldn’t even know where to start” Wink.

By NYYRIKKI

Enlighted (6088)

NYYRIKKI's picture

10-12-2017, 23:07

Grauw wrote:

An article introducing the programming environment along with a simple “hello world”, like you would find in an MSX magazine of yore, would be a nice introduction for many of us. It might help 3rd party support. Right now I’m at “I wouldn’t even know where to start” Wink.

Most easy way to start is to install Unify... The process goes something like this:
- Draw / resize a program window
- Draw a textbox inside window
- Write "Hello World" inside textbox
- Draw an "Ok"-button
- Click Ok-button & code and to the "Button click"-function write "Exit" (You can also add BASIC or assembly if you wish)
- Compile

... it has been a LONG time since I've tried last time, so my memory may not serve me well... Maybe better to look some of the apps Edoz has done. I'm also very sure that I've seen some "Hello you"-program example for command line, but I could not find it now... Maybe good idea to ask from Prodatron.... How ever if you look inside symbos_lib-SymShell.asm I don't think you can really go much wrong... Sure there are a lot more things in it that you don't need (like commandline parsing etc.) but if you don't need them, don't define them or just completely delete them.

By ppeccin

Champion (376)

ppeccin's picture

12-05-2018, 17:53

Hello!
I'm the author of WebMSX. I'm trying to write a mass storage driver for SymbOS.

WebMSX is not a "known" hardware to SymbOS, and it implements a virtual mass storage driver. Its not anything like IDE, or SD. Its like a new hardware, so SymbOS needs a driver for it.

I have already succeeded writing a driver for Nextor, but I'm having a hard time understanding SymbOS driver architecture.

Can someone help me understand it?

I have already started a driver, taking as reference the source code for the SDMEGA driver.
From the source code, I have concluded there are only 4 main routines that must be implemented (drvinp, drvout, drvact, drvmof). This is much like Nextor, so I was hopeful!

I began, of course, with the DRVACT routine. From the source code, it seems to me that this would be the routine to perform some hardware initialization. The comments on the source define its INPUTS and OUTPUTS, and it seems really simple as it only defines reg A as input (device number), and CF and reg A as output (OK, or ERROR).

I am assuming those are the only INPUTS and OUTPUTS.
I'm my case, I only have ONE device (like device 0), and I really don't need to do any initialization, so I simply return OK (CF = 0) if the asked device = 0, and ERROR (CF = 1, A = errcode) if device >= 1.

But it does not work as I expected, and SymbOS never calls the other routines to actually READ data from the device, and always says "Error while loading: A disc error ocurred during the loading process (error code 02).

It calls my routine and I return OK, but SymbOS still says error 02 = NOT INITIALIZED, and gives up.

Is that DRVACT routine used to only perform specific hardware initializaion, or does it also have to fill any other obscure memory tables, or registers of any kind? What is the real expected outputs of that function?

Does SymbOS work like Nextor? Is it capable of dealing itself with partitions, FATs, directories only by READING and WRITING logical sectors to the device like Nextor does, or is this the device driver responsibility?

I see some other things on the source like "stoadrx" and "stodatsub", but I assumed those are routines and data structures specific for that driver only, used by the driver to maintain its variables and state.

Or are they some SymbOS routines that must be called or data structures that must be filled by the drivers in a predetermined way???

Can someone please help me with that?

Many thanks!

By S0urceror

Master (220)

S0urceror's picture

09-10-2021, 08:28

Can someone point me to the sources of SymbOS? Or tell me how to reach Prodatron? I am checking if MSXUSB support would be great to add.

By edoz

Prophet (2501)

edoz's picture

09-10-2021, 21:49

S0urceror wrote:

Can someone point me to the sources of SymbOS? Or tell me how to reach Prodatron? I am checking if MSXUSB support would be great to add.

SymbOS is not open, but drivers are. Check SymbOS.org