Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Programma DOS in C

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Programma DOS in C

Postdi infinito1971 » 10/05/07 08:56

Ciao a tutti,
stavo giusto provando una cosa simile (praticamente identica) a quella riportata nel seguente forum:

Forum

che potete anche leggere in inglese seguendo il seguente link:

Clicca

In pratica mi sono ritrovato anche con lo stesso identico problema... :cry:

In tale forum viene suggerito o di installare djgpp ed utilizzare tale compilatore oppure di utilizzare funzioni dell'API di Windows.
Ora, poichè non voglio seguire nessuna di queste due strade, mi chiedo ma davvero non è proprio possibile compilare il programma (il cui sorgente potete trovarlo nella pagina del forum sopra indicato) con devcpp?
Gradirei qualche opinione in merito.

Grazie in anticipo,
infinito1971
Questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
Avatar utente
infinito1971
Utente Senior
 
Post: 531
Iscritto il: 01/08/02 21:22
Località: Napoli

Sponsor
 

Postdi infinito1971 » 10/05/07 15:37

Da quanto letto in rete, sembra proprio che il problema che ho esposto non abbia soluzione... :(
L'unico modo per far funzionare il suddetto codice è quello di compilarlo con un compilatore a 16 bit e non con uno a 32 bit come Dev-Cpp.

Un saluto,
infinito1971
Questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
Avatar utente
infinito1971
Utente Senior
 
Post: 531
Iscritto il: 01/08/02 21:22
Località: Napoli

Postdi zello » 10/05/07 23:39

Non puoi usare chiamate al bios (ints in generale) sotto windows (soprattutto se il kernel è quello di nt). Se compili per dos la chiamata viene virtualizzata, ma comunque windows non ti lascia pistolare l'hardware più di tanto.
La cosa più logica è *davvero* usare le api win32... anche perché se passi per la virtualizzazione la cosa diventa di una lentezza esasperante.

Comunque, io uso un vecchio pacific c compiler (a 16 bit), che mi è rimasto sull'harddisk almeno da 10 anni; in rete non si trova più (la hisoft ha smesso di distribuirlo), ma la licenza era free. Fa discretamente cagare, ma se non devi farci nulla di particolare va bene: ha anche una sorta di ide (qualcuno si ricorda il Turbo Pascal?). E' un mega di roba (trovi anche - che so io - openwatcom che compila a 16 bit, ma sono una 50ina di mega...). Stante che la licenza è ancora di libero utilizzo (non ho trovato appunti della hisoft su un cambio di licenza), se vuoi te lo mando..
Codice: Seleziona tutto
C:\temp>type temp.c
#include <stdio.h>

int main()
{
        printf("Hello world\n");
        return 0;
}

C:\temp>temp.exe
Hello world

C:\temp>debug temp.exe
-u
0D3C:0000 FC            CLD
0D3C:0001 C5168600      LDS     DX,[0086]
0D3C:0005 B89D0E        MOV     AX,0E9D
0D3C:0008 8ED8          MOV     DS,AX
0D3C:000A 8ED0          MOV     SS,AX
0D3C:000C 26            ES:
0D3C:000D 8B1E0200      MOV     BX,[0002]
0D3C:0011 4B            DEC     BX
0D3C:0012 2BD8          SUB     BX,AX
0D3C:0014 B80000        MOV     AX,0000
0D3C:0017 F7C300F0      TEST    BX,F000
0D3C:001B 7506          JNZ     0023
0D3C:001D B104          MOV     CL,04
0D3C:001F D3E3          SHL     BX,CL
-q

Ah, i buoni vecchi 16 bits...
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi infinito1971 » 11/05/07 11:25

Ciao zello,
ti ringrazio molto per l'ottimo (come sempre!) intervento e per il compilatore che mi hai suggerito di utilizzare (che si riesce ancora a trovare in rete!).
In realtà già compilavo il programma citato in precedenza con una vecchia versione di Turbo C.
Il fatto è che mi sarebbe piaciuto utilizzare qualcosa di più moderno ed opensource... da qui l'aver pensato a devcpp...

Grazie ancora,
infinito1971
Questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
Avatar utente
infinito1971
Utente Senior
 
Post: 531
Iscritto il: 01/08/02 21:22
Località: Napoli


Torna a Programmazione


Topic correlati a "Programma DOS in C":


Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti