|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Дек 8, 2002 03:36:19 Хай олл! Нет ли у кого маленького (< 120 байт) bmp (320x200x256) viewer'a? И известен ли вообще асболютный чемпион? |
|
|
Дата: Дек 8, 2002 07:00:23 120 bytov? Eto slishkom malo. U menya pod 214 poluchaetsya. |
|
|
Дата: Дек 8, 2002 15:17:11 comrade Да нет, это много :) Я имею ввиду что не надо проверять header и наличие файла. Файл берется из коммандной строки. Так что у меня получается 115 байт. Но 100% можно меньше cделать.... я кажется где-то видел дохлую ссылку на 101-байтный... Кстати, минимальный pcx viewer насколько я знаю - 83 байта. |
|
|
Дата: Дек 8, 2002 19:36:25 Tak file vsyo vremya 320x200x256? Toest ne nado proveryat width/height/bitdepth? |
|
|
Дата: Дек 8, 2002 20:14:20 Gde vobshe pro eto napisano? Compo chto li kakoi to? |
|
|
Дата: Дек 8, 2002 21:00:57 comrade Да нигде не написано :) Просто мне интересно посмотреть на круто оптимизированый вьюер :) Ксати мой 'дорос' до 106 байт. так что если есть что поменьше - хотелось бы увидеть А вообще конечно такие compo были... |
|
|
Дата: Дек 8, 2002 21:10:03 Ia pod 96 bytov s'umel. No: - file tolko 320x200x256 - ne proveraet na oshibki - ne vikluchaet mode13h Zato zhdet key-press chtob vite v DOS (cherez "ret"). A kakoi u vas, tovarisch AV? |
|
|
Дата: Дек 8, 2002 23:03:20 |
|
|
Дата: Дек 11, 2002 20:06:20 comrade у меня 97 байт - зато 3-й режим на выходе ставит :p если без установки - 92 байта! ---cut--- ;bmp 320x200x256 viewer. 2002, AV ;run at dos/win9x only! {tasm, tlink /t} ;97 bytes! model tiny .code org 100h Start: ;-\ ;**open file** mov bl, 80h add bl, ds:[bx] mov ds:[bx+1], bh ;set ASCIIZ mov ah, 3Dh mov dx, 82h int 21h ;jc Quit xchg bx, ax ;_/ ;-\ ;**set 320x200x256 mode** mov al, 13h int 10h ;_/ ;-\ ;**get data** mov ah, 3Fh mov cx, 65078 push ax ;lea dx, data pop ds ; int 21h ;_/ ;-\ ;**set pallete** mov si, dx add si, 57 ;header(53)+4 xor ax, ax Pal: mov dx, 3c8h out dx, al inc dx push ax mov cx, 3 rgb: dec si mov ax, ds:[si] db 0C1h, 0E8h, 2 ;shr ax, 2 out dx, al loop rgb pop ax inc ax add si, 7 test al, al ;al=0 if ax = 100h jne Pal ;_/ ;-\ ;**display data** sub si, 3 db 68h, 0, 0A0h, 7 ;push A000|pop es mov di, 64000 mov dx, 200 NextLine: sub di, 640 mov cx, 320 rep movsb dec dx loopne NextLine ;_/ mov ah, 10h int 16h mov ax, 3 int 10h Quit: retn End Start |
|
|
Дата: Дек 11, 2002 20:19:53 Предыдущий пост мой ;) а строки с db - это tasm у меня код оптимизирует по скорости выполнения а не размеру :) |
|
|
Дата: Дек 12, 2002 00:47:39 Не плохо! |
|
|
Дата: Дек 13, 2002 12:47:50 ...(Для AV) просто в 8086 нету команды shr ??,2 (3,4,... вообщем >1) поэтому он заменяет на несколько shr'ов. Поставь .186 (или .286 непомню) |
|
|
Дата: Дек 14, 2002 01:37:39 Bart Simpson Спасибо - так и есть, для таких мощных операций сопроцессор нужен... comrade основные части - установка палитры и отображение у нас занимают одинаково хотя алгоритмы немного различаются... так что ИМХО меньше уже невозможно... |
|
|
Дата: Дек 26, 2002 21:11:54 Возможно ... 79 байт (fasm) org 100h mov si, 0080h lodsb xchg ax,bx mov [si+bx], ah ; open file mov dx,si mov ah, 3Dh int 21h push ax ; read headers + palette xchg bx,ax mov cx, 436h mov dx,cx mov ah, 3Fh int 21h ; switch to graphics mode mov ax, 13h int 10h ; initialize palette mov cx, 256 mov si, palette+(256*4)-2 std @@pal: mov dx, 3C8h mov ax, cx dec ax out dx, al inc dx mov bl, 4 @@col: lodsb shr al, 2 out dx, al dec bx jnz @@col loop @@pal ; read data pop bx push 0A000h-14h pop ds mov dx, 320*200 @@line: mov ah, 3Fh mov cx, 320 int 21h sub dx, cx jnz @@line ; wait for key press xchg ax,dx int 16h ret org 436h bmfh: bfType dw ? bfSize dd ? bfReserved1 dw ? bfReserved2 dw ? bfOffBits dd ? bmih: biSize dd ? biWidth dd ? biHeight dd ? biPlanes dw ? biBitCount dw ? biCompression dd ? biSizeImage dd ? biXPelsPerMeter dd ? biYPelsPerMeter dd ? biClrUsed dd ? biClrImportant dd ? palette: |
|
|
Дата: Дек 27, 2002 15:43:42 Shur ну просто нет слов... 8-[ ] |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.075 |