BBS: Inland Empire Archive Date: 01-27-93 (19:05) Number: 354 From: SCOTT WUNSCH Refer#: NONE To: JOHN GALLAS Recvd: NO Subj: Video Stuff in PowerBASIC Conf: (2) Quik_Bas
Salutations, John! On 24 Jan 93, John Gallas entered the following ASCII codes for the express viewing pleasure of Scott Wunsch... SW>> end sub JG> SW>> Sub Getvideoinfo SW>> a$=space$(64) 'Initialize string with spaces SW>> reg %ax, &h1b00 SW>> reg %bx,0 SW>> reg %es,strseg(a$) SW>> reg %di,strptr(a$) JG> JG> Scott, it got cut off right here! Can you re-post that sub? Hmm... let's see... there it is! Continuing from where you lost it: Sub Getvideoinfo a$=space$(64) 'Initialize string with spaces reg %ax, &h1b00 reg %bx,0 reg %es,strseg(a$) reg %di,strptr(a$) call interrupt &h10 print hex$(cvi(mid$(a$,1,2))),"Offset static functionality table" print hex$(cvi(mid$(a$,3,2))),"Segment" print asc(mid$(a$,5,1)),"Video mode" print cvi(mid$(a$,6,2)),"Current mode Columns" print hex$(cvi(mid$(a$,8,2))),"Length current mode videobuffer" print hex$(cvi(mid$(a$,10,2))),"Start address videobuffer" print asc(mid$(a$,30,1)),"Active page" print hex$(cvi(mid$(a$,31,2))),"Crt controller address" print asc(mid$(a$,35,1)),"Current mode rows" print cvi(mid$(a$,36,2)),"Characterheight" print cvi(mid$(a$,40,2)),"Current mode number of colors" print asc(mid$(a$,42,1)),"Current mode number of pages" print (asc(mid$(a$,50,1))+1)*64,"Total amount of available videomemory" end sub FUNCTION BlankScreen% 'This turns screen refresh OFF on EGA/VGA reg %ax, (&h12*256)+1 'Besides screen blanking, this has the effect reg %BX, &h36 'of SPEEDING UP YOUR APPLICATION. call interrupt &h10 'If the function returns a 0, the blanking is BlankScreen%= reg(%ax) and &h12 'not supported by your videocard. END FUNCTION FUNCTION ScreenOn% 'Restores screen refresh reg %ax, &h12*256 'If the function =0, not supported! reg %BX, &h36 call interrupt &h10 ScreenOn% = reg(%ax) and &h12 END FUNCTION FUNCTION AddressOff% 'Makes it impossible to write to the screen reg %ax, &h12*256+1 'All other functions, as imput, retained. reg %BX, &h32 'usefull for security apps. call interrupt &h10 'If the function =0, not supported! AdressOff% = reg(%ax) and &h12 END FUNCTION FUNCTION AddressOn% 'Restores screenwrite reg %ax, &h12*256 'If the function =0, not supported! reg %BX, &h32 call interrupt &h10 AdressOn% = reg(%ax) and &h12 END FUNCTION Sub setvideomode(mode%) 'This gives access to videomodes not 'supported by powerbasic. You can not reg %ax,mode% 'use powerbasic print and graphics commands. call interrupt &h10 end sub Sub Superimposemode(mode%) 'This superimposes new screens over the old 'ones! Screen modes should be LINE/COLOR 'compatible. (same number of lines and number 'of colors returns compatible bitmap) reg %ax,mode% xor 128 'setting bit 7 prevents clearing in EGA/VGA 'Standard modes. call interrupt &h10 'It even works with pageswitching! end sub 'THIS ONE IS VERY HARDWARE SPECIFIC 'ONLY MODE &H5E PARADISE SVGA! 'DO NOT USE ON OTHER CARDS!!!!!!!!! ' Sub SwitchBank(Bank%) 'HARDWARE programmed bankswitching on paradise SVGA OUT &H3CE, &H0F 'gives up to (1-64kb) meg of extra mem in 64 kb banks at OUT &H3CF, &H05 'a000-afff!!!!! OUT &H3CE, &H09 OUT &H3CF, Bank%*16 ' a bank=4kb, ' in pb3.0 should be 64k, max stringlength OUT &H3CE, &H0F OUT &H3CF, &H00 END SUB /\ LLAP... > \ cott \\'unsch < \/ ... Keep your grubby little hands off my tagline; I stole it first! --- * Origin: Regina, Sask, Canada, Earth, Sol System, Milky Way (1:140/23.1701)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET