Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.140.188.16] |
|
Сообщ.
#1
,
|
|
|
Используя функции биос-а буквенно-цифровой режим из 80x25 в 40x25 можно перевести следующим образом:
mov ah,0 mov al,1 int 10h как это сделать не используя функции биос-а и дос-а, только через регистры и порты. И ещё как через порты и регистры погасить курсор, через функции биос-а это делается так: mov ah,1 mov ch,20h int 10h Только не спрашивайте зачем мне это надо. Если кто знает как это сделать помогите пожалуйста. За помощь заранее благодарен! |
Сообщ.
#2
,
|
|
|
Цитата v4567 @ И ещё как через порты и регистры погасить курсор Существует как минимум два способа убрать курсор, один из них это переместить его за границу экрана. Вот код (на Си) перемещения курсора. outportb(0x3D4, 0x0E); outportb(0x3D5, ((pos+1) >> 1) >> 8); outportb(0x3D4, 0x0F); outportb(0x3D5, ((pos+1) >> 1) & 0xFF ); |
Сообщ.
#3
,
|
|
|
.DATA
CURSOR_RECT RECT <0> CURSOR_POINT POINT <0> String_String db "API-Cursor ",0 X_Y_SHABLON db "A = %d ; B = %d",0 String_CONTENER db 256 dup (0) .CODE START: invoke GetCursorPos , addr CURSOR_POINT ;- invoke wsprintf , addr String_CONTENER ,\ addr X_Y_SHABLON ,\ CURSOR_POINT.x ,\ CURSOR_POINT.y ; invoke MessageBox , Null , addr String_CONTENER ,\ addr String_String ,\ Null invoke SetCursorPos , 500 , 300 mov CURSOR_RECT.left , 450 mov CURSOR_RECT.top , 250 mov CURSOR_RECT.right , 550 mov CURSOR_RECT.bottom , 350 invoke ClipCursor , addr CURSOR_RECT ; курсор invoke LoadCursor , Null , IDC_SIZEALL invoke SetSystemCursor , EAX , OCR_NORMAL ;&&& invoke ShowCursor , FALSE invoke ShowCursor , TRUE EXIT: invoke ExitProcess , Null END START |
Сообщ.
#4
,
|
|
|
А Вас это интересует для оригинального CGA образца 1981 года или для современных nVidia/ATI-AMD/Intel?
|
Сообщ.
#5
,
|
|
|
как вы все добиваетесь 7.9 для жесткого диска?
|