wieso wird nichts angezeigt? (grafik im mode13)
-
hallo,
bin zufällig auf euer board gestoßen und gefählt mir sehr gut. Hat mir auch schon sehr geholfen (besonders im bezug die dos.h unter windows)
nun habe ich ein problem und hoffe ihr könnt mir helfen
also ich wollte ein paar grafik routinen schreiben.
jedenfalls wird auch der mode13 aufgerufen aber dann passiert nix. eigentlich müsste er mir ne linie ausdrucken (siehe quelltext) aber der monitor sagt mir nach ca. 1sec das er kein signal bekommt und deswegen in den energiesparmodus geht (hab auch schon andere monitor probiert. immer dasselbe)
nun bin ich mir aber ziemlich sicher das ich das programm genauso auch schon mal in pascal zum laufen gebracht hatte. natürlich dann mit pascal befehlen. und da hats geklappt.schonmal dank im voraus.
#include <dos.h> #include <memory.h> void SetMode13() { _AX = 0x0013; geninterrupt(0x10); } void Putpixel(int x, int y, unsigned char Col) { int offset = 0xa000+x+(y*320); memset((void*)offset,Col,1); } void main() { SetMode13(); for(int i=1;i<=100;i++) { Putpixel(i,10,50); } }
-
Führst du das Programm auch ganz brav unter DOS aus oder unter Windows in der Konsole?
MfG SideWinder
-
nee also ich für das mit der konsole und win aus...
dachte die würde da keine probleme machen, oder verbaut die mir den weg zu den interrupts?
aba wieso hat das unter pascal (auch in der konsole laufend) geklappt?
-
Interrupts werden von Windows gesperrt das wird so also nichts. Pascal wandelt offenbar im Hintergrund die Interruptroutinen noch in WinAPI-Calls um.
MfG SideWinder
-
Hoeh?
Es ist doch in diesem Fall reichlich egal, ob das Programm in der Konsole oder unter DOS ausgefuehrt wird, da bisher jede Windows-Version eine entsprechend authentische DOS-Umgebung simulieren kann.Wichtig ist nur, ob das Programm als DOS- oder Konsolenprogramm compiliert und gelinkt wurde - in 2. Fall koennen naemlich keine Interrupts (ausser die Paar Win-Kernel-exoten) aufgerufen werden.
Ich weiss nun nicht, welches Pascal krumme_bohne benutzt hat, aber Turbo-Pascal/Borland-Pascal erstellen normalerweise zB. DOS-Programme.
...
:???:
-
Ja aber wenn er ein Konsolenprogramm macht, macht er Win32-Programme
, die können nicht in den Mode13 schalten.
MfG SideWinder
-
danke für die schnelle hilfe
@SideWinder
das hab ich mir schon fast gedacht das windows die sperrt. hab es vorhin mal auf winNT laufen lassen und dort sagt mir DrWatson dass das mit dem "int 10h" nicht geht.
aber wie ihr schon meintet klappt es aber mit 16-bit programmen noch...gibt es nicht nen compiler der mir 16bit programm erstellt? könnt ich dann meine routinen dort einbinden, n obj-file machen und das dann mit meinem normal programm linken?
@Nobuo T
ich hab Turbo Pascal benutzt
-
hab nochmal nachgedacht... das mit dem linken wird ja nicht hinauen da ich ja kein 16bit und 32bit obj zusammenhauen kann (oder?)...
was macht den eigentlich mein programm wenn ich das normal compiliere? spielt dann windows im prinzip den pförtner und klemmt sich an alle ein und ausgänge des programms und sagt halt bei den interrupts "hier nich"
und bei 16bit programmen nicht. oder wie sieht das aus?danke nochmal.
-
habs jetzt mit digital mars gemacht und 16bit und es klappt...
-
krumme_bohne schrieb:
habs jetzt mit digital mars gemacht und 16bit und es klappt...
Echt??
wo haste den her, den digital mars??? Link???
-
Könnte mir mal wer gute 16bit Compiler empfehln, die auch das mit den interrupts hinkriegen??????
-
Borland Compiler 5.02
-
Ich glaub dazu steht auch was in der FAQ, ist aber ne böse Vermutung.
MfG SideWinder
-
Ich hab jetz digital mars + 16bit DOS Paket oder wie dass heißt,
aber dass funktioniert nich!!! Egal was ich compiliere, .c,.cpp
mit main ohne main leere main, er schreibt immmer:Expectet ";" on Struct Member
(Oder so ähnlich auf jedenfall was mit expectet ; und struct)
-
1. Genaue Fehlermeldung
2. Ab ins Compiler-Forum damit, da der Thread eigentlich nichts damit zu tun hat hast du die Erlaubnis dort einen neuen Thread aufzumachen!MfG SideWinder
-
Für 16 Bit Programme ist Turbo C von Borland das Flagschiff.
Kann man bei Borland im Museum downloaden.MfG Spacelord
-
Danke für den Tip DigiMars war mir so oder so Unsympatisch....