1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Turbo-Assembler: Videomodus und Farbpalette

Discussion in 'Programmieren' started by Golgathaner, Dec 9, 2004.

Thread Status:
Not open for further replies.
  1. Hallo!

    Ich habe da ein kleines Problem! Und zwar möchte ich in einem DOS-Programm eine Bilddatei auslesen, auf dem Bildschirm ausgeben und verändern!
    Doch soweit komm ich gar nicht, denn ich befinde mich meiner Meinung nach zwar im Videomodus (320*200), allerdings kann ich weder die Falbpalette aktivieren noch die Hintergrundfarbe ändern, sondern sehe nur einen schwarzen Bildschirm!

    Hier ein kurzer Auszug aus meinem Programm:

    BILD equ 0A000h
    :
    :
    :
    mov ax, Bild
    mov ds, ax
    :
    :
    :
    mov ax, 00h
    mov al , 00d
    int 10h

    mov ax, 0bh
    mov ah, 08h
    mov bh, 00
    mov bl , 01
    int 10h

    Ich hoffe mir kann jemand sagen wo hier der Fehler liegt!

    MfG Golgathaner
     
  2. Sumo

    Sumo Kbyte

    Code:
    mov ax, 00h 
    mov al , 00d 
    int 10h
    Du wechselst gar nicht in den Grafikmodus sondern in einen 40*25 Textmodus.
    Außerdem lädst du die Register viel zu umständlich. Erst ax mit 0 initialisieren und dann nochmal das selbe mit al ist überflüssig.
    ax besteht aus einem High und einem Low Teil also ah und al. Wenn du mov ax, 1001h schreibst steht in ah 10h und in al 01h.
    mov ax, 0h ergibt ah=0 und al=0.
    Code:
    mov ax, 0bh
    mov ah, 08h
    mov bh, 00
    mov bl , 01
    int 10h
    
    Du willst irgendwelche Zeichen vom Bildschirm auslesen. In den Grafikspeicher schreiben kannst du damit nicht.
     
Thread Status:
Not open for further replies.

Share This Page