SymbOS CPC & MSX & PCW & EP 3.1 has been released.
Exactly 2^2 years and 2^2 months after the last one we have finally a new full release of SymbOS. It's a very hardware focused one.
After SymbOS made platform independent software for Z80 systems in a modern multitasking environment in 2006 possible it is now introducing a new era of platform independent hardware expansions for 8bit systems as well.
You can download it here:
http://www.symbos.org/download.htm
Release notes for 3.1 [30.12.2021]
Extensive hardware support
- Graphics9000 for CPC and EP: The V9990 based graphic card with its MSX origin, probably the most powerful one for 8bit systems, can be used on both the Amstrad CPC and the Enterprise 64/128 now, too. Resolutions of up to 1024x212 with 16 colours and fast graphic output is possible now on nearly all supported SymbOS platforms. This makes it possible to run about 50 different applications on three different platforms with this graphic card.
- SYMBiFACE 3 for CPC and EP: USB-mouse, realtime clock and USB memory stick with up to 2TB is supported directly in the operating system on both the Amstrad CPC and the Enterprise 64/128. Additional features of this extensive all-in-one hardware by TMT Logic can be used in specialized applications.
- PCW with uIDE and HxC direct access support: The Amstrad PCW is now able to access huge mass storage devices as well with sizes of up to 2TB. The uIDE8 interface by Jon B is supported for fast CF card access, which makes even video playback possible on the PCW. HxC direct SD card access is available as well.
- Graphics9000 with hardware mouse pointer: All G9K versions of SymbOS do now use the hardware cursor in bitmap mode, which makes a fast and flicker free mouse pointer possible.
- M4Board network RTC support: The NTP based Realtime clock of the M4Board is supported in SymbOS CPC.
Dynamic driver system for CPC and EP
- Hardware autodetection: During the booting process SymbOS CPC and EP is autodetecting all available and supported HID, RTC and mass storage hardware.
- Hardware autoselection: Available hardware will be autoselected with prioritisation of newer devices.
- CPC 1MB support: Memory expansions with 1MB or more are supported again. SymbOS will automatically switch to 1MB support during booting, if more than 576KB Ram are detected, so there is no need for a seperate version anymore.
- Minimal config for 128K systems: If SymbOS detects a system with only 128K, all additional features (extended desktop, screen saver, desktop background picture) will be deactivated automatically during booting. You will always have 31K or more free on your system.
SymAmp with advanced audio hardware support
- New driver system: A new driver-like system for including and managing hardware and sound module support has been added to SymAmp. All detected hardware is listed in a new dialogue window where you can select your prefered sound device.
- Enterprise 64/128 Dave AY emulation: The AY emulation by IstvanV and Geco is now official part of SymAmp and can play Soundtrakker 128, Starkos and PT3 modules with the Dave soundchip of the Enterprise 64/128.
- MP3 for nearly all platforms: MP3MSX and compatible sound cards (SE-ONE, SYMBiFACE 3) are now supported on the Amstrad CPC and Enterprise 64/128 as well.
- CPC PlayCity 6 channel Dual PSG: Finally we have PlayCity support integrated in the official release version of SymAmp.
- MSX Darky 6 channel Dual PSG: 6channel PT3s can be played on the MSX with the Darky catridge.
- PCW Dk'tronics AY board: SymAmp is now able to play Soundtrakker 128, Starkos and PT3 modules on the Amstrad PCW as well, if a Dk'tronics AY hardware expansion is connected.
Kernel improvements
- Memory management: The memory management has been optimized again. The system now searches for free transfer area space starting at the very end of the memory, when loading an application. This reduces memory fragmentation again.
- Relocation table handling: During loading an application the temporary relocation table is loaded to any free memory location, which can be in any 64K ram bank. This makes it possible to load applications which are using the full available 63K of one bank.
Graphics9000 fullscreen game mode
- P1 patternmode support: The Quigs IDE is now supporting screen mode P1, which provides two pattern layers, 127 sprites and up to 61 colours with a resolution of 256x212. Flappy Bird is the first game, which is using this and running on all supported platforms (Amstrad CPC, MSX, Enterprise 64/128)
- Graphics9000 interrupt handling: The kernel supports the handling of V9990 line interrupts. This can be used for enabling splitscreens in fullscreen games and will be supported by the Quigs IDE soon.
Desktop Manager
- Context menus: This new features allows an application to open a context menu at any place on the screen.
- Frame resizing and movement: The user can resize and move a dotted frame on the screen. This makes screen area selections possible.
- Modal window unclick events: The GUI sends an event, if the user is clicking outside of a modal window. This can be used for creating own complex dropdown menus.
- Transparent bitmaps: a new graphic control allows bitmaps with a transparent colour (0).
- CPC mode 1 textoutput speed: The speed of the textoutput routines has been increased on the Amstrad CPC in mode 1.
New applications since 3.0
- SymbOS E-Mail: The full functional E-Mail client is now available for SymbOS 3.1 (by EdoZ, using Quigs).
- Flappy Bird: This is the first game which is using the new Quigs IDE feature for creating fullscreen games on the Graphics9000 graphic card (by EdoZ & Trebmint, using Quigs).
- Sokoban: A very advanced implementation of the classic Sokoban game.
- ChessSym: The first chess application with a strong AI for SymbOS (by Trebmint, using Quigs).
- Doom: Play Doom in SymbOS - even multiple times! This 3D egoshooter has been ported from a TI-calculator to SymbOS (by zDoom team, NYYRIKKI, Prodatron)
- 2048: Another well-known game is now available for SymbOS as well (by Trebmint, using Quigs)
- DiskDumper: This dumps a complete floppy disc to a DSK file, used by Amstrad CPC emulators.
- VDP screen adjustment tool: Adjust the screen position and screen frequency of your MSX VDP or Graphics9000.
- Hexe: Simple Hex monitor and editor.
Miscellaneous
- Bug fixing: Bugs have been removed as usual, including the boot logo on the Amstrad CPC and PCW and the joystick handling on the Enterprise 64/128.
Great news, is Quigs available too ?
The application download section has been updated, and all new apps are available now.
http://www.symbos.org/apps.htm
Finally we passed the number of 50 apps :)
Here are some screenshots of the email client, the chess game and Flappy Birds.
Quote from: genesis8 on 12:11, 31 December 21
Great news, is Quigs available too ?
Yes, it has been uploaded to the website finally :)
You can find it here:
http://www.symbos.org/quigs.htm
The SymbOS platform is amazing! Many thanks for this major release!
Awesome update ... Good Job 👏👏👏👏
Awesome news :) I'd love to see more CPC Plus features in a future update - Plus palette and Plus hardware cursor seem very feasible and would be really nice little bonuses. A bit more out there, maybe Plus DMA support in SymAmp...
Thanks for the hint! I will try to reactivate this in the next Version.
Palette and Mouse pointer. Dma Support in SymAmp wont be easy as it still eats Most of the cpu time, but lets See.
Also support for LambdaSpeak would be a very nice feature.
Glad you added the M4 RTC eventually.
Lots of work done - great job! :) :) :)
Wow! A great overhauled and expanded SymbOS. Sound so interesting. Looking Forward to get started.
Many thanks for your development and sharing.
Is it possible just to copy over the old files or should I take care something in case of the old INI files?
Quote from: Prodatron on 19:17, 31 December 21
Thanks for the hint! I will try to reactivate this in the next Version.
Palette and Mouse pointer. Dma Support in SymAmp wont be easy as it still eats Most of the cpu time, but lets See.
While I'm requesting features, RTC support for the Nova board would be great too, it's super easy to interface with: https://pulkomandy.github.io/shinra.github.io/nova.html
Quote from: HAL 6128 on 20:45, 31 December 21
Is it possible just to copy over the old files or should I take care something in case of the old INI files?
The INI Files are still compatible so you can Just overwrite the old with the new Files. The graphics9000 Version has its own seperated INI Files now.
Quote from: Cwiiis on 10:34, 01 January 22
While I'm requesting features, RTC support for the Nova board would be great too, it's super easy to interface with: https://pulkomandy.github.io/shinra.github.io/nova.html (https://pulkomandy.github.io/shinra.github.io/nova.html)
Cool, that Looks easy. Will be added soon.
Amazing, such a great news!
For me, it's not yet usable as a dev environment, on the other hand the network-related tools seem stellar.
An issue/feature tracker would be great.
I will try to see if the HxC direct access issue I encountered is fixed.
Thanks Prodatron!
Quote from: m_dr_m on 17:45, 02 January 22An issue/feature tracker would be great.
There was a Mantis for SymbOS, I am not sure, if it still exists, I should search for it.
Quote from: m_dr_m on 17:45, 02 January 22For me, it's not yet usable as a dev environment, on the other hand the network-related tools seem stellar.
NYYRIKKI wrote a quite good tutorial how to start developing for SymbOS:
http://www.symbos.org/download/20211230-V31/SymbOS-ASM-Developer-kit-1.0.zip (http://www.symbos.org/download/20211230-V31/SymbOS-ASM-Developer-kit-1.0.zip)
QuoteSymbOS ASM-developer pack 1.0
Made By: NYYRIKKI (11/2021)
---------------------------------------------------------
So you wan't to become a SymbOS-developer, great! This OS will offer you great number of useful routines. I'm quite sure that when you get in to this stuff, you will learn to love this OS. It does not offer you only multitasking, but also other nice things like FAT32-support and networking... and here it is in a very user friendly package. Please read this file all the way as it teaches you how to navigate trough the official documentation. Personally I'm also quite n00b SymbOS developer coming from MSX background, but I want to help more people to join this great journey. Just two more classic words before we start:
D O N ' T P A N I C
The problem with official development stuff has been that it is drop to the deep end of the pool without learning to swim first.
[...]
Maybe this helps a litte bit to make a first step :)
I guess I didn't touch the HxC since the last release. I remember that there can be a problem when switching between DSK emulation and direct SD card access on the same drive.
Quote from: Prodatron on 17:22, 03 January 22NYYRIKKI wrote a quite good tutorial how to start developing for SymbOS:
Is it to develop on CPC directly? From SymbOs, allowing quick tests?
https://youtu.be/q6sSikeGMYw
I am seing your video Xeno, does someone knows if SymbOS also detects a MSX sound cartridge in an Amsdap ?
Quote from: genesis8 on 20:34, 06 January 22
I am seing your video Xeno, does someone knows if SymbOS also detects a MSX sound cartridge in an Amsdap ?
Well, I don't know, I have a Monster Sound FM Blaster MSX cartridge, I'll try it on the AMSDAP to see what happens, tomorrow!
EDIT: it does not detect it. with Amstrad symbOS
I will try my MSX sound cartridges this week-end if I find time.
Currently two MSX sound devices are detected in SymAmp:
- MP3MSX and compatible (like the SYMBiFACE 3 and SE-One)
- Darky 6chn PSG device (dual AY)
The Darky is detected on a CPC, too, but it doesn't produce any useful sound. It requires the 3,5Mhz clock of the MSX, and so there seem to be timing issues between the CPLD and the AY chips. We have PlayCity anyway so no problem.
Next step is to support wave table based sound hardware in SymAmp.
From the MSX world this is
- Moonsound (OPL4-based) and compatible (Monster Sound, OPL4 Shockwave, Gr8net), with 24 channels of sample music
- Neotron (YM2610-based), with 7 channels of sample music
2 Years ago Maarten Loor already ported his N.O.P. Amiga MOD player to SymAmp, but it hasn't been fully debugged at this time.
That's the next big task for SymAmp now, playing MODs on a CPC was always my dream :P
Maybe for the "next steps"...?
There are two CPC soundcard expansions available (OPL3 and S2P):
GitHub - lambdamikel/BluePillCPC: An Extension Board for the Amstrad CPC based on the Blue Pill Microcontroller (https://github.com/lambdamikel/BluePillCPC)
Shinra Team (pulkomandy.github.io) (https://pulkomandy.github.io/shinra.github.io/willy.html)
I have an RSF3 now and suddenly symbos is a completely different and incredibly impressive beast... A problem I noticed though, if you try to copy a file from a disk to the mass storage in the file manager, anything over 16k will fail and causes every subsequent operation on the mass storage device to fail with the same error (which I struggle to recall now, but will update this post with later).
I don't know if this is specific to the RSF3 or to all mass storage devices. Increasing the buffer in the settings didn't help (also, increasing the buffer to 64k caused all sorts of weird corruption, so possibly that field needs some sanity checking :))
Hi
@Prodatron, I tried to install the symbos 3.1 version on my Xmass with impdos.
It starts but when I try something it returns me file not found.
Do you plan to get symbos compatible with impdos ?
keep on writing so amazing things ^^.
Hi Sid_ :)
SymbOS supports FAT12/FAT16/FAT32 devices. AFAIK Impdos supports FAT16, so it already should be compatible.
Is there something special with the formatting or the partition?
(I wonder if I wrote a formatter tool for AST for the X-Mass some years ago...)
It is using an MBR or does it start directly with a partition?
There is no problem of partitions formatting. Symbos is launched, I can use the GUI, but if I want to access to other tools like control panel, I was returned file not found.
The whole directory is copied on my local partition as Symbos expected.
The impdos partition is amsdos compatible, except to access to the directory, we use the ùcdx RSX.
I also tried on a FAT32 USB key. I wonder if I must customize le symbos.ini file.
Sorry I'll check the documentation. :picard2:
What happens, if you do
Start -> Run -> Browse
Will you find any drives and directories?
If not, the device isn't configured correctly.
If yes, only the icon links are wrong. Depending on if the extended desktop is active or not, they can be reconfigured in the control panel or directly with a right-click.
when I use the browse button, symbos returns me "error while reading directory: a disc error occurred during the directory loading (error code 2)"
I think Symbos does not like impdos format. I will try it on a fat volume.
Impdos format is not FAT(16)?
Quote from: Sid_ on 19:40, 01 March 22when I use the browse button, symbos returns me "error while reading directory: a disc error occurred during the directory loading (error code 2)"
I think Symbos does not like impdos format. I will try it on a fat volume.
Can you connect it somehow to a PC and try to read?
This may help to find out where to search the problem.
Quote from: Prodatron on 14:26, 02 March 22Impdos format is not FAT(16)?
nope it's a custom format.
Quote from: GUNHED on 14:33, 02 March 22Quote from: Sid_ on 19:40, 01 March 22when I use the browse button, symbos returns me "error while reading directory: a disc error occurred during the directory loading (error code 2)"
I think Symbos does not like impdos format. I will try it on a fat volume.
Can you connect it somehow to a PC and try to read?
This may help to find out where to search the problem.
I will try on USB key formatted in FAT16 for instance.
Thanks Xeno for posting this, but I decided to remove it again because of the music (currently not a good idea, it was just a mistake due to the playlist). I will post a new one until this weekend!
@Prodatron Whats the chance that symbos could support the spectrum next? Partially off topic but... if there are more users that is also good thing for cpc users.
The Spectrum Next would be the next port for sure... As soon as there is time!
Caesar sent me a prototype board years ago for the SymbOS port but unfortunately I was lazy at this time, but I think today it's a better situation because of the improved emulators.
Congratulation to post #1000 :) :) :)
Speccy next could indeed be a good pick
Does the latest Symbos work on the TRex?
I don't see a reason, why it shouldn't. It is SYMBiFACE II compatible.
TBH it's maybe 15 years ago since I had the TREX in use.
You still need the special TREX-"Risc"-SymbOS for booting the machine and selecting the ROMs.
@Prodatron any chance that symbos could be made to work on an Agon Light?
SymbOS requires
- Z80 cpu
- 50hz interrupt
- CPC memory mapping capabilities (#c0-#c2, #c4-#c7) or better (any 4x16K)
- bitmap graphic (2, 4 or 16 colours, any resolution)
- a 512byte sector based mass storage device
@Prodatron I believe almost all that is met, still trying to find out how the memory mapping works as it is an eZ80 - but still can run CP/M Z80 stuff.
I am still a CPC user, but lots of people aren't and I beleive Symbos is the best Z80 OS by far - and multiplatform. If it could work on the Agon Light, the audience for Symbos would be greatly expanded and therefore 'hopefully' more Symbos software would be created.
https://www.youtube.com/watch?v=KWRallh_hfc
https://www.youtube.com/watch?app=desktop&v=oNZBDUbfv4E
Is it possible to put SymbOS 3.1 on a Plus cartridge?
It would be possible, like a special ROM version.
Or do you mean, you would like to load all additional stuff (widgets, background picture, standard apps) from catridge as well?
Quote from: Prodatron on 13:51, 02 May 23It would be possible, like a special ROM version.
Or do you mean, you would like to load all additional stuff (widgets, background picture, standard apps) from catridge as well?
No, just the core system. I looked into the download folder and there are 4 ROMs. I was just wondering, if we could put that into a 64KB cartridge and boot directly into SymbOS on a Plus instead of BASIC first and then boot into SymbOS from an external ROM board.
Maybe I can generate a 64K catridge with the same ROM base files, which will then boot directly from the catridge without additional ROMs. Let's try...
Here is SymbOS 3.1 as a CPC Plus catridge (CPR).
[url="https://www.cpcwiki.eu/forum/index.php?action=dlattach;attach=39292;type=preview;file"]SymbOS-CPR.zip[/url]
Here it works fine in WinApe.
Can someone test it on a real CPC Plus?
Btw, the forum doesn't allow uploading *.CPR files :) (but DSK, SNA, ...)
Quote from: Prodatron on 08:30, 03 May 23Here is SymbOS 3.1 as a CPC Plus catridge (CPR).
SymbOS-CPR.zip (https://www.cpcwiki.eu/forum/index.php?action=dlattach;attach=39292;type=preview;file)
Here it works fine in WinApe.
Can someone test it on a real CPC Plus?
Btw, the forum doesn't allow uploading *.CPR files :) (but DSK, SNA, ...)
Will that boot straight into Symbos upon turning the machine on?
Exactly!
New version with boot logo and progress bar.
[url="https://www.cpcwiki.eu/forum/index.php?action=dlattach;attach=39293;type=preview;file"]SymbOS-CPR.zip[/url]
Would be an idea to have a version, which is using the remaining 430KB catridge space for a "ROM disc" with all important apps/stuff pre-installed, only for systems, which don't have another mass storage device attached.
I will give it a try later today. I like the idea to have a minimal set (64KB) to put it onto a multi-rom cartridge, but I also like the idea to have a full blown 512K cartridge with all the extras.
Here you have both:
symbos.cpr
- is the 80K version, which only boots the core part of SymbOS from catridge
symbos-full.cpr
- is a 512K cpr, which contains a 432K sized FAT12 image at blocks 5-31 as well. During booting SymbOS will detect this "rom disc" and handle it as a read-only mass storage device, using a new rom disc driver. It makes sense, if you have no other mass storage device connected and want to try and play a little bit with SymbOS.
symbos-cpr.png
The internal ROM drive is a nice idea. :)
ROM disc in graduate format or another format? Perhaps it could scan all ROMS for a disc in a Symbos format, I'm not sure we will lose that much by not being able to copy stuff from the graduate format... unless one day we finish a CP/M console for Symbos.
Feedback from tests with a real Plus (6128, no expansions): I tried all CPR with a C4CPC and none of them worked.
When loading them with the CPRSelect tool I always get the loading screen with the progress bar but after that it stops.
When putting the CPRs in their own slot, they don't start up at all.
@eto, thanks for testing! hope, it's only a format issue. Maybe I can upload another version or dig out my own CPC Plus.
@zhulien, it is using FAT12 (see screenshot). It is much more powerful than CP/M, supports sub directories, timestamps, exact file lenghts etc. and still is compact and doesn't waste too much space on disc. That's the perfect format for a SymbOS rom/ram disc.
I am using a 720KB DSK disc image, which is common for the MSX, modify the boot sector, so that it only has a capacity of 432K, edit it with a japanese tool called "editdisc", and then merge it into the CPR file with a python script.
Anyway it sucks, that it doesn't work on a real machine. Hope I can fix this soon.
I also tried it with RetroVirtualMachine and it doesn't work there either.
(In Winape it does boot though)
Thanks for the hint with RetroVirtualMachine! That will help for testing.
Forgot to switch the Z80 into IM 1 mode.
This new version is now working in RVM, too.
sym-rvm-cpcplus-cpr.jpg
So I found a bug in WinApe ;D
WinApe always starts the Z80 in IM 1 mode instead of IM 0.
Now I hope, that it will work on a real machine as well? :-[
Works for me on real hardware. But the System control panel says my system is a CPC 464 instead of a 6128+. And it only sees 1MB of RAM whrn I have 2 :D (and also an Albireo and a Nova, I see it doesn't use the Nova RTC to get the current time)
Other than that everything seems to work!
Thanks a lot for testing!
- CPC464 -> without any CPC-OS rom it can't read the computer type ID (0-4) at #C002. I should find another way to find out, if the machine is a Plus or not.
- 1MB -> SymbOS is limited to 20bit addresses, so currently 1MB is the maximum unfortunately.
- Nova RTC -> strange, it should work in this version. Have to check this.
Quote from: zhulien on 18:25, 09 March 23@Prodatron I believe almost all that is met, still trying to find out how the memory mapping works as it is an eZ80 - but still can run CP/M Z80 stuff.
I am still a CPC user, but lots of people aren't and I beleive Symbos is the best Z80 OS by far - and multiplatform. If it could work on the Agon Light, the audience for Symbos would be greatly expanded and therefore 'hopefully' more Symbos software would be created.
I second this. I would love to see SymbOS running on my Agon Light. It's already got a large, and evergrowing audience, and I think it would see the OS get the recognition it truly deserves!
Quote from: pollito on 19:03, 07 May 23Quote from: zhulien on 18:25, 09 March 23@Prodatron I believe almost all that is met, still trying to find out how the memory mapping works as it is an eZ80 - but still can run CP/M Z80 stuff.
I am still a CPC user, but lots of people aren't and I beleive Symbos is the best Z80 OS by far - and multiplatform. If it could work on the Agon Light, the audience for Symbos would be greatly expanded and therefore 'hopefully' more Symbos software would be created.
I second this. I would love to see SymbOS running on my Agon Light. It's already got a large, and evergrowing audience, and I think it would see the OS get the recognition it truly deserves!
Thanks, that's indeed an interesting platform.
I wonder, if it has an additional MMU. The eZ80 can run in Z80 or in ADL mode (24bit registers). In Z80 mode you can only swap between complete 64K pages with the MBASE register. That's fine for SymbOS applications, but huge parts of the SymbOS core itself would have to be rewritten to work in ADL mode, so that it can access the whole memory. Currently this is done by swapping 16K blocks into the visible 64K area, but that isn't possible with a standard eZ80.
@Prodatron"The eZ80 has 16K of internal CPU RAM that can be configured to be ever-present at the top of the 16 bit 64K addressable range when in Z80-compatible mode. You can configure the eZ80 to use either 16K or 8K of its internal RAM to be the common memory. So for CP/M Plus or MP/M, this means the User Bank size would be 48K or 56K. Bank-switching is insanely quick. All it takes is writing one byte to an internal register, just 2 T states or 40 ns.This comes not just from reading the documentation; I have actually coded this up and it works great."
from here: https://groups.google.com/g/comp.os.cpm/c/E7BsAckwqTU
and
"Julian Cassin
hi, does anybody know if the Agon Light can run in eZ80's ADL mode?
Igor Chaves Cananea
Group expert
Top contributor
You can write programs that run in ADL mode, yes."
from here: https://www.facebook.com/groups/agoncomputer/permalink/1216531869048193/?comment_id=1216533392381374¬if_id=1683555027205996¬if_t=group_comment&ref=notif
Quote from: PulkoMandy on 20:42, 05 May 23Works for me on real hardware. But the System control panel says my system is a CPC 464 instead of a 6128+. And it only sees 1MB of RAM whrn I have 2 :D (and also an Albireo and a Nova, I see it doesn't use the Nova RTC to get the current time)
Other than that everything seems to work!
I have an Azerty cpc 6128+ and Symbos 3.1 says its a CPC6128+ with. System is booted from original Burning rubber cartridge.
Quote from: leexus on 05:33, 09 May 23I have an Azerty cpc 6128+ and Symbos 3.1 says its a CPC6128+ with. System is booted from original Burning rubber cartridge.
In your case, AMSDOS, Firmware and BASIC 1.1 is present. The other case was, that the SymbOS cartridge is used without any AMSDOS, Firmware or BASIC 1.1 being available to the system.
@zhulien , thanks a lot for this info! I will check this.
@leexus , yes, Eto is right, in your case the original ROM is still present, so proper detection is possible.
Thanks to Etos idea of having SymbOS in a CPR/catridge I am currently playing around with the ZX0 compressor, which is just crazy. It is much better than ZIP, but it still has an ultra fast and small Z80 decompressor.
Next version will use it for crunched SymbOS executable files: Most of them will be less than half of the original size. E.g. for a CPR that makes it possible to include much more apps.
@Prodatron with Symbos Icons, is there any way to associate a type of program or file with a parent so that they can adopt that icon and launch it? Like Windows 3.1? For example, (see PRIMAL thread), Let's say we adopt an extension to an application that is for PRIMAL, e.g. PML - if someone looks at MYAPP.PML can they see the icon from PRIMAL.COM and if they run it have the MYAPP.PML passed to PRIMAL.COM via the commandline so that it can load MYAPP.PML? (PRIMAL.COM is currently a console application for Symbos)
Of course, SymbOS supports file extension associations to apps since the beginning.
Open "Control Panel -> System -> File Types" to edit the definitions.
fe5.png
Then you can call a file directly, which will then open the associated application and load the file.
fe1.png
fe2.png
You can also create icons for media files, which will then be opened with the associated application.
fe3.png
fe4.png
Is it that, what you are requesting?
Perfect! It means my PRIMAL wrapper (hopefully) can contain the ICON for the PRI applications associated with the wrapper.
Looking through the Symbos documentation, I couldn't find a non-blocking CharIn, is there one?
Also for RAM, If I was to reserve RAM in the header so it's allocated upon program load, how do i get the address of that allocated RAM?
Quote from: zhulien on 22:18, 10 May 23Also for RAM, If I was to reserve RAM in the header so it's allocated upon program load, how do i get the address of that allocated RAM?
It's always located directly behind the code/data/transfer area of the application.
If your code area has a size of 8888 bytes, the additional memory for the code area will start behind byte 8888 of the code area.
Ops, sorry for not answering your CharIn question. I will write in the other thread.
@Prodatron The LIB folder for Symbos development which includes Symbos-Constant.asm, Macros.asm, DesktopManager.asm, FileManager.asm, Kernel.asm, MSX-compatibility.asm, NetworkDaemon.asm, SymShell.asm, SystemManager.asm and ScreenSaver_Template.asm...
Can I include these in a public github project and if so, what accreditation would you like me to attach?
Quote from: zhulien on 19:29, 11 May 23@Prodatron The LIB folder for Symbos development which includes Symbos-Constant.asm, Macros.asm, DesktopManager.asm, FileManager.asm, Kernel.asm, MSX-compatibility.asm, NetworkDaemon.asm, SymShell.asm, SystemManager.asm and ScreenSaver_Template.asm...
Can I include these in a public github project and if so, what accreditation would you like me to attach?
Yes, no problem, feel free to upload them in the github project. I am always glad, if this stuff helps!
Yes, no problem, feel free to upload them in the github project. I am always glad, if this stuff helps!
Quote from: Prodatron on 14:07, 12 May 23Quote from: zhulien on 19:29, 11 May 23@Prodatron The LIB folder for Symbos development which includes Symbos-Constant.asm, Macros.asm, DesktopManager.asm, FileManager.asm, Kernel.asm, MSX-compatibility.asm, NetworkDaemon.asm, SymShell.asm, SystemManager.asm and ScreenSaver_Template.asm...
Can I include these in a public github project and if so, what accreditation would you like me to attach?
Yes, no problem, feel free to upload them in the github project. I am always glad, if this stuff helps!
Many thanks!
Quote from: Prodatron on 21:21, 09 May 23Thanks to Etos idea of having SymbOS in a CPR/catridge I am currently playing around with the ZX0 compressor
Here is a new version of the CPR file for booting SymbOS 4.0 (very early version) on a CPC Plus with a "full equipped ROM disc". Thanks to the ZX0 compressor support it's now possible to place most of the standard SymbOS apps, additional media files and even more inside the 512KB space of the catridge as most files are 50% or less of their original size now. Even music files etc.
CPC 6128+ detection is working again.
sym4cpr.png
Awesome :-) I'm looking forward to V4.0
One thing I always wondered: would it be possible to use e.g. a 24K screen to get more screen space? Or can't you spare that RAM part?
Unfortunately the CPC screen is always placed in the first 64K. And because of the way, how memory mapping/bankswitching works on the CPC, this is the most "valuable" memory for the operating system. Nearly every byte here is needed.
It's different for the Joyce PCW and the Enterprise, where the VRAM can be placed anywhere in the first 128K. Maybe I have a bigger screen on the Enterprise in the future, so this port won't look like a 1:1 Amstrad CPC clone anymore.
Quote from: Prodatron on 14:34, 07 June 23Unfortunately the CPC screen is always placed in the first 64K. And because of the way, how memory mapping/bankswitching works on the CPC, this is the most "valuable" memory for the operating system. Nearly every byte here is needed.
It's different for the Joyce PCW and the Enterprise, where the VRAM can be placed anywhere in the first 128K. Maybe I have a bigger screen on the Enterprise in the future, so this port won't look like a 1:1 Amstrad CPC clone anymore.
The VDP9990 of SymbOS could use this additional 16 KB of the main RAM too. It's just the question if this could be of any kind of help.
A feature I would like to see in symbos is multiple desktops, e.g. press control+a number to instantly swap to another. Still multitasking but it means we could eg put the music player in screen 2, console in screen 3 etc... perhaps a max of 8? I would think this could be a good alternative to more screen space of course it doesn't address every issue. Overscan would be great but I understand the difficulty in the cpc. One thing you could try as a test, is to see what a 16:9 ratio screen might look like (adjusting crtc registers) and see if any of the zoom options in modern TVs accept the input and zoom it to full screen... of course the resolution will be lower, but it might be a good option for a full screen and combined with multiple screens would be great.
Any chance for a version of symzilla that fetches pages? At the moment I made 8bitology.net to generate 8bml, I could also make it generate dox pages if you have a spec.
@Prodatron Any chance you would be happy to support a virtual browser-graphics card in Symbos? I am happy to code the browser graphics driver bit, this would be sent from either a host and then connected to the CPC via http, or even symbos could send the JS (like the gfx driver) to the browser. It would allow i.e. me to sit and use my PC to use Symbos on the CPC. There would likely be initially,
1. mouse:
position sending to symbos if we want to use the windows mouse to detect clicks and dragging (not sure how much we can spam symbos with drag events), or... we have a secondary mouse pointer we render that reflects the browser polling symbos and drawing a mouse pointer - I think the user experience for option 1 will be better
2. window drawing:
symbox responds to an API to draw lines, shapes and gadgets so Symbos shouldn't need much code change, the browser JS should perform the update. We can try polling symbos... or check if we can use sockets as an option.
3. full screen mode: to open full screen windows into different tabs or windows - whichever seems to work best
This gives network card owners another use for their CPC network cards.
Quote from: zhulien on 20:26, 16 June 23Any chance for a version of symzilla that fetches pages? At the moment I made 8bitology.net to generate 8bml, I could also make it generate dox pages if you have a spec.
Yes, that's still on my todo list! As soon as I have some time for SymZilla again, I will add this for sure!
Quote from: zhulien on 10:40, 31 July 23@Prodatron Any chance you would be happy to support a virtual browser-graphics card in Symbos?
Are you speaking about a proxy which preprocesses websites and send them to SymbOS (e.g. SymZilla or another app which supports this virtual browser format) in a less complex format?
Your description sounds more like a VNC viewer?
Quote from: Prodatron on 15:49, 31 July 23Quote from: zhulien on 10:40, 31 July 23@Prodatron Any chance you would be happy to support a virtual browser-graphics card in Symbos?
Are you speaking about a proxy which preprocesses websites and send them to SymbOS (e.g. SymZilla or another app which supports this virtual browser format) in a less complex format?
Your description sounds more like a VNC viewer?
Not exactly either but rather using the browser on a pc or other platform as a graphics card alternative.
Like Siamese System on Amiga. Javascript code in the browser gets primitive commands constantly from a real CPC via tcpip and renders the output in realtime.
Nice. Can it print now on CPC too?
Yes, already works great :)
Even with WordPad in Wysiwyg mode:
Nice! A printer daemon or direct access?
It's the new Printer Daemon on which EdoZ is working again.
Applications like WordPad send their print jobs (with printer independant codes) to this daemon, which is converting it to printer specific codes and send it to the printer.
Sorry, the daemons UI appears only for a short time in this video, you will have a better look at it in the video two posts above. However this shows already an older version.
QuoteeBooks (in SymbOS .HLP format) of classic public-domain literature small enough to fit on 180k disks: Alice in Wonderland, Aristotle's Poetics, The Art of War, Beowulf, The Call of the Wild, A Christmas Carol, The Epic of Gilgamesh, Hamlet, Lyrical Ballads, Plato's Symposium, three Sherlock Holmes short stories, The Time Machine. Also included are a 16,000-word English-language dictionary (derived from WordNet) and complete editions of the Bible in English, German, French, and Spanish.
Author:
@prevtenetdownload: https://cdn.discordapp.com/attachments/929500634380660737/1191553353583431710/symbos-ebooks.zip?ex=65af1609&is=659ca109&hm=5eafb511ba1f27e47307ae2af3a8088920976eb08d4fb80e2de1247960a6600b&
What's the special thing about this text format?
You can browser it pleasantly (e.g., with some minor formatting and an index) in SymbOS's help browser, which is actually a pretty decent e-reader.
(https://i.imgur.com/gFUfAQh.gif)
This is really cool!
Here is the news post for the new eBook collection:
https://www.cpcwiki.eu/forum/news-events/read-full-ebooks-on-your-cpc-new-release-by-prevtenet
it includes a link to the new media file download section as well.
Can someone do a test in SymbOS to see how fast it can send messages to a webserver? Perhaps with 100 bytes to send and 10 bytes returned. How many per second can be achieved without ruining the responsiveness of SymbOS.
The network daemon itself can't ruin the responsiveness of SymbOS as it is running as a service process with the same priority like applications.
TBH I never measured the "upload speed" but sending bytes is the same like receiving bytes. Anyway it mostly depends on the hardware and its ability to buffer incoming stuff. Todays internet participants are used to send data at speeds of mb/s and are sometimes confused, if a client is not able to handle such a speed. Then they have to re-send data again, which is sometimes causing delays even on Z80 side.
I am wondering still whether we can implement a networked display like siamese system in amigaos... or x windows. How many primitives do you need to send to draw a screen or a window or move a window and how fast can they be sent over the network. If it works slowly over internet, it will work faster on a local network. And given the lack of cpc gfx cards and the huge likelyhood people will have PCs or Macs... it would make a free video card for everyone.
Happy to code the server-side to render the primitives and mouse pointer on a canvas.
There are these primitives:
1.) plot rectangle
2.) plot xored dotted line
3.) plot text with fixed system font
4.) plot text with alternative font
5.) plot 4 or 16 colour bitmap
6.) scroll screen area
7.) save/restore screen area
8.) show mouse pointer
1, 2, 3, 6, 8 don't generate any significant traffic.
7 could be done on client side.
4 would require uploading the font everytime, it should be possible to cache it.
5 requires uploading the bitmap data.
So the only "heavy" thing would be 5 (plotting bitmaps).
Technically it's just a new screen driver, but I guess it has to wait a little bit, there is still enough to do for the next release...
Quote from: zhulien on 13:46, 23 January 24Happy to code the server-side to render the primitives and mouse pointer on a canvas.
You mean client-side, right? (on a PC which displays the screen coming from a remote-"server"-CPC).
The client server terminology i am referring to the webserver rather than the protocol server but you are also correct. If I develop most of the code that resides In the webserver happy to see how well it works with symbos?
Quote from: Prodatron on 15:23, 23 January 24There are these primitives:
1.) plot rectangle
2.) plot xored dotted line
3.) plot text with fixed system font
4.) plot text with alternative font
5.) plot 4 or 16 colour bitmap
6.) scroll screen area
7.) save/restore screen area
8.) show mouse pointer
1, 2, 3, 6, 8 don't generate any significant traffic.
7 could be done on client side.
4 would require uploading the font everytime, it should be possible to cache it.
5 requires uploading the bitmap data.
So the only "heavy" thing would be 5 (plotting bitmaps).
Technically it's just a new screen driver, but I guess it has to wait a little bit, there is still enough to do for the next release...
Quote from: zhulien on 13:46, 23 January 24Happy to code the server-side to render the primitives and mouse pointer on a canvas.
You mean client-side, right? (on a PC which displays the screen coming from a remote-"server"-CPC).
Can you give me a list of operations that a typical screen would have from the clear screen to a fully rendered one and I can use that as a test to see how fast I can make it before you make any changes at the SymbOS end.
Eg.
Set resolution 1920 x 1080
Clear screen
Rect 100, 1820, 100, 980
SetMouseCursorPos 200, 200
Of course beyond the initial screen resolution and clearing 99% of changes would be a stream of alterations. Except the mouse cursor... thst would update as often as you send that preserving rhe background and yes, window moves and caching definitely possible on the webserver. And an infinite number of displays too if you want per cpc, a guid based ID.
Quote from: zhulien on 11:56, 17 March 24Quote from: XeNoMoRPH on 19:40, 16 March 24
is that a patch or a rewrite or a port?
a quick demo of what we can do with the sprite/canvas system in Quigs.
We are trying to have a 4 colour version finished until next weekend.
In general it is independant from the colour depth like all GUI apps, but modifying the canvas after it has been displayed for the first time requires updated tiles as well.