News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Prodatron

SymbOS 2.1 Final released

Started by Prodatron, 18:30, 02 September 14

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prodatron

Thanks for the good explanation!

Quote from: Munchausen on 16:38, 04 September 14On the topic of HxC and Symbos, an HxC manager app that allows you to select images to load into the drive would be neat. A direct access mode driver would be really nice too, allowing you to directly use the SD as a storage device.
I didn't know that this is possible with the HxC. Can you load/write sectors directly from/to the SD card? As the HxC is only connected via the FDC and not via the expansion bus? If this would be possible of course I would be very happy to make a SD card driver for the HxC.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

arnoldemu

Quote from: Prodatron on 17:07, 04 September 14
Thanks for the good explanation!
I didn't know that this is possible with the HxC. Can you load/write sectors directly from/to the SD card? As the HxC is only connected via the FDC and not via the expansion bus? If this would be possible of course I would be very happy to make a SD card driver for the HxC.
@PulkoMandy and @SyX had a simple design for a SD card that connected to the parallel port and some functions were already written for it. SymbOS could use this?

It's called "CPCSD" I believe.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

radu14m

is the project "CPCSD" still alive ?
it would be great to have for our CPC's such a device that work with Symbios :)

Munchausen

Quote from: Prodatron on 17:07, 04 September 14
I didn't know that this is possible with the HxC. Can you load/write sectors directly from/to the SD card? As the HxC is only connected via the FDC and not via the expansion bus? If this would be possible of course I would be very happy to make a SD card driver for the HxC.


Yep - see here: http://hxc2001.com/download/floppy_drive_emulator/SDCard_HxC_Floppy_Emulator_Direct_Access_mode.pdf


You can use it to read/write to the SD, and also to select images.


SymbOS support would be awesome! :D


A bit more advanced but it would also be great to have the two modes coexisting, so that as well as using the SD as mass storage you can e.g. browse to the HxC SD card in the file manager and right click on a disk image stored there and tell symbos to load it into the HxC.

Prodatron

Quote from: Munchausen on 19:53, 04 September 14

Yep - see here: http://hxc2001.com/download/floppy_drive_emulator/SDCard_HxC_Floppy_Emulator_Direct_Access_mode.pdf


You can use it to read/write to the SD, and also to select images.


SymbOS support would be awesome! :D


A bit more advanced but it would also be great to have the two modes coexisting, so that as well as using the SD as mass storage you can e.g. browse to the HxC SD card in the file manager and right click on a disk image stored there and tell symbos to load it into the HxC.

Wow, that looks very easy! Did anyone used this on the CPC before?? It makes probably more sense to support this for having a real big mass storage device instead of projects like CPCSD, as the HxC is a common device with good availability. Don't know if I am wrong here? But probably every 2nd CPC "power"user owns a HxC.
You just have to read/write the sector 0 at track 255 to control which SD card sectors you can transfer through sectors 1-8. That's cool. I have to check if I can add this as an option for FDC access (beside "Head 0" and "Head 1" you would have the addition option "HxC SD card"), or if it is necessary to compile a special SymbOS version because of limited code space.
It will be slower than the direct IDE access of the SYMBiFACE II, but still ok for usual stuff (probably not fast enough for playing videos though). Supporting both modes for the same "disc drive" shouldn't be a problem. As soon as you have normal FDC access, it will automatically seek back to a track between 0-79, so there shouldn't be any conflicts.
Selecting images in SymbOS would be another step...

CU,
Prodatron

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Munchausen

#30
Quote from: Prodatron on 09:39, 05 September 14
Wow, that looks very easy! Did anyone used this on the CPC before??

The HxC floppy emulator manager by NoRecess (a CPC program for selecting which disk image to load into the emulator) must use it.

Quote from: Prodatron
It makes probably more sense to support this for having a real big mass storage device instead of projects like CPCSD, as the HxC is a common device with good availability. Don't know if I am wrong here? But probably every 2nd CPC "power"user owns a HxC.
You just have to read/write the sector 0 at track 255 to control which SD card sectors you can transfer through sectors 1-8. That's cool.

CPCSD is nice because it is very simple and should cost <10Euro/£. I don't know how fast the HxC would be for mass storage (hopefully not too slow) but the CPCSD is really quite slow IIRC. The HxC is nice because the driver required should be quite small as it does most of the work for you :D !

HxC support would not only be for the CPC, as it should work with basically anything with a floppy interface (so MsX and PCW too).

Quote from: Prodatron on 09:39, 05 September 14
I have to check if I can add this as an option for FDC access (beside "Head 0" and "Head 1" you would have the addition option "HxC SD card"), or if it is necessary to compile a special SymbOS version because of limited code space.
It will be slower than the direct IDE access of the SYMBiFACE II, but still ok for usual stuff (probably not fast enough for playing videos though). Supporting both modes for the same "disc drive" shouldn't be a problem. As soon as you have normal FDC access, it will automatically seek back to a track between 0-79, so there shouldn't be any conflicts.
Selecting images in SymbOS would be another step...

Selecting images would be the icing on the cake! I hope it fits in the standard version.

There are a couple of things I've been wondering for a while about SymbOS, I wonder if you could answer for me:

1. Is it possible for users to write device drivers for SymbOS, or do you need the full source code?
2. Is there a technical reason why SymbOS can't launch normal AMSDOS programs? Obviously it would nuke SymbOS because all the RAM would be taken over, and you would need to make sure the programs can make ROM calls so it would have to set everything back to "reset" state first, but is this very hard? It would be really neat to be able to do this (particularly if you can load DSK images into the HxC).
3. Have you thought about a suspend/resume function where you copy all the RAM contents and current state to disk for resuming where you left off later? You could even copy it into higher RAM if you have enough spare, then if you ran an AMSDOS program you could use e.g. a multiface to resume symbos later by restoring the RAM contents, or autoboot from the saved RAM image on reset.

Anyway, just some thoughts...

Prodatron

Quote from: Munchausen on 10:20, 05 September 14
The HxC floppy emulator manager by NoRecess (a CPC program for selecting which disk image to load into the emulator) must use it.
Ah, yes, now I remember it!

Quote from: Munchausen on 10:20, 05 September 14
CPCSD is nice because it is very simple and should cost <10Euro/£.
The price is a good argument indeed. It's probably slower, as the transfer should be bit-based instead of byte-based like the FDC does.

Quote from: Munchausen on 10:20, 05 September 14
The HxC is nice because the driver required should be quite small as it does most of the work for you :D !
Yes, because the FDC routines, which are still required, are already existing :) (a stand-alone HXC SD card driver would be probably larger than a CPCSD driver, as the FDC routines are more complex)

Quote from: Munchausen on 10:20, 05 September 14
HxC support would not only be for the CPC, as it should work with basically anything with a floppy interface (so MsX and PCW too).
I didn't had the PCW in mind! That would be so cool to have a PCW with such a mass storage, too! Great idea :)
Regarding the MSX: I never heard about an MSX user using an HxC. They have tons of fast, good and DOS compatible mass storage devices (including drivers to mount DSK images), so that a HxC is not needed here (and they are quite proud about this fact :P ).

Quote from: Munchausen on 10:20, 05 September 14
1. Is it possible for users to write device drivers for SymbOS, or do you need the full source code?
Currently this is only possible on the MSX. Here it was absolutely necessary, as there are so many different FDC types and IDE/SD card/SCSI mass storage devices.

The reasons why the drivers are currently hardcoded in the CPC version are these:
- all CPCs have the same FDC; during the last years the SYMBiFACE II was the only available and quite actual hardware with a mass storage interface (IDE), where some 100 pieces were produced. So IMHO it was ok only to support these two device types (FDC+IDE)
- a dynamic driver model like on the MSX requires more memory; due to bank switching reasons the driver code has to be placed in the first 64K; this is the most narrow and valuable memory area for the core part of SymbOS; but especially on the CPC the memory is quite limited here, as it also contains the 16K screen (the MSX has its own dedicated video ram)
- SymbOS should be bootable directly from "harddisc" by using the rom version without the need of a floppy disc, so that it's available within a few seconds. But that means, the driver must already be there and can't be loaded during booting (as then Amsdos would be required, which can't access the "harddisc"). On the MSX it's not a problem as MSX-DOS runs fine with FAT-harddiscs and can be used for booting. There could be probably a solution for the CPC, too, but it's more difficult and until today I didn't see an important reason for having dynamic drivers.

Quote from: Munchausen on 10:20, 05 September 14
2. Is there a technical reason why SymbOS can't launch normal AMSDOS programs? Obviously it would nuke SymbOS because all the RAM would be taken over, and you would need to make sure the programs can make ROM calls so it would have to set everything back to "reset" state first, but is this very hard? It would be really neat to be able to do this (particularly if you can load DSK images into the HxC).
Are you speaking about...
- launching programs from the (emulated) floppy disc: This would require a controlled reset of the CPC and to send the string RUN"filename"[+return] to the keyboard buffer; that would be a stupid but probably simple and working program starter :) Maybe it's possible to install a sniffer, which checks for a special key combination. SymbOS is copied into higher ram and loaded back, as soon as the user is pressing the key combination (and the program doesn't kill or reset the CPC OS).
- launching programs from a FAT partition: This would be only possible, if loading additional parts isn't required later and the whole program is stored in one BIN. Something like this can be already done by using SNApshot files.

Quote from: Munchausen on 10:20, 05 September 14
3. Have you thought about a suspend/resume function where you copy all the RAM contents and current state to disk for resuming where you left off later? You could even copy it into higher RAM if you have enough spare, then if you ran an AMSDOS program you could use e.g. a multiface to resume symbos later by restoring the RAM contents, or autoboot from the saved RAM image on reset.
Similiar to the first suggestion in 2.) . Well, yes, I thought about this several times. The most interesting part is, how to make a controlled reset of the CPC, so that some "exit"-code remains somewhere in Ram (below the stack probably). A "suspend to harddisc" would be fine, too. It's a little bit tricky. Because of the multitasking environment you have to freeze some parts first, before writing the dump into a file.

CU,
Prodatron

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Munchausen

Quote from: Prodatron on 11:43, 05 September 14
I didn't had the PCW in mind! That would be so cool to have a PCW with such a mass storage, too! Great idea :) 


I'd love this!


Quote from: Prodatron on 11:43, 05 September 14
The reasons why the drivers are currently hardcoded in the CPC version are these:
- all CPCs have the same FDC; during the last years the SYMBiFACE II was the only available and quite actual hardware with a mass storage interface (IDE), where some 100 pieces were produced. So IMHO it was ok only to support these two device types (FDC+IDE)
- a dynamic driver model like on the MSX requires more memory; due to bank switching reasons the driver code has to be placed in the first 64K; this is the most narrow and valuable memory area for the core part of SymbOS; but especially on the CPC the memory is quite limited here, as it also contains the 16K screen (the MSX has its own dedicated video ram)
- SymbOS should be bootable directly from "harddisc" by using the rom version without the need of a floppy disc, so that it's available within a few seconds. But that means, the driver must already be there and can't be loaded during booting (as then Amsdos would be required, which can't access the "harddisc"). On the MSX it's not a problem as MSX-DOS runs fine with FAT-harddiscs and can be used for booting. There could be probably a solution for the CPC, too, but it's more difficult and until today I didn't see an important reason for having dynamic drivers.


I don't see a real need for it either and was mostly just curious, though I was also thinking about other hardware too, e.g. the cpcbooster/minibooster. I guess you can just freely access the IO ports to speak to other devices though, since there is no "serial" device type in symbos currently. A symbos terminal emulator would be very nice, and a utility to pick up files shared from a PC would be awesome too.


Quote from: Prodatron on 11:43, 05 September 14
Are you speaking about...
- launching programs from the (emulated) floppy disc: This would require a controlled reset of the CPC and to send the string RUN"filename"[+return] to the keyboard buffer; that would be a stupid but probably simple and working program starter :) Maybe it's possible to install a sniffer, which checks for a special key combination. SymbOS is copied into higher ram and loaded back, as soon as the user is pressing the key combination (and the program doesn't kill or reset the CPC OS).
- launching programs from a FAT partition: This would be only possible, if loading additional parts isn't required later and the whole program is stored in one BIN. Something like this can be already done by using SNApshot files.


I was thinking of the first suggestion - with HxC support this would work really well. Launching from the hard disc is perhaps not as useful really as it is very similar to the SNApshot loader and is more work.


The SNApshot loader will be very useful for loading from HDD when you have the correct image stored in the HxC. A modified multiface ROM that can save SNA images to hard disc would make this an even more killer hardware/software combo, because you would be able to use SymbOS to launch standard CPC software, save the state and resume symbos from the same place (but for this you would need ROM/RAM upgrade, HxC, mouse interface and an upgraded multiface that doesnt currently exist... I can dream though right?)


Quote from: Prodatron on 11:43, 05 September 14
Similiar to the first suggestion in 2.) . Well, yes, I thought about this several times. The most interesting part is, how to make a controlled reset of the CPC, so that some "exit"-code remains somewhere in Ram (below the stack probably). A "suspend to harddisc" would be fine, too. It's a little bit tricky. Because of the multitasking environment you have to freeze some parts first, before writing the dump into a file.


I was thinking of a simpler way, an autobooting ROM (like holding down the ctrl key to boot symbos currently) that looks for the RAM dump and loads it for you if it is present. Then you can just reset/power off while holding ctrl, or similar. This might even work for loading from higher RAM if it isn't destroyed on reset (and you have a reset button so dont have to fully power down to restart).


Anyway, back in reality... an HxC mass storage driver will be very cool, especially for PCW owners!


Munchausen

Sorry to keep asking obscure questions, but there was something else I wondered for a while: Does symbos support the AY card on the PCW?

Prodatron

Quote from: Munchausen on 12:24, 05 September 14
I guess you can just freely access the IO ports to speak to other devices though, since there is no "serial" device type in symbos currently. A symbos terminal emulator would be very nice, and a utility to pick up files shared from a PC would be awesome too.
Some sort of Network drivers are quite high now on the ToDo list :)

Quote from: Munchausen on 12:24, 05 September 14
The SNApshot loader will be very useful for loading from HDD when you have the correct image stored in the HxC. A modified multiface ROM that can save SNA images to hard disc would make this an even more killer hardware/software combo, because you would be able to use SymbOS to launch standard CPC software, save the state and resume symbos from the same place (but for this you would need ROM/RAM upgrade, HxC, mouse interface and an upgraded multiface that doesnt currently exist... I can dream though right?)
Maybe it's possible to use an alternative Rom for the Multiface? It could copy everything into the higher ram and then SymbOS saves it to harddisc after the next start.

Quote from: Munchausen on 12:24, 05 September 14
I was thinking of a simpler way, an autobooting ROM (like holding down the ctrl key to boot symbos currently) that looks for the RAM dump and loads it for you if it is present. Then you can just reset/power off while holding ctrl, or similar. This might even work for loading from higher RAM if it isn't destroyed on reset (and you have a reset button so dont have to fully power down to restart).
This idea is even better!

Quote from: Munchausen on 12:24, 05 September 14
Does symbos support the AY card on the PCW?
In the past I didn't know about the AY card for the PCW. Shouldn't be a big deal to add this to SymAmp. Did the re-production already start? Missed this thread unfortunately...
Push'n'Pop | Amstrad CPC Demoscene | AY8930 interface for Amstrad PCW

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

CraigsBar

Surely what the pcw is crying out for is a ps2 mouse interface? Sound would be nice for symbols pcw, but to my mind a modern mouse solution is essential. That is what keeps my 9512+ in the loft, no mouse!
IRC:  #Retro4All on Freenode

Munchausen

Quote from: CraigsBar on 14:32, 05 September 14
Surely what the pcw is crying out for is a ps2 mouse interface? Sound would be nice for symbols pcw, but to my mind a modern mouse solution is essential. That is what keeps my 9512+ in the loft, no mouse!


Hmm, I was assuming that SymbOS supports the PCW mouse interface (AMX mouse)? But I haven't tried it.

CraigsBar

Quote from: Munchausen on 14:59, 05 September 14

Hmm, I was assuming that SymbOS supports the PCW mouse interface (AMX mouse)? But I haven't tried it.
it does, but they are impossible to find. And bloody uncomfortable to use if you do. So I don't have one.
IRC:  #Retro4All on Freenode

Prodatron

I wrote a driver for the Kempston and the AMX mouse. Unfortunately I never could test one of these with real hardware (as I don't own it). One is at least working in the XJoyce emulator (but I would have to figure out which one :D ).

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Munchausen

Quote from: Prodatron on 13:43, 05 September 14Some sort of Network drivers are quite high now on the ToDo list :) 
I think maybe getting the CPC to do TCP/IP is over kill (would it cope?) so maybe supporting hardware that can do the TCP/IP for you is a good idea? Then you ask the hardware to negotiate a connection for you, before using it like a dumb point to point connection (like a serial line). And perhaps also a "dumb" driver for direct point to point connections between two computers (like a serial line to your PC). I saw this recently, a tiny and very cheap ($8!!) wifi->serial module that uses AT commands to connect to a hotspot (or act as one) and set up a TCP/IP connection to a server. Anyway... a lot of thought needs to go into it you probably have many ideas already.
Quote from: Prodatron on 13:43, 05 September 14Maybe it's possible to use an alternative Rom for the Multiface? It could copy everything into the higher ram and then SymbOS saves it to harddisc after the next start.
Yes, you can make an alternate ROM for the multiface (in theory). It's a great idea to use the higher RAM because then it doesn't need to know how to talk to a mass storage device - nice! I don't know if you saw that the multiface has now been fully reverse engineered, so hopefully someone will make a replacement at some time... if it was a more popular device I guess support would be more likely.
Quote from: Prodatron on 13:43, 05 September 14In the past I didn't know about the AY card for the PCW. Shouldn't be a big deal to add this to SymAmp. Did the re-production already start? Missed this thread unfortunately...Push'n'Pop | Amstrad CPC Demoscene | AY8930 interface for Amstrad PCW
That would be really great! The hardware hasn't been produced yet, but I'm hopeful it wont be too long.Cheers :)

Munchausen

Quote from: CraigsBar on 15:06, 05 September 14
it does, but they are impossible to find. And bloody uncomfortable to use if you do. So I don't have one.


I'm pretty sure it uses the same protocol as Amiga/Acorn etc mice, so you should be able to use one of the PS/2 or USB adapters for those systems with some wiring added. But yes, being hard to find I guess a replacement would be a good idea... the problem is the same as for other PCW expansions though - there aren't many users. I'm lucky enough to own one already...


Quote from: Prodatron on 15:08, 05 September 14
I wrote a driver for the Kempston and the AMX mouse. Unfortunately I never could test one of these with real hardware (as I don't own it). One is at least working in the XJoyce emulator (but I would have to figure out which one :D ).


I will give this a try next time I get one of my PCWs out!

Munchausen

Quote from: Prodatron on 13:43, 05 September 14

In the past I didn't know about the AY card for the PCW. Shouldn't be a big deal to add this to SymAmp. Did the re-production already start? Missed this thread unfortunately...
Push'n'Pop | Amstrad CPC Demoscene | AY8930 interface for Amstrad PCW


Another thought about the mouse situation - the AY interface has a joystick connection, so the best thing would be to add support for the joystick on there to use as a mouse (as if I didnt ask for enough already  ??? ). That should also work with Bryce's USB mouse adapter for the CPC!

Prodatron

Quote from: Munchausen on 15:12, 05 September 14
I think maybe getting the CPC to do TCP/IP is over kill (would it cope?) so maybe supporting hardware that can do the TCP/IP for you is a good idea? Then you ask the hardware to negotiate a connection for you, before using it like a dumb point to point connection (like a serial line). And perhaps also a "dumb" driver for direct point to point connections between two computers (like a serial line to your PC). I saw this recently, a tiny and very cheap ($8!!) wifi->serial module that uses AT commands to connect to a hotspot (or act as one) and set up a TCP/IP connection to a server. Anyway... a lot of thought needs to go into it you probably have many ideas already.Yes, you can make an alternate ROM for the multiface (in theory). It's a great idea to use the higher RAM because then it doesn't need to know how to talk to a mass storage device - nice! I don't know if you saw that the multiface has now been fully reverse engineered, so hopefully someone will make a replacement at some time... if it was a more popular device I guess support would be more likely.That would be really great! The hardware hasn't been produced yet, but I'm hopeful it wont be too long.Cheers :)
I will first make an implementation of a network demon for the DenYoNet ethernet card of the MSX, which is using the W5100 chip. It already contains the TCP/IP stack, so the Z80 shouldn't be stressed too much. The API of the network demon should be based on the one, which was developed and finished by Dr.Zed in 2007 for the SymbiFACE 3 prototype. As this was already working together with some applications (SymFTP, a graphical FTP client and an alpha version a SymTel, a SymShell-based telnet client), that should make sense. Maybe then it's possible to provide similiar/compatible services for other network-like hardware like you suggested.

Good idea with the joystick support of the AY-PCW card. Maybe I have some luck and get one, too. Just asked in the forum...

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

CraigsBar

Whatever happened to the symbiface 3, I'd have killed for that!
IRC:  #Retro4All on Freenode

KaosOverride

#44
Quote from: Munchausen on 14:41, 04 September 14

How is your CPC IDE interface going?


I imagine PCW IDE would be very similar?

I'm waiting for some chips to arrive. My mistake I mixed HC type chips with LS ones, so the HC didn't read "1" or "0" at correct levels... It's going slow but I have the intention to make it work.

While waiting chips, I have made on screen a MX4 version board to plug wit the X-MEM so it should be a nice Symbcombo ;)

Also when the IDE is finished I have some Wiznet 5100 modules to try to attach to the CPC so any development to the DenYoNet MSX device should be recycled for the CPC :) No RAM mode for it to work on CPC, but has a nice I/O port access mode with autoincrement reading so not much speed will be lost, I think...
KaosOverride · GitHub
MEGA Amstrad Public Amstrad folder

SyX

Quote from: radu14m on 18:04, 04 September 14is the project "CPCSD" still alive?
Yes, Pulko made a new version of the interface using the expansion port, and a few months ago he made a Compact Flash board using similar i/o ports to the Symbiface IDE and i patched bonniedos to use his board. Then he asked to the bonniedos author to release this patched version with this CF interface, but the author didn't give permission for it.

We could have released a diff for anybody could patch it privately, but instead we decided to start to work in an opensource FAT filesystem in rom (using the FatFs project as base)... but it doesn't help that in this exact moment my free time for cpc is 0 (work + portuguese lessons + university in portuguese).

TFM

Quote from: SyX on 03:04, 07 September 14
Yes, Pulko made a new version of the interface using the expansion port, and a few months ago he made a Compact Flash board using similar i/o ports to the Symbiface IDE and i patched bonniedos to use his board. Then he asked to the bonniedos author to release this patched version with this CF interface, but the author didn't give permission for it.


It's a pity.  :( 
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Prodatron

Quote from: robcfg on 10:02, 03 September 14
Great job! I have to try also the MSX version on my TurboR. Can I use it from disk or do I need an SD or CF storage solution?
Here is a video about installing and testing it on a TurboR:

(MSX) Real MSX SymbOS 2.1 setup - YouTube
Maybe that helps? As said before you can just install it on the disc itself.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Munchausen

Quote from: Prodatron on 15:08, 05 September 14
I wrote a driver for the Kempston and the AMX mouse. Unfortunately I never could test one of these with real hardware (as I don't own it). One is at least working in the XJoyce emulator (but I would have to figure out which one :D ).


Do you have a PCW (8256 or 8512)? I could lend you my mouse adapter if you would like to get it working with symbos?


BTW I am really excited about all the things here, especially HxC support, so please let us know of any updates (or if you want any testing done).

TFM

I had the chance to test symbos 2.1 with 1 mb of ram. And it did boot correctly. But I couldn't do more detail tests, because my Monitor died and now I gotta see what comes next.

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Powered by SMFPacks Menu Editor Mod