v86 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/Readme.md +17 -6
  2. package/bios/seabios/.config +113 -0
  3. package/bios/seabios/.config.old +114 -0
  4. package/bios/seabios/.gitignore +4 -0
  5. package/bios/seabios/COPYING +674 -0
  6. package/bios/seabios/COPYING.LESSER +165 -0
  7. package/bios/seabios/Makefile +286 -0
  8. package/bios/seabios/README +17 -0
  9. package/bios/seabios/docs/Build_overview.md +104 -0
  10. package/bios/seabios/docs/Contributing.md +20 -0
  11. package/bios/seabios/docs/Debugging.md +111 -0
  12. package/bios/seabios/docs/Developer_Documentation.md +25 -0
  13. package/bios/seabios/docs/Developer_links.md +86 -0
  14. package/bios/seabios/docs/Download.md +27 -0
  15. package/bios/seabios/docs/Execution_and_code_flow.md +178 -0
  16. package/bios/seabios/docs/Linking_overview.md +160 -0
  17. package/bios/seabios/docs/Mailinglist.md +8 -0
  18. package/bios/seabios/docs/Memory_Model.md +253 -0
  19. package/bios/seabios/docs/README +5 -0
  20. package/bios/seabios/docs/Releases.md +482 -0
  21. package/bios/seabios/docs/Runtime_config.md +193 -0
  22. package/bios/seabios/docs/SeaBIOS.md +17 -0
  23. package/bios/seabios/docs/SeaVGABIOS.md +39 -0
  24. package/bios/seabios/out/autoconf.h +117 -0
  25. package/bios/seabios/out/include/config/acpi/dsdt.h +0 -0
  26. package/bios/seabios/out/include/config/acpi.h +0 -0
  27. package/bios/seabios/out/include/config/ahci.h +0 -0
  28. package/bios/seabios/out/include/config/apmbios.h +0 -0
  29. package/bios/seabios/out/include/config/ata/dma.h +0 -0
  30. package/bios/seabios/out/include/config/ata/pio32.h +0 -0
  31. package/bios/seabios/out/include/config/ata.h +0 -0
  32. package/bios/seabios/out/include/config/auto.conf +69 -0
  33. package/bios/seabios/out/include/config/auto.conf.cmd +9 -0
  34. package/bios/seabios/out/include/config/boot.h +0 -0
  35. package/bios/seabios/out/include/config/bootorder.h +0 -0
  36. package/bios/seabios/out/include/config/build/vgabios.h +0 -0
  37. package/bios/seabios/out/include/config/call32/smm.h +0 -0
  38. package/bios/seabios/out/include/config/cdrom/boot.h +0 -0
  39. package/bios/seabios/out/include/config/cdrom/emu.h +0 -0
  40. package/bios/seabios/out/include/config/debug/level.h +0 -0
  41. package/bios/seabios/out/include/config/drives.h +0 -0
  42. package/bios/seabios/out/include/config/entry/extrastack.h +0 -0
  43. package/bios/seabios/out/include/config/esp/scsi.h +0 -0
  44. package/bios/seabios/out/include/config/flash/floppy.h +0 -0
  45. package/bios/seabios/out/include/config/floppy.h +0 -0
  46. package/bios/seabios/out/include/config/fw/romfile/load.h +0 -0
  47. package/bios/seabios/out/include/config/hardware/irq.h +0 -0
  48. package/bios/seabios/out/include/config/kbd/call/int15/4f.h +0 -0
  49. package/bios/seabios/out/include/config/keyboard.h +0 -0
  50. package/bios/seabios/out/include/config/lpt.h +0 -0
  51. package/bios/seabios/out/include/config/lsi/scsi.h +0 -0
  52. package/bios/seabios/out/include/config/malloc/uppermemory.h +0 -0
  53. package/bios/seabios/out/include/config/megasas.h +0 -0
  54. package/bios/seabios/out/include/config/mouse.h +0 -0
  55. package/bios/seabios/out/include/config/mpt/scsi.h +0 -0
  56. package/bios/seabios/out/include/config/mptable.h +0 -0
  57. package/bios/seabios/out/include/config/mtrr/init.h +0 -0
  58. package/bios/seabios/out/include/config/optionroms.h +0 -0
  59. package/bios/seabios/out/include/config/override/pci/id.h +0 -0
  60. package/bios/seabios/out/include/config/pcibios.h +0 -0
  61. package/bios/seabios/out/include/config/pirtable.h +0 -0
  62. package/bios/seabios/out/include/config/pmm.h +0 -0
  63. package/bios/seabios/out/include/config/pmtimer.h +0 -0
  64. package/bios/seabios/out/include/config/pnpbios.h +0 -0
  65. package/bios/seabios/out/include/config/ps2port.h +0 -0
  66. package/bios/seabios/out/include/config/pvscsi.h +0 -0
  67. package/bios/seabios/out/include/config/qemu/hardware.h +0 -0
  68. package/bios/seabios/out/include/config/qemu.h +0 -0
  69. package/bios/seabios/out/include/config/rom/size.h +0 -0
  70. package/bios/seabios/out/include/config/rtc/timer.h +0 -0
  71. package/bios/seabios/out/include/config/s3/resume.h +0 -0
  72. package/bios/seabios/out/include/config/sdcard.h +0 -0
  73. package/bios/seabios/out/include/config/serial.h +0 -0
  74. package/bios/seabios/out/include/config/tcgbios.h +0 -0
  75. package/bios/seabios/out/include/config/threads.h +0 -0
  76. package/bios/seabios/out/include/config/tristate.conf +4 -0
  77. package/bios/seabios/out/include/config/tsc/timer.h +0 -0
  78. package/bios/seabios/out/include/config/use/smm.h +0 -0
  79. package/bios/seabios/out/include/config/vga/allocate/extra/stack.h +0 -0
  80. package/bios/seabios/out/include/config/vga/bochs/stdvga.h +0 -0
  81. package/bios/seabios/out/include/config/vga/bochs.h +0 -0
  82. package/bios/seabios/out/include/config/vga/did.h +0 -0
  83. package/bios/seabios/out/include/config/vga/extra/stack/size.h +0 -0
  84. package/bios/seabios/out/include/config/vga/fixup/asm.h +0 -0
  85. package/bios/seabios/out/include/config/vga/pci.h +0 -0
  86. package/bios/seabios/out/include/config/vga/stdvga/ports.h +0 -0
  87. package/bios/seabios/out/include/config/vga/vbe.h +0 -0
  88. package/bios/seabios/out/include/config/vga/vid.h +0 -0
  89. package/bios/seabios/out/include/config/vgahooks.h +0 -0
  90. package/bios/seabios/out/include/config/virtio/blk.h +0 -0
  91. package/bios/seabios/out/include/config/virtio/scsi.h +0 -0
  92. package/bios/seabios/out/include/config/xen.h +0 -0
  93. package/bios/seabios/out/scripts/kconfig/conf +0 -0
  94. package/bios/seabios/out/scripts/kconfig/conf.o +0 -0
  95. package/bios/seabios/out/scripts/kconfig/zconf.hash.c +289 -0
  96. package/bios/seabios/out/scripts/kconfig/zconf.lex.c +2420 -0
  97. package/bios/seabios/out/scripts/kconfig/zconf.tab.c +2538 -0
  98. package/bios/seabios/out/scripts/kconfig/zconf.tab.o +0 -0
  99. package/bios/seabios/scripts/acpi_extract.py +366 -0
  100. package/bios/seabios/scripts/acpi_extract_preprocess.py +41 -0
  101. package/bios/seabios/scripts/buildrom.py +56 -0
  102. package/bios/seabios/scripts/buildversion.py +134 -0
  103. package/bios/seabios/scripts/checkrom.py +95 -0
  104. package/bios/seabios/scripts/checkstack.py +226 -0
  105. package/bios/seabios/scripts/checksum.py +16 -0
  106. package/bios/seabios/scripts/encodeint.py +21 -0
  107. package/bios/seabios/scripts/gen-offsets.sh +17 -0
  108. package/bios/seabios/scripts/kconfig/.gitignore +22 -0
  109. package/bios/seabios/scripts/kconfig/Makefile +331 -0
  110. package/bios/seabios/scripts/kconfig/POTFILES.in +12 -0
  111. package/bios/seabios/scripts/kconfig/check.sh +13 -0
  112. package/bios/seabios/scripts/kconfig/conf.c +718 -0
  113. package/bios/seabios/scripts/kconfig/confdata.c +1250 -0
  114. package/bios/seabios/scripts/kconfig/expr.c +1168 -0
  115. package/bios/seabios/scripts/kconfig/expr.h +241 -0
  116. package/bios/seabios/scripts/kconfig/gconf.c +1542 -0
  117. package/bios/seabios/scripts/kconfig/gconf.glade +661 -0
  118. package/bios/seabios/scripts/kconfig/images.c +326 -0
  119. package/bios/seabios/scripts/kconfig/kxgettext.c +235 -0
  120. package/bios/seabios/scripts/kconfig/lex.zconf.c +2430 -0
  121. package/bios/seabios/scripts/kconfig/list.h +131 -0
  122. package/bios/seabios/scripts/kconfig/lkc.h +200 -0
  123. package/bios/seabios/scripts/kconfig/lkc_proto.h +57 -0
  124. package/bios/seabios/scripts/kconfig/lxdialog/.gitignore +4 -0
  125. package/bios/seabios/scripts/kconfig/lxdialog/BIG.FAT.WARNING +4 -0
  126. package/bios/seabios/scripts/kconfig/lxdialog/check-lxdialog.sh +87 -0
  127. package/bios/seabios/scripts/kconfig/lxdialog/checklist.c +332 -0
  128. package/bios/seabios/scripts/kconfig/lxdialog/dialog.h +257 -0
  129. package/bios/seabios/scripts/kconfig/lxdialog/inputbox.c +301 -0
  130. package/bios/seabios/scripts/kconfig/lxdialog/menubox.c +437 -0
  131. package/bios/seabios/scripts/kconfig/lxdialog/textbox.c +408 -0
  132. package/bios/seabios/scripts/kconfig/lxdialog/util.c +713 -0
  133. package/bios/seabios/scripts/kconfig/lxdialog/yesno.c +114 -0
  134. package/bios/seabios/scripts/kconfig/mconf.c +1036 -0
  135. package/bios/seabios/scripts/kconfig/menu.c +697 -0
  136. package/bios/seabios/scripts/kconfig/merge_config.sh +150 -0
  137. package/bios/seabios/scripts/kconfig/nconf.c +1556 -0
  138. package/bios/seabios/scripts/kconfig/nconf.gui.c +656 -0
  139. package/bios/seabios/scripts/kconfig/nconf.h +96 -0
  140. package/bios/seabios/scripts/kconfig/qconf.cc +1795 -0
  141. package/bios/seabios/scripts/kconfig/qconf.h +338 -0
  142. package/bios/seabios/scripts/kconfig/streamline_config.pl +647 -0
  143. package/bios/seabios/scripts/kconfig/symbol.c +1373 -0
  144. package/bios/seabios/scripts/kconfig/util.c +157 -0
  145. package/bios/seabios/scripts/kconfig/zconf.gperf +48 -0
  146. package/bios/seabios/scripts/kconfig/zconf.hash.c_shipped +289 -0
  147. package/bios/seabios/scripts/kconfig/zconf.l +363 -0
  148. package/bios/seabios/scripts/kconfig/zconf.lex.c_shipped +2420 -0
  149. package/bios/seabios/scripts/kconfig/zconf.tab.c_shipped +2538 -0
  150. package/bios/seabios/scripts/kconfig/zconf.y +733 -0
  151. package/bios/seabios/scripts/layoutrom.py +705 -0
  152. package/bios/seabios/scripts/python23compat.py +14 -0
  153. package/bios/seabios/scripts/readserial.py +190 -0
  154. package/bios/seabios/scripts/tarball.sh +36 -0
  155. package/bios/seabios/scripts/test-build.sh +90 -0
  156. package/bios/seabios/scripts/transdump.py +53 -0
  157. package/bios/seabios/scripts/vgafixup.py +96 -0
  158. package/bios/seabios/src/Kconfig +579 -0
  159. package/bios/seabios/src/apm.c +215 -0
  160. package/bios/seabios/src/asm-offsets.c +23 -0
  161. package/bios/seabios/src/biosvar.h +130 -0
  162. package/bios/seabios/src/block.c +623 -0
  163. package/bios/seabios/src/block.h +121 -0
  164. package/bios/seabios/src/bmp.c +117 -0
  165. package/bios/seabios/src/boot.c +793 -0
  166. package/bios/seabios/src/bootsplash.c +255 -0
  167. package/bios/seabios/src/bregs.h +80 -0
  168. package/bios/seabios/src/byteorder.h +71 -0
  169. package/bios/seabios/src/cdrom.c +322 -0
  170. package/bios/seabios/src/clock.c +506 -0
  171. package/bios/seabios/src/code16gcc.s +1 -0
  172. package/bios/seabios/src/config.h +108 -0
  173. package/bios/seabios/src/cp437.c +275 -0
  174. package/bios/seabios/src/cp437.h +1 -0
  175. package/bios/seabios/src/disk.c +779 -0
  176. package/bios/seabios/src/e820map.c +152 -0
  177. package/bios/seabios/src/e820map.h +26 -0
  178. package/bios/seabios/src/entryfuncs.S +165 -0
  179. package/bios/seabios/src/farptr.h +208 -0
  180. package/bios/seabios/src/font.c +139 -0
  181. package/bios/seabios/src/fw/acpi-dsdt-cpu-hotplug.dsl +78 -0
  182. package/bios/seabios/src/fw/acpi-dsdt-dbug.dsl +26 -0
  183. package/bios/seabios/src/fw/acpi-dsdt-hpet.dsl +36 -0
  184. package/bios/seabios/src/fw/acpi-dsdt-isa.dsl +102 -0
  185. package/bios/seabios/src/fw/acpi-dsdt-pci-crs.dsl +90 -0
  186. package/bios/seabios/src/fw/acpi-dsdt.dsl +342 -0
  187. package/bios/seabios/src/fw/acpi-dsdt.hex +554 -0
  188. package/bios/seabios/src/fw/acpi.c +685 -0
  189. package/bios/seabios/src/fw/biostables.c +491 -0
  190. package/bios/seabios/src/fw/coreboot.c +569 -0
  191. package/bios/seabios/src/fw/csm.c +347 -0
  192. package/bios/seabios/src/fw/dev-pci.h +52 -0
  193. package/bios/seabios/src/fw/dev-piix.h +29 -0
  194. package/bios/seabios/src/fw/dev-q35.h +52 -0
  195. package/bios/seabios/src/fw/lzmadecode.c +398 -0
  196. package/bios/seabios/src/fw/lzmadecode.h +67 -0
  197. package/bios/seabios/src/fw/mptable.c +197 -0
  198. package/bios/seabios/src/fw/mtrr.c +105 -0
  199. package/bios/seabios/src/fw/multiboot.c +111 -0
  200. package/bios/seabios/src/fw/paravirt.c +624 -0
  201. package/bios/seabios/src/fw/paravirt.h +63 -0
  202. package/bios/seabios/src/fw/pciinit.c +1187 -0
  203. package/bios/seabios/src/fw/pirtable.c +103 -0
  204. package/bios/seabios/src/fw/q35-acpi-dsdt.dsl +450 -0
  205. package/bios/seabios/src/fw/romfile_loader.c +259 -0
  206. package/bios/seabios/src/fw/romfile_loader.h +91 -0
  207. package/bios/seabios/src/fw/shadow.c +208 -0
  208. package/bios/seabios/src/fw/smbios.c +585 -0
  209. package/bios/seabios/src/fw/smm.c +269 -0
  210. package/bios/seabios/src/fw/smp.c +194 -0
  211. package/bios/seabios/src/fw/ssdt-misc.dsl +104 -0
  212. package/bios/seabios/src/fw/ssdt-misc.hex +88 -0
  213. package/bios/seabios/src/fw/ssdt-pcihp.dsl +36 -0
  214. package/bios/seabios/src/fw/ssdt-pcihp.hex +38 -0
  215. package/bios/seabios/src/fw/ssdt-proc.dsl +48 -0
  216. package/bios/seabios/src/fw/ssdt-proc.hex +35 -0
  217. package/bios/seabios/src/fw/xen.c +149 -0
  218. package/bios/seabios/src/fw/xen.h +125 -0
  219. package/bios/seabios/src/gen-defs.h +19 -0
  220. package/bios/seabios/src/hw/ahci.c +697 -0
  221. package/bios/seabios/src/hw/ahci.h +201 -0
  222. package/bios/seabios/src/hw/ata.c +1046 -0
  223. package/bios/seabios/src/hw/ata.h +163 -0
  224. package/bios/seabios/src/hw/blockcmd.c +372 -0
  225. package/bios/seabios/src/hw/blockcmd.h +114 -0
  226. package/bios/seabios/src/hw/dma.c +67 -0
  227. package/bios/seabios/src/hw/esp-scsi.c +241 -0
  228. package/bios/seabios/src/hw/esp-scsi.h +8 -0
  229. package/bios/seabios/src/hw/floppy.c +741 -0
  230. package/bios/seabios/src/hw/lsi-scsi.c +221 -0
  231. package/bios/seabios/src/hw/lsi-scsi.h +8 -0
  232. package/bios/seabios/src/hw/megasas.c +405 -0
  233. package/bios/seabios/src/hw/megasas.h +8 -0
  234. package/bios/seabios/src/hw/mpt-scsi.c +319 -0
  235. package/bios/seabios/src/hw/mpt-scsi.h +8 -0
  236. package/bios/seabios/src/hw/nvme-int.h +199 -0
  237. package/bios/seabios/src/hw/nvme.c +708 -0
  238. package/bios/seabios/src/hw/nvme.h +17 -0
  239. package/bios/seabios/src/hw/pci.c +133 -0
  240. package/bios/seabios/src/hw/pci.h +47 -0
  241. package/bios/seabios/src/hw/pci_ids.h +2632 -0
  242. package/bios/seabios/src/hw/pci_regs.h +556 -0
  243. package/bios/seabios/src/hw/pcidevice.c +192 -0
  244. package/bios/seabios/src/hw/pcidevice.h +76 -0
  245. package/bios/seabios/src/hw/pic.c +115 -0
  246. package/bios/seabios/src/hw/pic.h +60 -0
  247. package/bios/seabios/src/hw/ps2port.c +543 -0
  248. package/bios/seabios/src/hw/ps2port.h +67 -0
  249. package/bios/seabios/src/hw/pvscsi.c +333 -0
  250. package/bios/seabios/src/hw/pvscsi.h +8 -0
  251. package/bios/seabios/src/hw/ramdisk.c +108 -0
  252. package/bios/seabios/src/hw/rtc.c +100 -0
  253. package/bios/seabios/src/hw/rtc.h +75 -0
  254. package/bios/seabios/src/hw/sdcard.c +572 -0
  255. package/bios/seabios/src/hw/serialio.c +113 -0
  256. package/bios/seabios/src/hw/serialio.h +29 -0
  257. package/bios/seabios/src/hw/timer.c +259 -0
  258. package/bios/seabios/src/hw/tpm_drivers.c +636 -0
  259. package/bios/seabios/src/hw/tpm_drivers.h +127 -0
  260. package/bios/seabios/src/hw/usb-ehci.c +650 -0
  261. package/bios/seabios/src/hw/usb-ehci.h +177 -0
  262. package/bios/seabios/src/hw/usb-hid.c +442 -0
  263. package/bios/seabios/src/hw/usb-hid.h +29 -0
  264. package/bios/seabios/src/hw/usb-hub.c +205 -0
  265. package/bios/seabios/src/hw/usb-hub.h +64 -0
  266. package/bios/seabios/src/hw/usb-msc.c +222 -0
  267. package/bios/seabios/src/hw/usb-msc.h +10 -0
  268. package/bios/seabios/src/hw/usb-ohci.c +568 -0
  269. package/bios/seabios/src/hw/usb-ohci.h +144 -0
  270. package/bios/seabios/src/hw/usb-uas.c +289 -0
  271. package/bios/seabios/src/hw/usb-uas.h +9 -0
  272. package/bios/seabios/src/hw/usb-uhci.c +571 -0
  273. package/bios/seabios/src/hw/usb-uhci.h +128 -0
  274. package/bios/seabios/src/hw/usb-xhci.c +1161 -0
  275. package/bios/seabios/src/hw/usb-xhci.h +133 -0
  276. package/bios/seabios/src/hw/usb.c +499 -0
  277. package/bios/seabios/src/hw/usb.h +254 -0
  278. package/bios/seabios/src/hw/virtio-blk.c +211 -0
  279. package/bios/seabios/src/hw/virtio-blk.h +43 -0
  280. package/bios/seabios/src/hw/virtio-pci.c +501 -0
  281. package/bios/seabios/src/hw/virtio-pci.h +151 -0
  282. package/bios/seabios/src/hw/virtio-ring.c +147 -0
  283. package/bios/seabios/src/hw/virtio-ring.h +121 -0
  284. package/bios/seabios/src/hw/virtio-scsi.c +220 -0
  285. package/bios/seabios/src/hw/virtio-scsi.h +47 -0
  286. package/bios/seabios/src/jpeg.c +1055 -0
  287. package/bios/seabios/src/kbd.c +599 -0
  288. package/bios/seabios/src/list.h +91 -0
  289. package/bios/seabios/src/malloc.c +561 -0
  290. package/bios/seabios/src/malloc.h +70 -0
  291. package/bios/seabios/src/memmap.h +21 -0
  292. package/bios/seabios/src/misc.c +195 -0
  293. package/bios/seabios/src/mouse.c +342 -0
  294. package/bios/seabios/src/optionroms.c +475 -0
  295. package/bios/seabios/src/output.c +584 -0
  296. package/bios/seabios/src/output.h +68 -0
  297. package/bios/seabios/src/pcibios.c +241 -0
  298. package/bios/seabios/src/pmm.c +176 -0
  299. package/bios/seabios/src/pnpbios.c +88 -0
  300. package/bios/seabios/src/post.c +337 -0
  301. package/bios/seabios/src/resume.c +157 -0
  302. package/bios/seabios/src/romfile.c +146 -0
  303. package/bios/seabios/src/romfile.h +21 -0
  304. package/bios/seabios/src/romlayout.S +698 -0
  305. package/bios/seabios/src/sercon.c +677 -0
  306. package/bios/seabios/src/serial.c +317 -0
  307. package/bios/seabios/src/sha1.c +147 -0
  308. package/bios/seabios/src/sha1.h +8 -0
  309. package/bios/seabios/src/stacks.c +771 -0
  310. package/bios/seabios/src/stacks.h +68 -0
  311. package/bios/seabios/src/std/LegacyBios.h +985 -0
  312. package/bios/seabios/src/std/acpi.h +323 -0
  313. package/bios/seabios/src/std/bda.h +174 -0
  314. package/bios/seabios/src/std/disk.h +175 -0
  315. package/bios/seabios/src/std/mptable.h +77 -0
  316. package/bios/seabios/src/std/multiboot.h +260 -0
  317. package/bios/seabios/src/std/optionrom.h +59 -0
  318. package/bios/seabios/src/std/pirtable.h +35 -0
  319. package/bios/seabios/src/std/pmm.h +19 -0
  320. package/bios/seabios/src/std/pnpbios.h +24 -0
  321. package/bios/seabios/src/std/smbios.h +167 -0
  322. package/bios/seabios/src/std/tcg.h +554 -0
  323. package/bios/seabios/src/std/vbe.h +156 -0
  324. package/bios/seabios/src/std/vga.h +63 -0
  325. package/bios/seabios/src/string.c +251 -0
  326. package/bios/seabios/src/string.h +31 -0
  327. package/bios/seabios/src/system.c +357 -0
  328. package/bios/seabios/src/tcgbios.c +2014 -0
  329. package/bios/seabios/src/tcgbios.h +19 -0
  330. package/bios/seabios/src/types.h +156 -0
  331. package/bios/seabios/src/util.h +251 -0
  332. package/bios/seabios/src/version.c +5 -0
  333. package/bios/seabios/src/vgahooks.c +355 -0
  334. package/bios/seabios/src/x86.c +23 -0
  335. package/bios/seabios/src/x86.h +277 -0
  336. package/bios/seabios/vgasrc/Kconfig +211 -0
  337. package/bios/seabios/vgasrc/bochsdisplay.c +59 -0
  338. package/bios/seabios/vgasrc/bochsvga.c +447 -0
  339. package/bios/seabios/vgasrc/bochsvga.h +57 -0
  340. package/bios/seabios/vgasrc/cbvga.c +337 -0
  341. package/bios/seabios/vgasrc/clext.c +627 -0
  342. package/bios/seabios/vgasrc/geodevga.c +434 -0
  343. package/bios/seabios/vgasrc/geodevga.h +89 -0
  344. package/bios/seabios/vgasrc/ramfb.c +163 -0
  345. package/bios/seabios/vgasrc/stdvga.c +485 -0
  346. package/bios/seabios/vgasrc/stdvga.h +81 -0
  347. package/bios/seabios/vgasrc/stdvgaio.c +186 -0
  348. package/bios/seabios/vgasrc/stdvgamodes.c +534 -0
  349. package/bios/seabios/vgasrc/swcursor.c +96 -0
  350. package/bios/seabios/vgasrc/vbe.c +432 -0
  351. package/bios/seabios/vgasrc/vgabios.c +1131 -0
  352. package/bios/seabios/vgasrc/vgabios.h +88 -0
  353. package/bios/seabios/vgasrc/vgaentry.S +161 -0
  354. package/bios/seabios/vgasrc/vgafb.c +661 -0
  355. package/bios/seabios/vgasrc/vgafb.h +42 -0
  356. package/bios/seabios/vgasrc/vgafonts.c +785 -0
  357. package/bios/seabios/vgasrc/vgahw.h +152 -0
  358. package/bios/seabios/vgasrc/vgainit.c +202 -0
  359. package/bios/seabios/vgasrc/vgalayout.lds.S +23 -0
  360. package/bios/seabios/vgasrc/vgautil.h +103 -0
  361. package/bios/seabios/vgasrc/vgaversion.c +6 -0
  362. package/build/binaries.js +1 -1
  363. package/build/index-debug.cjs +1 -1
  364. package/build/index-debug.js +1 -1
  365. package/build/index.cjs +1 -1
  366. package/build/index.js +1 -1
  367. package/build/v86-debug.wasm +0 -0
  368. package/build/v86.wasm +0 -0
  369. package/package.json +1 -1
@@ -0,0 +1,485 @@
1
+ // Standard VGA driver code
2
+ //
3
+ // Copyright (C) 2009 Kevin O'Connor <kevin@koconnor.net>
4
+ // Copyright (C) 2001-2008 the LGPL VGABios developers Team
5
+ //
6
+ // This file may be distributed under the terms of the GNU LGPLv3 license.
7
+
8
+ #include "biosvar.h" // GET_GLOBAL
9
+ #include "farptr.h" // SET_FARVAR
10
+ #include "stdvga.h" // stdvga_setup
11
+ #include "string.h" // memset_far
12
+ #include "vgabios.h" // struct vgamode_s
13
+ #include "vgautil.h" // stdvga_attr_write
14
+ #include "x86.h" // outb
15
+
16
+
17
+ /****************************************************************
18
+ * Attribute control
19
+ ****************************************************************/
20
+
21
+ void
22
+ stdvga_set_border_color(u8 color)
23
+ {
24
+ u8 v1 = color & 0x0f;
25
+ if (v1 & 0x08)
26
+ v1 += 0x08;
27
+ stdvga_attr_write(0x00, v1);
28
+
29
+ int i;
30
+ for (i = 1; i < 4; i++)
31
+ stdvga_attr_mask(i, 0x10, color & 0x10);
32
+ }
33
+
34
+ void
35
+ stdvga_set_overscan_border_color(u8 color)
36
+ {
37
+ stdvga_attr_write(0x11, color);
38
+ }
39
+
40
+ u8
41
+ stdvga_get_overscan_border_color(void)
42
+ {
43
+ return stdvga_attr_read(0x11);
44
+ }
45
+
46
+ void
47
+ stdvga_set_palette(u8 palid)
48
+ {
49
+ int i;
50
+ for (i = 1; i < 4; i++)
51
+ stdvga_attr_mask(i, 0x01, palid & 0x01);
52
+ }
53
+
54
+ void
55
+ stdvga_set_all_palette_reg(u16 seg, u8 *data_far)
56
+ {
57
+ int i;
58
+ for (i = 0; i < 0x10; i++) {
59
+ stdvga_attr_write(i, GET_FARVAR(seg, *data_far));
60
+ data_far++;
61
+ }
62
+ stdvga_attr_write(0x11, GET_FARVAR(seg, *data_far));
63
+ }
64
+
65
+ void
66
+ stdvga_get_all_palette_reg(u16 seg, u8 *data_far)
67
+ {
68
+ int i;
69
+ for (i = 0; i < 0x10; i++) {
70
+ SET_FARVAR(seg, *data_far, stdvga_attr_read(i));
71
+ data_far++;
72
+ }
73
+ SET_FARVAR(seg, *data_far, stdvga_attr_read(0x11));
74
+ }
75
+
76
+ void
77
+ stdvga_toggle_intensity(u8 flag)
78
+ {
79
+ stdvga_attr_mask(0x10, 0x08, (flag & 0x01) << 3);
80
+ }
81
+
82
+ void
83
+ stdvga_select_video_dac_color_page(u8 flag, u8 data)
84
+ {
85
+ if (!(flag & 0x01)) {
86
+ // select paging mode
87
+ stdvga_attr_mask(0x10, 0x80, data << 7);
88
+ return;
89
+ }
90
+ // select page
91
+ u8 val = stdvga_attr_read(0x10);
92
+ if (!(val & 0x80))
93
+ data <<= 2;
94
+ data &= 0x0f;
95
+ stdvga_attr_write(0x14, data);
96
+ }
97
+
98
+ void
99
+ stdvga_read_video_dac_state(u8 *pmode, u8 *curpage)
100
+ {
101
+ u8 val1 = stdvga_attr_read(0x10) >> 7;
102
+ u8 val2 = stdvga_attr_read(0x14) & 0x0f;
103
+ if (!(val1 & 0x01))
104
+ val2 >>= 2;
105
+ *pmode = val1;
106
+ *curpage = val2;
107
+ }
108
+
109
+
110
+ /****************************************************************
111
+ * DAC control
112
+ ****************************************************************/
113
+
114
+ void
115
+ stdvga_perform_gray_scale_summing(u16 start, u16 count)
116
+ {
117
+ stdvga_attrindex_write(0x00);
118
+ int i;
119
+ for (i = start; i < start+count; i++) {
120
+ u8 rgb[3];
121
+ stdvga_dac_read(GET_SEG(SS), rgb, i, 1);
122
+
123
+ // intensity = ( 0.3 * Red ) + ( 0.59 * Green ) + ( 0.11 * Blue )
124
+ u16 intensity = ((77 * rgb[0] + 151 * rgb[1] + 28 * rgb[2]) + 0x80) >> 8;
125
+ if (intensity > 0x3f)
126
+ intensity = 0x3f;
127
+ rgb[0] = rgb[1] = rgb[2] = intensity;
128
+
129
+ stdvga_dac_write(GET_SEG(SS), rgb, i, 1);
130
+ }
131
+ stdvga_attrindex_write(0x20);
132
+ }
133
+
134
+
135
+ /****************************************************************
136
+ * Memory control
137
+ ****************************************************************/
138
+
139
+ void
140
+ stdvga_set_text_block_specifier(u8 spec)
141
+ {
142
+ stdvga_sequ_write(0x03, spec);
143
+ }
144
+
145
+ // Enable reads and writes to the given "plane" when in planar4 mode.
146
+ void
147
+ stdvga_planar4_plane(int plane)
148
+ {
149
+ if (plane < 0) {
150
+ // Return to default mode (read plane0, write all planes)
151
+ stdvga_sequ_write(0x02, 0x0f);
152
+ stdvga_grdc_write(0x04, 0);
153
+ } else {
154
+ stdvga_sequ_write(0x02, 1<<plane);
155
+ stdvga_grdc_write(0x04, plane);
156
+ }
157
+ }
158
+
159
+
160
+ /****************************************************************
161
+ * Font loading
162
+ ****************************************************************/
163
+
164
+ static void
165
+ get_font_access(void)
166
+ {
167
+ stdvga_sequ_write(0x00, 0x01);
168
+ stdvga_sequ_write(0x02, 0x04);
169
+ stdvga_sequ_write(0x04, 0x07);
170
+ stdvga_sequ_write(0x00, 0x03);
171
+ stdvga_grdc_write(0x04, 0x02);
172
+ stdvga_grdc_write(0x05, 0x00);
173
+ stdvga_grdc_write(0x06, 0x04);
174
+ }
175
+
176
+ static void
177
+ release_font_access(void)
178
+ {
179
+ stdvga_sequ_write(0x00, 0x01);
180
+ stdvga_sequ_write(0x02, 0x03);
181
+ stdvga_sequ_write(0x04, 0x03);
182
+ stdvga_sequ_write(0x00, 0x03);
183
+ u16 v = (stdvga_misc_read() & 0x01) ? 0x0e : 0x0a;
184
+ stdvga_grdc_write(0x06, v);
185
+ stdvga_grdc_write(0x04, 0x00);
186
+ stdvga_grdc_write(0x05, 0x10);
187
+ }
188
+
189
+ void
190
+ stdvga_load_font(u16 seg, void *src_far, u16 count
191
+ , u16 start, u8 destflags, u8 fontsize)
192
+ {
193
+ get_font_access();
194
+ u16 blockaddr = ((destflags & 0x03) << 14) + ((destflags & 0x04) << 11);
195
+ void *dest_far = (void*)(blockaddr + start*32);
196
+ u16 i;
197
+ for (i = 0; i < count; i++)
198
+ memcpy_far(SEG_GRAPH, dest_far + i*32
199
+ , seg, src_far + i*fontsize, fontsize);
200
+ release_font_access();
201
+ }
202
+
203
+
204
+ /****************************************************************
205
+ * CRTC registers
206
+ ****************************************************************/
207
+
208
+ u16
209
+ stdvga_get_crtc(void)
210
+ {
211
+ if (stdvga_misc_read() & 1)
212
+ return VGAREG_VGA_CRTC_ADDRESS;
213
+ return VGAREG_MDA_CRTC_ADDRESS;
214
+ }
215
+
216
+ // Ratio between system visible framebuffer ram and the actual videoram used.
217
+ int
218
+ stdvga_vram_ratio(struct vgamode_s *vmode_g)
219
+ {
220
+ switch (GET_GLOBAL(vmode_g->memmodel)) {
221
+ case MM_TEXT:
222
+ return 2;
223
+ case MM_CGA:
224
+ return 4 / GET_GLOBAL(vmode_g->depth);
225
+ case MM_PLANAR:
226
+ return 4;
227
+ default:
228
+ return 1;
229
+ }
230
+ }
231
+
232
+ void
233
+ stdvga_set_cursor_shape(u16 cursor_type)
234
+ {
235
+ u16 crtc_addr = stdvga_get_crtc();
236
+ stdvga_crtc_write(crtc_addr, 0x0a, cursor_type >> 8);
237
+ stdvga_crtc_write(crtc_addr, 0x0b, cursor_type);
238
+ }
239
+
240
+ void
241
+ stdvga_set_cursor_pos(int address)
242
+ {
243
+ u16 crtc_addr = stdvga_get_crtc();
244
+ address /= 2; // Assume we're in text mode.
245
+ stdvga_crtc_write(crtc_addr, 0x0e, address >> 8);
246
+ stdvga_crtc_write(crtc_addr, 0x0f, address);
247
+ }
248
+
249
+ void
250
+ stdvga_set_scan_lines(u8 lines)
251
+ {
252
+ stdvga_crtc_mask(stdvga_get_crtc(), 0x09, 0x1f, lines - 1);
253
+ }
254
+
255
+ // Get vertical display end
256
+ u16
257
+ stdvga_get_vde(void)
258
+ {
259
+ u16 crtc_addr = stdvga_get_crtc();
260
+ u16 vde = stdvga_crtc_read(crtc_addr, 0x12);
261
+ u8 ovl = stdvga_crtc_read(crtc_addr, 0x07);
262
+ vde += (((ovl & 0x02) << 7) + ((ovl & 0x40) << 3) + 1);
263
+ return vde;
264
+ }
265
+
266
+ int
267
+ stdvga_get_window(struct vgamode_s *vmode_g, int window)
268
+ {
269
+ return -1;
270
+ }
271
+
272
+ int
273
+ stdvga_set_window(struct vgamode_s *vmode_g, int window, int val)
274
+ {
275
+ return -1;
276
+ }
277
+
278
+ int
279
+ stdvga_get_linelength(struct vgamode_s *vmode_g)
280
+ {
281
+ u8 val = stdvga_crtc_read(stdvga_get_crtc(), 0x13);
282
+ return val * 8 / stdvga_vram_ratio(vmode_g);
283
+ }
284
+
285
+ int
286
+ stdvga_set_linelength(struct vgamode_s *vmode_g, int val)
287
+ {
288
+ val = DIV_ROUND_UP(val * stdvga_vram_ratio(vmode_g), 8);
289
+ stdvga_crtc_write(stdvga_get_crtc(), 0x13, val);
290
+ return 0;
291
+ }
292
+
293
+ int
294
+ stdvga_get_displaystart(struct vgamode_s *vmode_g)
295
+ {
296
+ u16 crtc_addr = stdvga_get_crtc();
297
+ int addr = (stdvga_crtc_read(crtc_addr, 0x0c) << 8
298
+ | stdvga_crtc_read(crtc_addr, 0x0d));
299
+ return addr * 4 / stdvga_vram_ratio(vmode_g);
300
+ }
301
+
302
+ int
303
+ stdvga_set_displaystart(struct vgamode_s *vmode_g, int val)
304
+ {
305
+ u16 crtc_addr = stdvga_get_crtc();
306
+ val = val * stdvga_vram_ratio(vmode_g) / 4;
307
+ stdvga_crtc_write(crtc_addr, 0x0c, val >> 8);
308
+ stdvga_crtc_write(crtc_addr, 0x0d, val);
309
+ return 0;
310
+ }
311
+
312
+ int
313
+ stdvga_get_dacformat(struct vgamode_s *vmode_g)
314
+ {
315
+ return -1;
316
+ }
317
+
318
+ int
319
+ stdvga_set_dacformat(struct vgamode_s *vmode_g, int val)
320
+ {
321
+ return -1;
322
+ }
323
+
324
+ int
325
+ stdvga_get_linesize(struct vgamode_s *vmode_g)
326
+ {
327
+ return DIV_ROUND_UP(GET_GLOBAL(vmode_g->width) * vga_bpp(vmode_g), 8);
328
+ }
329
+
330
+ /****************************************************************
331
+ * Save/Restore state
332
+ ****************************************************************/
333
+
334
+ struct saveVideoHardware {
335
+ u8 sequ_index;
336
+ u8 crtc_index;
337
+ u8 grdc_index;
338
+ u8 actl_index;
339
+ u8 feature;
340
+ u8 sequ_regs[4];
341
+ u8 sequ0;
342
+ u8 crtc_regs[25];
343
+ u8 actl_regs[20];
344
+ u8 grdc_regs[9];
345
+ u16 crtc_addr;
346
+ u8 plane_latch[4];
347
+ } PACKED;
348
+
349
+ static void
350
+ stdvga_save_hw_state(u16 seg, struct saveVideoHardware *info)
351
+ {
352
+ u16 crtc_addr = stdvga_get_crtc();
353
+ SET_FARVAR(seg, info->sequ_index, inb(VGAREG_SEQU_ADDRESS));
354
+ SET_FARVAR(seg, info->crtc_index, inb(crtc_addr));
355
+ SET_FARVAR(seg, info->grdc_index, inb(VGAREG_GRDC_ADDRESS));
356
+ SET_FARVAR(seg, info->actl_index, stdvga_attrindex_read());
357
+ SET_FARVAR(seg, info->feature, inb(VGAREG_READ_FEATURE_CTL));
358
+
359
+ int i;
360
+ for (i=0; i<4; i++)
361
+ SET_FARVAR(seg, info->sequ_regs[i], stdvga_sequ_read(i+1));
362
+ SET_FARVAR(seg, info->sequ0, stdvga_sequ_read(0));
363
+
364
+ for (i=0; i<25; i++)
365
+ SET_FARVAR(seg, info->crtc_regs[i], stdvga_crtc_read(crtc_addr, i));
366
+
367
+ for (i=0; i<20; i++)
368
+ SET_FARVAR(seg, info->actl_regs[i], stdvga_attr_read(i));
369
+
370
+ for (i=0; i<9; i++)
371
+ SET_FARVAR(seg, info->grdc_regs[i], stdvga_grdc_read(i));
372
+
373
+ SET_FARVAR(seg, info->crtc_addr, crtc_addr);
374
+
375
+ /* XXX: read plane latches */
376
+ for (i=0; i<4; i++)
377
+ SET_FARVAR(seg, info->plane_latch[i], 0);
378
+ }
379
+
380
+ static void
381
+ stdvga_restore_hw_state(u16 seg, struct saveVideoHardware *info)
382
+ {
383
+ int i;
384
+ for (i=0; i<4; i++)
385
+ stdvga_sequ_write(i+1, GET_FARVAR(seg, info->sequ_regs[i]));
386
+ stdvga_sequ_write(0x00, GET_FARVAR(seg, info->sequ0));
387
+
388
+ // Disable CRTC write protection
389
+ u16 crtc_addr = GET_FARVAR(seg, info->crtc_addr);
390
+ stdvga_crtc_write(crtc_addr, 0x11, 0x00);
391
+ // Set CRTC regs
392
+ for (i=0; i<25; i++)
393
+ if (i != 0x11)
394
+ stdvga_crtc_write(crtc_addr, i, GET_FARVAR(seg, info->crtc_regs[i]));
395
+ // select crtc base address
396
+ stdvga_misc_mask(0x01, crtc_addr == VGAREG_VGA_CRTC_ADDRESS ? 0x01 : 0x00);
397
+
398
+ // enable write protection if needed
399
+ stdvga_crtc_write(crtc_addr, 0x11, GET_FARVAR(seg, info->crtc_regs[0x11]));
400
+
401
+ // Set Attribute Ctl
402
+ for (i=0; i<20; i++)
403
+ stdvga_attr_write(i, GET_FARVAR(seg, info->actl_regs[i]));
404
+ stdvga_attrindex_write(GET_FARVAR(seg, info->actl_index));
405
+
406
+ for (i=0; i<9; i++)
407
+ stdvga_grdc_write(i, GET_FARVAR(seg, info->grdc_regs[i]));
408
+
409
+ outb(GET_FARVAR(seg, info->sequ_index), VGAREG_SEQU_ADDRESS);
410
+ outb(GET_FARVAR(seg, info->crtc_index), crtc_addr);
411
+ outb(GET_FARVAR(seg, info->grdc_index), VGAREG_GRDC_ADDRESS);
412
+ outb(GET_FARVAR(seg, info->feature), crtc_addr - 0x4 + 0xa);
413
+ }
414
+
415
+ struct saveDACcolors {
416
+ u8 rwmode;
417
+ u8 peladdr;
418
+ u8 pelmask;
419
+ u8 dac[768];
420
+ u8 color_select;
421
+ } PACKED;
422
+
423
+ static void
424
+ stdvga_save_dac_state(u16 seg, struct saveDACcolors *info)
425
+ {
426
+ /* XXX: check this */
427
+ SET_FARVAR(seg, info->rwmode, inb(VGAREG_DAC_STATE));
428
+ SET_FARVAR(seg, info->peladdr, inb(VGAREG_DAC_WRITE_ADDRESS));
429
+ SET_FARVAR(seg, info->pelmask, stdvga_pelmask_read());
430
+ stdvga_dac_read(seg, info->dac, 0, 256);
431
+ SET_FARVAR(seg, info->color_select, 0);
432
+ }
433
+
434
+ static void
435
+ stdvga_restore_dac_state(u16 seg, struct saveDACcolors *info)
436
+ {
437
+ stdvga_pelmask_write(GET_FARVAR(seg, info->pelmask));
438
+ stdvga_dac_write(seg, info->dac, 0, 256);
439
+ outb(GET_FARVAR(seg, info->peladdr), VGAREG_DAC_WRITE_ADDRESS);
440
+ }
441
+
442
+ int
443
+ stdvga_save_restore(int cmd, u16 seg, void *data)
444
+ {
445
+ void *pos = data;
446
+ if (cmd & SR_HARDWARE) {
447
+ if (cmd & SR_SAVE)
448
+ stdvga_save_hw_state(seg, pos);
449
+ if (cmd & SR_RESTORE)
450
+ stdvga_restore_hw_state(seg, pos);
451
+ pos += sizeof(struct saveVideoHardware);
452
+ }
453
+ pos += bda_save_restore(cmd, seg, pos);
454
+ if (cmd & SR_DAC) {
455
+ if (cmd & SR_SAVE)
456
+ stdvga_save_dac_state(seg, pos);
457
+ if (cmd & SR_RESTORE)
458
+ stdvga_restore_dac_state(seg, pos);
459
+ pos += sizeof(struct saveDACcolors);
460
+ }
461
+ return pos - data;
462
+ }
463
+
464
+
465
+ /****************************************************************
466
+ * Misc
467
+ ****************************************************************/
468
+
469
+ void
470
+ stdvga_enable_video_addressing(u8 disable)
471
+ {
472
+ u8 v = (disable & 1) ? 0x00 : 0x02;
473
+ stdvga_misc_mask(0x02, v);
474
+ }
475
+
476
+ int
477
+ stdvga_setup(void)
478
+ {
479
+ // switch to color mode and enable CPU access 480 lines
480
+ stdvga_misc_write(0xc3);
481
+ // more than 64k 3C4/04
482
+ stdvga_sequ_write(0x04, 0x02);
483
+
484
+ return 0;
485
+ }
@@ -0,0 +1,81 @@
1
+ #ifndef __STDVGA_H
2
+ #define __STDVGA_H
3
+
4
+ #include "types.h" // u8
5
+
6
+ // VGA registers
7
+ #define VGAREG_ACTL_ADDRESS 0x3c0
8
+ #define VGAREG_ACTL_WRITE_DATA 0x3c0
9
+ #define VGAREG_ACTL_READ_DATA 0x3c1
10
+
11
+ #define VGAREG_INPUT_STATUS 0x3c2
12
+ #define VGAREG_WRITE_MISC_OUTPUT 0x3c2
13
+ #define VGAREG_VIDEO_ENABLE 0x3c3
14
+ #define VGAREG_SEQU_ADDRESS 0x3c4
15
+ #define VGAREG_SEQU_DATA 0x3c5
16
+
17
+ #define VGAREG_PEL_MASK 0x3c6
18
+ #define VGAREG_DAC_STATE 0x3c7
19
+ #define VGAREG_DAC_READ_ADDRESS 0x3c7
20
+ #define VGAREG_DAC_WRITE_ADDRESS 0x3c8
21
+ #define VGAREG_DAC_DATA 0x3c9
22
+
23
+ #define VGAREG_READ_FEATURE_CTL 0x3ca
24
+ #define VGAREG_READ_MISC_OUTPUT 0x3cc
25
+
26
+ #define VGAREG_GRDC_ADDRESS 0x3ce
27
+ #define VGAREG_GRDC_DATA 0x3cf
28
+
29
+ #define VGAREG_MDA_CRTC_ADDRESS 0x3b4
30
+ #define VGAREG_MDA_CRTC_DATA 0x3b5
31
+ #define VGAREG_VGA_CRTC_ADDRESS 0x3d4
32
+ #define VGAREG_VGA_CRTC_DATA 0x3d5
33
+
34
+ #define VGAREG_MDA_WRITE_FEATURE_CTL 0x3ba
35
+ #define VGAREG_VGA_WRITE_FEATURE_CTL 0x3da
36
+ #define VGAREG_ACTL_RESET 0x3da
37
+
38
+ #define VGAREG_MDA_MODECTL 0x3b8
39
+ #define VGAREG_CGA_MODECTL 0x3d8
40
+ #define VGAREG_CGA_PALETTE 0x3d9
41
+
42
+ /* Video memory */
43
+ #define SEG_GRAPH 0xA000
44
+ #define SEG_CTEXT 0xB800
45
+ #define SEG_MTEXT 0xB000
46
+
47
+ // stdvga.c
48
+ void stdvga_set_border_color(u8 color);
49
+ void stdvga_set_overscan_border_color(u8 color);
50
+ u8 stdvga_get_overscan_border_color(void);
51
+ void stdvga_set_palette(u8 palid);
52
+ void stdvga_set_all_palette_reg(u16 seg, u8 *data_far);
53
+ void stdvga_get_all_palette_reg(u16 seg, u8 *data_far);
54
+ void stdvga_toggle_intensity(u8 flag);
55
+ void stdvga_select_video_dac_color_page(u8 flag, u8 data);
56
+ void stdvga_read_video_dac_state(u8 *pmode, u8 *curpage);
57
+ void stdvga_perform_gray_scale_summing(u16 start, u16 count);
58
+ void stdvga_set_text_block_specifier(u8 spec);
59
+ void stdvga_planar4_plane(int plane);
60
+ void stdvga_load_font(u16 seg, void *src_far, u16 count
61
+ , u16 start, u8 destflags, u8 fontsize);
62
+ u16 stdvga_get_crtc(void);
63
+ struct vgamode_s;
64
+ int stdvga_vram_ratio(struct vgamode_s *vmode_g);
65
+ void stdvga_set_cursor_shape(u16 cursor_type);
66
+ void stdvga_set_cursor_pos(int address);
67
+ void stdvga_set_scan_lines(u8 lines);
68
+ u16 stdvga_get_vde(void);
69
+ int stdvga_get_window(struct vgamode_s *vmode_g, int window);
70
+ int stdvga_set_window(struct vgamode_s *vmode_g, int window, int val);
71
+ int stdvga_get_linelength(struct vgamode_s *vmode_g);
72
+ int stdvga_set_linelength(struct vgamode_s *vmode_g, int val);
73
+ int stdvga_get_displaystart(struct vgamode_s *vmode_g);
74
+ int stdvga_set_displaystart(struct vgamode_s *vmode_g, int val);
75
+ int stdvga_get_dacformat(struct vgamode_s *vmode_g);
76
+ int stdvga_set_dacformat(struct vgamode_s *vmode_g, int val);
77
+ int stdvga_save_restore(int cmd, u16 seg, void *data);
78
+ void stdvga_enable_video_addressing(u8 disable);
79
+ int stdvga_setup(void);
80
+
81
+ #endif // stdvga.h