Re: ПОМОГИТЕ! (Pascal)
Добавлено: 07 дек 2006, 00:00
У тебя в паскале отключен математический сопроцессор 80287. Включать его в Options-Compiler-Numeric Processor-8087/80287
Этого делать никак нельзя, Хыиуду уже сказал как делать." писал(а):"shr" на "mov" заменить
JPEG - пакованный формат, тогда как я и пасал, надо достать декодер для JPEG для Pascal. С учетом ограниченной памяти в ДОС думаю что модуля такого нет, а если и есть, то он должен использовать EMS или XMS - соответственно работать с ним будет тяжело. ТОЛЬКО непакованные форматы - например BMP. В моей программе данные рисунка загружаются из заголовка. Можно это опустить, если задать собственные значения BMPWidth и BMPHeight." писал(а):Если же повторить это же, для файла формата JPG
Хочу немного поправить - математический процессор здесь не причем, 80286 Instructions надо включать, там же, в опйиях компилера" писал(а):У тебя в паскале отключен математический сопроцессор 80287. Включать его в Options-Compiler-Numeric Processor-8087/80287
Если речь идет о параметрах экрана, то здесь SetVideoMode(param) задает номер видеорежима, $12 или 18 - это кажеться 640х400х16М цветов, сейчас не могу найти список с номерами видеорежимов, поэтому лучше по-порядку потыркать и найти на глаз :-)" писал(а):1. Где менять глубину цвета и все остальные параметры рисунка?
Проблема в размере банка, постараюсь исправить..." писал(а):2. Рисунок всё равно редко делён чёрными полосками на части, как это исправить?
13 лет, с января 1993 года, начинал с программирования в машинном коде на ZX Spectrum 48K. Самоучка. :-)" писал(а):И ещё мне бы из-за любопытства хотелось вас спросить, - а вы долго уже програмированием занимаитесь? Вы самоучки или занимались с преподавателем?
Код: Выделить всё
Procedure VESA_PutScanLine(x,y,len,dataofs:Word);
label l1, l2, l3;
begin
asm
mov ax, y
mul Bytes_per_line
mov bx, ax
mov di, dx
mov ax, x
mov cl, Bytes_per_pixel
mov ch, 0
mul cx
add ax, bx
adc dx, di
push ax
cmp dx,curbank
jz l1
mov curbank,dx
mov ax,4f05h
xor bx,bx
int 10h
l1:
mov ax, len
mov cl, Bytes_per_pixel
mov ch, 0
mul cx
mov cx, ax
pop di
mov ax, VideoSeg
mov es, ax
mov si, dataofs
l2:
mov al, [si]
mov es:[di],al
inc si
add di, 1
jnc l3
inc curbank
mov ax,4f05h
mov dx,curbank
xor bx,bx
int 10h
l3:
loop l2
end;end;
Код: Выделить всё
l2:
movsb
or di, di
jnz l3
Хм, логично, учитывая, что единственная паскаль-команда в этой программе - asm, обозначает начало ассемблерной вставки. Вся остальная программа написана на чистом ассемблере. Так что не вешай нос, я тоже в этой программе ни слова ни понимаюКолядин Максим писал(а): Я ни одного значения слова непойму в той программе, что ты писал. Как ты всё это запомнил?