Line 149... |
Line 149... |
* int10 handled here
|
* int10 handled here
|
*/
|
*/
|
ASM_START
|
ASM_START
|
vgabios_int10_handler:
|
vgabios_int10_handler:
|
pushf
|
pushf
|
|
cmp ah, #0x0f
|
|
jne int10_test_1A
|
|
call biosfn_get_video_mode
|
|
jmp int10_end
|
|
int10_test_1A:
|
int10_test_1103:
|
int10_test_1103:
|
cmp ax, #0x1103
|
cmp ax, #0x1103
|
jne int10_normal
|
jne int10_normal
|
call biosfn_set_text_block_specifier
|
call biosfn_set_text_block_specifier
|
jmp int10_end
|
jmp int10_end
|
Line 227... |
Line 232... |
; inc sp
|
; inc sp
|
ret
|
ret
|
|
|
#if defined(USE_BX_INFO) || defined(DEBUG)
|
#if defined(USE_BX_INFO) || defined(DEBUG)
|
msg_vga_init:
|
msg_vga_init:
|
.ascii "VGABios $Id: vgabios.c,v 1.4 2009-01-11 03:22:12 zeus Exp $"
|
.ascii "VGABios $Id: vgabios.c,v 1.5 2009-01-13 08:20:37 zeus Exp $"
|
.byte 0x0d,0x0a,0x00
|
.byte 0x0d,0x0a,0x00
|
#endif
|
#endif
|
ASM_END
|
ASM_END
|
|
|
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
Line 403... |
Line 408... |
biosfn_set_cursor_pos(GET_BH(),DX);
|
biosfn_set_cursor_pos(GET_BH(),DX);
|
break;
|
break;
|
case 0x03:
|
case 0x03:
|
biosfn_get_cursor_pos(GET_BH(),&CX,&DX);
|
biosfn_get_cursor_pos(GET_BH(),&CX,&DX);
|
break;
|
break;
|
|
case 0x06:
|
|
biosfn_scroll(GET_AL(),GET_BH(),GET_CH(),GET_CL(),GET_DH(),GET_DL(),0xFF,SCROLL_UP);
|
|
break;
|
|
case 0x07:
|
|
biosfn_scroll(GET_AL(),GET_BH(),GET_CH(),GET_CL(),GET_DH(),GET_DL(),0xFF,SCROLL_DOWN);
|
|
break;
|
case 0x0E:
|
case 0x0E:
|
// Ralf Brown Interrupt list is WRONG on bh(page)
|
// Ralf Brown Interrupt list is WRONG on bh(page)
|
// We do output only on the current page !
|
// We do output only on the current page !
|
biosfn_write_teletype(GET_AL(),0xff,GET_BL(),NO_ATTR);
|
biosfn_write_teletype(GET_AL(),0xff,GET_BL(),NO_ATTR);
|
break;
|
break;
|
Line 815... |
Line 826... |
cursor=ycurs; cursor<<=8; cursor+=xcurs;
|
cursor=ycurs; cursor<<=8; cursor+=xcurs;
|
biosfn_set_cursor_pos(page,cursor);
|
biosfn_set_cursor_pos(page,cursor);
|
}
|
}
|
|
|
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
|
ASM_START
|
|
biosfn_get_video_mode:
|
|
push ds
|
|
mov ax, # BIOSMEM_SEG
|
|
mov ds, ax
|
|
push bx
|
|
mov bx, # BIOSMEM_CURRENT_PAGE
|
|
mov al, [bx]
|
|
pop bx
|
|
mov bh, al
|
|
push bx
|
|
mov bx, # BIOSMEM_VIDEO_CTL
|
|
mov ah, [bx]
|
|
and ah, #0x80
|
|
mov bx, # BIOSMEM_CURRENT_MODE
|
|
mov al, [bx]
|
|
or al, ah
|
|
mov bx, # BIOSMEM_NB_COLS
|
|
mov ah, [bx]
|
|
pop bx
|
|
pop ds
|
|
ret
|
|
ASM_END
|
|
|
|
// --------------------------------------------------------------------------------------------
|
static void get_font_access()
|
static void get_font_access()
|
{
|
{
|
ASM_START
|
ASM_START
|
mov dx, # VGAREG_SEQU_ADDRESS
|
mov dx, # VGAREG_SEQU_ADDRESS
|
mov ax, #0x0100
|
mov ax, #0x0100
|