Welcome, Guest. Please login or register.


Author Topic: SymbOS (Read 446176 times)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
SymbOS
« Reply #15 on: 2006.June.19. 14:11:03 »
Quote from: "Prodatron"
LBA is limited to 128GB (2 ^ 28 * 512). But hey, who cares! :)

From the ATA6 standards you can use 48 bit LBA command set :-)
I use this features when needed, to use the higher 4 bits of the 32 bit sector addresses.
Very easy to add this features to existing 28 bit LBA low level routines. Only few instructions needed to the drive identify program, for detecting, current drive is support the 48 bit LBA?
And at the sector address output routine, if the drive support, and the sector address use more than 28 bit, then outputing full 32 bit with 48 bit command set.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
SymbOS
« Reply #16 on: 2006.June.20. 20:57:43 »
Quote from: "Prodatron"
Wow! When do you think this card will be available?
If I am able to extend my EP64 (I bought it on ebay-UK) with more memory I will buy two cards for sure. I think today an IDE interface (+more ram) is one of the most important extension for an 8bit machine!

Currently under development the Enterprise All In One Interface. This is same type thing as the SYMBiFACE, it will be contains IDE interface, RAM and ROM extensions and etc.

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
SymbOS
« Reply #17 on: 2006.June.20. 21:10:27 »
Quote from: "Zozosoft"
Currently under development the Enterprise All In One Interface. This is same type thing as the SYMBiFACE, it will be contains IDE interface, RAM and ROM extensions and etc.


Any idea, when it could be available? This year?
Btw, what kind of mouse can be connected to the EP?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
SymbOS
« Reply #18 on: 2006.June.20. 21:18:06 »
Quote from: "Prodatron"

Any idea, when it could be available? This year?

Good question :)
Quote from: "Prodatron"
Btw, what kind of mouse can be connected to the EP?

Currently serial mouse with the RS-232 card. But we think, for the new board, the PS/2 is the best choice.

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: SymbOS
« Reply #19 on: 2014.October.11. 17:51:22 »
I rescue now this thread cos I've been testing SymbOS for CPC, mentioned on the Web emu topic.

SymbOS was created and maintained by Prodatron, member of  the web and owner of an EP.

He was interested on to make a version of SymbOS for EP,  but back in 2009 he needed a mouse standard and some high capacity storage to make the port.

I think now is the time, as there are available memory expansions, two SD-card readers, one yet ready and the other on its way, and the boxsoft+PS/2-MSX converter can be a cheap mouse standard.  

-----------------
SymbOS need 128k or more of memory. A pity the EP CPC(geco) emulator only admits up to 64k.

I've grow the Sym-RomD.ROM up to 16k as the ep128emu only admits this size. The CPC mouse emulates the external joystick port of the CPC, so it is only a matter of redefine the keyboard to make it work.

The OS is impressive as you can see.

EDIT: The snapshot is for the CPC side of the ep128emu that all of you have already installed, didn't you?.
« Last Edit: 2014.October.12. 13:11:09 by gflorez »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #20 on: 2014.October.11. 21:02:43 »
I don't think SymbOS would run on EP with software CPC emulator for example because of the lack the emulation of RAM paging etc (so hardware level emulation) and of course the memory size. So, a native-EP version of SymbOS would be needed. I don't think it would be too hard, as far as I can see, SymbOS only has a tiny kernel and many components are "processes" (not only the applications but system components as well), communication among them is done via sending "messages". So maybe only the low level stuffs and the (micro-)kernel needs to be modified, and only more light modifications (if any) in other components are needed?

I've just started to write on PC (Linux) a software in C which includes a Z80 emulator (not written by me though) and software emulation of the kernel parts of symbOS with the hope that I can understand symbOS internals better in this way. It's only for try to run SymbOS apps not the original kernel etc which is emulated in native C code. It already knows to load (relocate, etc) the binary format of symbOS and running it, though at the first kernel message command it dies because of the lack of implementation of SymbOS kernel features. Currently the cmdtest.com loads and it also prints text as a single kernel message is implemented via process ID 7, wich would be the symshell on a realy SymbOS. I think it would be a bit hard though to re-implement the full SymbOS kernel in C. For a stuff like cmdtest.com it's easy since basically it's a shell based stuff with only getting a text and print, it would work. However true GUI apps with all the stuffs SymbOS can be great would be a much more harder task. Anyway even at this stage it was a fun to do as I've already learnt many of the internals of the SymbOS, like executable format, memory management and message passing between its components in a scheme of microkernel design basically. My work is based on documents of symbos, some source of the cmdtest.com, and some debugging of the running code of the Z80 emulation. There were some surprised which were not clear according the docs, like size of code area in the header is incremented by 0x100 to reflect the fact that command path and parameters are appended to the static part of the code area at least in memory.
« Last Edit: 2014.October.11. 21:20:27 by lgb »

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #21 on: 2014.October.11. 21:50:13 »
Hi EP guys, it's nice to hear from you after such a long time again! End of 2012 and since the beginning of this year I am back on SymbOS development. An Enterprise port of SymbOS is still a very big dream and planned for the next release (3.0) or the one after it. SymbOS 2.1 for CPC/MSX/PCW is finally out since August 2014.

@gflorez: Good to hear about new hardware expansions for the EP! Are these still available? Or emulated? I am probably not up-to-date regarding information about what's going on in the Enterprise hardware scene. But this is very interesting! Maybe you have some information and/or links to current projects and the availability? Would be cool! Oh yes, SymbOS can't run with the Enterprise CPC emulator, as it doesn't use the CPC OS at all and requires 128KB or more. But porting SymbOS to the EP shouldn't be very difficult. The graphics can be configured 1:1 like on the CPC and the memory mapping is like on the MSX and PCW. So there is only some work left for writing device handling (keyboard and stuff like that, and mass storage devices).

@lgb: That sounds so crazy! You emulate parts of SymbOS on a PC in C? I can't believe it, that sounds so impressive! Some time ago a friend and I were thinking about an x86 version of SymbOS, which includes a Z80 emulator for the native App code and most parts of the OS, but for drawing the GUI/graphic output and the filesystem it uses x86 code directly, so all time critical stuff is as fast as possible.

What is currently the best emulator for developing EP software?

CU,
Prodatron

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: SymbOS
« Reply #22 on: 2014.October.11. 22:25:15 »
No, it doesn't work with CPC sofware emulator, I've tested it already...

The SymOS starts on ep128emu(CPC mode) with all Roms(464, 664 or 6128) provided the Ram is at least  128k.

Insert the disk image below and  write 'run"sym.bas' . Then pulse Enter.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #23 on: 2014.October.11. 22:29:05 »
@Prodatron

I guess ep128emu is the best emulator. It can run on Linux and Windows too, it has debugger, and also you can do even tricky things by developing LUA scripts which can interact with the emulator. Also it can emulate some of the more modern hardwarers, like the IDE interface (not the SD-card one sadly, but as far as I can understand someone can even implement that without modifying the C++ source of the emulator itself in the form of developing LUA scripts to do ...). I've also written an Enterprise-128 emulator, which is a web based stuff (JSep, running inside the web browser written in Javascript) but it's highly experimental and it lacks any debug capabilities, so I wouldn't recommended it for developing something at least :)

Well, "I have symbOS kernel in C" is a big thing to say :) What I basically did is simple, and was only to be able to execute cmdtest.com. It simply loads a SymExe10 format (and relocates, etc) to a 64K (no need banks etc, since all "system" is written in C) memory array used by the Z80 emulator. Then executing the Z80, entry points of RST vectors are handled by C code before returning to the Z80 emulator. Currently, I ignore any multitasking, modular, etc design of SymbOS, so what I do: if I get message 67 to process ID 7, I know it's a stringoutput message to symshell, so I simply print the text and I queue a message to ack the message from the app (id=195). If a message receive kernel RST couldn't find a suitable message in the queue it would exit that's all, because it's not a multitask system but a simple linear one only :) The only motivation was to find out more information on SymbOS, not a very serious attempt to "re-implement" symbOS in C ... And sorry if I did some mistake describing SymbOS internals, but it's about two days I try to dig in symbOS so I am not yet a guru, far from it :) Also, I haven't ever used SymbOS for real, only I saw some youtube videos :) But since I am interested in internals of operating systems and also 8 bit stuffs, SymbOS seemed interesting enough to try to understand beyond the average user level.

But anyway, a more serious and precise implementation of as a "prototype-OS" is a good idea. I also did it with my some of my 65xx CPU projects. If you develop apps, it's easy to do mistakes. On a real hardware being 8 bit, without MMU etc, it's easy to mess up things an app should not touch, or things like this. With a prototype kernel implemented in C with the target CPU emulation you can make checks like memory protection etc, so it's much easier to catch errors you wouldn't be able to do so easily on a real hardware (because of the simplicity of such a hardware well at least compared to modern hardware ...).

Also one interesting idea I already had with GEOS operating system: if apps only signals the OS to draw GUI windows, controls etc, how mad would be to implement that OS in plain C (with some CPU emulator to run the application code!) and doing the GUI drawing primitives with a modern GUI toolkit! Then, you can run old GEOS apps with highly modern GUI controls with anti-aliased true-type fonts etc inside! :) :) Maybe the same would be true for SymbOS as well as far as I can imagine. Well it wouldn't render Symvideos better :) only toolkit elements of course.
« Last Edit: 2014.October.11. 22:54:14 by lgb »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #24 on: 2014.October.11. 22:55:28 »
like the IDE interface (not the SD-card one sadly)
At application level no difference. Read/write LBA sectors :-)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #25 on: 2014.October.11. 22:57:46 »
At application level no difference. Read/write LBA sectors :-)

Yeah, but SymbOS may require hardware level access for its drivers and not via EXDOS functions?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #26 on: 2014.October.11. 23:04:05 »
Yeah, but SymbOS may require hardware level access for its drivers and not via EXDOS functions?
Both ROM have a direct access function (like as DISKIO in the EXDOS for the floppy), and also can be extended if something special needed for the SymbOS.

Anyway need to know more about how works the SymbOS then possible thinking about the best way.

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: SymbOS
« Reply #27 on: 2014.October.11. 23:31:01 »

@gflorez: Good to hear about new hardware expansions for the EP! Are these still available? Or emulated? I am probably not up-to-date regarding information about what's going on in the Enterprise hardware scene. But this is very interesting! Maybe you have some information and/or links to current projects and the availability? Would be cool! Oh yes, SymbOS can't run with the Enterprise CPC emulator, as it doesn't use the CPC OS at all and requires 128KB or more. But porting SymbOS to the EP shouldn't be very difficult. The graphics can be configured 1:1 like on the CPC and the memory mapping is like on the MSX and PCW. So there is only some work left for writing device handling (keyboard and stuff like that, and mass storage devices).


Hello again Prodatron. A marvellous work you have done...

About mass storage we have an Hungarian SD-card reader available at the end of this month if you email to SzörG at vortyex@freemail.hu. It  connects to the cartridge bay and it would fit inside of a cartridge.

Another option, the English SD-Card reader by Saint, is more ambitious, and connects to the expansion connector, includes RAM, ROM, SD-card reader and future real expansions...  It is finished but not completed writing the software.

The only drawback with that cards is that the EP operative system only manages natively FAT12(Zozo is hardly attempting to implement FAT16 without losing options(floppy reading), and so actually the required numerous partitions are very tiny.

Talking about mouses, lately we have found EGI, an attempt for a GUI OS made on year 1987 but lost until now. It uses a MSX mouse with the pins arranged for C64....  only used inside a drawing program(Boxsoft's Paintbox). But now inside EGI it has some potential, so then we have though about a PS/2 to MSX converter and then a Boxsoft interface.

About EP emulators the best and accurate but some outdated is ep128emu(also CPC and Spectrum), its executable actualised here. The CPC snapshot I attached was made with it.

Now there is a propper contender named jsep(lgb), based on javascript over a web page, and so it is not restricted to OS or processor. Even it runs on Android running Chrome or Firefox...
 Only a bit slow(for now...)
« Last Edit: 2014.October.12. 10:13:15 by gflorez »

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #28 on: 2014.October.12. 12:06:49 »
Thanks for the information! Do these SD card extensions require the original ExDos card? (these are so terrible rare...)
SymbOS supports FAT12, FAT16 and FAT32 by itself, so there are no problems with any partition size.

@lgb: So it seems that it's best to port SymbOS to the Enterprise as soon as possible :)

Both ROM have a direct access function (like as DISKIO in the EXDOS for the floppy), and also can be extended if something special needed for the SymbOS.

Anyway need to know more about how works the SymbOS then possible thinking about the best way.
If the direct access function doesn't require any special environment variables etc. at fixed places in memory it could work (SymbOS is a complete independant operating system, removing everything else in memory while booting). Usually the SymbOS mass storage device drivers access the hardware directly, that was also my plan for the Enterprise.

Another quick question: Is the WD1770 (this is used in the ExDos card, isn't it?) similiar to the WD1793?

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #29 on: 2014.October.12. 12:35:50 »
Thanks for the information! Do these SD card extensions require the original ExDos card? (these are so terrible rare...)

No, it does not require. For an average Enterprise user with that SD card cartridge (who uses the original EXDOS/EXOS system software, not SymbOS) EXDOS _ROM_ is needed (but not the EXDOS card itself, with WD1770 and such), but the cartridge version of the SD card extension contains that in its own ROM (actually a flash, also contains BASIC since the cartridge replaces the usual place where BASIC cartridge is inserted). And anyway, if you want direct hardware access you may not even require the ROM (or at least only what Zozosoft mentioned that maybe the low level DISKIO routines can be used by SymbOS - if it does not use certain memory regions needed by SymbOS - but the SD card EP cartridge also contain some 8K SRAM by the way ...) and you can "talk" directly to the hardware.

Quote
SymbOS supports FAT12, FAT16 and FAT32 by itself, so there are no problems with any partition size.

Yes, with EP and its original EXDOS it's a limitation by the EXDOS software (FAT12 only). If you have your own code, you can implement whatever filesystem you want :)

By the way, how disk I/O is implemented in SymbOS? I mean, if a process want to read something, will multitasking allows another process to run while data is ready (in "modern" OSes a process is may but put into I/O waiting sleep but scheduler allows another task running not to waste that time), or the whole system is blocked waiting for disk I/O to be finished?

I ask this, because - in theory, as far as I can see - an expanded Enterprise (having more than 128K of RAM) could use the original EXOS/EXDOS for file I/O by reserving some segments used by system software and SymbOS would only use another parts of memory. This would allow to use any of the Enterprise disk I/O without any need to have hardware specific drivers, though it would be slower. And if there is modern feature in SymbOS like the I/O wait sleep, then it's quite impossible to do. Also this means, limitation of EXDOS code applies to SymbOS as well, like being FAT12 only. Anyway, Zozosoft's idea to use at least the low level DISKIO code can be a better solution.

Quote
@lgb: So it seems that it's best to port SymbOS to the Enterprise as soon as possible :)
If the direct access function doesn't require any special environment variables etc. at fixed places in memory it could work (SymbOS is a complete independent operating system, removing everything else in memory while booting). Usually the SymbOS mass storage device drivers access the hardware directly, that was also my plan for the Enterprise.

I see. The reason I would like to deal with EXDOS somehow is the fact that Enterprise's own OS is very nice and quite "modern" compared to other computers of that time, only it's not multitasking etc :) I've even started to implement (unfinished though) in my own Enterprise-128 "web" emulator (JSep) to have "device driver" in EXOS talks with JavaScript code, to allow access http pages like files on the Enterprise and things like this. I really like the flexibility of EXOS and EXDOS system softwares. Though, I can understand that SymbOS is a "whole" operating system and it would be hard to make it use another software not designed for multitasking environment originally what SymbOS wants :)

And as I've mentioned above, maybe the diskIO ROM routines can use the cartridge's own RAM, so system RAM is not touched at all. I don't know, Zozosoft knows it better, I would bet :)