📄 video.asm
字号:
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 + -