User Tag List

Страница 47 из 55 ПерваяПервая ... 434445464748495051 ... ПоследняяПоследняя
Показано с 461 по 470 из 547

Тема: Что максимум можно выжать из КР580ВГ75 Intel 8275? Обсуждение

  1. #461

    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    931
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    168
    Поблагодарили
    81 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от freddy Посмотреть сообщение
    Если б не зеленая маска, то прямо видеокарта родом из СССР
    Еще КТ315 не хватает. А зеленая маска и в СССР встречалась, чего уж.

  2. #462

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от freddy Посмотреть сообщение
    А так то это вобще не стандартные режимы, и применяются не часто в софте тех годов. Видеокарты в них переводили также не стандартными способами
    Ну, 80x43 ega, или он же 80x50 на vga - более менее стандартный, и в Norton Commander есть и в Volcov Commander (ALT+F9). Правда, волков как-то определяет, есть такой режим или нет, и если нет - то и комбинацию alt+F9 запрещает. В Turbo Pascal есть, Borland C.

    Цитата Сообщение от freddy Посмотреть сообщение
    Пока не знаю как это лучше внедрить, мало знаний о способах перевода карт.
    Да, удивительно, но я что-то как то тоже сходу не очень нашел. Единственное, что нашел что-то такое:

    Скрытый текст

    Код:
    Procedure VGA43(md:byte); Assembler;
       asm
       mov ax,1201h
       mov bl,30h
       int 10h
       mov al,md
       xor ah,ah
       int 10h
       mov ax,1112h
       mov bl,0
       int 10h
      end;
    Procedure VGA25(md:byte); Assembler;
       asm
       mov ax,1202h
       mov bl,30h
       int 10h
       mov al,md
       xor ah,ah
       int 10h
      end;
    Procedure VGA28(md:byte); Assembler;
       asm
       mov ax,1202h
       mov bl,30h
       int 10h
       mov al,md
       xor ah,ah
       int 10h
       mov ax,1111h
       mov bl,0
       int 10h
      end;
    Procedure VGA50(md:byte); Assembler;
       asm
       mov ax,1202h
       mov bl,30h
       int 10h
       mov al,md
       xor ah,ah
       int 10h
       mov ax,1112h
       mov bl,0
       int 10h
      end;
    Procedure VGA12(md:byte); Assembler;
       asm
       mov ax,1200h
       mov bl,30h
       int 10h
       mov al,md
       xor ah,ah
       int 10h
       mov ax,1114h
       mov bl,0
       int 10h
      end;
    [свернуть]


    Видно, что оперируют функцией AH=12h/BL=30h SELECT VERTICAL RESOLUTION и функцией AH=11h/AL=11h,12h,14h (SET ROM 8x14 GRAPHICS CHARACTERS, SET ROM 8x8 DOUBLE-DOT CHARACTERS, LOAD ROM 8x16 CHARACTER SET).
    Но, действительно, похоже это для VGA годится... Как именно VC.COM переключает режимы не знаю, можно попробовать дизасмить, но видимо определяют наличие EGA так:
    Код:
    mov         ah,012
    mov         bx,0FF10 ;' ►'
    int         010
    cmp         bx,0FF10 ;' ►'
    Я думал примерно так:
    Есть в Bios Data Area такое:
    Код:
    video_dda       equ     89h     ; byte - video display data area (MCGA and VGA)
    Где хранится кол-во строк scan line (200,350,400). По идее, при старте надо заполнить его чем-то вроде
    Код:
    ; Store VGA active, 400 scanline
    		mov	ax,biosdseg
    		mov	es,ax
    		mov	byte ptr es:[video_dda],00010001b
    А далее в обработчике int 10h/AH=00 нужно лезть туда и устанавливать параметры из таблички в соответствии с..

    Скрытый текст

    Код:
    ; CRTC init	
    crtc_ini:
    ; get scan line from VGA display data area
    		mov 	al, byte ptr ds:[video_dda]
    		mov	ah,al		; save al
    		shr	al,4		; extract 4 bit
    		shr	ah,6		; extract 7 bit
    		or	al,ah		; al = scan line; 0=350;1=400;2=200
    
    ; calculate parameters table adress
    		mov	si,offset cs:mode_table
    		xor	ah,ah
    		shl	al,3		; scan line mul 8
    		add	si,ax
    		push	cs
    		pop	ds		; DS:SI = mode table offset
    
    		mov	dx,vg75_cmd	; Reset CRTC cmd
    		mov	al,0
    		out	dx,al
    		dec	dx
    		mov	al,79
    		out	dx,al
    		                       ;mov	al,10011000b
    		lodsb
    		out	dx,al
    		                       ;mov	al,0fh
    		lodsb
    		out	dx,al
    		mov	al,00001001b
    		out	dx,al
    
    		inc	dx		; Reset counters
    		mov	al,11100000b
    		out	dx,al
    
    		lodsw
    		mov	bx,ax
    		call	run_DMA		; Used to time delay for previous cmd
    
    		mov	dx,vg75_cmd	; Start display
    		;mov	al,00100101b
    		lodsb
    		out	dx,al
    
    		mov	cx,5
    wait_frame:	in	al,dx
    		test	al,00000010b	; Check DMA underrun
    		jnz	crtc_ini	; Reinit CRTC if is it
    		test	al,00100000b	; Checkin end of current frame
    		jz	wait_frame
    	loop	wait_frame		;Checking until 5 frame complited
    		
    		call	run_DMA		; Start DMA service
    ...skip....
    ;enable default charset page
    		xor	al,al
    		test	byte ptr ds:[video_dda],00010000b
    		je	fnt8x16
    		mov	al,2		; set 8x8 font
    fnt8x16:
    		mov	dx,base_io	; Set 0 charset page
    		out	dx,al
    
    ...skip....
    mode_table: 
    ;2nd,3rd byte for vg75 init
    ;dma lo, dma hi
    ;start display 
    ;dummy 3 bytes for 8 bytes records
    
    ;80x50:
    db 11110001b,07h,03fh,09fh,00100111b,0,0,0
    ;80х25
    db 10011000b,0fh,09fh,08fh,00100101b,0,0,0
    ;80х30
    db 10011101b,0fh,0bfh,092h,00100101b,0,0,0
    ;80x60:
    db 11111011b,07h,07fh,0a5h,00100111b,0,0,0
    ;80x43:
    db 11101010b,0ah,0dfh,09ah,00100111b,0,0,0
    
    ....skip....
    ;====================================================================
    ;DMA run subroutine. Cold start i8257 DMAC
    ;IN:BH,BL,OUT:None
    ;--------------------------------------------------------------------
    run_DMA		proc	near
    	;	cli			;Disable interrupts
    		mov	dx,vt57_cmd
    		mov	al,80h		;Set autoload flag to programming
    		out	dx,al		;chanels 2,3 at the same time
    		mov	dx,vt57_ch2_adr
    		mov	al,0
    		out	dx,al		;set starting adress
    		out	dx,al
    		inc	dx
    		mov	al,bl
    		out	dx,al
    		mov	al,bh
    		out	dx,al
    		mov	dx,vt57_cmd	;enable ch2 service
    		mov	al,84h
    		out	dx,al
    	;	sti			;Enable interrupts
    		ret
    run_DMA	endp
    [свернуть]


    При этом в обработчике AH=12h/BL=30h просто менять кол-во строк в video_dda, или как-то так.... Ну и в 11h типа смотреть какой хотят шрифт и так же править video_dda в зависимости от... Но, наверное это тупо, да. Скорее всего так ничего не заработает.

    Цитата Сообщение от freddy Посмотреть сообщение
    Через порты напрямую если кто лез в каких то программках, то тут мы пролетаем однозначно.
    Ну, не совсем однозначно. В случае 386+ и загруженного EMM386 (проц в режиме виртуального 86) есть возможность перехватывать любые порты IO, соответственно делать какие хочешь заглушки. Таким образом, для 386+ и EMM386 можно написать простенькую утилиту эмуляции портов, которая будет в autoexec.bat грузится. Другое дело, что не всем нравится EMM386, и многие его не загружают. Но, в принципе, возможность такая есть...

  3. #463

    Регистрация
    05.01.2009
    Адрес
    г. Одесса, Украина
    Сообщений
    548
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    152
    Поблагодарили
    68 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Ну, не совсем однозначно. В случае 386+ и загруженного EMM386 (проц в режиме виртуального 86) есть возможность перехватывать любые порты IO, соответственно делать какие хочешь заглушки.
    До такого не дойдет. Надеюсь. Обойдемся без крайностей. Лучше хитросделанные проги патчить.

    Цитата Сообщение от Tronix Посмотреть сообщение
    Как именно VC.COM переключает режимы не знаю, можно попробовать дизасмить, но видимо определяют наличие EGA так:
    Времени подробно дизассемблировать нет. Но всеже в VC все не так и проще.
    Вот так определяется VGA карта:
    AH=12h,BX=FF10h Int10h. Если при возврате Bx=FF10h, значит не VGA. Правильный ответ BX=0003,CX=0009. Т.е. цветная с 256кб на борту. И положение переключателей нам не важно.
    А вот так он спрашивает параметры её режима:
    AX=1130h,BH=00 Int10h. Ответ будет CL=10,DL=18, ES:BP укажет куда то в C000:xxxx. Т.е. 16 байт на символ и 25 строк на экране.
    Переключает вобще просто:
    AX=0003h int10h,AX=1112h Int10h. Т.е. загрузка шрифта 8x8 из ПЗУ. Тут то и происходит перепрограммирование режима видеокарты.
    Далее дело техники:
    AH=12,BL=20 Int10h (альтернативный print screen)
    ax=1130 int10h. Возврат CL=8, DL=31h. Вот и 50 строк с шрифтом 8х8.
    Как другие программы делают, времени нет смотреть.
    Что делать с BIOS понятно. Когда то доделаю вышеперечисленные функции.
    Real Hardware!

    Этот пользователь поблагодарил freddy за это полезное сообщение:

    Tronix(25.12.2021)

  4. #464

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    нада отдельная АФФТАРСКАЯ тема про девайс
    с первым пстом в котором будет собрано все что надо с блаблабла
    ато щас это уже портянка с херчтонайдешь...

  5. #465

    Регистрация
    05.01.2009
    Адрес
    г. Одесса, Украина
    Сообщений
    548
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    152
    Поблагодарили
    68 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Tronix, попробуйте пожалуйста этот bios на 486й плате. Больше не должен 4 раза перезапускаться. Должен сам находить порт видеокарты.
    https://disk.yandex.ru/d/dmQDXNbMAJqr2A

    - - - Добавлено - - -

    Очень интересно какую скорость Checkit дает на 486?
    Real Hardware!

    Этот пользователь поблагодарил freddy за это полезное сообщение:

    Tronix(26.12.2021)

  6. #466

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    freddy, Пока просто посмотрел листинг, и могу сказать, что будет 4 раза перезапускаться. То есть выводить стартовую надпись, ждать секунду, очишать экран, выводить стартовую надпись, ждать, очищать экран, выводить стартовую надпись, ждать, очищать экран, выводить стартовую надпись, ждать, очищать экран и поехали. Потому что метку already_set: надо перенести куда-то сюда
    Код:
    already_set:
    vg75_not_found:	popf
    		pop	ax		;Restore registers
    		pop	bx
    		pop	cx
    		pop	dx
    		pop	di
    		pop	si
    		pop	ds
    		pop	es
    		pop	bp
    		retf		;Far return to system bios
    Но это я поправлю, без проблем. Скорость замеряю на неделе..

    - - - Добавлено - - -

    Я смотрел карту распределения памяти в CheckIt на моей четверке, так вот у меня торчат 4 штуки Ext ROM по адресам C0000, C2000, C4000, C6000, естественно с одинаковым содержанием - это BIOS видюхи. Видимо мой 486 достаточно честный, и при старте он видит, что по C0000 у нас есть extROM на 8Кб - окей, запускаем и сканируем дальше с адреса C2000 - опа, здесь у нас так же торчит extROM на 8Кб - ок, запускаем и тд. Происходит это из-за не полной дешифрации адреса vbROM видюхой.

  7. #466
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #467

    Регистрация
    05.01.2009
    Адрес
    г. Одесса, Украина
    Сообщений
    548
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    152
    Поблагодарили
    68 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Видимо мой 486 достаточно честный, и при старте он видит, что по C0000 у нас есть extROM на 8Кб - окей, запускаем и сканируем дальше с адреса C2000 - опа, здесь у нас так же торчит extROM на 8Кб - ок, запускаем и тд. Происходит это из-за не полной дешифрации адреса vbROM видюхой.
    Я сгенерировал 32кб биос. Ссылка в предылущем посте. Напишите как 486й на него реагирует.
    Real Hardware!

  9. #468

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от freddy Посмотреть сообщение
    Я сгенерировал 32кб биос.
    А вот с этим пока небольшая проблемка - у меня чего-то внезапно кончились все 27c256 ( Куплю конечно десяточек скоро, но наверное уже в новом году приедут только..

  10. #469

    Регистрация
    05.01.2009
    Адрес
    г. Одесса, Украина
    Сообщений
    548
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    152
    Поблагодарили
    68 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от freddy Посмотреть сообщение
    Что делать с BIOS понятно. Когда то доделаю вышеперечисленные функции.
    Я там что то сделал.

    Цитата Сообщение от Tronix Посмотреть сообщение
    Ну, 80x43 ega, или он же 80x50 на vga - более менее стандартный, и в Norton Commander есть и в Volcov Commander (ALT+F9). Правда, волков как-то определяет, есть такой режим или нет, и если нет - то и комбинацию alt+F9 запрещает. В Turbo Pascal есть, Borland C.
    Тестировал на DC, VC, TP7. Штатные переключалки "EGA/VGA lines" на месте и работают.

    Последняя версия CGA BIOS 0.2b и больше развиваться не будет.
    Текущая версия VGA BIOS 0.3, берите https://disk.yandex.ru/d/dLlCl9MxIMF-XA
    С наступившим Новым годом!

    - - - Добавлено - - -

    Также придумал как внедрить 80х30,80х43,80х60. У TVGA9000i есть режимы 50h, 51h, 52h. Если оно надо, могу сделать такое у VG75_ISA .
    Real Hardware!

    Этот пользователь поблагодарил freddy за это полезное сообщение:

    Tronix(01.01.2022)

  11. #470

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пока нету ПЗУ-шки на 32Кб, поэтому мучаем версию 8Кб. Да на ней я думаю и остановимся, ну куда ему 32Кб?
    Вообщем, новый BIOS сначала "не пошел".
    Как уже писал ранее, первое что превентивно сделал - перенес метку already_set в самый конец на выход, перед восстановлением всех значений из стека. А то надоедает по 4 раза приветствие писать;
    Второе - упорно моя мать не желала грузить Ext-ROM, пищала вроде два коротких три длинных или как-то так, пока не добавил в начало вот это:
    Код:
    jmp powerup
    
    ;
    ; The letters "IBM" must be at offset 1Eh
    ;
            org     01Eh
            db      "IBM VGA Compatible", 000h
    
    powerup:	;First start up
    		push	bp		;Save all registers to stack
    		push	es
    Не знаю, что конкретно помогло - то-ли ей надо что бы четвертый байт был jump, то ли все-таки что бы по 0x1eh были символы "IBM ", но без этой конструкции ну ни в какую не хочет пускать ExtROM по адресу C0000. Эта конструкция и раньше у меня была в прошлых BIOS, еще в первой версии. Просто перенес на новый.

    Замерял скорость в Checkit на AMD 486-133@160



    Немного уменьшилась, по сравнению с предыдущей версией BIOS, но оно и понятно - стало mul больше, стали дополнительные вызовы (call) и тд. В целом - все равно очень быстро, быстрее рядовых ISA8 видеокарт.

    А вот так выглядит распределение памяти, про которое говорил:


    - - - Добавлено - - -

    Цитата Сообщение от freddy Посмотреть сообщение
    С наступившим Новым годом!
    О, спасибо, взаимно. Сейчас попробую 0.3!

    Этот пользователь поблагодарил Tronix за это полезное сообщение:

    freddy(01.01.2022)

Страница 47 из 55 ПерваяПервая ... 434445464748495051 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 21
    Последнее: 21.05.2016, 18:13
  2. Обменяю 5 микросхем КР580ВГ75 на 2 КР580ВВ55
    от Ivan-771 в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 21.03.2012, 08:23
  3. MmcM в эфире Радио Самара Максимум
    от unbeliever в разделе Люди
    Ответов: 15
    Последнее: 09.09.2009, 13:27

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •