1. Tak "ShockOS".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]
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.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]
______ _ _ _______ ______
/ _____) | | | (_______) _____)
( (____ | |__ ___ ____| | _ _ ( (____
\____ \| _ \ / _ \ / ___) |_/ ) | | \____ \
_____) ) | | | |_| ( (___| _ (| |___| |____) )
(______/|_| |_|\___/ \____)_| \_)\_____(______/
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>˙
udostępnisz wersje testowe? tak robi np. microsoft ^^[/b]
I to działa. Tylko nadal nie mogę dojść jak pobrać to po echo.[/b]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
Warto by tu zastosować automat skończony, który by parsował linię poleceń, stanami były by polecenia. Wygląda na zagmatwane na początku ale za to jest bardzo elastyczne. http://pl.wikipedia.org/wiki/Automat_sko%C5%84czonyMam nadzieje, że nie tak będzie wyglądał parser poleceń. Co z komendami które mają w sobie więcej znaków ?[/b]
{$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.
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".A ja mówiłem już dawno... pętla i sprawdzasz kiedy jest spacja. Potem tylko tworzysz cały string.[/b]