1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- INCLUDE IMGFUN.inc
- .CODE
- PUBLIC IMGremap
- IMGremap PROC imageBuf, pitch, x1, y1, bitmapPtr, colorTableArray
- LOCAL mapWidth:DWORD, destLineDiff:DWORD
- STARTPROC
- MOV EAX, imageBuf
- MOV image_buf, EAX
-
- MOV AX , DS
- MOV ES , AX
- XOR EAX, EAX
- MOV ESI, bitmapPtr
- LODSW
- MOV mapWidth, EAX
- LODSW
- MOV ECX, EAX
- MOV EDX, pitch
- SUB EDX, mapWidth
- MOV destLineDiff, EDX
- MOV EDX, colorTableArray
- CLD
-
- CALC_ADDR EDI, x1, y1, pitch
- @@startY: PUSH ECX
- MOV ECX, mapWidth
- @@startX:
- LODSB
- MOVSX EAX, AL
- MOV EBX, [EDX + 4*EAX]
- MOV AL,[EDI]
- XLATB [EBX]
- STOSB
- LOOP @@startX
- POP ECX
- ADD EDI, destLineDiff
- LOOP @@startY
- @@end: ENDPROC
- IMGremap ENDP
- END
|