473{
475
477 {
478
479 case 0x00:
480 {
483
484
486
488 Info.Signature =
'ASEV';
489 Info.Version = 0x0102;
491 Info.Capabilities = 0;
496
497
499 {
500
501 if (
Modes[
i].VesaNumber != 0xFFFF)
502 {
504 }
505 }
506
508
509
511 {
513 }
514
516 break;
517 }
518
519
520 case 0x01:
521 {
524
525
527
529 {
530
532 break;
533 }
534
537 {
538 DPRINT1(
"WARNING: The mode information for mode %02X (%03X) is missing!\n",
541
543 break;
544 }
545
546
547 for (
i = 0;
i < 128;
i++)
548 {
550 }
551
552
554 {
556 }
557
559 break;
560 }
561
562
563 case 0x02:
564 {
567
569 {
570
574
576 }
577 else
578 {
579
581
584 }
585
586 break;
587 }
588
589
590 case 0x03:
591 {
593
595
597 {
601 }
602 else
603 {
605 }
606
607 break;
608 }
609
610
611 case 0x05:
612 {
615
617 {
618
619 case 0:
620 {
622
624 {
625
627 break;
628 }
629
632
634 break;
635 }
636
637
638 case 1:
639 {
642
644 break;
645 }
646
647 default:
648 {
649 DPRINT1(
"VESA INT 0x10, AL = 0x05, Unknown subfunction: 0x%02X\n",
getBH());
650 }
651 }
652
654 break;
655 }
656
657
658 case 0x07:
659 {
664
666 {
667
669 {
671 break;
672 }
673
675 }
676
677 switch (
getBL() & 0x7F)
678 {
679
680 case 0x00:
681 {
683
685 {
686
687
689 break;
690 }
691
693
696 Value &= ~SVGA_CRTC_EXT_ADDR_BIT19;
699
706
711
713 break;
714 }
715
716
717 case 0x01:
718 {
720 StartAddress = 0;
721
723 {
724
725
727 break;
728 }
729
732
737
742
743 setCX(StartAddress %
Mode->Info->BytesPerScanline);
744 setDX(StartAddress /
Mode->Info->BytesPerScanline);
745
747 break;
748 }
749 }
750
752 break;
753 }
754
755 default:
756 {
757 DPRINT1(
"VESA BIOS Extensions function %02Xh NOT IMPLEMENTED!\n",
getAL());
758 break;
759 }
760 }
761}
#define SEG_OFF_TO_PTR(seg, off)
VOID Int32Call(IN PCALLBACK16 Context, IN BYTE IntNumber)
PCVBE_MODE VbeGetModeByNumber(WORD Number)
BOOLEAN WINAPI VbeSetExtendedVideoMode(BYTE ModeNumber)
static const VBE_MODE Modes[VBE_MODE_COUNT]
struct _VBE_MODE_INFO VBE_MODE_INFO
struct _VBE_INFORMATION VBE_INFORMATION
#define VGA_INSTAT1_READ_COLOR
#define SVGA_CRTC_EXT_ADDR_BIT16
#define VGA_STAT_VRETRACE
#define VGA_CRTC_INDEX_COLOR
#define SVGA_CRTC_EXT_ADDR_BIT19
#define VGA_CRTC_DATA_COLOR
@ VGA_CRTC_START_ADDR_LOW_REG
@ VGA_CRTC_START_ADDR_HIGH_REG
@ SVGA_CRTC_EXT_DISPLAY_REG
#define SVGA_CRTC_EXT_ADDR_BITS1718
#define FIELD_OFFSET(t, f)
VOID WINAPI setBX(USHORT)
VOID WINAPI setCX(USHORT)
VOID WINAPI setDX(USHORT)
USHORT WINAPI getBX(VOID)
USHORT WINAPI getCX(VOID)
USHORT WINAPI getDX(VOID)
USHORT WINAPI getES(VOID)
USHORT WINAPI getDI(VOID)
VOID WINAPI setAX(USHORT)
#define BIOS_MAX_VIDEO_MODE
#define BIOS_VIDEO_INTERRUPT
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value