⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 video.asm

📁 分形源程序集合 分形源程序集合 分形源程序集合
💻 ASM
📖 第 1 页 / 共 5 页
字号:
textsafe        dw      0               ; 0 = default, runup chgs to 1
                                        ; 1 = yes
                                        ; 2 = no, use 640x200
                                        ; 3 = bios, yes plus use int 10h-1Ch
                                        ; 4 = save, save entire image
text_type       dw      0               ; current mode's type of text:
                                        ;   0  = real text, mode 3 (or 7)
                                        ;   1  = 640x200x2, mode 6
                                        ;   2  = some other mode, graphics
video_entries   dw      0               ; offset into video_entries table
video_bankadr   dw      0               ; offset  of  video_banking routine
video_bankseg   dw      0               ; segment of  video_banking routine

textrow         dw      0               ; for putstring(-1,...)
textcol         dw      0               ; for putstring(..,-1,...)
textrbase       dw      0               ; textrow is relative to this
textcbase       dw      0               ; textcol is relative to this
cursortyp       dw      0

tandyseg        dw      ?               ;Tandy 1000 video segment address
tandyofs        dw      ?               ;Tandy 1000 Offset into video buffer
tandyscan       dw      ?               ;Tandy 1000 scan line address pointer


; ******************* "Tweaked" VGA mode variables ************************

                                                ; 704 x 528 mode
x704y528        db      704/8                   ; number of screen columns
                db      528/16                  ; number of screen rows
                db       68h, 57h, 58h, 8Bh     ; CRTC Registers
                db       59h, 86h, 3EH,0F0h
                db        0h, 60h,  0h,  0h
                db        0h,  0h,  2h, 3Dh
                db       19h, 8Bh, 0Fh, 2Ch
                db        0h, 18h, 38h,0E3h
                db      0FFh
                                                ; 720 x 540 mode
x720y540        db      720/8                   ; number of screen columns
                db      540/16                  ; number of screen rows
                db       6Ah, 59h, 5Ah, 8Dh     ; CRTC Registers
                db       5Eh, 8Bh, 4AH,0F0h
                db        0h, 60h,  0h,  0h
                db        0h,  0h,  2h, 49h
                db       24h, 86h, 1Bh, 2Dh
                db        0h, 24h, 44h,0E3h
                db      0FFh
                                                ; 736 x 552 mode
x736y552        db      736/8                   ; number of screen columns
                db      552/16                  ; number of screen rows
                db       6Ch, 5Bh, 5Ch, 8Fh     ; CRTC Registers
                db       5Fh, 8Ch, 56H,0F0h
                db        0h, 60h,  0h,  0h
                db        0h,  0h,  2h, 55h
                db       2Bh, 8Dh, 27h, 2Eh
                db        0h, 30h, 50h,0E3h
                db      0FFh
                                                ; 752 x 564 mode
x752y564        db      752/8                   ; number of screen columns
                db      564/16                  ; number of screen rows
                db       6Eh, 5Dh, 5Eh, 91h     ; CRTC Registers
                db       62h, 8Fh, 62H,0F0h
                db        0h, 60h,  0h,  0h
                db        0h,  0h,  2h, 61h
                db       37h, 89h, 33h, 2Fh
                db        0h, 3Ch, 5Ch,0E3h
                db      0FFh
                                                ; 768 x 576 mode
x768y576        db      768/8                   ; number of screen columns
                db      576/16                  ; number of screen rows
                db       70h, 5Fh, 60h, 93h     ; CRTC Registers
                db       66h, 93h, 6EH,0F0h
                db        0h, 60h,  0h,  0h
                db        0h,  0h,  2h, 6Dh
                db       43h, 85h, 3Fh, 30h
                db        0h, 48h, 68h,0E3h
                db      0FFh
                                                ; 784 x 588 mode
x784y588        db      784/8                   ; number of screen columns
                db      588/16                  ; number of screen rows
                db       72h, 61h, 62h, 95h     ; CRTC Registers
                db       69h, 96h, 7AH,0F0h
                db        0h, 60h,  0h,  0h
                db        0h,  0h,  2h, 79h
                db       4Fh, 81h, 4Bh, 31h
                db        0h, 54h, 74h,0E3h
                db      0FFh
                                                ; 800 x 600 mode
x800y600        db      800/8                   ; number of screen columns
                db      600/16                  ; number of screen rows
                db       74h, 63h, 64h, 97h     ; CRTC Registers
                db       68h, 95h, 86H,0F0h
                db        0h, 60h,  0h,  0h
                db        0h,  0h,  2h, 85h
                db       5Bh, 8Dh, 57h, 32h
                db        0h, 60h, 80h,0E3h
                db      0FFh

x360y480        db      360/8                   ; number of screen columns
                db      480/16                  ; number of screen rows
                db       6bh, 59h, 5ah, 8eh     ; CRTC Registers
                db       5eh, 8ah, 0DH,03Eh
                db        0h, 40h, 00h,  0h
                db        0h,  0h,  0h, 31h
                db      0EAh, 0ACh, 0DFh, 2Dh
                db        0h,0E7h, 06h,0E3h
                db      0FFh

x320y480        db      320/8                   ; number of screen columns
                db      480/16                  ; number of screen rows
                db       5fh, 4fh, 50h, 82h     ; CRTC Registers
                db       54h, 80h, 0DH,03Eh
                db        0h, 40h, 00h,  0h
                db        0h,  0h,  0h,  0h
                db      0EAh, 0AEh, 0DFh, 28h
                db        0h,0E7h, 006h,0E3h
                db      0FFh

; mode x from Michael Abrash
x320y240        db      320/8                   ; number of screen columns
                db      240/16                  ; number of screen rows
                db      05fh, 04fh, 050h, 082h
                db      054h, 080h, 0dh, 03eh
                db      00h, 041h, 00h, 00h
                db      00h, 00h, 00h, 00h
                db      0eah, 0ach, 0dfh, 028h
                db      00h, 0e7h, 06h, 0e3h
                db       0ffh

x320y400        db      320/8                   ; number of screen columns
                db      400/16                  ; number of screen rows
                db       5fh, 4fh, 50h, 82h     ; CRTC Registers
                db       54h, 80h,0bfh, 1fh
                db       00h, 40h, 00h, 00h
                db       00h, 00h, 00h, 00h
                db       9ch, 8eh, 8fh, 28h
                db       00h, 96h,0b9h,0E3h
                db      0FFh

x640y400        db      640/8                   ; number of screen columns
                db      400/16                  ; number of screen rows
                db       5eh, 4fh, 50h, 01h     ; CRTC Registers
                db       54h, 9fh,0c0h, 1fh
                db       00h, 40h, 00h, 00h
                db       00h, 00h, 00h, 00h
                db       9ch,08eh, 8fh, 28h
                db       00h, 95h,0bch,0c3h
                db       0ffh
;for VGA
x400y600        db      400/8
                db      600/16
                db      74h,63h,64h,97h
                db      68h,95h,86h,0F0h
                db      00h,60h,00h,00h
                db      00h,00h,00h,31h
                db      5Bh,8Dh,57h,32h
                db      0h,60h,80h,0E3h
                db      0FFh
;for VGA
x376y564        db      376/8
                db      564/16
                db      6eh,5dh,5eh,91h
                db      62h,8fh,62h,0F0h
                db      00h,60h,00h,00h
                db      00h,00h,00h,31h
                db      37h,89h,33h,2fh
                db      0h,3ch,5ch,0E3h
                db      0FFh
;for VGA
x400y564        db      400/8
                db      564/16
                db      74h,63h,64h,97h
                db      68h,95h,62h,0F0h
                db      00h,60h,00h,00h
                db      00h,00h,00h,31h
                db      37h,89h,33h,32h
                db      0h,3ch,5ch,0E3h
                db      0FFh

testati         db      832/8
                db      612/16
                db      7dh,65h,68h,9fh
                db      69h,92h,44h,1Fh
                db      00h,00h,00h,00h
                db      00h,00h,00h,00h
                db      34h,86h,37h,34h
                db      0fh,34h,40h,0E7h
                db      0FFh

                align   2

tweaks          dw      offset x704y528         ; tweak table
                dw      offset x704y528
                dw      offset x720y540
                dw      offset x736y552
                dw      offset x752y564
                dw      offset x768y576
                dw      offset x784y588
                dw      offset x800y600
                dw      offset x360y480
                dw      offset x320y400
                dw      offset x640y400         ; Tseng Super VGA
                dw      offset x400y600         ; new tweak (VGA)
                dw      offset x376y564         ; new tweak (VGA)
                dw      offset x400y564         ; new tweak (VGA)
                dw      offset x720y540         ; ATI Tweak
                dw      offset x736y552         ; ATI Tweak
                dw      offset x752y564         ; ATI Tweak
                dw      offset testati          ; ATI 832x816 (works!)
                dw      offset x320y480
                dw      offset x320y240

tweakflag       dw      0                       ; tweak mode active flag
tweaktype       dw      0                       ; 8 or 9 (320x400 or 360x480)

bios_vidsave    dw      0                       ; for setfortext/graphics

.CODE

FRAME   MACRO regs
        push    bp
        mov     bp, sp
        IRP     reg, <regs>
          push  reg
          ENDM
        ENDM

UNFRAME MACRO regs
        IRP     reg, <regs>
          pop reg
          ENDM
        pop bp
        ENDM


;                       Video Table Entries
;
;       The Video Table has been moved to a FARDATA segment to relieve
;       some of the pressure on the poor little overloaded 64K DATA segment.

.code

video_requirements      dw      0               ; minimal video_type req'd
        dw      1, 3, 4, 5, 5, 5, 5, 5, 1, 1    ; dotmodes  1 - 10
        dw      1, 5, 2, 1, 5, 5, 5, 5, 1, 5    ; dotmodes 11 - 20
        dw      5, 5, 5, 5, 5, 5, 5, 5, 5, 5    ; dotmodes 21 - 30

videotable      label   byte    ; video table actually starts on the NEXT byte

;       Feel free to add your favorite video adapter to FRACTINT.CFG.
;       The entries hard coded here are repeated from fractint.cfg in case
;       it gets lost/destroyed, so a user can still have some modes.

;       Currently available Video Modes are (use the BIOS as a last resort)
;               1) use the BIOS (INT 10H, AH=12/13, AL=color) ((SLOW))
;               2) pretend it's a (perhaps super-res) EGA/VGA
;               3) pretend it's an MCGA
;               4) SuperVGA 256-Color mode using the Tseng Labs Chipset
;               5) SuperVGA 256-Color mode using the Paradise Chipset
;               6) SuperVGA 256-Color mode using the Video-7 Chipset
;               7) Non-Standard IBM VGA 360 x 480 x 256-Color mode
;               8) SuperVGA 1024x768x16 mode for the Everex Chipset
;               9) TARGA video modes
;               10) HERCULES video mode
;               11) Non-Video [disk or RAM] "video"
;               12) 8514/A video modes
;               13) CGA 320x200x4-color and 640x200x2-color modes
;               14) Tandy 1000 video modes
;               15) SuperVGA 256-Color mode using the Trident Chipset
;               16) SuperVGA 256-Color mode using the Chips & Tech Chipset
;               17) SuperVGA 256-Color mode using the ATI VGA Wonder Chipset
;               18) SuperVGA 256-Color mode using the Everex Chipset
;               19) Roll-Your-Own video, as defined in YOURVID.C
;               20) SuperVGA 1024x768x16 mode for the ATI VGA Wonder Chipset
;               21) SuperVGA 1024x768x16 mode for the Tseng Labs Chipset
;               22) SuperVGA 1024x768x16 mode for the Trident Chipset
;               23) SuperVGA 1024x768x16 mode for the Video 7 Chipset
;               24) SuperVGA 1024x768x16 mode for the Paradise Chipset
;               25) SuperVGA 1024x768x16 mode for the Chips & Tech Chipset
;               26) SuperVGA 1024x768x16 mode for the Everex Chipset
;               27) SuperVGA Auto-Detect mode
;               28) VESA modes

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -