Path: csiph.com!goblin1!goblin2!goblin.stu.neva.ru!peer01.am4!peer.am4.highwinds-media.com!peer01.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Stefan Reuther Newsgroups: de.comp.lang.assembler Subject: Re: Blitz copy&draw Date: Sat, 21 Oct 2017 12:48:40 +0200 Lines: 27 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net 7erafoQp1Rfffk1LdP89GQk50idheoJoDx2j+pqmnoE2gzefuY Cancel-Lock: sha1:IoaXEpIphL5srfLr/4YpfNiD5Lw= User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.0 Hamster/2.1.0.1538 In-Reply-To: X-Received-Body-CRC: 494367853 X-Received-Bytes: 2114 Xref: csiph.com de.comp.lang.assembler:1185 Am 20.10.2017 um 19:46 schrieb Jens Kallup: > 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 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