mode13



  • Und warum nicht, hab das nämlich aus 'nem Tut, das allerdings nicht auf visual c++ geschrieben ist, und wollt mir sowas in visual c++ basteln. Außerdem hab ich den "Punkt zeichnen (int 10, al 0Ch)" Thread gelesen, und da ist das doch so ähnlich. Welche Interrupts funktionieren denn in Windows-Programmen, bzw. wie könnte man denn sowas in Windows machen?



  • Eigentlich funktionieren in Windowsprogrammen gar keine Interrupts. Dafuer gibts die Win-API.



  • Und wenn ich in MASM/TASM ein Programm schreibe, ist das dann kein Windows-Programm? Und da funktionieren die Interrupts doch, oder? Hab den Quelltext übrigens aus der Konsolen-FAQ Thema: Zeichnen im DOS-Mode. Und dein Kollege SideWinder ist anscheinend der Meinung, das es doch geht, er hats ja editiert und in die FAQ gestellt.



  • Und wenn ich in MASM/TASM ein Programm schreibe, ist das dann kein Windows-Programm?
    Das kommt darauf an, wie du es compilierst. Mit MASM/TASM kannst du auch win32-Anwendungen erstellen, wie mit VC++
    Und da funktionieren die Interrupts doch, oder?
    Nur, wenn du es als DOS-Programm compilierst.
    Hab den Quelltext übrigens aus der Konsolen-FAQ Thema: Zeichnen im DOS-Mode.
    Das ist genau der Knackpunkt: DOS-Mode und nicht win32.

    Ansonsten gibts an deinem code schliesslich auch keine Fehler. 😉



  • Was du brauchst um die Interrupts in Windows zu nutzen, ist ein 16-bit Assembler. TASM ist solch einer und deshalb geht das. Bei Programmen die mit einem 16-bit Assembler assembliert worden sind, wird ein DOS emuliert. Visual C++ ist ein 32-bit Compiler und deshalb ist dies nicht möglich. Da hast du keine Chance!



  • Danke euch beiden, und warum kann mir Nobuo T nich sofort so eine Antwort geben?



  • Ich glaube mal dazu muss ich mich nun nicht auslassen, da man aus meinen Antworten den selben Schluss ziehen koennte. 😉
    Ich poste nunmal wirklich nur ungern Halbwahrheiten, wie unser unregistrierter Freund. 🕶



  • ok, wenn meine antwort nur die halbwahrheit war, was war dann an meiner aussage falsch?



  • ein 16-bit Assembler. TASM ist solch einer
    nope, TASM ist nicht nur ein 16Bit-compiler. Damit lassen sich auch 32Bit Windows-Konsolenanwendungen, Windowsanwendungen und dlls erstellen 😉
    Was du brauchst um die Interrupts in Windows zu nutzen, ist ein 16-bit Assembler
    Nochmal *tilt*. Das geht genausogut mit jedem anderen 16Bit DOS-Compiler zB. fuer C. Das urspruengliche Beispiel war schliesslich auch in C.
    Bei Programmen die mit einem 16-bit Assembler assembliert worden sind, wird ein DOS emuliert.
    Nur in Multitaskingsystemen, wie Windows. Ist auch nicht unbedingt selbstverstaendlich.

    [ Dieser Beitrag wurde am 17.06.2002 um 00:30 Uhr von Nobuo T editiert. ]



  • ich möcht mal jemanden sehen der versucht unter windows eine interruptgestuerte dos anwendung zu starten. ( ausnahme die win9x reihe. aber die wird von microsoft ja nicht mehr gewartet ) wird sicherlicht mit ner bösen fehlermeldung enden.

    das hängt damit zusammen, das windows ein mulitprozessing betribsystem ist ( man kann sich drüber streiten) und entsprechende sicherheitskriterien eingebaut hat die sowas verhindern sollen. Hardware zugriffe sind in der Regel nur dem Betriebsystem / und treibern vorbehalten. dementsprechend werden auch solche vergehen mit der roten karte geandet. das gleiche gilt für direckte speicherzugriffe. und das aufrufen entsprechender interrupte.

    gruss termite


Anmelden zum Antworten