v86 0.3.4 → 0.3.7

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 +4 -4
  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,698 @@
1
+ // Rom layout and bios assembler to C interface.
2
+ //
3
+ // Copyright (C) 2008-2012 Kevin O'Connor <kevin@koconnor.net>
4
+ // Copyright (C) 2002 MandrakeSoft S.A.
5
+ //
6
+ // This file may be distributed under the terms of the GNU LGPLv3 license.
7
+
8
+ #include "asm-offsets.h" // BREGS_*
9
+ #include "config.h" // CONFIG_*
10
+ #include "entryfuncs.S" // ENTRY_*
11
+ #include "hw/rtc.h" // CMOS_RESET_CODE
12
+ #include "x86.h" // CR0_*
13
+
14
+ .code16
15
+
16
+
17
+ /****************************************************************
18
+ * 16bit / 32bit call trampolines
19
+ ****************************************************************/
20
+
21
+ // Place CPU into 32bit mode from 16bit mode.
22
+ // %edx = return location (in 32bit mode)
23
+ // Clobbers: ecx, flags, segment registers, cr0, idt/gdt
24
+ DECLFUNC transition32
25
+ .global transition32_nmi_off
26
+ transition32:
27
+ // Disable irqs (and clear direction flag)
28
+ cli
29
+ cld
30
+
31
+ // Disable nmi
32
+ movl %eax, %ecx
33
+ movl $CMOS_RESET_CODE|NMI_DISABLE_BIT, %eax
34
+ outb %al, $PORT_CMOS_INDEX
35
+ inb $PORT_CMOS_DATA, %al
36
+
37
+ // enable a20
38
+ inb $PORT_A20, %al
39
+ orb $A20_ENABLE_BIT, %al
40
+ outb %al, $PORT_A20
41
+ movl %ecx, %eax
42
+
43
+ transition32_nmi_off:
44
+ // Set segment descriptors
45
+ lidtw %cs:pmode_IDT_info
46
+ lgdtw %cs:rombios32_gdt_48
47
+
48
+ // Enable protected mode
49
+ movl %cr0, %ecx
50
+ andl $~(CR0_PG|CR0_CD|CR0_NW), %ecx
51
+ orl $CR0_PE, %ecx
52
+ movl %ecx, %cr0
53
+
54
+ // start 32bit protected mode code
55
+ ljmpl $SEG32_MODE32_CS, $(BUILD_BIOS_ADDR + 1f)
56
+
57
+ .code32
58
+ // init data segments
59
+ 1: movl $SEG32_MODE32_DS, %ecx
60
+ movw %cx, %ds
61
+ movw %cx, %es
62
+ movw %cx, %ss
63
+ movw %cx, %fs
64
+ movw %cx, %gs
65
+
66
+ jmpl *%edx
67
+ .code16
68
+
69
+ // Place CPU into 16bit mode from 32bit mode.
70
+ // %edx = return location (in 16bit mode)
71
+ // Clobbers: ecx, flags, segment registers, cr0, idt/gdt
72
+ DECLFUNC transition16
73
+ .global transition16big
74
+ .code32
75
+ transition16:
76
+ // Reset data segment limits
77
+ movl $SEG32_MODE16_DS, %ecx
78
+ movw %cx, %ds
79
+ movw %cx, %es
80
+ movw %cx, %ss
81
+ movw %cx, %fs
82
+ movw %cx, %gs
83
+
84
+ // Jump to 16bit mode
85
+ ljmpw $SEG32_MODE16_CS, $1f
86
+
87
+ transition16big:
88
+ movl $SEG32_MODE16BIG_DS, %ecx
89
+ movw %cx, %ds
90
+ movw %cx, %es
91
+ movw %cx, %ss
92
+ movw %cx, %fs
93
+ movw %cx, %gs
94
+
95
+ ljmpw $SEG32_MODE16BIG_CS, $1f
96
+
97
+ .code16
98
+ // Disable protected mode
99
+ 1: movl %cr0, %ecx
100
+ andl $~CR0_PE, %ecx
101
+ movl %ecx, %cr0
102
+
103
+ // far jump to flush CPU queue after transition to real mode
104
+ ljmpw $SEG_BIOS, $2f
105
+
106
+ // restore IDT to normal real-mode defaults
107
+ 2: lidtw %cs:rmode_IDT_info
108
+
109
+ // Clear segment registers
110
+ xorw %cx, %cx
111
+ movw %cx, %fs
112
+ movw %cx, %gs
113
+ movw %cx, %es
114
+ movw %cx, %ds
115
+ movw %cx, %ss // Assume stack is in segment 0
116
+
117
+ jmpl *%edx
118
+
119
+
120
+ /****************************************************************
121
+ * External calling trampolines
122
+ ****************************************************************/
123
+
124
+ // Far call a 16bit function from 16bit mode with a specified cpu register state
125
+ // %eax = address of struct bregs, %edx = segment of struct bregs
126
+ // Clobbers: %e[bc]x, %e[ds]i, flags
127
+ DECLFUNC __farcall16
128
+ __farcall16:
129
+ // Save %edx/%eax, %ebp
130
+ pushl %ebp
131
+ pushl %eax
132
+ pushl %edx
133
+
134
+ // Setup for iretw call
135
+ movl %edx, %ds
136
+ pushw %cs
137
+ pushw $1f // return point
138
+ pushw BREGS_flags(%eax) // flags
139
+ pushl BREGS_code(%eax) // CS:IP
140
+
141
+ // Load calling registers and invoke call
142
+ RESTOREBREGS_DSEAX
143
+ iretw // XXX - just do a lcalll
144
+ 1:
145
+ // Store flags, es, eax
146
+ pushfw
147
+ cli
148
+ cld
149
+ pushw %ds
150
+ pushl %eax
151
+ movw 0x08(%esp), %ds
152
+ movl 0x0c(%esp), %eax
153
+ SAVEBREGS_POP_DSEAX
154
+ popw BREGS_flags(%eax)
155
+ movw %ss, %cx
156
+ movw %cx, %ds // Restore %ds == %ss
157
+
158
+ // Remove %edx/%eax, restore %ebp
159
+ popl %edx
160
+ popl %eax
161
+ popl %ebp
162
+
163
+ retl
164
+
165
+ // IRQ trampolines
166
+ .macro IRQ_TRAMPOLINE num
167
+ DECLFUNC irq_trampoline_0x\num
168
+ irq_trampoline_0x\num :
169
+ int $0x\num
170
+ lretw
171
+ .endm
172
+
173
+ IRQ_TRAMPOLINE 02
174
+ IRQ_TRAMPOLINE 05
175
+ IRQ_TRAMPOLINE 10
176
+ IRQ_TRAMPOLINE 13
177
+ IRQ_TRAMPOLINE 15
178
+ IRQ_TRAMPOLINE 16
179
+ IRQ_TRAMPOLINE 18
180
+ IRQ_TRAMPOLINE 19
181
+ IRQ_TRAMPOLINE 1b
182
+ IRQ_TRAMPOLINE 1c
183
+ IRQ_TRAMPOLINE 4a
184
+
185
+
186
+ /****************************************************************
187
+ * Misc. entry points.
188
+ ****************************************************************/
189
+
190
+ // Entry point for QEMU smi interrupts.
191
+ DECLFUNC entry_smi
192
+ entry_smi:
193
+ // Transition to 32bit mode.
194
+ movl $1f + BUILD_BIOS_ADDR, %edx
195
+ jmp transition32_nmi_off
196
+ .code32
197
+ 1: movl $BUILD_SMM_ADDR + 0x8000, %esp
198
+ calll _cfunc32flat_handle_smi - BUILD_BIOS_ADDR
199
+ rsm
200
+ .code16
201
+
202
+ // Entry point for QEMU smp sipi interrupts.
203
+ DECLFUNC entry_smp
204
+ entry_smp:
205
+ // Transition to 32bit mode.
206
+ cli
207
+ cld
208
+ movl $2f + BUILD_BIOS_ADDR, %edx
209
+ jmp transition32_nmi_off
210
+ .code32
211
+ // Acquire lock and take ownership of shared stack
212
+ 1: rep ; nop
213
+ 2: lock btsl $0, SMPLock
214
+ jc 1b
215
+ movl SMPStack, %esp
216
+ // Call handle_smp
217
+ calll _cfunc32flat_handle_smp - BUILD_BIOS_ADDR
218
+ // Release lock and halt processor.
219
+ movl $0, SMPLock
220
+ 3: hlt
221
+ jmp 3b
222
+ .code16
223
+
224
+ // Resume (and reboot) entry point - called from entry_post
225
+ DECLFUNC entry_resume
226
+ entry_resume:
227
+ // Disable interrupts
228
+ cli
229
+ cld
230
+ // Use the ExtraStack in low mem.
231
+ movl $_zonelow_seg, %eax
232
+ movw %ax, %ds
233
+ movw %ax, %ss
234
+ movl $ExtraStack + BUILD_EXTRA_STACK_SIZE, %esp
235
+ // Call handler.
236
+ jmp handle_resume
237
+
238
+ // PMM entry point
239
+ DECLFUNC entry_pmm
240
+ entry_pmm:
241
+ pushl %esp // Backup %esp, then clear high bits
242
+ movzwl %sp, %esp
243
+ pushfl // Save registers clobbered by C code
244
+ cli
245
+ cld
246
+ PUSHBREGS
247
+ movl %ss, %ecx // Move %ss to %ds
248
+ movw %cx, %ds
249
+ shll $4, %ecx
250
+ movl $_cfunc32flat_handle_pmm, %eax // Setup: call32(handle_pmm, args, -1)
251
+ leal PUSHBREGS_size+12(%esp, %ecx), %edx // %edx points to start of args
252
+ movl $-1, %ecx
253
+ calll __call32
254
+ movw %ax, BREGS_eax(%esp) // Modify %ax:%dx to return %eax
255
+ shrl $16, %eax
256
+ movw %ax, BREGS_edx(%esp)
257
+ POPBREGS
258
+ popfl
259
+ popl %esp
260
+ lretw
261
+
262
+ // PnP entry points
263
+ DECLFUNC entry_pnp_real
264
+ .global entry_pnp_prot
265
+ entry_pnp_prot:
266
+ pushl %esp
267
+ jmp 1f
268
+ entry_pnp_real:
269
+ pushl %esp // Backup %esp, then clear high bits
270
+ movzwl %sp, %esp
271
+ 1:
272
+ pushfl // Save registers clobbered by C code
273
+ cli
274
+ cld
275
+ PUSHBREGS
276
+ movw %ss, %cx // Move %ss to %ds
277
+ movw %cx, %ds
278
+ leal PUSHBREGS_size+12(%esp), %eax // %eax points to start of u16 args
279
+ calll handle_pnp
280
+ movw %ax, BREGS_eax(%esp) // Modify %eax to return %ax
281
+ POPBREGS
282
+ popfl
283
+ popl %esp
284
+ lretw
285
+
286
+ // APM entry points
287
+ DECLFUNC entry_apm16
288
+ entry_apm16:
289
+ pushfw // save flags
290
+ pushl %eax // dummy
291
+ ENTRY_ARG handle_apm
292
+ addw $4, %sp // pop dummy
293
+ popfw // restore flags
294
+ lretw
295
+
296
+ DECLFUNC entry_apm32
297
+ .code32
298
+ entry_apm32:
299
+ pushfl
300
+ pushl %gs
301
+ pushl %cs // Move second descriptor after %cs to %gs
302
+ addl $16, (%esp)
303
+ popl %gs
304
+ ENTRY_ARG_ESP _cfunc32seg_handle_apm
305
+ popl %gs
306
+ popfl
307
+ lretl
308
+ .code16
309
+
310
+ // PCI-BIOS entry points
311
+ DECLFUNC entry_pcibios32
312
+ .code32
313
+ entry_pcibios32:
314
+ pushfl
315
+ pushl %gs // Backup %gs and set %gs=%ds
316
+ pushl %ds
317
+ popl %gs
318
+ ENTRY_ARG_ESP _cfunc32seg_handle_pcibios
319
+ popl %gs
320
+ popfl
321
+ lretl
322
+ .code16
323
+
324
+ DECLFUNC entry_pcibios16
325
+ entry_pcibios16:
326
+ ENTRY_ARG handle_pcibios
327
+ iretw
328
+
329
+ // int 1589 entry point
330
+ DECLFUNC entry_1589
331
+ entry_1589:
332
+ ENTRY_ARG handle_1589
333
+ iretw
334
+
335
+ // BIOS32 support
336
+ DECLFUNC entry_bios32
337
+ .code32
338
+ entry_bios32:
339
+ pushfl
340
+ #if CONFIG_PCIBIOS
341
+ // Check for PCI-BIOS request
342
+ cmpl $0x49435024, %eax // $PCI
343
+ jne 1f
344
+ movl $BUILD_BIOS_ADDR, %ebx
345
+ movl $BUILD_BIOS_SIZE, %ecx
346
+ movl $entry_pcibios32, %edx
347
+ xorb %al, %al
348
+ jmp 2f
349
+ #endif
350
+ // Unknown request
351
+ 1: movb $0x80, %al
352
+ // Return to caller
353
+ 2: popfl
354
+ lretl
355
+ .code16
356
+
357
+ // 32bit elf entry point
358
+ DECLFUNC entry_elf
359
+ .code32
360
+ entry_elf:
361
+ cli
362
+ cld
363
+ movl %eax, entry_elf_eax
364
+ movl %ebx, entry_elf_ebx
365
+ lidtl (BUILD_BIOS_ADDR + pmode_IDT_info)
366
+ lgdtl (BUILD_BIOS_ADDR + rombios32_gdt_48)
367
+ movl $SEG32_MODE32_DS, %eax
368
+ movw %ax, %ds
369
+ movw %ax, %es
370
+ movw %ax, %fs
371
+ movw %ax, %gs
372
+ movw %ax, %ss
373
+ movl $BUILD_STACK_ADDR, %esp
374
+ ljmpl $SEG32_MODE32_CS, $_cfunc32flat_handle_post
375
+ .code16
376
+
377
+ // UEFI Compatibility Support Module (CSM) entry point
378
+ DECLFUNC entry_csm
379
+ entry_csm:
380
+ // Backup register state
381
+ pushfw
382
+ cli
383
+ cld
384
+ pushl %eax // dummy
385
+ PUSHBREGS
386
+
387
+ // Backup stack location and convert to a "flat pointer"
388
+ movl %ss, %eax
389
+ movw %ax, BREGS_code+2(%esp) // Store %ss in bregs->code.seg
390
+ shll $4, %eax
391
+ addl %esp, %eax
392
+
393
+ // Change to BUILD_STACK_ADDR stack and call handle_csm(bregs)
394
+ ENTRY_INTO32 _cfunc32flat_handle_csm
395
+
396
+ DECLFUNC __csm_return
397
+ .code32
398
+ __csm_return:
399
+ movl $1f, %edx
400
+ jmp transition16big
401
+ .code16
402
+
403
+ // Switch back to original stack
404
+ 1: movzwl BREGS_code+2(%eax), %edx
405
+ movl %edx, %ecx
406
+ shll $4, %ecx
407
+ subl %ecx, %eax
408
+ movl %edx, %ss
409
+ movl %eax, %esp
410
+
411
+ // Restore register state and return.
412
+ POPBREGS
413
+ addw $4, %sp // pop dummy
414
+ popfw
415
+ lretw
416
+
417
+ // Serial console "hooked vga" entry point
418
+ DECLFUNC entry_sercon
419
+ entry_sercon:
420
+ // Setup for chain loading to real vga handler
421
+ pushfw
422
+ pushl %cs:sercon_real_vga_handler
423
+
424
+ // Set %ds to varlow segment
425
+ cli
426
+ cld
427
+ pushw %ds
428
+ pushl %eax
429
+ movl $_zonelow_seg, %eax
430
+ movl %eax, %ds
431
+
432
+ // Test if the sercon handler can be called
433
+ movl %esp, %eax // Test for broken x86emu
434
+ pushl $1f
435
+ retl
436
+ 1: cmpl %esp, %eax
437
+ jne 4f
438
+ cmpb $0, sercon_enable // Test that sercon is enabled
439
+ je 3f
440
+
441
+ // call handle_sercon
442
+ popl %eax
443
+ popw %ds
444
+ 2: pushl $handle_sercon
445
+ #if CONFIG_ENTRY_EXTRASTACK
446
+ jmp irqentry_arg_extrastack
447
+ #else
448
+ jmp irqentry_arg
449
+ #endif
450
+
451
+ // sercon disabled - check for legacy text modeset and otherwise exit
452
+ 3: popl %eax
453
+ popw %ds
454
+ cmpw $0x0007, %ax
455
+ jle 2b
456
+ iretw
457
+
458
+ // Running on broken x86emu - restore stack and exit
459
+ 4: movl %eax, %esp
460
+ popl %eax
461
+ popw %ds
462
+ iretw
463
+
464
+
465
+ /****************************************************************
466
+ * Interrupt entry points
467
+ ****************************************************************/
468
+
469
+ // Main entry point for hardware interrupts handled on extra stack
470
+ DECLFUNC irqentry_extrastack
471
+ irqentry_extrastack:
472
+ cli
473
+ cld
474
+ pushw %ds // Set %ds:%eax to space on ExtraStack
475
+ pushl %eax
476
+ movl $_zonelow_seg, %eax
477
+ movl %eax, %ds
478
+ movl StackPos, %eax
479
+ subl $PUSHBREGS_size+8, %eax
480
+ SAVEBREGS_POP_DSEAX
481
+ popl %ecx
482
+ movl %esp, PUSHBREGS_size(%eax)
483
+ movw %ss, PUSHBREGS_size+4(%eax)
484
+
485
+ movw %ds, %dx // Setup %ss/%esp and call function
486
+ movw %dx, %ss
487
+ movl %eax, %esp
488
+ calll *%ecx
489
+
490
+ movl %esp, %eax // Restore registers and return
491
+ movw PUSHBREGS_size+4(%eax), %ss
492
+ movl PUSHBREGS_size(%eax), %esp
493
+ RESTOREBREGS_DSEAX
494
+ iretw
495
+
496
+ // Main entry point for software interrupts handled on extra stack
497
+ DECLFUNC irqentry_arg_extrastack
498
+ irqentry_arg_extrastack:
499
+ cli
500
+ cld
501
+ pushw %ds // Set %ds:%eax to space on ExtraStack
502
+ pushl %eax
503
+ movl $_zonelow_seg, %eax
504
+ movl %eax, %ds
505
+ movl StackPos, %eax
506
+ subl $PUSHBREGS_size+16, %eax
507
+ SAVEBREGS_POP_DSEAX // Save registers on extra stack
508
+ popl %ecx
509
+ movl %esp, PUSHBREGS_size+8(%eax)
510
+ movw %ss, PUSHBREGS_size+12(%eax)
511
+ popl BREGS_code(%eax)
512
+ popw BREGS_flags(%eax)
513
+
514
+ movw %ds, %dx // Setup %ss/%esp and call function
515
+ movw %dx, %ss
516
+ movl %eax, %esp
517
+ calll *%ecx
518
+
519
+ movl %esp, %eax // Restore registers and return
520
+ movw PUSHBREGS_size+12(%eax), %ss
521
+ movl PUSHBREGS_size+8(%eax), %esp
522
+ popl %edx
523
+ popw %dx
524
+ pushw BREGS_flags(%eax)
525
+ pushl BREGS_code(%eax)
526
+ RESTOREBREGS_DSEAX
527
+ iretw
528
+
529
+ // Main entry point for software interrupts (using caller's stack)
530
+ DECLFUNC irqentry_arg
531
+ irqentry_arg:
532
+ ENTRY_ARG_ST
533
+ iretw
534
+
535
+ // Helper macros for hardware interrupt declaration
536
+ .macro IRQ_ENTRY num
537
+ .global entry_\num
538
+ entry_\num :
539
+ pushl $ handle_\num
540
+ jmp irqentry_extrastack
541
+ .endm
542
+
543
+ .macro DECL_IRQ_ENTRY num
544
+ DECLFUNC entry_\num
545
+ IRQ_ENTRY \num
546
+ .endm
547
+
548
+ // Helper macros for software interrupt declaration
549
+ .macro IRQ_ENTRY_ARG num
550
+ .global entry_\num
551
+ entry_\num :
552
+ pushl $ handle_\num
553
+ #if CONFIG_ENTRY_EXTRASTACK
554
+ jmp irqentry_arg_extrastack
555
+ #else
556
+ jmp irqentry_arg
557
+ #endif
558
+ .endm
559
+
560
+ .macro DECL_IRQ_ENTRY_ARG num
561
+ DECLFUNC entry_\num
562
+ IRQ_ENTRY_ARG \num
563
+ .endm
564
+
565
+ // Various entry points (that don't require a fixed location).
566
+ DECL_IRQ_ENTRY_ARG 13
567
+ DECL_IRQ_ENTRY 76
568
+ DECL_IRQ_ENTRY 70
569
+ DECL_IRQ_ENTRY 74
570
+ DECL_IRQ_ENTRY 75
571
+ DECL_IRQ_ENTRY hwpic1
572
+ DECL_IRQ_ENTRY hwpic2
573
+
574
+ // int 18/19 are special - they reset stack and call into 32bit mode.
575
+ DECLFUNC entry_19
576
+ entry_19:
577
+ ENTRY_INTO32 _cfunc32flat_handle_19
578
+
579
+ DECLFUNC entry_18
580
+ entry_18:
581
+ ENTRY_INTO32 _cfunc32flat_handle_18
582
+
583
+
584
+ /****************************************************************
585
+ * Fixed position entry points
586
+ ****************************************************************/
587
+
588
+ // Specify a location in the fixed part of bios area.
589
+ .macro ORG addr
590
+ .section .fixedaddr.\addr
591
+ .endm
592
+
593
+ ORG 0xe05b
594
+ entry_post:
595
+ cmpl $0, %cs:HaveRunPost // Check for resume/reboot
596
+ jnz entry_resume
597
+ ENTRY_INTO32 _cfunc32flat_handle_post // Normal entry point
598
+
599
+ ORG 0xe2c3
600
+ .global entry_02
601
+ entry_02:
602
+ ENTRY handle_02 // NMI handler does not switch onto extra stack
603
+ iretw
604
+
605
+ ORG 0xe3fe
606
+ .global entry_13_official
607
+ entry_13_official:
608
+ jmp entry_13
609
+
610
+ // 0xe401 - OldFDPT in misc.c
611
+
612
+ ORG 0xe6f2
613
+ .global entry_19_official
614
+ entry_19_official:
615
+ jmp entry_19
616
+
617
+ // 0xe6f5 - BIOS_CONFIG_TABLE in misc.c
618
+
619
+ // 0xe729 - BaudTable in misc.c
620
+
621
+ ORG 0xe739
622
+ IRQ_ENTRY_ARG 14
623
+
624
+ ORG 0xe82e
625
+ IRQ_ENTRY_ARG 16
626
+
627
+ ORG 0xe987
628
+ IRQ_ENTRY 09
629
+
630
+ ORG 0xec59
631
+ IRQ_ENTRY_ARG 40
632
+
633
+ ORG 0xef57
634
+ IRQ_ENTRY 0e
635
+
636
+ // 0xefc7 - diskette_param_table in misc.c
637
+
638
+ ORG 0xefd2
639
+ IRQ_ENTRY_ARG 17
640
+
641
+ ORG 0xf045
642
+ entry_10_0x0f:
643
+ // XXX - INT 10 Functions 0-Fh Entry Point
644
+ iretw
645
+
646
+ ORG 0xf065
647
+ entry_10:
648
+ iretw
649
+
650
+ // 0xf0a4 - VideoParams in misc.c
651
+
652
+ ORG 0xf841
653
+ IRQ_ENTRY_ARG 12
654
+
655
+ ORG 0xf84d
656
+ IRQ_ENTRY_ARG 11
657
+
658
+ ORG 0xf859
659
+ .global entry_15_official
660
+ entry_15_official:
661
+ cmpb $0x89, %ah
662
+ je entry_1589 // 1589 calls return in protected mode
663
+ IRQ_ENTRY_ARG 15
664
+
665
+ // 0xfa6e - vgafont8 in font.c
666
+
667
+ ORG 0xfe6e
668
+ .global entry_1a_official
669
+ entry_1a_official:
670
+ cmpb $0xb1, %ah
671
+ je entry_pcibios16 // PCIBIOS calls can be in protected mode
672
+ IRQ_ENTRY_ARG 1a
673
+
674
+ ORG 0xfea5
675
+ IRQ_ENTRY 08
676
+
677
+ // 0xfef3 - InitVectors in misc.c
678
+
679
+ ORG 0xff53
680
+ .global entry_iret_official
681
+ entry_iret_official:
682
+ iretw
683
+
684
+ ORG 0xff54
685
+ IRQ_ENTRY_ARG 05
686
+
687
+ ORG 0xfff0 // Power-up Entry Point
688
+ .global reset_vector
689
+ reset_vector:
690
+ ljmpw $SEG_BIOS, $entry_post
691
+
692
+ // 0xfff5 - BiosDate in misc.c
693
+
694
+ // 0xfffe - BiosModelId in misc.c
695
+
696
+ // 0xffff - BiosChecksum in misc.c
697
+
698
+ .end