· Text 3299 · w8 · inlagg
Som nämnt tidigare är XOS avsett att köras på 806:an under MULTASK.
Vid körning av XOS erhålles 16st processer som kan gå samtidigt i
det externa minnet (grafik-minnet/ramfloppy mm), XOS körs som en task
under MULTASK så man kan fortfarande ha 16st processer gående i det
vanliga minnet (varav en är till för XOS och en för BASIC:en). När
en task kör under XOS ges den möjlighet till vissa systemanrop, på
samma sätt som de tasks som går under MULTASK, men ändå inte samma för
när XOS går länkas en helt ny systemanrops tabell in för RST 30H anropen.
XOS är dock långt ifrån klart, men jag skall redovisa planerade system-
anrop och vilka som redan är klara, så att ni kan komma med synpunkter
på det hela, här följer en förteckning över RST 30H anrop för XOS.
A=??
0 Självmord
1 Döda process
2 Starta process
3 Ej def.
4 Söva ned sig själv
5 Söva ned process
6 Väcka process
7 Returnera jobbstatus
8 Tidsdelning av
9 Tidsdelning på
10 Självmord med återstart
11 Ej def.
12 Döda process med återstart
13 Reservera process dvs erhålla ett prel PID Nr.
14 Allokera minnes block 4K
15 Deallokera alla minnesblock tillhörande en viss process
16 Ladda process blocktabell dvs de 16K som blockas in vid varje jobb
byte.
17 Läs process blocktabell
18 Ladda process sidregister med fysikt minnesblock
19 Alllokera fysiskt block till process sidregister
20 Långt hopp (dvs hopp till annat 8K-block)
21 Långt call
22 Return från långt hopp
23 Ladda data sida
----- Hit är systemanropen färdigskrivna ------
24 Sända data till process
25 Läs data från annan process
26 Öppna fil (OPEN)
27 Preparera fil (PREPARE)
28 Stäng fil (CLOSE)
29 INPUT
30 PRINT
31 GET
32 PUT
33 DELETE fil
34 RENAME fil
35 Ladda och exekvera EXE-fil
Varje process har ett sidregister med plats för 64st 4K block dvs varje
process kan uppta max 256K, som XOS ser ut idag kan maximalt 128K el
512K minne nyttjas för att köra processrna i dvs man kan inte ha 16 st
processer på vardera 256K igång, eventuellt kan det tänka sig att man
kan fixa den biten genom att swappa 4K-block mot disk.
När alla dessa systemanrop är klara så är det bara att skriva en assembler
som kan generera kod för att hantera sådana här program, nästa steg är
att få smallC att ge kod till den assemblern, sedan kan man eventuellt
tänka sig att skriva en kommando avtolkare för det hela (ev med UNIX-
liknande kommandon) !!!
Kom med synpunkter, även hjälp att skriva rutiner är varmt välkommen.
Mikael
( Kommentar i text 3333 av Kristoffer Eriksson <5357> )
( Text 3299 )