![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 21:43 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 设置120赫兹屏幕刷新率代码 |
| 可打印版本 1,655 / 7 |
| 第1楼 blackoil | 发表于 2006-11-05 11:24 |
| 初级用户 发帖 18 积分 58 来自 广州 | |
|
设置120赫兹屏幕刷新率代码 SetVESA_Mode: mov ax,0x4F02
mov bx,[VideoMode] push ds pop es mov di,CRTC int 0x10 int 0x20 VideoMode dw VESA_Mode_640x480x16M | VESA_Bit_LFB | VESA_Bit_CRTC CRTC dw 848 dw 680 dw 744 dw 518 dw 483 dw 487 db 0 dd 52500000 ;pixel clock dw 12000 ;120hz refresh rate times 40 db 0 |
|
| 第2楼 zyl910 | 发表于 2006-11-05 13:01 |
| 中级用户 发帖 126 积分 282 | |
|
CRTCInfoBlock struc
HorizontalTotal dw ? ; Horizontal total in pixels HorizontalSyncStart dw ? ; Horizontal sync start in pixels HorizontalSyncEnd dw ? ; Horizontal sync end in pixels VerticalTotal dw ? ; Vertical total in lines VerticalSyncStart dw ? ; Vertical sync start in lines VerticalSyncEnd dw ? ; Vertical sync end in lines Flags db ? ; Flags (Interlaced, Double Scan etc) PixelClock dd ? ; Pixel clock in units of Hz RefreshRate dw ? ; Refresh rate in units of 0.01 Hz Reserved db 40 dup (?) ; remainder of ModeInfoBlock CRTCInfoBlock ends |
|
| 第3楼 zyl910 | 发表于 2006-11-05 13:04 |
| 中级用户 发帖 126 积分 282 | |
|
我一直不清楚 水平/垂直总量、回扫时间、消隐时间 这些参数是怎么推算出来的
望大虾指点 |
|
| 第4楼 blackoil | 发表于 2006-11-05 22:45 |
| 初级用户 发帖 18 积分 58 来自 广州 | |
|
在google输入 Generate mode timings cvt.c 可以找到
http://www.uruk.org/~erich/projects/cvt/cvt.c 电子束回扫需要时间,单位用像素计量。比所设分辨率大的数值包括回扫的时间 |
|
| 第5楼 zyl910 | 发表于 2006-11-06 05:58 |
| 中级用户 发帖 126 积分 282 | |
|
Thanks!
研究中 |
|
| 第6楼 x2wei | 发表于 2006-11-08 21:06 |
| 初级用户 发帖 17 积分 44 | |
|
楼上的兄弟搞清了写个小程序出来,给大家试试呀:)共同学 楼主写的asm有点不明白:(
VideoMode dw VESA_Mode_640x480x16M | VESA_Bit_LFB | VESA_Bit_CRTC ? times 40 db 0 ? |
|
| 第7楼 zyl910 | 发表于 2006-11-08 22:07 |
| 中级用户 发帖 126 积分 282 | |
|
对于:
CRTC dw 848 dw 680 dw 744 dw 518 dw 483 dw 487 db 0 dd 52500000 ;pixel clock dw 12000 ;120hz refresh rate times 40 db 0 这个是CRTCInfoBlock结构: CRTCInfoBlock struc HorizontalTotal dw ? ; Horizontal total in pixels HorizontalSyncStart dw ? ; Horizontal sync start in pixels HorizontalSyncEnd dw ? ; Horizontal sync end in pixels VerticalTotal dw ? ; Vertical total in lines VerticalSyncStart dw ? ; Vertical sync start in lines VerticalSyncEnd dw ? ; Vertical sync end in lines Flags db ? ; Flags (Interlaced, Double Scan etc) PixelClock dd ? ; Pixel clock in units of Hz RefreshRate dw ? ; Refresh rate in units of 0.01 Hz Reserved db 40 dup (?) ; remainder of ModeInfoBlock CRTCInfoBlock ends 至于 VideoMode dw VESA_Mode_640x480x16M | VESA_Bit_LFB | VESA_Bit_CRTC 这是VBE显示模式,估计这些常数是: VESA_Mode_640x480x16M = 112h VESA_Bit_LFB = 4000h VESA_Bit_CRTC = 0800h 这个程序利用了VBE 3.0的一些特性:
VBE 3.0: http://www.vesa.org/public/VBE/vbe3.pdf |
|
| 第8楼 blackoil | 发表于 2006-11-12 05:53 |
| 初级用户 发帖 18 积分 58 来自 广州 | |
|
我用了自己的编译器的语法
times 40 db 0 就是 40 个字节的0 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |