|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 28, 2003 17:19:45 Народ, кого интересует сабж? А то такой хороший Фасм, а из-за отсутствия obj с расширителями заморочки. Да и PM разобраться неплохо. Кого интересует, пишите в форум или мне на мыло.[email=]kolia_85@rambler.ru[/email] |
|
|
Дата: Июл 5, 2003 15:51:16 · Поправил: bsl_zcs Зачем? Была такая чудная вещь 32bitcom от Maxwell Sayles aka Fysx. DPMI DOS-extender, размером 83 байта. Гугль его находит, например, здесь: http://www.brillianet.com/programming/protected_mode/nec/ Единственным его недостатком, была ненулевая база дефолтного селектора. Так вот, когда-то давно, при написании 4k-intro на насме, мне стало лень переделывать тасмовский текст экстендера под насмовский синтаксис, поэтому я его собрал в бинарник, и подключал банально incbin-ом. :) Сейчас буквально за пять минут глянул, с фасмом это тоже прекрасно работает. Выглядит его использование так: ____________________________________________ org 100h use32 file "extender.bin" ;============== ======= ================================================== SelBase equ [ds:0000FFF6h] ;============== ======= ================================================== ; Графический режим push 13h pop eax int 10h ; Адрес видеопамяти mov eax,0A0000h sub eax,SelBase mov [VideoMem],eax ;-------------- ------- -------------------------------------------------- ; Примитивный пример main: mov edi,[VideoMem] mov ebx,200 .loopy: mov ecx,320 .loopx: mov eax,ebx add eax,esi xor eax,ecx and al,0Fh add al,10h stosb loop .loopx dec ebx jnz .loopy inc esi ;-------------- ------- -------------------------------------------------- ; проверка клавиатуры. Портит AX in al,60h dec al jz exit jmp main exit: ; Восстановление видеорежима push 3 pop eax int 10h ; Выход mov ax,4c00h int 21h ;============== ======= ================================================== VideoMem rd 1 ____________________________________________ Результирующий com-файл занимает 159 байт, из которых 86 - экстендер. Если это до сих пор кому-нибудь надо, свистните здесь, я сброшу готовый бинарник экстендера и примеры на фасме и насме. |
|
|
Дата: Июл 5, 2003 16:39:40 Интересно былобы....но я больше под дос не програмирую(( но вобщем может пригодится, и примеры конечно.. |
|
|
Дата: Июл 8, 2003 13:19:54 Прикольный способ кидаться файлами у вас на форуме практикуется. :) Даже фидошная ностальгия просыпается. ;) Так вот. Это экстендер: section 1 of file Extender.bin < UUE by DN/2 1.51.10b8/W32 > begin 644 Extender.bin MM$J[AQ;-(8O#S2\KPW-"!E>,V`4`$([`B\-G_QPD<C&P!HS+S3%14FC/`+7Z I45)J_S/`N0$`S3&+V+@,`&:+_,TQ2$C-,8[8CL".T%-H5@'+N/],S2$` ` end sum -r/size 32952/149 section (from "begin" to "end") sum -r/size 13715/86 entire input file Урла откуда можно слить оригинал экстендера с оригинальными же примерами и описаниями - двумя мессагами выше. Пример на фасме - там же. Тот же самый пример по-быстрому переведённый на насм: ____________________________________________________ org 100h bits 32 incbin "extender.bin" ;============== ======= ================================================== %define SelBase [0000FFF6h] ;============== ======= ================================================== ; Графический режим push byte 13h pop eax int 10h ; Адрес видеопамяти mov eax,0A0000h sub eax,SelBase mov [VideoMem],eax ;-------------- ------- -------------------------------------------------- ; Примитивный пример main: mov edi,[VideoMem] mov ebx,200 .loopy: mov ecx,320 .loopx: mov eax,ebx add eax,esi xor eax,ecx and al,0Fh add al,10h stosb loop .loopx dec ebx jnz .loopy inc esi ;-------------- ------- -------------------------------------------------- ; проверка клавиатуры in al,60h dec al jz exit jmp short main exit: ; Восстановление видеорежима push byte 3 pop eax int 10h ; Выход mov ax,4c00h int 21h ;============== ======= ================================================== section .bss VideoMem resd 1____________________________________________________ |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.074 |