Welcome, Guest. Please login or register.


Author Topic: SymbOS (Read 609080 times)

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #90 on: 2014.November.03. 16:54:31 »
Ok, I didn't know, that having code in the video memory reduces the speed so much.
So bank 0 should be moved to #f9-#fc on systems with memory expansions (yes, the last 16K should contain the screen).
@Geco: Yes, in 2 cases BC is free, so this is faster :) In a third case I have to use the slow ld (xx),a... methode unfortunately.
@Z80system: The paging is done quite often (between every task switch, when calling OS functions from tasks, when accessing application data from the different OS modules etc.), so it's good to have it in a fast way. But I think even the "slow way" will be fast enough.

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #91 on: 2014.November.03. 16:59:50 »
Add two RLCA then full 64 bytes table can used!
It depends on the remaining free bytes for the kernel area... In this case I would even save two RRA :) as currently I am doing
AND #78:RRA:RRA:RRA (bits 3-6 contain the bank number)
« Last Edit: 2014.November.03. 17:05:13 by Prodatron »

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: SymbOS
« Reply #92 on: 2014.November.03. 17:09:43 »
I see the future ... in what I will use an EP > 1024MB with excellent modern keyboard and mouse and TFT monitor and an OS has many applications what are capable of using that much of memory ... :)

On an 8 bit CPU ... :) !
« Last Edit: 2014.November.03. 17:18:04 by Z80System »
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14773
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #93 on: 2014.November.03. 17:12:08 »
If you want I can write routine for the loader program which are allocate the memory and fill up the lookup_table.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #94 on: 2014.November.03. 17:27:30 »
If you want I can write routine for the loader program which are allocate the memory and fill up the lookup_table.

I've already offered that too, but I guess you would be a better help here :) Also the loader can pass other things as well, like the current time (I am really not sure if eg ZT stores the time from RTC - if someone has - as the EXOS time, so the best way would be read date/time from EXOS and pass to SymbOS, it's another question if SymbOS want to read time - if there is RTC - further to avoid de-sync caused by like disabling INT sometimes so loosing an 1/50Hz tick ~ also I am not sure how precise the 50Hz created with VINT in one of the LPBs).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14773
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #95 on: 2014.November.03. 17:30:15 »
I am really not sure if eg ZT stores the time from RTC
ZT write the RTC time to the EXOS time variables.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: SymbOS
« Reply #96 on: 2014.November.03. 17:35:34 »
EXOS will be the BIOS (a fat one) ... I think it's a good metaphor ... isn't it ? :)
Z80 System

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #97 on: 2014.November.03. 18:45:51 »
Thanks for the offer! :) I will write you as soon as the port is in a more advanced state.

Regarding RTCs, are there different ones existing for the EP? Of course the best solution would be to poll the RTC in SymbOS directly like it is done on the CPC and MSX. But the solution with receiving the start time from EXOS is probably ok, too. Sure you will loose some seconds after several floppy disc accesses, but that shouldn't be too bad.

I have a quick question again regarding memory configuration:
- I am now planning to put bank 0 to #f8,#f9,#fa,#ff
- on a standard EP128 bank 1 would be #fb,#fc,#fd,#fe and all additional banks can be anywhere

Now my question:
- what's about EP64 machines, which are expanded to 128K or more? Do they always have RAM at #f8-#fb or can it by anywhere as well, while #f8-#fb isn't available?

I am only asking because the 16K blocknumbers for bank 0 are hardcoded in the code for optimization. If I have to be flexible here as well, I will add a patch routine during the initialization.

Offline geco

  • EP addict
  • *
  • Posts: 7217
  • Country: hu
    • Támogató Támogató
Re: SymbOS
« Reply #98 on: 2014.November.03. 19:17:03 »
I have a quick question again regarding memory configuration:
- I am now planning to put bank 0 to #f8,#f9,#fa,#ff
- on a standard EP128 bank 1 would be #fb,#fc,#fd,#fe and all additional banks can be anywhere

Now my question:
- what's about EP64 machines, which are expanded to 128K or more? Do they always have RAM at #f8-#fb or can it by anywhere as well, while #f8-#fb isn't available?

I am only asking because the 16K blocknumbers for bank 0 are hardcoded in the code for optimization. If I have to be flexible here as well, I will add a patch routine during the initialization.

There could be problems on EP64 machines, because the old memory expansions did not use F8-FB segments, so normally an expanded EP64 which was not expanded to EP128 do not have F8-FB segments, normally the felxible code should be used.
the memory configuration can be used on a normal 128Kb machine, but there is a possibility to leave 128K version, and make only it for expanded machine, and save EXOS segments, if you put PAGE0 content of EXOS to the beginning of FF segment, and set FF segment as PAGE0 in EXOS, then only one segment is enough for saving EXOS.
I would help also for the loader, but I think Zozo is the best person for it :)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14773
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #99 on: 2014.November.03. 19:23:56 »
Regarding RTCs, are there different ones existing for the EP?
Only one type, using MC146818P compatible RTC chip (which are also used on PC). But can be located on different I/O ports, but this is can be setuped, but I think the autodetect also not to be a hard problem :-) (my clock program write to the CMOS memory and verify it, if ok then the clock chip exist)

Quote
Sure you will loose some seconds after several floppy disc accesses, but that shouldn't be too bad.
I think if you also use the Dave 1Hz IRQ for clock, then no problem.

Quote
I am now planning to put bank 0 to #f8,#f9,#fa,#ff
At the EXOS compatible mode the FFh needed to be preserved

Quote
- what's about EP64 machines, which are expanded to 128K or more? Do they always have RAM at #f8-#fb or can it by anywhere as well, while #f8-#fb isn't available?
Can be at anywhere. Most of expansions developed for the EP128 then don't make F8-FBh area.

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #100 on: 2014.November.03. 20:40:22 »
Ok, good to know. The 16K blocks of bank 0 can now be located anywhere :)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14773
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #101 on: 2014.November.03. 20:43:37 »
Ok, good to know. The 16K blocks of bank 0 can now be located anywhere :)
Great! :smt038

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14773
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #102 on: 2014.November.03. 20:58:34 »
Question for the future, but probably not bad idea thinking forward:
The CPC style 320x200/4 or 640x200/2 screen good for the begining...
...but we will be more happy if got a full screen desktop without border!
Technicaly the Nick can display 736x300/2 or 368x300/4. Because this is not fully viewable on older displays, I think follow the PAL standard will be the good idea, it is will be 720x288/4 or 360x288/4. (Anyway configurable screen size will be good idea :-) )

The problem: need more than 16K video memory. It is how possible in the SymbOS? I see in the PCW memory map also two video segment used.

Ok, it is possible only on expanded machines.

(And also possible to use interlace for 2x vertical resolution :-) also need 2x video memory.)

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #103 on: 2014.November.03. 21:15:03 »
Yes, I already discussed this with Trebmint, the creator of SymStudio (PC-based IDE for SymbOS), and he really wants to have higher resolutions for the EP, too! :)
As you said for the beginning the two CPC screens will be used, as it's less complicated to have the screen in 16K. And yes, on the PCW I had the same problem with the screen beeing larger than 16K, so I already have some techniques and experiences for switching between 16K during low level graphic operations.
720x288x2 and 360x288x4 sounds really good, though we will have to stay within 8bit for the Y resolution, otherwise it would require huge changes in some of the low level routines to increase it to 16bit. That means we have 720x256x2 and 360x256x4 in the end, which is 22,5KB. I think that's quite ok.
In any case we will have 2 versions of SymbOS EP then, the base version which runs on 128K machines, and the extended version for the higher screen resolutions, which requires 192K or more. This is necessary as the memory map of the OS will be a little bit different, but it's not a problem at all, there are just two different "make" files.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: SymbOS
« Reply #104 on: 2014.November.03. 23:34:40 »
When somebody writes an application to SymbOS (I suppose they can use C or C++), what are the limitations of the application program ? In terms of memory or such ...

When I wrote programs in C to EP, the memory was consumed too fast by the compiled C program ... With SymbOS can I use 256K program code or such ?
Z80 System