Hilfe in Assembler

Hi, kann mir jemand eine routine geben mit der ich einen punkt schnell zeichnen kann
, also mit direct memory accessing.
Ich mach das zur zeit noch mit BIOS-Ints,
doch das ist viel zu langsam.
Ich habe solche routinen schon gesehen,
würde aber gern wissen wo ich genau was
reinschreiben muß, und was ich beachten
muß, damit es funzt.

Danke!
Euer @laf

Hallo Olaf !

Da ich nicht weiß, ob Du in reinem Assembler programmierst oder in einer Sprache wie C(++) oder Pascal oder was auch immer, habe ich Dir hier den reinen Assemblerteil angegeben.

y bezeichnet die Y-Koordinate des Punktes
x bezeichnet die X-Koordinate des Punktes
c bezeichnet die Farbe (256)
SegA000 ist die Segmentadresse des VGA-Grafikspeichers und müßte als Pointer
($A000,0) deklariert werden.

mov ax,y
mov bx,ax
shl ax,8
shl bx,6
add bx,ax
add bx,x
mov ax,SegA000
mov es,ax
mov al,c
mov es:[bx],al

Diese Routine funktioniert allerdings nur im Modus 13h !
Zu erreichen mittels:

mov ax,13h
int 10h

Es ist eigentlich ganz simpel…
Die SHL-Anweisungen erreichen eine Multiplikation mit 320 und die Addition
add bx,x addiert die X-Koordinate.
Dann muß alles nur noch an die entsprechende
Speicherstelle geschrieben werden…

Ich hoffe, ich konnte Dir helfen…

Daniel

hi daniel, vielen dank für
die hilfe. wenn ich noch fragen habe
schreibe ich dir mal ne mail(keine
zeit jetzt deine routine auszuprobieren).

mfg @laf