1

我正在尝试在视频模式 105h 中使用int 10h.

当我尝试:

mov cx, 10  ;col
mov dx, 10  ;row
mov ah, 0ch ; put pixel

屏幕上不显示任何内容。

我尝试的模式是 1024x768。
我知道我需要创建一个字体文件才能在屏幕上显示文本。
但是当我让线条或像素工作时,这不会成为问题。

BITS 16
ORG 100h
mov ax, ds
mov es, ax 
;Set video mode
mov ax, 4f02h
mov bx, 105h
int 10h
;Wait for key
xor ax, ax
int 16h
;Restore DOS text mode
mov ax, 0003h
int 10h
;Exit
mov ax, 4c00h
int 21h
modeInfo    TIMES 256 db 0
4

1 回答 1

1

视频模式 105h 是 1024x768 256 色VESA定义的视频模式。

尽管您显然已经阅读了 MagaretBloom 的答案,但并非每个 BIOS 都适用于这些扩展视频模式!
BIOS.WritePixel 函数 0Ch 通常只在LEGACY视频模式下运行。这些是数字范围从 0 到 19 的视频模式。

您最好的选择是设置 640x480 16 色视频模式(编号 18)或 320x200 256 色视频模式(编号 19)。

对于 VESA 模式,您必须编写自己的输出例程...看看这里
我已经编写了很多这样的代码,也许有一天我会决定发布它。可惜那一天还没有到来。:-(

于 2021-08-08T21:57:41.970 回答