| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- .286
- .model small
- .code
- ORG 100h
- start:
- call ggg
- db 'cool3.bmp',0
- ggg: pop dx
- mov ax, 3d00h
- int 21h
- mov bx, ax
- mov ah, 3fh
- mov cx, bmphdr_len
- mov dx, offset cs:bmphdr
- int 21h
- mov ah, 3fh
- mov cx, bmpinfohdr_len
- mov dx, offset cs:bmpinfohdr
- int 21h
- mov ax, 13h
- int 10h
- mov cx, 256
- loadpal:
- push cx
- mov ah, 3fh
- mov dx, offset cs:colortable
- mov cx, clrtab_len
- int 21h
- mov dx, 3c8h
- mov al, col
- out dx, al
- inc col
- mov dx, 3c9h
- mov al, rgbRed
- shr al, 2
- out dx, al
- mov al, rgbGreen
- shr al, 2
- out dx, al
- mov al, rgbBlue
- shr al, 2
- out dx, al
- pop cx
- loop loadpal
- mov cx, 200
- mov ax, 0a000h
- mov ds, ax
- mov di, 320*199
- loadimage:
- push cx
- mov ah, 3fh
- mov cx, 320
- mov dx, di
- int 21h
- sub di, 320
- pop cx
- loop loadimage
- mov ah, 3eh
- int 21h
- mov ah, 08h
- int 21h
- mov ax,3
- int 10h
- int 20h
- ; End of main proc
- ;-------------------------------
- ;-------------------
- ; Bitmap Header!!!
- ;-------------------
- bmphdr:
- bfType dw 0 ; //тип файла (для битового образа - BM)
- bfSize dd 0 ; //размер файла в dword
- dw 0,0
- bfOffbits dd 0 ; //смещение данных битового образа от начала файла
- bmphdr_len EQU $-bfType
- ;-------------------
- ; Bitmap Info Header!!!
- ;-------------------
- bmpinfohdr:
- biSize dd 0 ; //число байт, занимаемых структурой
- biWidth dd 0 ; //ширина битового образа в пикселах
- biHeight dd 0 ; //высота битового образа в пикселах
- dw 0 ; //число битовых плоскостей устройства
- biBitCount dw 0 ; //число битов на пиксель
- dd 0 ; biCompression; //тип сжатия
- biSizeImage dd 0 ; //размер картинки в байтах
- dd 0,0 ; biXPelsPerMeter;//горизонтальное разрешение устройства,
- ; biYPelPerMeter; //вертикальное разрешение устройства,
- dd 0 ; biClrUsed; //число используемых цветов
- dd 0 ; biClrImportant; //число "важных" цветов
- bmpinfohdr_len EQU $-biSize
- ;-------------------
- ; Color table
- ;-------------------
- colortable:
- rgbBlue db 0; //интенсивность красного
- rgbGreen db 0; //интенсивность зеленого
- rgbRed db 0; //интенсивность голубого
- db 0; //не используется
- clrtab_len EQU $-rgbBlue
- col db 0
- end start
|