[Pascal] własny OS.

Gondoller

Użytkownik
Dołączył
Luty 21, 2008
Posty
259
czy to małe coś ma już nazwę?
<


Druga sprawa - masz zamiar dać dostęp do partycji na dyskach fizycznych?

I kolejna - będzie o tak sobie, czy np. operacje na plikach itp. itd. będzie można wykonywać jak w naszym kochanym DOSie?
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
<div class='quotetop'>CYTAT(Gondoller @ 6.05.2009, 18:20) <{POST_SNAPBACK}></div>
czy to małe coś ma już nazwę?
<


Druga sprawa - masz zamiar dać dostęp do partycji na dyskach fizycznych?

I kolejna - będzie o tak sobie, czy np. operacje na plikach itp. itd. będzie można wykonywać jak w naszym kochanym DOSie?[/b]
1. Tak "ShockOS".
2.Nie wiem czy mi się uda zrobić.
3.W 2 odpowiedź.
 

reqst

Użytkownik
Dołączył
Maj 6, 2009
Posty
2
Witam, przypadkowo szukając czegos o osdev znalazłem ten temat na forum, jeżeli macie jakies pytania odnosnie projektowania/implementacji systemow operacyjnych to zapraszam na osdev.pl. Ja swojego czasu pisalem rowniez system, poki co projekt jest 'zawieszony'. Kernel ma obsluge wielozadaniowosci/obslugi dyskow IDE/partycji EXT2, obslugi pamieci wirtualnej, bibliotek ladowanych dynamicznie. Jezeli ktos mialby jakies pytania to chetenie pomoge;) Bylem w fazie portowania glibc oraz basha;)

Pozdrawiam
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
Trochę się przedłuży termin wydania mojego OS, ponieważ pisałem, go opierając się trochę na jednym artykule, dlatego zacznę pisać od nowa.
 

p3o

Użytkownik
Dołączył
Maj 1, 2007
Posty
62
Chodzi ci o stworzenie obrazu dyskietki?

//Edit:
Może już widziałeś ale znalazłem takie coś:

http://os.kgb.pl/ - jakiś OS napisany w pascalu
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
<div class='quotetop'>CYTAT(p3o @ 7.05.2009, 19:33) <{POST_SNAPBACK}></div>
Chodzi ci o stworzenie obrazu dyskietki?

//Edit:
Może już widziałeś ale znalazłem takie coś:

http://os.kgb.pl/ - jakiś OS napisany w pascalu[/b]
Nie. Chodzi "zamontowanie" obrazu. Zamontowanie tak jak normalny napęd. Żebym nie musiał nagrywać na dyskietkę obrazu i wtedy jak zrobię np. update podmieniać i robić s powrotem obraz. Już nie trzeba. A co do drugiego to zobaczę.Zobaczyłem. Skompilowałem i uruchomiłem pod qemu. Działa. Jaki pech.
Muszę pisać system od nowa. Bo ten Linux nie che się uruchomić, a tam miałem wszystko zapisane.
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
System w "akcji".
Kod:
  ______ _                 _     _______ ______
 / _____) |               | |   (_______) _____)
( (____ | |__   ___   ____| |  _ _     ( (____
 \____ \|  _ \ / _ \ / ___) |_/ ) |   | \____ \
 _____) ) | | | |_| ( (___|  _ (| |___| |____) )
(______/|_| |_|\___/ \____)_| \_)\_____(______/
ShockOS>nieznanakomenda
Polecenie "nieznanakomenda" nie zostalo odnalezione.
Wpisz "help", aby uzyskac pomoc
ShockOS>help
reboot - resetuje komputer
help - wyswietla pomoc
cls - czysci ekran
test - test ekranu
ver - wyswietla informacje o systemie
logo - wyswietla logo systemu
ShockOS>ver
ShockOS v0.1
Email: [email][email protected][/email]
ShockOS>˙
 

lol_ek

Użytkownik
Dołączył
Maj 30, 2003
Posty
306
<div class='quotetop'>CYTAT(Gondoller @ 5.05.2009, 17:48) <{POST_SNAPBACK}></div>
udostępnisz wersje testowe? tak robi np. microsoft ^^[/b]

A zapisałeś się do grupy testerów ?



<div class='quotetop'>CYTAT(shoock12 @ 5.05.2009, 15:41) <{POST_SNAPBACK}></div>
Kod:
 if (Command[0]='e') and (Command[1]='c') and (Command[2]='h') and (Command[3]='o') then begin
        PrintStr(#13);
        PrintStr(Command);
    end else
I to działa. Tylko nadal nie mogę dojść jak pobrać to po echo.[/b]

Mam nadzieje, że nie tak będzie wyglądał parser poleceń. Co z komendami które mają w sobie więcej znaków ?


To, że nadużywasz określenia OS to mało powiedziane.

EOT.
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
A co do obsługi FAT to na razie napisałem taki coś:
Kod:
{$ASMMODE INTEL}

unit fat;

interface
var
SectorsPerFAT : Integer;
ReservedSectors : Integer;
root_dir : string = '/';
no_dir : string;
MaxRootEntries : Integer;

procedure ReadSectors;
procedure List;
procedure LoadDir;

implementation

procedure ReadSectors;[public, alias: 'ReadSectors'];
begin
asm
          mov     cx, [SectorsPerFAT]
          mov     ax, WORD [ReservedSectors]         
          mov     bx, si
end;
end;

procedure LoadDir;[public, alias: 'LoadDir'];
begin
asm
          mov     di, root_dir
          mov     si, no_dir
          mov     bx, root_dir  
          mov     ax, di

end;
ReadSectors;
end;

procedure FindFile;[public, alias: 'FindFile'];
begin
asm
         mov     cx, WORD [MaxRootEntries]          
          push    cx
          push    si
          push    di
          rep     cmpsb      
          pop     di
          pop     si
          pop     cx
          mov     di,dx
          pop cx

end;
end;

procedure List;[public, alias: 'List'];
begin
asm 
    mov si, root_dir
    add si, 0020h
    add si, 0033h
    cmp BYTE[si], 00h
end;
end;



end.
I się kompiluje. Znalazłem gdzieś jak to zrobić w Asm, przerobiłem to na to. Tylko mam pytanie jak tego użyć?
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
<div class='quotetop'>CYTAT(djmentos @ 24.05.2009, 9:14) <{POST_SNAPBACK}></div>
A ja mówiłem już dawno... pętla i sprawdzasz kiedy jest spacja. Potem tylko tworzysz cały string.[/b]
Problem w tym, że w moim os-ie nie mogę używać zmiennych typu "string". Bo cała obsługa klawiatury i paser poleceń używana zmiennych typu "PChar".
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
Projekt zawieszony. Zamierzam przepisać mojego os-a na asmeblera. W przyszłości będzie closed-src.
 
Do góry Bottom