[Back to CRT SWAG index] [Back to Main SWAG index] [Original]
{
Can you tell me how to get 480 scan lines going in text mode.
Sure (routine assumes a global variable VGA that tells if running on a VGA
system or not, as the function is only available on VGA compatible cards):}
PROCEDURE SetScanLines(No : WORD); ASSEMBLER;
ASM
CMP VGA,TRUE { Test if VGA card!! }
JNE @OUT
CMP No,480
JE @Set480
MOV AX,1200h
MOV BX,No
CMP BX,200
JE @SET
INC AX
CMP BX,350
JE @SET
CMP BX,400
JNE @OUT
INC AX
@SET: MOV BL,30h
INT 10h
JMP @OUT
@Set480:MOV DX,03CCh { Set Sync-Polarity }
IN AL,DX
OR AL,$C0
MOV DX,03C2h
OUT DX,AL
MOV AL,6 { Vertical Total }
MOV DX,03D4h
OUT DX,AL
MOV AL,11 { CRT Overflow }
MOV DX,03D5h
OUT DX,AL
MOV AL,7
DEC DX
OUT DX,AL
MOV AL,62 { Maximum Scan Line }
INC DX
OUT DX,AL
MOV AL,9
DEC DX
OUT DX,AL
MOV AL,79 { Start Vert. Retrace }
INC DX
OUT DX,AL
MOV AL,16
DEC DX
OUT DX,AL
MOV AL,234 { End Vertical Retrace }
INC DX
OUT DX,AL
MOV AL,17
DEC DX
OUT DX,AL
MOV AL,140 { Vert. Disp Enable End }
INC DX
OUT DX,AL
MOV AL,18
DEC DX
OUT DX,AL
MOV AL,223 { Start Vert. Blanking }
INC DX
OUT DX,AL
MOV AL,21
DEC DX
OUT DX,AL
MOV AL,231 { End Vertical Blanking }
INC DX
OUT DX,AL
MOV AL,22
DEC DX
OUT DX,AL
MOV AL,4
INC DX
OUT DX,AL
@OUT:
END;
Keld "HeartWare" Hansen, Sysop 2:234/10.0
[Back to CRT SWAG index] [Back to Main SWAG index] [Original]