Hallo Rolf,
ich muß mich leider nochmals an sie wenden, da ich das mit dem gDrawBitMap nicht verstehe. Ich habe ein BitMap wie im Bild zu sehen gezeichnet und unabhängig von meinem Display die Parameter aufgezeichnet, die an XOrPixel übergeben werden.
Das Bild hat 36 "aktive" Pixel, also müßte doch 36 mal XOrPixel aufgerufen werden ? Es sind jedoch nur 20 Aufrufe. Oder werden die oberen/unteren horizontalen 5 Pixel in einem Byte geschrieben ? Warum sehe ich diese dann nicht in "Mask" gesetzt ? "Pixel" bring (wie man unten sieht) auch nicht die richtigen Daten. Dann müßt "Mask" oder "Pixel" des ersten Datenblockes 11111000 sein.
Hier die Aufzeichnung der Übergabeparameter: Immer 5 Zeilen sind ein Aufruf: Adresse, Mask, Pixel und meine gelesenen Displaydaten und die modifizierten Displaydaten.
Code
1024
10000000
00000111
00 00 00 00
F0 00 00 00
1026
00001000
00000011
00 00 00 00
00 00 F0 00
1056
10000000
00000111
00 00 00 00
F0 00 00 00
1059
10000000
00000111
00 00 00 00
F0 00 00 00
1088
10000000
00000111
00 00 00 00
F0 00 00 00
1091
10000000
00000111
00 00 00 00
F0 00 00 00
1120
10000000
00000111
00 00 00 00
F0 00 00 00
1123
10000000
00000111
00 00 00 00
F0 00 00 00
1152
10000000
00000111
00 00 00 00
F0 00 00 00
1155
10000000
00000111
00 00 00 00
F0 00 00 00
1888
10000000
00000111
00 00 00 00
F0 00 00 00
1891
10000000
00000111
00 00 00 00
F0 00 00 00
1920
10000000
00000111
00 00 00 00
F0 00 00 00
1923
10000000
00000111
00 00 00 00
F0 00 00 00
1952
10000000
00000111
00 00 00 00
F0 00 00 00
1955
10000000
00000111
00 00 00 00
F0 00 00 00
1984
10000000
00000111
00 00 00 00
F0 00 00 00
1987
10000000
00000111
00 00 00 00
F0 00 00 00
2016
10000000
00000111
00 00 00 00
F0 00 00 00
2018
00001000
00000011
00 00 00 00
00 00 F0 00
Meine Protokollierung hat ergeben, daß bei einem gDrawBitMap nur XorPixel aufgerufen wird.
gruss
Harry
PS: Ok das hab ich jetzt auch verstanden: "Pixel" ist die Nummer des gesetzen Bits in "Mask"
PS #2: Mir ist grad aufgefallen, daß das ausgegebene BitMap definitiv nicht 32x32 Pixel groß ist - seltsam
das sind nur geschätzte 20x32 Pixel.
Das BitMap wird mit: Testbmp : Array[1..(32*32 div 8 )+2] of Byte = 'Test.pbmp'; eingebunden.
PS #3: Ich habe gerade das Array "Testbmp" als Binärstring auf dem Display ausgegeben (die beiden ersten Bytes enthalten die Bitmapgröße) und das paßt.