SymbOS MSX multitasking operating system - help needed!

Page 6/392
1 | 2 | 3 | 4 | 5 | | 7 | 8 | 9 | 10 | 11

By Edwin

Paragon (1182)

Edwin's picture

13-05-2006, 15:45

16KB, which is the same as the page size. You can't load directly to the lower region from basic. However, there's no real need to because you can map the segments you loaded in page 0 & 1 just as easy as you do page 2 for loading.

By Maggoo

Paragon (1189)

Maggoo's picture

13-05-2006, 15:55

...and is there any chance to load data in basic somewhere between #0000 and #7fff??

I would not bother loading from Basic. Why not starting from DOS/DOS2 ? There you have all the memory available from $100 to the top of the stack available and you can flip 16K pages a lot easier without caring about the ROM in lower pages...

By flyguille

Prophet (3029)

flyguille's picture

13-05-2006, 16:02

No chance, but you can split a big .BAS in two pages and withOUT a asm routine swap the pages you can do the trick.

if you do two basic's programs with the same firsts lines... so, that can be use as a table like a PUBLIC entrance to the program.... what i means

10 goto 10000
100 out &HFE,2:goto 20000
110 out &HFE,2:goto 21000
120 out &HFE,2:goto 22000
130 out &HFE,2:goto 23000
...

......
main program

other program can be:

10 goto 10000
100 out &HFE,1:goto 20000
110 out &HFE,1:goto 21000
120 out &HFE,1:goto 22000
130 out &HFE,1:goto 23000

so, each .BAS program must be start with the exact sames firsts lines. So in all programs the firts lines are locate in the same memory's position allowing that you can swap pages CLEAN, offcourse you needs to point the base's addr variable out of the page that will to swap.

so, with a single GOTO you are executing basic code in other page.

for to load

out &HFE,1
load "mainbas.bas"
out &HFE,2
poke &H8000,0:poke &H8001,0:poke &H8002,0 (IIRC)
load "addbas.bas"
....

out &HFE,1
run

that from a loader running at &HC000

By Prodatron

Paragon (1788)

Prodatron's picture

13-05-2006, 16:06

@Maggo: Yes, right, the final loader will start in DOS, currently I was just looking fo a fast quick and dirty solution Wink
@Edwin: Seems, that at least 20KB are possible. And yes, I will use mapping now!

By Prodatron

Paragon (1788)

Prodatron's picture

13-05-2006, 16:08

Cool trick!

By AuroraMSX

Paragon (1900)

AuroraMSX's picture

13-05-2006, 16:32

No chance, but you can split a big .BAS in two pages and withOUT a asm routine swap the pages you can do the trick.

if you do two basic's programs with the same firsts lines... so, that can be use as a table like a PUBLIC entrance to the program...
That's a neat trick! /me impressed Big smile

By ARTRAG

Enlighted (6131)

ARTRAG's picture

13-05-2006, 17:33

@prodatron

you need to load 16K at time using pagemapping

try

5 ' Autoexec.bas
10 IF PEEK(&HF677)=&HC0 THEN 40
20 POKE &HC000,0: POKE &HC001,0: POKE&HF677,&HC0 ' Move BASIC to page 3
30 RUN"Autoexec.bas" ' reload and run myself at new BASIC start address
35 name$(1) ="file1":name$(2) ="file2": etc...
40 for n=1 to 7                  ' up to 7 for 128K ram, up o 15 for 256K ram
50 out &HFE,n
60 bload name$(n)
70 next



In page 0 there is your basic program so bload on it at the very last
or leave it spare as working area

By Prodatron

Paragon (1788)

Prodatron's picture

13-05-2006, 18:42

Thanx a lot! I already managed to load the complete SymbOS into the memory and start it without a crash Smile

By Prodatron

Paragon (1788)

Prodatron's picture

13-05-2006, 19:05

This is, how it is currently looking:

www.symbos.de/files/symbos-msx1.gif

As you can see, graphic output is not implemented, and I need to adjust the Y size of the desktop from 200 to 212. And of course much other things are still to do. But it's a nice beginning, I think :)

Currently the system manager process is disabled, as it is also responsible for disc I/O. What I would need during the next days are FDC routines (floppy disc controller). Does anyone have an idea, where I can get some standard ones (in BlueMSX I configured the standard MSX2 setting).
I need routines for sector read/write, get sector ID and track seeking, to be able to get the system and file manager up and running.

CU,
Prodatron

By mars2000you

Enlighted (5461)

mars2000you's picture

13-05-2006, 19:32

A liitle remark about the MSX2 configuration in blueMSX : for the comfort of the users, we have boosted the RAM to 512 KB (as it's the case on the Turbo-R GT), but most of MSX2 machines have only 128 KB RAM.

Page 6/392
1 | 2 | 3 | 4 | 5 | | 7 | 8 | 9 | 10 | 11
My MSX profile