First post, by Lassar
- Rank
- Newbie
😳
I was using PowerBasic compiler and found the following bug.
DosBox will not blank the screen when using the following interrupt.
It works perfect in dos but messes up in dosbox.
It has to do with :
INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
AH = 12h
BL = 36h
AL = new state
00h enable refresh
01h disable refresh
Return: AL = 12h if function supported
Desc: specify whether the contents of video memory should be displayed on
the screen; disabling refresh effectively blanks the screen
Note: when display refresh is disabled, the entire screen displays the color
specified by the DAC color register 00h; thus to actually blank the
screen, the application must first ensure that that register has been
set to black
You can test out this bug by downloading tTestBnk.exe from:
RadioTelephoneTutor.com/TestBnk.zip
Or using powerbasic demo from http://powerbasic.com to compile it.
http://www.powerbasic.com/support/downloads/f … les/TryPB32.zip
Here is the Code I used
-------------------------------------------------------------------------------------
SCREEN 12CLSPRINT "Press AnyKey to LoadScreen"DO:LOOP UNTIL INKEY$ <> ""VidOffDrawScreenVidOnPRINT "Can You see the Screen Now ?"PRINT "Press AnyKey to Quit"DO:LOOP UNTIL INKEY$<>""SCREEN 0ENDSUB VidOff! PUSH DS! MOV AX ,&H1201! MOV BL ,&H36! INT &H10! POP DSEND SUBSUB VidOn! PUSH DS! MOV AX ,&H1200! MOV BL ,&H36! INT &H10! POP DSEND SUBSUB DrawScreen()FOR i% = 1 TO 15FOR c% = 0 TO 1512 IF INKEY$ = "Q" THEN 14x% = RND(TIMER) * 1000y% = RND(TIMER + 1) * 1000z% = RND(TIMER + 2) * 1000w% = RND(TIMER + 3) * 1000a% = RND(TIMER + 4) * 1000b% = RND(TIMER + 5) * 1000IF x% > 640 THEN 12IF y% > 480 THEN 12IF w% > 640 THEN 12IF z% > 480 THEN 12IF a% > 640 THEN 12IF b% > 480 THEN 12LINE (x%, y%)-(a%, b%), c%LINE (a%, b%)-(w%, z%), c%LINE (x%, y%)-(w%, z%), c%FOR ZZ! = 1 TO 50000:NEXT ZZ!IF INKEY$ = CHR$(27) THEN EXIT SUBNEXT c%NEXT i%14END SUB
----------------------------------------------------------------------------------
Conquer the FCC GROL, & Amatuer Radio test