KolibriOS kernel
v86.inc File Reference

Classes

struct  V86_machine
 
struct  v86_regs
 

Variables

label v86_create
 Create V86 machine in: nothing out: eax = handle (pointer to struc V86_machine) eax = NULL => failure destroys: ebx, ecx, edx (due to malloc) More...
 
label v86_get_lin_addr
 Translate V86-address to linear address in: eax=V86 address esi=handle out: eax=linear address destroys: nothing. More...
 
dd sys_v86_machine
 
label init_sys_v86
 Called from kernel.asm at first stages of loading Initialize system V86 machine (used to simulate BIOS int 13h) More...
 
label v86_start
 Run V86 machine in: ebx -> registers for V86 (two structures: in and out) esi = handle ecx = expected end address (CS:IP) edx = IRQ to hook or -1 if not required out: structure pointed to by ebx is filled with new values eax = 1 - exception has occured, cl contains code eax = 2 - access to disabled i/o port, ecx contains port address eax = 3 - IRQ is already hooked by another VM destroys: nothing. More...
 
rd v86_irqhooks
 
db v86_exc_str1
 
db v86_exc_str2
 
db v86_exc_str3
 
db v86_exc_str4
 
db v86_exc_str5
 
db v86_newline
 
db v86_io_str1
 
db v86_io_byte
 
db v86_io_word
 
db v86_io_dword
 
db v86_irqerr
 
label v86_exc_c
 
label v86_irq
 
label v86_irq2
 

Variable Documentation

◆ init_sys_v86

label init_sys_v86

Called from kernel.asm at first stages of loading Initialize system V86 machine (used to simulate BIOS int 13h)

Source
core/v86.inc:205

◆ sys_v86_machine

dd sys_v86_machine
Initial value
?
Source
core/v86.inc:200

◆ v86_create

label v86_create

Create V86 machine in: nothing out: eax = handle (pointer to struc V86_machine) eax = NULL => failure destroys: ebx, ecx, edx (due to malloc)

Source
core/v86.inc:29

◆ v86_exc_c

label v86_exc_c

◆ v86_exc_str1

db v86_exc_str1
Initial value
'V86 : unexpected exception ',0
Source
core/v86.inc:326

◆ v86_exc_str2

db v86_exc_str2
Initial value
' at ',0
Source
core/v86.inc:327

◆ v86_exc_str3

db v86_exc_str3
Initial value
':',0
Source
core/v86.inc:328

◆ v86_exc_str4

db v86_exc_str4
Initial value
13,10,'V86 : faulted code:',0
Source
core/v86.inc:329

◆ v86_exc_str5

db v86_exc_str5
Initial value
' (unavailable)',0
Source
core/v86.inc:330

◆ v86_get_lin_addr

label v86_get_lin_addr

Translate V86-address to linear address in: eax=V86 address esi=handle out: eax=linear address destroys: nothing.

Source
core/v86.inc:141

◆ v86_io_byte

db v86_io_byte
Initial value
' (byte)',13,10,0
Source
core/v86.inc:333

◆ v86_io_dword

db v86_io_dword
Initial value
' (dword)',13,10,0
Source
core/v86.inc:335

◆ v86_io_str1

db v86_io_str1
Initial value
'V86 : access to disabled i/o port ',0
Source
core/v86.inc:332

◆ v86_io_word

db v86_io_word
Initial value
' (word)',13,10,0
Source
core/v86.inc:334

◆ v86_irq

label v86_irq

◆ v86_irq2

label v86_irq2

◆ v86_irqerr

db v86_irqerr
Initial value
'V86 : IRQ already hooked',13,10,0
Source
core/v86.inc:336

◆ v86_irqhooks

rd v86_irqhooks
Initial value
IRQ_RESERVED * 2
Source
core/v86.inc:302

◆ v86_newline

db v86_newline
Initial value
13,10,0
Source
core/v86.inc:331

◆ v86_start

label v86_start

Run V86 machine in: ebx -> registers for V86 (two structures: in and out) esi = handle ecx = expected end address (CS:IP) edx = IRQ to hook or -1 if not required out: structure pointed to by ebx is filled with new values eax = 1 - exception has occured, cl contains code eax = 2 - access to disabled i/o port, ecx contains port address eax = 3 - IRQ is already hooked by another VM destroys: nothing.

Source
core/v86.inc:253