Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Blitz copy&draw

2 views
Skip to first unread message

Jens Kallup

unread,
Oct 20, 2017, 9:17:40 AM10/20/17
to
Hello,

give it a super fast methode to draw the AH, 02 text mode?
my tries end up in flikker.
My itention is, to:
1) draw a screen
2) save it
3) draw mouse
4) draw screen (buffer that is saved 80x25 e.g.)

If possible in nasm or C code.
Thank you
Jens

Stefan Reuther

unread,
Oct 20, 2017, 1:20:47 PM10/20/17
to
Am 20.10.2017 um 15:17 schrieb Jens Kallup:
> give it a super fast methode to draw the AH, 02 text mode?
> my tries end up in flikker.
> My itention is, to:
> 1) draw a screen
> 2) save it
> 3) draw mouse
> 4) draw screen (buffer that is saved 80x25 e.g.)

Irgendwie werd ich aus deiner Beschreibung nicht schlau, was du
eigentlich tun willst.

Allgemein: wenn's bloß darum geht, den Untergrund des Mauszeigers zu
sichern, dann sicher auch nur den, nicht den ganzen Bildschirm. Und wenn
du eh eine Schattenkopie vom Bildschirm machst, zeichne in die
Schattenkopie und kopiere das auf den Bildschirm, nicht andersherum,
Bildspeicher lesen ist langsam.

Ansonsten hab ich den Textmodus als performancetechnisch völlig
unauffällig in Erinnerung, der kommt auch mit relativ naivem Code klar.
Ich meine: sind doch nur 4k.


Stefan

Jens Kallup

unread,
Oct 20, 2017, 1:47:09 PM10/20/17
to
Am 20.10.2017 um 19:04 schrieb Stefan Reuther:
> sichern, dann sicher auch nur den, nicht den ganzen Bildschirm. Und wenn
> du eh eine Schattenkopie vom Bildschirm machst, zeichne in die
> Schattenkopie und kopiere das auf den Bildschirm, nicht andersherum,
> Bildspeicher lesen ist langsam.

Das mit der Kopie mache ich ja, aber ohne Erfolg:
https://pastebin.com/SJBJmmiM

Jens

Stefan Reuther

unread,
Oct 21, 2017, 7:05:16 AM10/21/17
to
Auch mit diesem Code wird nicht klarer, was du tun willst, weil der
(sorry) einfach keinen für mich ersichtlichen Sinn ergibt.

Was soll das 'memset' ("rep stosb") in Zeile 18? Das kopiert wiederholt
ein Byte aus 'VideoMem' in die ersten beiden Bytes von 'buffer'. Da
'VideoMem' offensichtlich den Typ 'unsigned short*' hat, werden hier
80*25*2*2 Bytes gelesen (also 8k, nicht 4k). Vielleicht willst du hier
eigentlich ein 'memcpy' ("rep movsb"), aber wie gesagt, so richtig klar
wird mir das nicht.

Was soll die Zuweisung in Zeile 25? In Zeile 29 wird dann der lokale
'buffer' modifiziert, der Originalwert von 'VideoMem' ist verloren (und
falls das tatsächlich auf den Bildspeicher B800:0000 zeigte, wird der im
Folgenden nicht mehr angefasst).


Stefan
0 new messages