BP I S I NCREMENT AFTER SAVE
EXIT
ENTRY
5-163
I SOLA TE COLUMN VALUE
DETERM I NE OFFSET
RECOVER PO INTER
ALL DONE
GET CURRENT CUR SOR
SAVE REGISTER
SAVE A COPY OF CURRENT CURSOR
GET ROWS TO AL
MUL T I PL Y BY BYTES /COLUMN
MUL T IPLY • 4 SINCE 4 ROWS/BYTE
MOVE THE MASK TO THE RIGHT BY 2 BITS
DO IT AGAIN IF MASK DIDN'T FALL OUT
STORE RESULT IN SAVE AREA
ADJUST PO INTER
ALL DONE
IS TH I S SECT ION BACKGROUND?
CLEAR CARRY
IN HOPES THAT IT IS
I F ZERO,
I TIS BACKGROUND
WASN'T,
SO SET CARRY
MOVE THAT BIT I NTO THE RESULT
GET FIRST BYTE
GET SECOND BYTE
2 BIT MASK TO TEST THE ENTR I ES
RESUL T REG I STER
ALL DONE
RECOVER REGI STERS
SH I FT BASE AND MASK BY
1
BASE TO TEMP
EXTRACT THE SAME BIT
PUT INTO RESULT
SH I FT ONLY MASK NOW,
MOV I NG TO NEXT BASE
USE MASK BIT COMING OUT TO TERMINATE
RESUL T TO PARM REG I STER
LEFT SHIFT BY 2
ANOTHER COLOR VERS ION INTO BL
FILL ALL OF BL
FILL UPPER PORT I ON
REG I STER BACK
ALL DONE
ISOLATE THE COLOR BITS
COPY TO AL
SAVE REGISTER
NUMBER OF TIMES TO DO TH IS
AL,1
AL,1
BL,AL
S20
BH,BL
CX
PC-XT System BIOS (11/08/82)
NO REGISTERS, MEMORY LOCATION
CURSOR_POSN I S USED
AX CONT A I NS OFFSET I NTO REGEN BUFFER
SAL
SAL
OR
LOOP
MOV
POP
RET
ENDP
EXIT
ENTRY
S26
.
------------------------------------------------
526
PROC
NEAR
MOV
AX, CURSOR POSN
GRAPH POSN
LABEL
NEAR
-
PUSH
BX
MOV
BX ,AX
MOV
AL,AH
MUL
BYTE PTR CRT COLS
SHL
AX,1
-
SHL
AX,1
SUB
BH,BH
ADD
AX,BX
POP
BX
RET
ENDP
S24:
TEST
AX,CX
CLC
JZ
S25
STC
S25 :
RCL
DL,1
SHR
CX,1
SHR
CX,1
JNC
S24
MOV
[BP] ,DL
INC
BP
RET
S23
ENDP
.--------------------------------------------------------
523
PROC
NEAR
MOV
AH, [S I]
MOV
AL, [ S I + 1 ]
MOV
CX, OCOOOH
MOV
DL,O
S22:
MOV
BX,AX
AND
BX,CX
OR
DX,BX
SHL
AX,1
SHL
CX,1
MOV
BX,AX
AND
BX,CX
OR
DX,BX
SHL
CX,1
JNC
S22
MOV
AX,DX
POP
BX
POP
CX
POP
DX
RET
S21
ENDP
EXPAND MED COLOR
TH I S-ROUT I NE EXPANDS THE LOW 2 BITS
IN BL TO
FILL THE ENT I RE BX REG I STER
SOURCE
(B I OS FOR THE I BM PERSONAL COMPUTER XT)
1 1/08/82
S I ,DS
=
PO I NTER TO REGEN AREA OF INTEREST
BX
=
EXPANDED FOREGROUND COLOR
BP
=
PO I NTER TO SAVE AREA
BX
=
COLOR TO BE USED
( 8 REPLI CAT IONS OF THE
2 COLOR BITS )
V4 POSITION
-
THIS ROUTINE TAKES THE CURSOR POSITION
CONT A I NED
I N THE MEMORY LOCA T I ON, AND
CONVERTS
I T
I NTO AN OFFSET I NTO THE
REGEN BUFFER,
ASSUM I NG ONE BYTE / CHAR.
FOR MED I UM RESOLUT I ON GRAPH I CS,
THE NUMBER MUST BE DOUBLED.
MED READ BYTE
-
THIS ROUT I NE WILL TAKE 2 BYTES FROM THE REGEN
BUFFER, COMPARE AGA I NST THE CURRENT FOREGROUND
COLOR,
AND PLACE THE CORRESPOND I NG ON/OFF BIT
PATTERN
I NTO THE CURRENT POS I T I ON I N THE SAVE
AREA
ENTRY
BL
=
COLOR TO BE USED
( LOW 2 BITS )
EXIT
.--------------------------------------------------------
521
PROC
NEAR
PUSH
DX
SAVE REGISTERS
PUSH
CX
PUSH
BX
SUB
DX, DX
RESUL T REG I STER
MOV
CX, 1
MASK REG I STER
BASE I NTO TEMP
USE MASK TO EXTRACT A BIT
PUT INTO RESULT REG IS TER
.
--------------------------------------------------------
; EXPAND BYTE
TH I S ROUT I NE TAKES THE BYTE
IN AL AND DOUBLES
ALL OF THE BITS, TURN I NG THE 8 BITS
INTO
16 BITS. THE RESULT I S LEFT
I N AX
S20 :
.-------------------------------------------------------
5 19
PROC
NEAR
AND
BL,3
MOV
AL,BL
PUSH
CX
MOV
CX, 3
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
LINE
F702
F702 A 15000
F705
F705 53
F706 8BD8
F708 8AC4
F70A F6264AOO
F70E D1EO
F710 D1EO
F712 2AFF
F71403C3
F716 5B
F717 C3
F6E5
F6E5 8A24
F6E7 8A440 1
F6EA B900CO
F6ED B200
F6EF
F6EF 85C 1
F6Fl F8
F6F2 7401
F6F4 F9
F6F5 DOD2
F6F7 D1E9
F6F9 D1E9
F6FB 73F2
F6FD 885600
F700 45
F701 C3
F6C3
F6C3 52
F6C4 51
F6C5 53
F6C6 2BD2
F6C8 B901 00
F6CB
F6CB 8BD8
F6CD 23D9
F6CF OBD3
F6Dl D1EO
F6D3 D1EI
F6D5 8BD8
F6D7 23D9
F6D9 OBD3
F6DB D1El
LOC OBJECT
F6DD 73EC
F6DF 8BC2
F6E 1 5B
F6E2 59
F6E3 5A
F6E4 C3
F6AE
F6AE 80E303
F6B 1 8AC3
F6B3 51
F6B4 B90300
F6B7
F6B7 OOEO
F6B9 DOEO
F6BB OAD8
F6BD E2F8
F6BF 8AFB
F6C 1 59
F6C2 C3