vbeinfo
annotate src/dpmi.h @ 4:d2c44edd8b77
print the framebuffer address
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 07 Jan 2019 13:52:58 +0200 |
parents | 4b33fa83e381 |
children |
rev | line source |
---|---|
nuclear@0 | 1 #ifndef DPMI_H_ |
nuclear@0 | 2 #define DPMI_H_ |
nuclear@0 | 3 |
nuclear@3 | 4 #ifdef __DJGPP__ |
nuclear@3 | 5 #include <dpmi.h> |
nuclear@3 | 6 #endif |
nuclear@3 | 7 |
nuclear@0 | 8 #include "inttypes.h" |
nuclear@0 | 9 |
nuclear@0 | 10 struct dpmi_real_regs { |
nuclear@0 | 11 uint32_t edi, esi, ebp; |
nuclear@0 | 12 uint32_t reserved; |
nuclear@0 | 13 uint32_t ebx, edx, ecx, eax; |
nuclear@0 | 14 uint16_t flags; |
nuclear@0 | 15 uint16_t es, ds, fs, gs; |
nuclear@0 | 16 uint16_t ip, cs, sp, ss; |
nuclear@0 | 17 }; |
nuclear@0 | 18 |
nuclear@3 | 19 uint16_t dpmi_alloc(unsigned int par, uint16_t *sel); |
nuclear@3 | 20 void dpmi_free(uint16_t sel); |
nuclear@3 | 21 |
nuclear@3 | 22 #ifdef __WATCOMC__ |
nuclear@0 | 23 #pragma aux dpmi_alloc = \ |
nuclear@0 | 24 "mov eax, 0x100" \ |
nuclear@0 | 25 "int 0x31" \ |
nuclear@3 | 26 "mov [edi], dx" \ |
nuclear@3 | 27 value[ax] parm[ebx][edi]; |
nuclear@3 | 28 |
nuclear@3 | 29 #pragma aux dpmi_free = \ |
nuclear@3 | 30 "mov eax, 0x101" \ |
nuclear@3 | 31 "int 0x31" \ |
nuclear@3 | 32 parm[dx]; |
nuclear@0 | 33 |
nuclear@0 | 34 void dpmi_real_int(int inum, struct dpmi_real_regs *regs); |
nuclear@3 | 35 #endif /* __WATCOMC__ */ |
nuclear@3 | 36 |
nuclear@3 | 37 #ifdef __DJGPP__ |
nuclear@3 | 38 #define dpmi_real_int(inum, regs) __dpmi_int((inum), (__dpmi_regs*)(regs)) |
nuclear@3 | 39 #endif |
nuclear@0 | 40 |
nuclear@0 | 41 void *dpmi_mmap(uint32_t phys_addr, unsigned int size); |
nuclear@0 | 42 void dpmi_munmap(void *addr); |
nuclear@0 | 43 |
nuclear@0 | 44 #endif /* DPMI_H_ */ |