Kicking it Olde Sküül! Burgerlib on Github Follow Olde Sküül on Twitter Burgerbecky on LinkedIn Burgerbecky on LinkedIn
Loading...
Searching...
No Matches
burgermsdos.h File Reference

Burgerlib functions for MSDOS. More...

Classes

struct  Burger::MSDos::Regs16_t
 Structure to contain all the registers for calling 80x86 assembly. More...
 

Namespaces

namespace  Burger
 
namespace  Burger::MSDos
 Functions specific to MS/DOS.
 

Functions

BURGER_INLINE uint8_t * Burger::MSDos::zero_base (void) BURGER_NOEXCEPT
 Obtain the base pointer to the real memory.
 
uint32_t BURGER_API Burger::MSDos::set_video_mode_int10h (uint32_t uMode) BURGER_NOEXCEPT
 Call interrupt 10H with AL set to the passed value.
 
uint32_t BURGER_API Burger::MSDos::init_serial_port_int14h (uint32_t uPortFlags, uint32_t uPortNumber) BURGER_NOEXCEPT
 Call interrupt 14H with AL and DX set to the passed values.
 
uint32_t BURGER_API Burger::MSDos::printer_port_int17h (uint32_t uPrinterCommand, uint32_t uPrinterNumber=0) BURGER_NOEXCEPT
 Call interrupt 17H with AL/AH and DL/DH set to the passed values.
 
int32_t BURGER_API Burger::MSDos::real_mode_interrupt (uint32_t uInterrupt, const Regs16_t *pInput, Regs16_t *pOutput) BURGER_NOEXCEPT
 Call a MSDOS software interrupt.
 
int BURGER_API Burger::MSDos::x32_call_real_proc (uint32_t pAddress, const Regs16_t *pInput, Regs16_t *pOutput) BURGER_NOEXCEPT
 Call a real mode function (16 bit)
 
void *BURGER_API Burger::MSDos::real_to_protected (uint32_t pReal) BURGER_NOEXCEPT
 Convert a real mode address to a flat address.
 
uint32_t BURGER_API Burger::MSDos::alloc_real (uint32_t uSize) BURGER_NOEXCEPT
 Allocate a chunk of real mode memory.
 
void BURGER_API Burger::MSDos::free_real (uint32_t pReal) BURGER_NOEXCEPT
 Release real mode memory back to DOS.
 
uint32_t BURGER_API Burger::MSDos::get_temp_real_buffer (void) BURGER_NOEXCEPT
 Return pointer to shared real buffer.
 
void *BURGER_API Burger::MSDos::get_temp_protected_buffer (void) BURGER_NOEXCEPT
 Get the pointer to the shared protected memory buffer.
 
void far *BURGER_API Burger::MSDos::get_interrupt_protected (uint32_t uInterrupt) BURGER_NOEXCEPT
 Call the dos extender to get the current protected mode IRQ vector.
 
void BURGER_API Burger::MSDos::set_interrupt_protected (uint32_t uInterrupt, void far *pCode) BURGER_NOEXCEPT
 Intercept the protected IRQ vector.
 
uint32_t BURGER_API Burger::MSDos::get_interrupt_real (uint32_t uInterrupt) BURGER_NOEXCEPT
 Call the dos extender to get the current real mode IRQ vector.
 
void BURGER_API Burger::MSDos::set_interrupt_real (uint32_t uInterrupt, uint32_t pCode) BURGER_NOEXCEPT
 Intercept the real mode IRQ vector.
 
void BURGER_API Burger::MSDos::set_interrupt_both (uint32_t uInterrupt, void far *pCode) BURGER_NOEXCEPT
 Intercept both the real the protected IRQ vectors.
 
void *BURGER_API Burger::MSDos::map_physical_address (void *pInput, uint32_t uLength) BURGER_NOEXCEPT
 Map memory from a device into protected mode.
 

Variables

void * _x32_zero_base_ptr
 Pointer to the MSDOS real memory.
 
uint16_t _x32_zero_base_selector
 Segment to the MSDOS real memory.
 

Detailed Description

Burgerlib functions for MSDOS.


This file is included on MSDOS platforms. It is not included for Windows.

See also
burgerwindows.h

Variable Documentation

◆ _x32_zero_base_ptr

void* _x32_zero_base_ptr

Pointer to the MSDOS real memory.


On the X32 dos extender, real memory is mapped to an address at runtime. This will retrieve that address.

Note
On DOS4GW, this is included in Burgerlib with a value of zero so code meant for X32 will work without changes on DOS4GW.
This is only available on MS/DOS
See also
_x32_zero_base_selector

◆ _x32_zero_base_selector

uint16_t _x32_zero_base_selector

Segment to the MSDOS real memory.


On the X32 dos extender, real memory is mapped to this segment at runtime. This will retrieve that segment value.

Note
On DOS4GW, this is included in Burgerlib with the _DATA segment so code meant for X32 will work without changes on DOS4GW.
This is only available on MS/DOS
See also
_x32_zero_base_ptr