|
| Program der kan køre uden styresytem Fra : Rasmus |
Dato : 14-12-01 13:37 |
|
Hejsa!!!
Kan man i Borland C++Builder eller MS Visual C++ compile en c++ fil der kan
køre uden styresystem, og hvordan. Jeg ønsker en diskette som kan sættes i
en computer(PC) uden styresytemet f.eks. dos. Derefter skal c++ filen køre
som den ville gøre med et styresytem.
Hvis det ikke kan lade sig gøre med de compilere, hvilken skal jeg så bruge.
Venlig Hilsen
Rasmus Steffensen
| |
Mogens Hansen (14-12-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 14-12-01 14:28 |
|
"Rasmus" <Rasmus-88@steffensen.as> wrote in message
> Kan man i Borland C++Builder eller MS Visual C++ compile en c++ fil der
kan
> køre uden styresystem, og hvordan. Jeg ønsker en diskette som kan sættes i
> en computer(PC) uden styresytemet f.eks. dos. Derefter skal c++ filen køre
> som den ville gøre med et styresytem.
Teoretisk: ja - men du skal nok også bruge en assembler og masser af tid.
I praksis, med overkommelig indsats: nej.
Jeg vil _tro_ at man skal kigge mere i retningen af Linux og gcc, for at
finde noget, der kan stykkes sammen.
Venlig hilsen
Mogens Hansen
| |
Anders Melchiorsen (14-12-2001)
| Kommentar Fra : Anders Melchiorsen |
Dato : 14-12-01 21:39 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> skrev:
> Jeg vil _tro_ at man skal kigge mere i retningen af Linux og gcc,
> for at finde noget, der kan stykkes sammen.
Ikke at jeg har set på implementeringen, men memtest86 er et program,
som virker på denne måde (med GPL source, som kan oversættes i Linux).
--
Regards, Anders
....if a Microsoft product fails, who do you sue?
| |
Bertel Lund Hansen (14-12-2001)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 14-12-01 15:02 |
|
Rasmus skrev:
>Kan man i Borland C++Builder eller MS Visual C++ compile en c++ fil der kan
>køre uden styresystem
Det er sådan set en umulig opgave. Du kan ikke afvikle et program
uden (mange af) de funktioner til rådighed som styresystemet
omfatter. Man kan naturligvis godt skrive dem selv - men så laver
man jo et styresystem, og det er en *langhåret* opgave.
>Jeg ønsker en diskette som kan sættes i en computer(PC) uden styresytemet f.eks.
>dos. Derefter skal c++ filen køre som den ville gøre med et styresytem.
Hvis du bare vil have en diskette der kan bootes fra, så formater
den med DOS. Hvis det giver pladsproblemer så kan det slet ikke
lade sig gøre.
>Hvis det ikke kan lade sig gøre med de compilere, hvilken skal jeg så bruge.
En compiler sætter ikke den slags begrænsninger. Det kan kun et
sprog gøre, og det gør C(++) ikke.
Hvad er det egentlige problem?
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Anders Bo Rasmussen (14-12-2001)
| Kommentar Fra : Anders Bo Rasmussen |
Dato : 14-12-01 17:48 |
|
On Fri, 14 Dec 2001 15:01:42 +0100,
Bertel Lund Hansen <nospam@lundhansen.dk> wrote:
>>Kan man i Borland C++Builder eller MS Visual C++ compile en c++ fil der kan
>>køre uden styresystem
>
> En compiler sætter ikke den slags begrænsninger. Det kan kun et
> sprog gøre, og det gør C(++) ikke.
En compiler kan vel godt sætte begræsningen. Hvis nu Visual C++ kun kan
compilere til dos/windows, kan man ikke eksekverer outputet uden at man
har et styresystem.
--
Like a rat in a maze Anders Bo Rasmussen mailto:fuzz01@spamfilter.dk
The path before me lies Frimestervej 42 1.tv http://www.fuzz.dk
And the pattern never alters 2400 Kbh. NV
Until the rat dies.
| |
Mogens Hansen (14-12-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 14-12-01 19:03 |
|
"Anders Bo Rasmussen" <fuzz01@spamfilter.dk> wrote in message
> On Fri, 14 Dec 2001 15:01:42 +0100,
> Bertel Lund Hansen <nospam@lundhansen.dk> wrote:
>
> >
> > En compiler sætter ikke den slags begrænsninger. Det kan kun et
> > sprog gøre, og det gør C(++) ikke.
>
> En compiler kan vel godt sætte begræsningen. Hvis nu Visual C++ kun kan
> compilere til dos/windows, kan man ikke eksekverer outputet uden at man
> har et styresystem.
>
Der er ikke noget teknisk problem at bruge en compiler til noget andet end
hvad producenten har tænkt og supporterer.
Man skal "blot" skrive den kode (f.eks. memory håndtering, I/O), som den
compilerede med run-time library forventer.
Se
http://www.pharlap.com/
for et eksempel på et produkt til at lave embedded, real-time applikationer
med Visual C++ V6.0
Venlig hilsen
Mogens Hansen
| |
Anders Bo Rasmussen (14-12-2001)
| Kommentar Fra : Anders Bo Rasmussen |
Dato : 14-12-01 19:16 |
|
On Fri, 14 Dec 2001 19:02:44 +0100,
Mogens Hansen <mogens_h@dk-online.dk> wrote:
>> On Fri, 14 Dec 2001 15:01:42 +0100,
>> Bertel Lund Hansen <nospam@lundhansen.dk> wrote:
>>
>> >
>> > En compiler sætter ikke den slags begrænsninger. Det kan kun et
>> > sprog gøre, og det gør C(++) ikke.
>>
>> En compiler kan vel godt sætte begræsningen. Hvis nu Visual C++ kun kan
>> compilere til dos/windows, kan man ikke eksekverer outputet uden at man
>> har et styresystem.
>>
>
> Der er ikke noget teknisk problem at bruge en compiler til noget andet end
> hvad producenten har tænkt og supporterer.
> Man skal "blot" skrive den kode (f.eks. memory håndtering, I/O), som den
> compilerede med run-time library forventer.
Men det er vel ret svært at starte programmet, hvis man ikke må skrive
andet end c++-kode, og man ikke har noget andet kode til at starte det
op.
> Se
> http://www.pharlap.com/
> for et eksempel på et produkt til at lave embedded, real-time applikationer
> med Visual C++ V6.0
Så vidt jeg kan se bygger det på dos.
--
Like a rat in a maze Anders Bo Rasmussen mailto:fuzz01@spamfilter.dk
The path before me lies Frimestervej 42 1.tv http://www.fuzz.dk
And the pattern never alters 2400 Kbh. NV
Until the rat dies.
| |
Mogens Hansen (14-12-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 14-12-01 19:41 |
|
"Anders Bo Rasmussen" <fuzz01@spamfilter.dk> wrote in message
> On Fri, 14 Dec 2001 19:02:44 +0100,
> Mogens Hansen <mogens_h@dk-online.dk> wrote:
>
> >> On Fri, 14 Dec 2001 15:01:42 +0100,
> >> Bertel Lund Hansen <nospam@lundhansen.dk> wrote:
> >>
> >> >
> >> > En compiler sætter ikke den slags begrænsninger. Det kan kun et
> >> > sprog gøre, og det gør C(++) ikke.
> >>
> >> En compiler kan vel godt sætte begræsningen. Hvis nu Visual C++ kun kan
> >> compilere til dos/windows, kan man ikke eksekverer outputet uden at man
> >> har et styresystem.
> >>
> >
> > Der er ikke noget teknisk problem at bruge en compiler til noget andet
end
> > hvad producenten har tænkt og supporterer.
> > Man skal "blot" skrive den kode (f.eks. memory håndtering, I/O), som den
> > compilerede med run-time library forventer.
>
> Men det er vel ret svært at starte programmet, hvis man ikke må skrive
> andet end c++-kode, og man ikke har noget andet kode til at starte det
> op.
Svært ja da - svært men ikke umuligt.
Hvem siger at man ikke har andet kode at starte det op med ?
Jeg skrev jo netop det modsatte ovenfor, og tidligere i denne tråd.
Man kan da "bare" skrive boot-loaderen og C++ opstartskoden.
>
> > Se
> > http://www.pharlap.com/
> > for et eksempel på et produkt til at lave embedded, real-time
applikationer
> > med Visual C++ V6.0
>
> Så vidt jeg kan se bygger det på dos.
>
Og ?
Der indgår også en DOS-Extender, men MS-Windows 9x / MS-Windows NT (etc.) er
_ikke_ en del af systemet.
DOS og DOS-Extender er jo "blot" kode som man kan skrive, hvis man _vil_
bruge Visual C++ uden MS-Windows.
Det er ikke nogen triviel opgave, og måske heller ikke særlig nyttigt.
Men compileren sætter _ikke_ begrænsninger for om det kan lade sig gøre. Og
det var vel det der er spørgsmålet.
Venlig hilsen
Mogens Hansen
| |
Anders Bo Rasmussen (14-12-2001)
| Kommentar Fra : Anders Bo Rasmussen |
Dato : 14-12-01 20:15 |
|
On Fri, 14 Dec 2001 19:41:03 +0100,
Mogens Hansen <mogens_h@dk-online.dk> wrote:
>> Men det er vel ret svært at starte programmet, hvis man ikke må skrive
>> andet end c++-kode, og man ikke har noget andet kode til at starte det
>> op.
>
> Svært ja da - svært men ikke umuligt.
> Hvem siger at man ikke har andet kode at starte det op med ?
> Jeg skrev jo netop det modsatte ovenfor, og tidligere i denne tråd.
> Man kan da "bare" skrive boot-loaderen og C++ opstartskoden.
Jeg har muligvis forstået spørgsmåler anderlesdes. Om hvorvidt man kunne
nøjes med at skrive i c++ og compilere med en bestemt compiler, og få
det til at kører uden styresystem.
> Der indgår også en DOS-Extender, men MS-Windows 9x / MS-Windows NT (etc.) er
> _ikke_ en del af systemet.
> DOS og DOS-Extender er jo "blot" kode som man kan skrive, hvis man _vil_
> bruge Visual C++ uden MS-Windows.
> Det er ikke nogen triviel opgave, og måske heller ikke særlig nyttigt.
> Men compileren sætter _ikke_ begrænsninger for om det kan lade sig gøre. Og
> det var vel det der er spørgsmålet.
Egentlig kan man jo få det til at køre på en hvilken platform man vil
(hvis den er touring-komplet), hvis man tillader at man må compilere det
compilerede.
--
Like a rat in a maze Anders Bo Rasmussen mailto:fuzz01@spamfilter.dk
The path before me lies Frimestervej 42 1.tv http://www.fuzz.dk
And the pattern never alters 2400 Kbh. NV
Until the rat dies.
| |
Mogens Hansen (14-12-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 14-12-01 20:41 |
|
"Anders Bo Rasmussen" <fuzz01@spamfilter.dk> wrote in message
news:slrna1kjuh.cdh.fuzz01@localhost.localdomain...
>
> Egentlig kan man jo få det til at køre på en hvilken platform man vil
> (hvis den er touring-komplet), hvis man tillader at man må compilere det
> compilerede.
>
Nej.
Det vil formodentlig være umuligt at eksekvere kode compileret med Visual
C++ på f.eks. en Zilog Z-80 baseret platform - ligegyldigt hvilke
anstrengelser man gør sig (den er sikkert ikke stor nok til at lave en
Pentium emulator på).
Venlig hilsen
Mogens Hansen
| |
Anders Bo Rasmussen (14-12-2001)
| Kommentar Fra : Anders Bo Rasmussen |
Dato : 14-12-01 20:45 |
|
On Fri, 14 Dec 2001 20:41:03 +0100,
Mogens Hansen <mogens_h@dk-online.dk> wrote:
>> Egentlig kan man jo få det til at køre på en hvilken platform man vil
>> (hvis den er touring-komplet), hvis man tillader at man må compilere det
>> compilerede.
>>
>
> Nej.
> Det vil formodentlig være umuligt at eksekvere kode compileret med Visual
> C++ på f.eks. en Zilog Z-80 baseret platform - ligegyldigt hvilke
> anstrengelser man gør sig (den er sikkert ikke stor nok til at lave en
> Pentium emulator på).
Hvis man nu laver en compiler fra win32 -> Z-80? (compileren skal køre
på en win32-maskine)
(og hvis du stadig mener der ikke er plads nok, vil jeg sige at at Z-80
ikke er touring-komplet, da man kun har endeligt lager)
--
Like a rat in a maze Anders Bo Rasmussen mailto:fuzz01@spamfilter.dk
The path before me lies Frimestervej 42 1.tv http://www.fuzz.dk
And the pattern never alters 2400 Kbh. NV
Until the rat dies.
| |
Mogens Hansen (14-12-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 14-12-01 22:34 |
|
"Anders Bo Rasmussen" <fuzz01@spamfilter.dk> wrote in message > On Fri, 14
Dec 2001 20:41:03 +0100,
> Mogens Hansen <mogens_h@dk-online.dk> wrote:
>
> >> Egentlig kan man jo få det til at køre på en hvilken platform man vil
> >> (hvis den er touring-komplet), hvis man tillader at man må compilere
det
> >> compilerede.
> >>
> >
> > Nej.
> > Det vil formodentlig være umuligt at eksekvere kode compileret med
Visual
> > C++ på f.eks. en Zilog Z-80 baseret platform - ligegyldigt hvilke
> > anstrengelser man gør sig (den er sikkert ikke stor nok til at lave en
> > Pentium emulator på).
>
> Hvis man nu laver en compiler fra win32 -> Z-80? (compileren skal køre
> på en win32-maskine)
En kryds-compiler - det kan man "sagtens" lave.
Visual C++ er blot ikke en sådan compiler - og det var den vi snakkede om.
Min pointe er blot, at compileren har nogle forudsætninger, som f.eks.
* CPU arkitektur
* hvilke registre der må ændres i et funktionskald
* kaldekonventioner (kompatibelt med det tiltænkte target
operativ-system)
* hvordan globale objekter bliver oprettet og nedlagt.
Compileren har _ikke_ som forudsætning at det færdige program faktisk kører
på et bestemt operativsystem (i tilfældet Visual C++ V6 Win32 - typisk på
x86 CPU'er), som jeg du sagde i dit oprindelige indlæg i denne tråd.
Det er teknisk muligt at tage resultatet af compilering (OBJ-filerne) og
linke/locate det sammen til f.eks. at blive lagt i ROM eller gøre det til et
program der ligger på en diskette og kan boote en almindelig PC.
>
> (og hvis du stadig mener der ikke er plads nok, vil jeg sige at at Z-80
> ikke er touring-komplet, da man kun har endeligt lager)
>
Det er absurd.
Venlig hilsen
Mogens Hansen
| |
Anders Bo Rasmussen (14-12-2001)
| Kommentar Fra : Anders Bo Rasmussen |
Dato : 14-12-01 23:13 |
|
On Fri, 14 Dec 2001 22:33:40 +0100,
Mogens Hansen <mogens_h@dk-online.dk> wrote:
> En kryds-compiler - det kan man "sagtens" lave.
> Visual C++ er blot ikke en sådan compiler - og det var den vi snakkede om.
Ahh, jeg så linkningen som værende en del af compileringen.
--
Like a rat in a maze Anders Bo Rasmussen mailto:fuzz01@spamfilter.dk
The path before me lies Frimestervej 42 1.tv http://www.fuzz.dk
And the pattern never alters 2400 Kbh. NV
Until the rat dies.
| |
Jonas Meyer Rasmusse~ (15-12-2001)
| Kommentar Fra : Jonas Meyer Rasmusse~ |
Dato : 15-12-01 00:18 |
|
"Anders Bo Rasmussen" <fuzz01@spamfilter.dk> wrote in message
news:slrna1kjuh.cdh.fuzz01@localhost.localdomain...
> Egentlig kan man jo få det til at køre på en hvilken platform man vil
> (hvis den er touring-komplet), hvis man tillader at man må compilere det
> compilerede.
Dvs man kan lave et program der kan oversætte en bootloader til en
arkitektur
til en anden?
Jeg troede disse abstraktioner(touringmaskinerne) var mere til det
sprogtekniske, hvor man havde veldefinerede
semantikker over programmerings sprog, og derved også kunne lave den reele
oversætter?
Det er vel næppe muligt at beskrive semantikken for to forskellige
maskinarkitekturer så grundigt at man kan oversætte _alt_ ?
Nu har jeg selvf. også skulket på det groveste fra det fag( som jeg tror
beskæftiger sig med det ), så jeg spørger bare af nysgerrighed.
mvh Jonas
| |
Mogens Hansen (14-12-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 14-12-01 19:42 |
|
"Anders Bo Rasmussen" <fuzz01@spamfilter.dk> wrote in message
> On Fri, 14 Dec 2001 19:02:44 +0100,
> Mogens Hansen <mogens_h@dk-online.dk> wrote:
>
> >> On Fri, 14 Dec 2001 15:01:42 +0100,
> >> Bertel Lund Hansen <nospam@lundhansen.dk> wrote:
> >>
> >> >
> >> > En compiler sætter ikke den slags begrænsninger. Det kan kun et
> >> > sprog gøre, og det gør C(++) ikke.
> >>
> >> En compiler kan vel godt sætte begræsningen. Hvis nu Visual C++ kun kan
> >> compilere til dos/windows, kan man ikke eksekverer outputet uden at man
> >> har et styresystem.
> >>
> >
> > Der er ikke noget teknisk problem at bruge en compiler til noget andet
end
> > hvad producenten har tænkt og supporterer.
> > Man skal "blot" skrive den kode (f.eks. memory håndtering, I/O), som den
> > compilerede med run-time library forventer.
>
> Men det er vel ret svært at starte programmet, hvis man ikke må skrive
> andet end c++-kode, og man ikke har noget andet kode til at starte det
> op.
Svært ja da - svært men ikke umuligt.
Hvem siger at man ikke har andet kode at starte det op med ?
Jeg skrev jo netop det modsatte ovenfor, og tidligere i denne tråd.
Man kan da "bare" skrive boot-loaderen og C++ opstartskoden.
>
> > Se
> > http://www.pharlap.com/
> > for et eksempel på et produkt til at lave embedded, real-time
applikationer
> > med Visual C++ V6.0
>
> Så vidt jeg kan se bygger det på dos.
>
Og ?
Tror du ikke at det virker ?
Da jeg brugte Pharlap 32 bit DOS-Extender for 8-10 år siden virkede den
fint.
Der indgår også en DOS-Extender, men MS-Windows 9x / MS-Windows NT (etc.) er
_ikke_ en del af systemet.
DOS og DOS-Extender er jo "blot" kode som man kan skrive, hvis man _vil_
bruge Visual C++ uden MS-Windows.
Det er ikke nogen triviel opgave, og måske heller ikke særlig nyttigt.
Men compileren sætter _ikke_ begrænsninger for om det kan lade sig gøre. Og
det var vel det der er spørgsmålet.
Venlig hilsen
Mogens Hansen
| |
Mogens Hansen (14-12-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 14-12-01 19:42 |
|
"Anders Bo Rasmussen" <fuzz01@spamfilter.dk> wrote in message
> On Fri, 14 Dec 2001 19:02:44 +0100,
> Mogens Hansen <mogens_h@dk-online.dk> wrote:
>
> >> On Fri, 14 Dec 2001 15:01:42 +0100,
> >> Bertel Lund Hansen <nospam@lundhansen.dk> wrote:
> >>
> >> >
> >> > En compiler sætter ikke den slags begrænsninger. Det kan kun et
> >> > sprog gøre, og det gør C(++) ikke.
> >>
> >> En compiler kan vel godt sætte begræsningen. Hvis nu Visual C++ kun kan
> >> compilere til dos/windows, kan man ikke eksekverer outputet uden at man
> >> har et styresystem.
> >>
> >
> > Der er ikke noget teknisk problem at bruge en compiler til noget andet
end
> > hvad producenten har tænkt og supporterer.
> > Man skal "blot" skrive den kode (f.eks. memory håndtering, I/O), som den
> > compilerede med run-time library forventer.
>
> Men det er vel ret svært at starte programmet, hvis man ikke må skrive
> andet end c++-kode, og man ikke har noget andet kode til at starte det
> op.
Svært ja da - svært men ikke umuligt.
Hvem siger at man ikke har andet kode at starte det op med ?
Jeg skrev jo netop det modsatte ovenfor, og tidligere i denne tråd.
Man kan da "bare" skrive boot-loaderen og C++ opstartskoden.
>
> > Se
> > http://www.pharlap.com/
> > for et eksempel på et produkt til at lave embedded, real-time
applikationer
> > med Visual C++ V6.0
>
> Så vidt jeg kan se bygger det på dos.
>
Og ?
Tror du ikke at det virker ?
Da jeg brugte Pharlap 32 bit DOS-Extender for 8-10 år siden virkede den
fint.
Der indgår også en DOS-Extender, men MS-Windows 9x / MS-Windows NT (etc.) er
_ikke_ en del af systemet.
DOS og DOS-Extender er jo "blot" kode som man kan skrive, hvis man _vil_
bruge Visual C++ uden MS-Windows.
Det er ikke nogen triviel opgave, og måske heller ikke særlig nyttigt.
Men compileren sætter _ikke_ begrænsninger for om det kan lade sig gøre. Og
det var vel det der er spørgsmålet.
Venlig hilsen
Mogens Hansen
| |
Mogens Hansen (14-12-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 14-12-01 19:45 |
|
"Anders Bo Rasmussen" <fuzz01@spamfilter.dk> wrote in message
> > Se
> > http://www.pharlap.com/
> > for et eksempel på et produkt til at lave embedded, real-time
applikationer
> > med Visual C++ V6.0
>
> Så vidt jeg kan se bygger det på dos.
>
Visual C++ V6.0 kan _ikke_ lave MS-DOS programmer.
Den kan _kun_ lave Win32 programmer.
Venlig hilsen
Mogens Hansen
| |
Bertel Lund Hansen (14-12-2001)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 14-12-01 20:22 |
|
Anders Bo Rasmussen skrev:
>En compiler kan vel godt sætte begræsningen.
Nej, faktisk ikke. Den aner jo ikke at det er et styresystem den
er i gang med at kompilere.
>>Hvis nu Visual C++ kun kan compilere til dos/windows,
>kan man ikke eksekverer outputet uden at man har et styresystem.
Jo da. Siger du at det er umuligt at kompilere et styresystem?
Ens program skal bare have indbygget de rutiner der er nødvendige
ved opstart f.eks. fra en bootdiskette. Hvis nu computeren ikke
kan boote - så kan man naturligvis ingenting, men det er ikke de
rutiner (BIOS) man plejer at kalde et styresystem.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Thomas Lykkeberg (10-02-2002)
| Kommentar Fra : Thomas Lykkeberg |
Dato : 10-02-02 14:35 |
|
On Fri, 14 Dec 2001 15:01:42 +0100, Bertel Lund Hansen
<nospam@lundhansen.dk> wrote:
>>Kan man i Borland C++Builder eller MS Visual C++ compile en c++ fil der kan
>>køre uden styresystem
>
>Det er sådan set en umulig opgave. Du kan ikke afvikle et program
>uden (mange af) de funktioner til rådighed som styresystemet
>omfatter. Man kan naturligvis godt skrive dem selv - men så laver
>man jo et styresystem, og det er en *langhåret* opgave.
Det er jo noget fis . Det er jo lige nøjagtigt det embeddede
programmører gør til daglig (undertegnede inklusive). Det er ikke spor
langhåret, man skal bare bruge sund fornuft, og tænke over at man skal
lave ALT selv. Man er dog hjulpet rigtig godt påvej mht. en PC og en
boot diskette, her er det jo BIOS som sørger for at loade dit boot
kode ind i hukommelsen, så har man INT21 kald så man kan tilgå filer
på disketten. Her kunne man så loade sit eget program. Man skal bare
bruge en helt alm. x86 C/C++ compiler.
>>Jeg ønsker en diskette som kan sættes i en computer(PC) uden styresytemet f.eks.
>>dos. Derefter skal c++ filen køre som den ville gøre med et styresytem.
>
>Hvis du bare vil have en diskette der kan bootes fra, så formater
>den med DOS. Hvis det giver pladsproblemer så kan det slet ikke
>lade sig gøre.
Her er lige det jeg taler om.
Mvh "en noget fortørnet embedded C programmør" Thomas..
| |
Bertel Lund Hansen (10-02-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 10-02-02 16:44 |
|
Thomas Lykkeberg skrev:
>On Fri, 14 Dec 2001 15:01:42 +0100, Bertel Lund Hansen
><nospam@lundhansen.dk> wrote:
.... og om 4 dage holder mit indlæg enmånedsfødselsdag.
>>omfatter. Man kan naturligvis godt skrive dem selv - men så laver
>>man jo et styresystem, og det er en *langhåret* opgave.
>Det er jo noget fis . Det er jo lige nøjagtigt det embeddede
>programmører gør til daglig (undertegnede inklusive).
Og?
Du fortæller blot at du er 'langhåret'.
>lave ALT selv. Man er dog hjulpet rigtig godt påvej mht. en PC og en
>boot diskette, her er det jo BIOS som sørger for at loade dit boot
>kode ind i hukommelsen, så har man INT21 kald så man kan tilgå filer
>på disketten.
Aha ... og det skulle vel ikke tilfældigvis være et primitivt
styresystem?
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Martin Ehmsen (10-02-2002)
| Kommentar Fra : Martin Ehmsen |
Dato : 10-02-02 17:19 |
|
Bertel Lund Hansen wrote:
> Thomas Lykkeberg skrev:
>
>>On Fri, 14 Dec 2001 15:01:42 +0100, Bertel Lund Hansen
>><nospam@lundhansen.dk> wrote:
>
> ... og om 4 dage holder mit indlæg enmånedsfødselsdag.
Undskyld Bertel at jeg nok ødelægger den sarkastiske tone i dit indlæg,
men om 4 dage er det altså _2_ måneder siden at det var den 14 Dec 2001.
Martin
| |
Kent Friis (10-02-2002)
| Kommentar Fra : Kent Friis |
Dato : 10-02-02 16:54 |
|
Den Sun, 10 Feb 2002 14:35:11 +0100 skrev Thomas Lykkeberg:
>On Fri, 14 Dec 2001 15:01:42 +0100, Bertel Lund Hansen
><nospam@lundhansen.dk> wrote:
>
>>>Kan man i Borland C++Builder eller MS Visual C++ compile en c++ fil der kan
>>>køre uden styresystem
>>
>>Det er sådan set en umulig opgave. Du kan ikke afvikle et program
>>uden (mange af) de funktioner til rådighed som styresystemet
>>omfatter. Man kan naturligvis godt skrive dem selv - men så laver
>>man jo et styresystem, og det er en *langhåret* opgave.
>
>Det er jo noget fis . Det er jo lige nøjagtigt det embeddede
>programmører gør til daglig (undertegnede inklusive). Det er ikke spor
>langhåret, man skal bare bruge sund fornuft, og tænke over at man skal
>lave ALT selv. Man er dog hjulpet rigtig godt påvej mht. en PC og en
>boot diskette, her er det jo BIOS som sørger for at loade dit boot
>kode ind i hukommelsen, så har man INT21 kald så man kan tilgå filer
>på disketten.
Øh, SVJH er INT21 da DOS systemkald. Det er INT10 m.fl. der er BIOS.
Mvh
Kent
--
Avoid the Gates of Hell. Use Linux
(Unknown source)
| |
Ivan Johansen (10-02-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 10-02-02 17:56 |
|
Kent Friis wrote:
> Øh, SVJH er INT21 da DOS systemkald. Det er INT10 m.fl. der er BIOS.
Korrekt, og BIOS kender ikke noget til filer. Hvis man vil bruge filer
er det derfor nødvendigt at lave sit eget OS eller anvende et
eksisterende, som f.eks DOS.
Ivan Johansen
| |
Niels Erik Danielsen (14-12-2001)
| Kommentar Fra : Niels Erik Danielsen |
Dato : 14-12-01 21:41 |
|
"Rasmus" <Rasmus-88@steffensen.as> wrote in message
news:9vcrn7$24ai$1@news.cybercity.dk...
> Hejsa!!!
> Kan man i Borland C++Builder eller MS Visual C++ compile en c++ fil der
kan
> køre uden styresystem, og hvordan. Jeg ønsker en diskette som kan sættes i
> en computer(PC) uden styresytemet f.eks. dos. Derefter skal c++ filen køre
> som den ville gøre med et styresytem.
> Hvis det ikke kan lade sig gøre med de compilere, hvilken skal jeg så
bruge.
Da en PC booter i real-mode skal du vel anvende en 16 Bit compiler ? Du kan
godt anvende 32 bit instruktioner, men kun 16:16 (20) bit realmode
addresering.
Jeg har engang moret mig med at lave 'Hello World' i BC3.1 og TASM uden brug
af C runtime bibliotek, under DOS.
Jeg lavede et assembler program der indeholdt noget opstarts kode der kaldte
_main.
samt indeholdt assembler rutinerne til _puts og _gets, som var implementeret
vha. noget Int21 snavs.
Det linkede jeg på mit meget simple C program, hvor jeg kun kunne anvende
funktionerne puts og gets.
Da du vil skrive boot kode, kan du ikke anvende Int21, man skal istedet
anvende BIOS rutiner Int10, 15, 16 etc..
Et andet problem er at få data ned på en boot sector, og located på en måde
at det starter rigtigt op.
Hvor stort skal dit program være ? Jeg mener at hvis det fylder mere en en
sector skal du selv læse resten ind, da BIOS vist nok bare smider den første
sector på bootdisken ind på en fast adresse og starter fra den første
indlæste adresse.
Hvis du virkelig _vil_ lave dette skal du læse noget om BIOS i f.eks. en bog
som PC-INTERN.
Du skal også sætte dig ind i x86 assembler, og hvorledes C og asssembler
linkes sammen.
Jeg prøved for sjov skyld at indlæse de første 512 byte fra en DOS disk med
DEBUG.COM
-l 0 0 0 1
//De første 2 byte er en jump instruktion
-u
0C5A:0000 EB3C JMP 003E
//Disk information
0C5A:0000 4D 53 44 4F 53-35 2E 30 00 02 01 01 00
MSDOS5.0.....
0C5A:0010 02 E0 00 40 0B F0 09 00-12 00 02 00 00 00 00 00
....@............
0C5A:0020 00 00 00 00 00 00 29 4A-2E F7 1C 4E 4F 20 4E 41 ......)J...NO
NA
0C5A:0030 4D 45 20 20 20 20 46 41-54 31 32 20 20 20 FA 33 ME FAT12
..3
//Resten af boot sectoren
0C5A:003E FA CLI
0C5A:003F 33C0 XOR AX,AX
0C5A:0041 8ED0 MOV SS,AX
0C5A:0043 BC007C MOV SP,7C00
0C5A:0046 16 PUSH SS
0C5A:0047 07 POP ES
0C5A:0048 BB7800 MOV BX,0078
0C5A:004B 36 SS:
0C5A:004C C537 LDS SI,[BX]
//Og der er meget mere....
| |
|
|