IBM PC CONVERTIBLE Technical Reference page 113

Table of Contents

Advertisement

01 B9
C3
01BA
01BA
01BA
89 OE 0060
01BE
B4 20
01CO
E8 0000 E
01C3
B4 OA
01C5
81 3E 0063
01CB
74 33
RET
LCD~OVE
ENDP
SELCTYPE
INPUT
OUTPUT
R 0304
THIS ROUTINE SETS THE CURSOR VALUE.
SPECIAL HANDLING OCCURS FOR THE LCD CURSOR.
IF THE LCD IS THE CURRENT DISPLAY THE FOLLOWING OCCURS:
FOR THE DISPLAY NO CURSOR MODE (BIT 5 = 1 & BIT 6 = 0 OF THE
CH REGISTER) IS CONVERTED TO THE LCD CONTROLLER DISPLAY NO
CURSOR MODE (CX=0808H). ALSO, THE BLINKING MODE BITS (BIT 5
AND BIT 6 OF THE CH REGISTER) ARE TURNED OFF.
I F LCD CONFIGURED AS MONO IS THE CURRENT DISPLAY THEN THE
LCDC REGISTERS FOR LCD CURSOR START AND LCD CURSOR END ARE
REGISTERS 23 AND 24 RESPECTIVELY. AND THE CURSOR VALUES ARE
RESCALED TO FIT IN AN 8x8 CHARACTER BOX. THIS IS BECAUSE
THE MONO CHARACTER BOX IS 9x14 BUT THE LCD HAS AN 8x8
CHARACTER BOX.
(ex) HAS CURSOR VALUE eH-START LINE, CL-STOP LINE
(OS) = DATA SEGMENT
PHYSICAL CURSOR SET
SELCTYPE
PROC
NEAR
MOV
CURSOR~OD
E, CX
MOV
AH, RTCDSP _CON
CALL
GELRTCREG
MOV
AH,10
CMP
ADDR_6845,03D4H
JE
SEL2
SAVE CURSOR VAL IN DATA AREA
GET LCD CONFIGURATION
FROM RTC.
CURSOR START REGISTER
ARE WE IN CGA MODE
JUMP TO CGA MODE TEST
; MONO IS CURRENT MODE
01CD
A8 02
01CF
74 45
OlD1
B4 17
OlD3
F6 C5 40
0106
75 05
0108
F6 C5 20
OlDB
75 36
0100
80 E5 9F
OlEO
80 FD 00
01E3
77 31
01E5
80 F9 00
01E8
77 2C
01 EA
50
01EB
BB 080E
01EE
8A C5
01FO
E8 021C R
01F3
8A E8
01F5
8A C1
01F7
E8 021C R
01FA
8A C8
01FC
58
01FD
EB 17 90
0200
0200
A8 01
0202
74 12
0204
F6 C5 40
0207
74 05
TEST
AL, DSP _MLCD
IS LCD AS MONO CRNT DISPLAY?
JZ
SELC
NO, JUMP ON IT I S MONO MNTR
MOV
AH,OllH
LCDC CUR ST REG AS MONO
TEST
CH,40H
IS BIT 6 ON
JNZ
SELl
YES , JUMP ON
TEST
CH ,20H
IS BIT 5 ON (NO CURSOR)
JNZ
SEL4
YES, JUMP TO RST TO LCDC VAL
SELl:
AND
eH, 09 FH
TURN OFF BLINK (BIT 5 & 6)
WHEN THE LCD AS MONO IS CURRENT MODE THE CURS IS RESCALED TO FIT IN
A 8x8 CHARACTER BOX. THE CURSOR WILL ONLY BE RESCALED IF CURS START
(CH) AND CURSOR END (CL) VALUES ARE 8ETWEEN VALUES 0 - 13.
CMP
CH,13
INVALID CURSOR START VALUE?
JA
SELC
YES, PROCESS AS IS.
CMP
CL, 13
I NVALI 0 CURSOR END VALUE?
JA
SELC
YES, PROCESS AS IS
PUSH
AX
SAVE LCDC CURSOR START REG
MOV
BX,080EH
BH - MULT, BL - DIV FACTOR
MOV
AL,CH
RESCALE CURSOR START
CALL
SELRESCALE
MOV
CH,AL
NEW CUROSR START
MOV
AL,CL
RESCALE CURSOR END
CALL
SELRESCALE
MOV
CL,AL
NEW CUROSR START
POP
AX
RESTORE LCDC CUSR START REG
JMP
SELC
CALL TO OUTPUT
ex
REG
CGA IS CURRENT MODE.
SEL2:
TEST
AL,DSP_CLCD
IS LCD AS CGA CURRENT DSPL Y?
JZ
SELC
NO, ITS CGA MONITOR- AS IS
TEST
CH,40H
IS BIT 6 ON
JZ
SEL3
NO, JUMP ON
2-88 ROM BIOS

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents