svnno****@sourc*****
svnno****@sourc*****
2011年 10月 16日 (日) 21:11:20 JST
Revision: 171 http://sourceforge.jp/projects/negitoro/svn/view?view=rev&revision=171 Author: is2os Date: 2011-10-16 21:11:20 +0900 (Sun, 16 Oct 2011) Log Message: ----------- gview 0.3 [bmp.nasm] ã»ã½ã¼ã¹ãã¡ã¤ã«ã®æåã³ã¼ããEUC-JPããSJISã«å¤æ´ Modified Paths: -------------- trunk/apps/gview/bmp.nasm Modified: trunk/apps/gview/bmp.nasm =================================================================== --- trunk/apps/gview/bmp.nasm 2011-07-31 17:51:27 UTC (rev 170) +++ trunk/apps/gview/bmp.nasm 2011-10-16 12:11:20 UTC (rev 171) @@ -50,16 +50,16 @@ %if 0 int info_BMP(struct DLL_STRPICENV *env, int *info, int size, UCHAR *fp); -/* 成功したら1 (非0?), 失敗したら0 */ +/* ¬÷µ½ç1 (ñ0?), ¸sµ½ç0 */ int decode0_BMP(struct DLL_STRPICENV *env, int size, UCHAR *fp, int b_type, UCHAR *buf, int skip); -/* エラーコードを返す。とりあえず非0にしてるだけ */ -envは64KBのワークエリアである。先頭8dwは返り値用になっている。 -揮発性らしく, インスタンス変数的には使えないようだ。JPEG_initで -base_imgを作るのはdecodeのときだけでいいと思う。 +/* G[R[hðÔ·BÆè ¦¸ñ0ɵÄ龯 */ +envÍ64KBÌ[NGAÅ éBæª8dwÍÔèlpÉÈÁÄ¢éB +ö«çµ, CX^XÏIÉÍg¦È¢æ¤¾BJPEG_initÅ +base_imgðìéÌÍdecodeÌÆ«¾¯Å¢¢Æv¤B %endif -[absolute 0] ;naskなら[section .bss] org 0 かな win32だからダメか +[absolute 0] ;naskÈç[section .bss] org 0 ©È win32¾©ç_© bmpinfo: .regs: resd 4 .reteip: resd 1 @@ -109,7 +109,7 @@ xor edx, edx cmp eax, byte BMP.iSize+4 - jbe .. @ ret ;中継してしまう + jbe .. @ ret ;pµÄµÜ¤ cmp word[esi],'BM' je .notMAC sub esi, byte -128 @@ -121,12 +121,12 @@ cmp word[esi], 'BM' jne .ret .notMAC: - ;;MS,OS/2 フォーマット確認 + ;;MS,OS/2 tH[}bgmF mov ecx, [esi +BMP.iSize] cmp ecx, byte 12 ;OS/2 format. jne .MS cmp eax, byte BMPOS2_size - jbe .ret ;coreヘッダなし + jbe .ret ;corewb_ȵ lea ebx, [esi+ecx+14] ;palette movzx eax, word[esi+BMPOS2.iWidth] ;width movzx ecx, word[esi+BMPOS2.iHeight] ;height @@ -134,7 +134,7 @@ mov dl, 3 ;paletteSize jmp short .endif .MS: cmp eax, byte BMP_size - jbe .ret ;infoヘッダなし + jbe .ret ;infowb_ȵ lea ebx, [esi+ecx+14] sub ecx,byte 40 jne .ret ;unknownFormat @@ -147,22 +147,22 @@ .endif: add esi, [esi +BMP.fOffBits] - ;size¤¬¾®¤µ¤¤¾ì¹çheight¤òºï¤Ã¤Æ¤Ç¤ - ;読めると答えるべきだろう。今はエラー + ;sizeª¬³¢êheightðíÁÄÅ + ;ÇßéƦé׫¾ë¤B¡ÍG[ push edx push eax mul ebp ;eax=width*bpp add eax, byte 7 shr eax, 3 ;lineSizeWithoutPudding mov edx, eax - add eax, byte 3 ;size<1GB¤ò²¾Äꤷ¤Æedx¤ò̵» + add eax, byte 3 ;size<1GBð¼èµÄedxð³? and al, -4 ;lineSizeWithPudding sub edx, eax ;-puddingSize push edx mul ecx pop edx add esi, eax - add esi, edx ;最終行の最後にはpuddingがないと見るべき + add esi, edx ;ÅIsÌÅãÉÍpuddingªÈ¢Æ©é׫ cmp esi, [esp+8] ;endOfModule pop eax ja .ret2 @@ -173,8 +173,8 @@ ret ;*************************************************************** -; 小ささ優先で作っているが, 速さ優先で作った昔のよりいいかも。 -; ÉʼÁºÇÄã¤Î¹â®¥â¡¼¥É¤Î¤ßºî¤Ã¤Æ¤¤¤ +; ¬³³DæÅìÁÄ¢éª, ¬³DæÅìÁ½ÌÌæ袢©àB +; i¿Åá̬[hÌÝìÁÄ¢ [absolute 0] decode: @@ -228,7 +228,7 @@ [absolute -4*2] bb: -.col0: resd 1 ;bpp1で使う +.col0: resd 1 ;bpp1Åg¤ .reteip: resd 1 .sw: resd 1 ;byte .paletteSize: resd 1 ;byte @@ -303,7 +303,7 @@ ;ecx=height, edx=0, ebx=palette ;esi=endOfImage, edi=destinationBuffer - ;pallete変換 + ;palleteÏ· mov dl, 255 mov eax, [ebp+bb.paletteSize] sub ebx, eax @@ -347,7 +347,7 @@ ;ecx=height, edx=0, ebx=palette ;esi=endOfImage, edi=destinationBuffer - ;pallete変換 + ;palleteÏ· mov dl, 16 mov eax, [ebp+bb.paletteSize] sub ebx, eax @@ -398,7 +398,7 @@ ;ecx=height, edx=0, ebx=palette ;esi=endOfImage, edi=destinationBuffer - ;pallete変換 + ;palleteÏ· mov eax, [ebx] add ebx, [ebp+bb.paletteSize] and eax, 0x00ffffff @@ -471,9 +471,9 @@ shl eax, 16 mov ax, [esi] add esi, byte 3 - ;減色処理 eax=24bitColor, edx=work, ecx=counter, ebx=work - ;川合さんの趣味で没ったルーチンを持ってくるもよし(ぉ - ;誤差拡散ルーチンを持ってくるもよし + ;¸F eax=24bitColor, edx=work, ecx=counter, ebx=work + ;ì³ñÌï¡ÅvÁ½[`ðÁÄéàæµ(§ + ;ë·gU[`ðÁÄéàæµ shr ah, 2 ;???????? RRRRRrrr 00GGGGGG BBBBBbbb inc edi shr eax, 3 ;000????? ???RRRRR rrr00GGG GGGBBBBB @@ -497,7 +497,7 @@ ;ecx=height, edx=0, ebx=palette ;esi=endOfImage, edi=destinationBuffer - ;pallete変換 + ;palleteÏ· mov dl, 255 mov eax, [ebp+bb.paletteSize] sub ebx, eax @@ -541,7 +541,7 @@ ;ecx=height, edx=0, ebx=palette ;esi=endOfImage, edi=destinationBuffer - ;pallete変換 + ;palleteÏ· mov dl, 16 mov eax, [ebp+bb.paletteSize] sub ebx, eax @@ -592,7 +592,7 @@ ;ecx=height, edx=0, ebx=palette ;esi=endOfImage, edi=destinationBuffer - ;pallete変換 + ;palleteÏ· mov eax, [ebx] add ebx, [ebp+bb.paletteSize] call .paletteConv