v86 0.3.7 → 0.5.10
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.
- package/Readme.md +64 -108
- package/build/libv86-debug.js +12677 -0
- package/build/libv86-debug.mjs +732 -0
- package/build/libv86.js +710 -0
- package/build/libv86.mjs +636 -0
- package/build/v86-debug.wasm +0 -0
- package/build/v86-fallback.wasm +0 -0
- package/build/v86.wasm +0 -0
- package/package.json +12 -35
- package/bios/.gitignore +0 -1
- package/bios/COPYING.LESSER +0 -165
- package/bios/bochs-bios.bin +0 -0
- package/bios/bochs-vgabios.bin +0 -0
- package/bios/fetch-and-build-seabios.sh +0 -13
- package/bios/seabios/.config +0 -113
- package/bios/seabios/.config.old +0 -114
- package/bios/seabios/.gitignore +0 -4
- package/bios/seabios/COPYING +0 -674
- package/bios/seabios/COPYING.LESSER +0 -165
- package/bios/seabios/Makefile +0 -286
- package/bios/seabios/README +0 -17
- package/bios/seabios/docs/Build_overview.md +0 -104
- package/bios/seabios/docs/Contributing.md +0 -20
- package/bios/seabios/docs/Debugging.md +0 -111
- package/bios/seabios/docs/Developer_Documentation.md +0 -25
- package/bios/seabios/docs/Developer_links.md +0 -86
- package/bios/seabios/docs/Download.md +0 -27
- package/bios/seabios/docs/Execution_and_code_flow.md +0 -178
- package/bios/seabios/docs/Linking_overview.md +0 -160
- package/bios/seabios/docs/Mailinglist.md +0 -8
- package/bios/seabios/docs/Memory_Model.md +0 -253
- package/bios/seabios/docs/README +0 -5
- package/bios/seabios/docs/Releases.md +0 -482
- package/bios/seabios/docs/Runtime_config.md +0 -193
- package/bios/seabios/docs/SeaBIOS.md +0 -17
- package/bios/seabios/docs/SeaVGABIOS.md +0 -39
- package/bios/seabios/out/autoconf.h +0 -117
- package/bios/seabios/out/include/config/acpi/dsdt.h +0 -0
- package/bios/seabios/out/include/config/acpi.h +0 -0
- package/bios/seabios/out/include/config/ahci.h +0 -0
- package/bios/seabios/out/include/config/apmbios.h +0 -0
- package/bios/seabios/out/include/config/ata/dma.h +0 -0
- package/bios/seabios/out/include/config/ata/pio32.h +0 -0
- package/bios/seabios/out/include/config/ata.h +0 -0
- package/bios/seabios/out/include/config/auto.conf +0 -69
- package/bios/seabios/out/include/config/auto.conf.cmd +0 -9
- package/bios/seabios/out/include/config/boot.h +0 -0
- package/bios/seabios/out/include/config/bootorder.h +0 -0
- package/bios/seabios/out/include/config/build/vgabios.h +0 -0
- package/bios/seabios/out/include/config/call32/smm.h +0 -0
- package/bios/seabios/out/include/config/cdrom/boot.h +0 -0
- package/bios/seabios/out/include/config/cdrom/emu.h +0 -0
- package/bios/seabios/out/include/config/debug/level.h +0 -0
- package/bios/seabios/out/include/config/drives.h +0 -0
- package/bios/seabios/out/include/config/entry/extrastack.h +0 -0
- package/bios/seabios/out/include/config/esp/scsi.h +0 -0
- package/bios/seabios/out/include/config/flash/floppy.h +0 -0
- package/bios/seabios/out/include/config/floppy.h +0 -0
- package/bios/seabios/out/include/config/fw/romfile/load.h +0 -0
- package/bios/seabios/out/include/config/hardware/irq.h +0 -0
- package/bios/seabios/out/include/config/kbd/call/int15/4f.h +0 -0
- package/bios/seabios/out/include/config/keyboard.h +0 -0
- package/bios/seabios/out/include/config/lpt.h +0 -0
- package/bios/seabios/out/include/config/lsi/scsi.h +0 -0
- package/bios/seabios/out/include/config/malloc/uppermemory.h +0 -0
- package/bios/seabios/out/include/config/megasas.h +0 -0
- package/bios/seabios/out/include/config/mouse.h +0 -0
- package/bios/seabios/out/include/config/mpt/scsi.h +0 -0
- package/bios/seabios/out/include/config/mptable.h +0 -0
- package/bios/seabios/out/include/config/mtrr/init.h +0 -0
- package/bios/seabios/out/include/config/optionroms.h +0 -0
- package/bios/seabios/out/include/config/override/pci/id.h +0 -0
- package/bios/seabios/out/include/config/pcibios.h +0 -0
- package/bios/seabios/out/include/config/pirtable.h +0 -0
- package/bios/seabios/out/include/config/pmm.h +0 -0
- package/bios/seabios/out/include/config/pmtimer.h +0 -0
- package/bios/seabios/out/include/config/pnpbios.h +0 -0
- package/bios/seabios/out/include/config/ps2port.h +0 -0
- package/bios/seabios/out/include/config/pvscsi.h +0 -0
- package/bios/seabios/out/include/config/qemu/hardware.h +0 -0
- package/bios/seabios/out/include/config/qemu.h +0 -0
- package/bios/seabios/out/include/config/rom/size.h +0 -0
- package/bios/seabios/out/include/config/rtc/timer.h +0 -0
- package/bios/seabios/out/include/config/s3/resume.h +0 -0
- package/bios/seabios/out/include/config/sdcard.h +0 -0
- package/bios/seabios/out/include/config/serial.h +0 -0
- package/bios/seabios/out/include/config/tcgbios.h +0 -0
- package/bios/seabios/out/include/config/threads.h +0 -0
- package/bios/seabios/out/include/config/tristate.conf +0 -4
- package/bios/seabios/out/include/config/tsc/timer.h +0 -0
- package/bios/seabios/out/include/config/use/smm.h +0 -0
- package/bios/seabios/out/include/config/vga/allocate/extra/stack.h +0 -0
- package/bios/seabios/out/include/config/vga/bochs/stdvga.h +0 -0
- package/bios/seabios/out/include/config/vga/bochs.h +0 -0
- package/bios/seabios/out/include/config/vga/did.h +0 -0
- package/bios/seabios/out/include/config/vga/extra/stack/size.h +0 -0
- package/bios/seabios/out/include/config/vga/fixup/asm.h +0 -0
- package/bios/seabios/out/include/config/vga/pci.h +0 -0
- package/bios/seabios/out/include/config/vga/stdvga/ports.h +0 -0
- package/bios/seabios/out/include/config/vga/vbe.h +0 -0
- package/bios/seabios/out/include/config/vga/vid.h +0 -0
- package/bios/seabios/out/include/config/vgahooks.h +0 -0
- package/bios/seabios/out/include/config/virtio/blk.h +0 -0
- package/bios/seabios/out/include/config/virtio/scsi.h +0 -0
- package/bios/seabios/out/include/config/xen.h +0 -0
- package/bios/seabios/out/scripts/kconfig/conf +0 -0
- package/bios/seabios/out/scripts/kconfig/conf.o +0 -0
- package/bios/seabios/out/scripts/kconfig/zconf.hash.c +0 -289
- package/bios/seabios/out/scripts/kconfig/zconf.lex.c +0 -2420
- package/bios/seabios/out/scripts/kconfig/zconf.tab.c +0 -2538
- package/bios/seabios/out/scripts/kconfig/zconf.tab.o +0 -0
- package/bios/seabios/scripts/acpi_extract.py +0 -366
- package/bios/seabios/scripts/acpi_extract_preprocess.py +0 -41
- package/bios/seabios/scripts/buildrom.py +0 -56
- package/bios/seabios/scripts/buildversion.py +0 -134
- package/bios/seabios/scripts/checkrom.py +0 -95
- package/bios/seabios/scripts/checkstack.py +0 -226
- package/bios/seabios/scripts/checksum.py +0 -16
- package/bios/seabios/scripts/encodeint.py +0 -21
- package/bios/seabios/scripts/gen-offsets.sh +0 -17
- package/bios/seabios/scripts/kconfig/.gitignore +0 -22
- package/bios/seabios/scripts/kconfig/Makefile +0 -331
- package/bios/seabios/scripts/kconfig/POTFILES.in +0 -12
- package/bios/seabios/scripts/kconfig/check.sh +0 -13
- package/bios/seabios/scripts/kconfig/conf.c +0 -718
- package/bios/seabios/scripts/kconfig/confdata.c +0 -1250
- package/bios/seabios/scripts/kconfig/expr.c +0 -1168
- package/bios/seabios/scripts/kconfig/expr.h +0 -241
- package/bios/seabios/scripts/kconfig/gconf.c +0 -1542
- package/bios/seabios/scripts/kconfig/gconf.glade +0 -661
- package/bios/seabios/scripts/kconfig/images.c +0 -326
- package/bios/seabios/scripts/kconfig/kxgettext.c +0 -235
- package/bios/seabios/scripts/kconfig/lex.zconf.c +0 -2430
- package/bios/seabios/scripts/kconfig/list.h +0 -131
- package/bios/seabios/scripts/kconfig/lkc.h +0 -200
- package/bios/seabios/scripts/kconfig/lkc_proto.h +0 -57
- package/bios/seabios/scripts/kconfig/lxdialog/.gitignore +0 -4
- package/bios/seabios/scripts/kconfig/lxdialog/BIG.FAT.WARNING +0 -4
- package/bios/seabios/scripts/kconfig/lxdialog/check-lxdialog.sh +0 -87
- package/bios/seabios/scripts/kconfig/lxdialog/checklist.c +0 -332
- package/bios/seabios/scripts/kconfig/lxdialog/dialog.h +0 -257
- package/bios/seabios/scripts/kconfig/lxdialog/inputbox.c +0 -301
- package/bios/seabios/scripts/kconfig/lxdialog/menubox.c +0 -437
- package/bios/seabios/scripts/kconfig/lxdialog/textbox.c +0 -408
- package/bios/seabios/scripts/kconfig/lxdialog/util.c +0 -713
- package/bios/seabios/scripts/kconfig/lxdialog/yesno.c +0 -114
- package/bios/seabios/scripts/kconfig/mconf.c +0 -1036
- package/bios/seabios/scripts/kconfig/menu.c +0 -697
- package/bios/seabios/scripts/kconfig/merge_config.sh +0 -150
- package/bios/seabios/scripts/kconfig/nconf.c +0 -1556
- package/bios/seabios/scripts/kconfig/nconf.gui.c +0 -656
- package/bios/seabios/scripts/kconfig/nconf.h +0 -96
- package/bios/seabios/scripts/kconfig/qconf.cc +0 -1795
- package/bios/seabios/scripts/kconfig/qconf.h +0 -338
- package/bios/seabios/scripts/kconfig/streamline_config.pl +0 -647
- package/bios/seabios/scripts/kconfig/symbol.c +0 -1373
- package/bios/seabios/scripts/kconfig/util.c +0 -157
- package/bios/seabios/scripts/kconfig/zconf.gperf +0 -48
- package/bios/seabios/scripts/kconfig/zconf.hash.c_shipped +0 -289
- package/bios/seabios/scripts/kconfig/zconf.l +0 -363
- package/bios/seabios/scripts/kconfig/zconf.lex.c_shipped +0 -2420
- package/bios/seabios/scripts/kconfig/zconf.tab.c_shipped +0 -2538
- package/bios/seabios/scripts/kconfig/zconf.y +0 -733
- package/bios/seabios/scripts/layoutrom.py +0 -705
- package/bios/seabios/scripts/python23compat.py +0 -14
- package/bios/seabios/scripts/readserial.py +0 -190
- package/bios/seabios/scripts/tarball.sh +0 -36
- package/bios/seabios/scripts/test-build.sh +0 -90
- package/bios/seabios/scripts/transdump.py +0 -53
- package/bios/seabios/scripts/vgafixup.py +0 -96
- package/bios/seabios/src/Kconfig +0 -579
- package/bios/seabios/src/apm.c +0 -215
- package/bios/seabios/src/asm-offsets.c +0 -23
- package/bios/seabios/src/biosvar.h +0 -130
- package/bios/seabios/src/block.c +0 -623
- package/bios/seabios/src/block.h +0 -121
- package/bios/seabios/src/bmp.c +0 -117
- package/bios/seabios/src/boot.c +0 -793
- package/bios/seabios/src/bootsplash.c +0 -255
- package/bios/seabios/src/bregs.h +0 -80
- package/bios/seabios/src/byteorder.h +0 -71
- package/bios/seabios/src/cdrom.c +0 -322
- package/bios/seabios/src/clock.c +0 -506
- package/bios/seabios/src/code16gcc.s +0 -1
- package/bios/seabios/src/config.h +0 -108
- package/bios/seabios/src/cp437.c +0 -275
- package/bios/seabios/src/cp437.h +0 -1
- package/bios/seabios/src/disk.c +0 -779
- package/bios/seabios/src/e820map.c +0 -152
- package/bios/seabios/src/e820map.h +0 -26
- package/bios/seabios/src/entryfuncs.S +0 -165
- package/bios/seabios/src/farptr.h +0 -208
- package/bios/seabios/src/font.c +0 -139
- package/bios/seabios/src/fw/acpi-dsdt-cpu-hotplug.dsl +0 -78
- package/bios/seabios/src/fw/acpi-dsdt-dbug.dsl +0 -26
- package/bios/seabios/src/fw/acpi-dsdt-hpet.dsl +0 -36
- package/bios/seabios/src/fw/acpi-dsdt-isa.dsl +0 -102
- package/bios/seabios/src/fw/acpi-dsdt-pci-crs.dsl +0 -90
- package/bios/seabios/src/fw/acpi-dsdt.dsl +0 -342
- package/bios/seabios/src/fw/acpi-dsdt.hex +0 -554
- package/bios/seabios/src/fw/acpi.c +0 -685
- package/bios/seabios/src/fw/biostables.c +0 -491
- package/bios/seabios/src/fw/coreboot.c +0 -569
- package/bios/seabios/src/fw/csm.c +0 -347
- package/bios/seabios/src/fw/dev-pci.h +0 -52
- package/bios/seabios/src/fw/dev-piix.h +0 -29
- package/bios/seabios/src/fw/dev-q35.h +0 -52
- package/bios/seabios/src/fw/lzmadecode.c +0 -398
- package/bios/seabios/src/fw/lzmadecode.h +0 -67
- package/bios/seabios/src/fw/mptable.c +0 -197
- package/bios/seabios/src/fw/mtrr.c +0 -105
- package/bios/seabios/src/fw/multiboot.c +0 -111
- package/bios/seabios/src/fw/paravirt.c +0 -624
- package/bios/seabios/src/fw/paravirt.h +0 -63
- package/bios/seabios/src/fw/pciinit.c +0 -1187
- package/bios/seabios/src/fw/pirtable.c +0 -103
- package/bios/seabios/src/fw/q35-acpi-dsdt.dsl +0 -450
- package/bios/seabios/src/fw/romfile_loader.c +0 -259
- package/bios/seabios/src/fw/romfile_loader.h +0 -91
- package/bios/seabios/src/fw/shadow.c +0 -208
- package/bios/seabios/src/fw/smbios.c +0 -585
- package/bios/seabios/src/fw/smm.c +0 -269
- package/bios/seabios/src/fw/smp.c +0 -194
- package/bios/seabios/src/fw/ssdt-misc.dsl +0 -104
- package/bios/seabios/src/fw/ssdt-misc.hex +0 -88
- package/bios/seabios/src/fw/ssdt-pcihp.dsl +0 -36
- package/bios/seabios/src/fw/ssdt-pcihp.hex +0 -38
- package/bios/seabios/src/fw/ssdt-proc.dsl +0 -48
- package/bios/seabios/src/fw/ssdt-proc.hex +0 -35
- package/bios/seabios/src/fw/xen.c +0 -149
- package/bios/seabios/src/fw/xen.h +0 -125
- package/bios/seabios/src/gen-defs.h +0 -19
- package/bios/seabios/src/hw/ahci.c +0 -697
- package/bios/seabios/src/hw/ahci.h +0 -201
- package/bios/seabios/src/hw/ata.c +0 -1046
- package/bios/seabios/src/hw/ata.h +0 -163
- package/bios/seabios/src/hw/blockcmd.c +0 -372
- package/bios/seabios/src/hw/blockcmd.h +0 -114
- package/bios/seabios/src/hw/dma.c +0 -67
- package/bios/seabios/src/hw/esp-scsi.c +0 -241
- package/bios/seabios/src/hw/esp-scsi.h +0 -8
- package/bios/seabios/src/hw/floppy.c +0 -741
- package/bios/seabios/src/hw/lsi-scsi.c +0 -221
- package/bios/seabios/src/hw/lsi-scsi.h +0 -8
- package/bios/seabios/src/hw/megasas.c +0 -405
- package/bios/seabios/src/hw/megasas.h +0 -8
- package/bios/seabios/src/hw/mpt-scsi.c +0 -319
- package/bios/seabios/src/hw/mpt-scsi.h +0 -8
- package/bios/seabios/src/hw/nvme-int.h +0 -199
- package/bios/seabios/src/hw/nvme.c +0 -708
- package/bios/seabios/src/hw/nvme.h +0 -17
- package/bios/seabios/src/hw/pci.c +0 -133
- package/bios/seabios/src/hw/pci.h +0 -47
- package/bios/seabios/src/hw/pci_ids.h +0 -2632
- package/bios/seabios/src/hw/pci_regs.h +0 -556
- package/bios/seabios/src/hw/pcidevice.c +0 -192
- package/bios/seabios/src/hw/pcidevice.h +0 -76
- package/bios/seabios/src/hw/pic.c +0 -115
- package/bios/seabios/src/hw/pic.h +0 -60
- package/bios/seabios/src/hw/ps2port.c +0 -543
- package/bios/seabios/src/hw/ps2port.h +0 -67
- package/bios/seabios/src/hw/pvscsi.c +0 -333
- package/bios/seabios/src/hw/pvscsi.h +0 -8
- package/bios/seabios/src/hw/ramdisk.c +0 -108
- package/bios/seabios/src/hw/rtc.c +0 -100
- package/bios/seabios/src/hw/rtc.h +0 -75
- package/bios/seabios/src/hw/sdcard.c +0 -572
- package/bios/seabios/src/hw/serialio.c +0 -113
- package/bios/seabios/src/hw/serialio.h +0 -29
- package/bios/seabios/src/hw/timer.c +0 -259
- package/bios/seabios/src/hw/tpm_drivers.c +0 -636
- package/bios/seabios/src/hw/tpm_drivers.h +0 -127
- package/bios/seabios/src/hw/usb-ehci.c +0 -650
- package/bios/seabios/src/hw/usb-ehci.h +0 -177
- package/bios/seabios/src/hw/usb-hid.c +0 -442
- package/bios/seabios/src/hw/usb-hid.h +0 -29
- package/bios/seabios/src/hw/usb-hub.c +0 -205
- package/bios/seabios/src/hw/usb-hub.h +0 -64
- package/bios/seabios/src/hw/usb-msc.c +0 -222
- package/bios/seabios/src/hw/usb-msc.h +0 -10
- package/bios/seabios/src/hw/usb-ohci.c +0 -568
- package/bios/seabios/src/hw/usb-ohci.h +0 -144
- package/bios/seabios/src/hw/usb-uas.c +0 -289
- package/bios/seabios/src/hw/usb-uas.h +0 -9
- package/bios/seabios/src/hw/usb-uhci.c +0 -571
- package/bios/seabios/src/hw/usb-uhci.h +0 -128
- package/bios/seabios/src/hw/usb-xhci.c +0 -1161
- package/bios/seabios/src/hw/usb-xhci.h +0 -133
- package/bios/seabios/src/hw/usb.c +0 -499
- package/bios/seabios/src/hw/usb.h +0 -254
- package/bios/seabios/src/hw/virtio-blk.c +0 -211
- package/bios/seabios/src/hw/virtio-blk.h +0 -43
- package/bios/seabios/src/hw/virtio-pci.c +0 -501
- package/bios/seabios/src/hw/virtio-pci.h +0 -151
- package/bios/seabios/src/hw/virtio-ring.c +0 -147
- package/bios/seabios/src/hw/virtio-ring.h +0 -121
- package/bios/seabios/src/hw/virtio-scsi.c +0 -220
- package/bios/seabios/src/hw/virtio-scsi.h +0 -47
- package/bios/seabios/src/jpeg.c +0 -1055
- package/bios/seabios/src/kbd.c +0 -599
- package/bios/seabios/src/list.h +0 -91
- package/bios/seabios/src/malloc.c +0 -561
- package/bios/seabios/src/malloc.h +0 -70
- package/bios/seabios/src/memmap.h +0 -21
- package/bios/seabios/src/misc.c +0 -195
- package/bios/seabios/src/mouse.c +0 -342
- package/bios/seabios/src/optionroms.c +0 -475
- package/bios/seabios/src/output.c +0 -584
- package/bios/seabios/src/output.h +0 -68
- package/bios/seabios/src/pcibios.c +0 -241
- package/bios/seabios/src/pmm.c +0 -176
- package/bios/seabios/src/pnpbios.c +0 -88
- package/bios/seabios/src/post.c +0 -337
- package/bios/seabios/src/resume.c +0 -157
- package/bios/seabios/src/romfile.c +0 -146
- package/bios/seabios/src/romfile.h +0 -21
- package/bios/seabios/src/romlayout.S +0 -698
- package/bios/seabios/src/sercon.c +0 -677
- package/bios/seabios/src/serial.c +0 -317
- package/bios/seabios/src/sha1.c +0 -147
- package/bios/seabios/src/sha1.h +0 -8
- package/bios/seabios/src/stacks.c +0 -771
- package/bios/seabios/src/stacks.h +0 -68
- package/bios/seabios/src/std/LegacyBios.h +0 -985
- package/bios/seabios/src/std/acpi.h +0 -323
- package/bios/seabios/src/std/bda.h +0 -174
- package/bios/seabios/src/std/disk.h +0 -175
- package/bios/seabios/src/std/mptable.h +0 -77
- package/bios/seabios/src/std/multiboot.h +0 -260
- package/bios/seabios/src/std/optionrom.h +0 -59
- package/bios/seabios/src/std/pirtable.h +0 -35
- package/bios/seabios/src/std/pmm.h +0 -19
- package/bios/seabios/src/std/pnpbios.h +0 -24
- package/bios/seabios/src/std/smbios.h +0 -167
- package/bios/seabios/src/std/tcg.h +0 -554
- package/bios/seabios/src/std/vbe.h +0 -156
- package/bios/seabios/src/std/vga.h +0 -63
- package/bios/seabios/src/string.c +0 -251
- package/bios/seabios/src/string.h +0 -31
- package/bios/seabios/src/system.c +0 -357
- package/bios/seabios/src/tcgbios.c +0 -2014
- package/bios/seabios/src/tcgbios.h +0 -19
- package/bios/seabios/src/types.h +0 -156
- package/bios/seabios/src/util.h +0 -251
- package/bios/seabios/src/version.c +0 -5
- package/bios/seabios/src/vgahooks.c +0 -355
- package/bios/seabios/src/x86.c +0 -23
- package/bios/seabios/src/x86.h +0 -277
- package/bios/seabios/vgasrc/Kconfig +0 -211
- package/bios/seabios/vgasrc/bochsdisplay.c +0 -59
- package/bios/seabios/vgasrc/bochsvga.c +0 -447
- package/bios/seabios/vgasrc/bochsvga.h +0 -57
- package/bios/seabios/vgasrc/cbvga.c +0 -337
- package/bios/seabios/vgasrc/clext.c +0 -627
- package/bios/seabios/vgasrc/geodevga.c +0 -434
- package/bios/seabios/vgasrc/geodevga.h +0 -89
- package/bios/seabios/vgasrc/ramfb.c +0 -163
- package/bios/seabios/vgasrc/stdvga.c +0 -485
- package/bios/seabios/vgasrc/stdvga.h +0 -81
- package/bios/seabios/vgasrc/stdvgaio.c +0 -186
- package/bios/seabios/vgasrc/stdvgamodes.c +0 -534
- package/bios/seabios/vgasrc/swcursor.c +0 -96
- package/bios/seabios/vgasrc/vbe.c +0 -432
- package/bios/seabios/vgasrc/vgabios.c +0 -1131
- package/bios/seabios/vgasrc/vgabios.h +0 -88
- package/bios/seabios/vgasrc/vgaentry.S +0 -161
- package/bios/seabios/vgasrc/vgafb.c +0 -661
- package/bios/seabios/vgasrc/vgafb.h +0 -42
- package/bios/seabios/vgasrc/vgafonts.c +0 -785
- package/bios/seabios/vgasrc/vgahw.h +0 -152
- package/bios/seabios/vgasrc/vgainit.c +0 -202
- package/bios/seabios/vgasrc/vgalayout.lds.S +0 -23
- package/bios/seabios/vgasrc/vgautil.h +0 -103
- package/bios/seabios/vgasrc/vgaversion.c +0 -6
- package/bios/seabios-debug.bin +0 -0
- package/bios/seabios-debug.config +0 -117
- package/bios/seabios.bin +0 -0
- package/bios/seabios.config +0 -114
- package/bios/vgabios-debug.bin +0 -0
- package/bios/vgabios.bin +0 -0
- package/build/binaries.js +0 -1
- package/build/index-debug.cjs +0 -1
- package/build/index-debug.js +0 -1
- package/build/index.cjs +0 -1
- package/build/index.js +0 -1
- package/v86.css +0 -259
|
@@ -1,485 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
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
|