How do I convert between pointers and low memory addresses?
Linear addresses under 1MB map directly to physical memory. Hence the real mode interrupt vector table is at address 0, the BIOS data segment is at address 0x400, the monochrome video memory is at address 0xB0000, and the color video memory is at address 0xB8000. To read and write any of these, you can just use a pointer set to the proper address. You don’t need to create a far pointer, using some magic segment value.