IBM XT 5160 Technical Reference page 223

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

IBM Persona I Computer MACRO Assemb I er
Vers
i
on 2.00
VIDEO ---- 01/10/86
VIDEO DISPLAY BIOS
1-15
01-10-86
S12:
CHARACTER IS FOUND ( AL=O IF NOT FOUND)
HIGH RESOLUT I ON READ
; - - - - -
GET VALUES FROM REGEN BUFFER AND CONVERT TO CODE PO I NT
MOV
DH,4
; NUMBER OF PASSES
MED RES READ
OFFSET·Z SINCE 2 BYTES/CHAR
NUMBER OF PASSES
PO I NT TO REGEN SEGMENT
MED I UM RESOLUT I ON
AL<> 0
IF ONLY 1ST HAL.F SCANNED
IF = 0, THEN ALL HAS BEEN SCANNED
;
ESTABL I SH ADDRESS I NG TO VECTOR
GET POINTER
SEE I F THE PO INTER 'REALLY EX I STS
I FALL 0, THEN DOESN'T EX I ST
NO SENSE LOOK I
NG
OR I GIN FOR SECOND HALF
GO BACK AND TRY FOR IT
; GET FIRST BYTE
;
SAVE I N STORAGE AREA
; NEXT LOCAT I ON
; GET LOWER REG I ON BYTE
;
ADJUST AND STORE
PO I NTER I NTO REGEN
LOOP CONTROL
DO I T SOME MORE
GO MATCH THE SAVED CODE POINTS
; RECOVER CODE PO INTER
; RECOVER REGEN PO INTER
; POINT TO NEXT CHAR POSITION
; MORE TO WR I TE
OCRT MODE,6
ES
-
OS
SI3
AL,O
SI8
AX,AX
DS,AX
DS:ABSO
DI,OEXT PTR
AX ,ES
-
AX,DI
S18
AL,I28
SI6
DS:DATA
CMP
PUSH
POP
JC
DETERMINE GRAPHICS MODES
CMP
JE
SUB
MOV
ASSUME
LES
MOV
OR
JZ
MOV
JMP
ASSUME
MOV
[~p~~il
MOV
INC
BP
MOV
[~p~~i~2000H]
MOV
INC
BP
ADD
SI,80
DEC
DH
JNZ
SI2
JMP
SHORT SI5
~~~~--
MED I UM RESOLUT I ON READ
SAL
S I, I
MOV
DH,4
S14:
CALL
S23
ADD
S I ,2000H-2
CALL
S23
SUB
S I ,2000H-80+2
DEC
DH
JNZ
SI4
~ ~~~--
SAVE AREA HAS CHARACTER IN IT,
MOV
01 ,OFFSET CRT_CHAR_GEN
PUSH
CS
POP
ES
SUB
BP,8
MOV
SI,BP
MOV
AL,O
S16:
PUSH
SS
POP
OS
MOV
DX,I28
S17:
PUSH
SI
PUSH
01
MOV
CX,4
REPE
CMPSW
POP
01
POP
S I
JZ
S 18
INC
AL
ADD
01,8
DEC
OX
JNZ
SI7
S22:
ROR
AL,I
RCR
BP,I
SAR
BP,I
LOOP
S22
XCHG
AX,BP
POP
CX
RET
GET BYTES FROM REGEN INTO SINGLE SAVE
GO TO LOWER REG I ON
GET THIS PAIR INTO SAVE
ADJUST PO I NTER BACK I NTO UPPER
; KEEP GO I NG UNT I L ALL 8 DONE
MATCH IT
; FIND CHAR
; ESTABLI SH ADDRESSING
CODE POINTS IN CS
ADJUST POINTER TO START OF SAVE AREA
CURRENT CODE PO I NT BE I NG MATCHED
ESTABL I SH ADDRESS I NG TO STACK
FOR THE STR I NG COMPARE
NUMBER TO TEST AGA I NST
;
SAVE SAVE AREA PO INTER
;
SAVE CODE PO INTER
; NUMBER OF WORDS TO MATCH
; COMPARE THE 8 BYTES AS WORDS
; RECOVER THE PO INTERS
;
I F ZERO FLAG SET, THEN MATCH OCCURRED
; NO MATCH, MOVE ON TO NEXT
; NEXT CODE PO I NT
; LOOP CONTROL
; DO ALL OF THEM
CHAR NOT MATCHED, MIGHT BE I N USER SUPPL I ED SECOND HALF
ADD
SP,8
; READJUST THE STACK, THROW AWAY SAVE
JMP
V IDEO RETURN
; ALL DONE
~~~~~~~:::~~~~---~~~~-=-----------------------
; EXPAND BYTE
;
TH I S ROUT I NE TAKES THE BYTE IN AL AND DOUBLES ALL
;
OF THE BITS, TURNING THE 8 BITS INTO 16 BITS.
;
THE RESULT I S LEFT I N AX
~~~-----;~~~----~~~~-------------------------
PUSH
CX
SAVE REG I STER
MOV
CX, 8
SH I FT COUNT REG I STER FOR ONE BYTE
SHIFT BITS, LOW BIT INTO CARRY FLAG
MOVE CARRY FLAG (LOW BI T )
INTO RESULTS
SIGN EXTEND HIGH BIT (DOUBLE IT)
REPEAT FOR ALL 8 BI TS
MOVE RESULTS TO PARAMETER REG I STER
RECOVER REG I STER
ALL DONE
POP
SI
POP
01
INC
01
INC
01
LOOP
S8
JMP
V IDEO RETURN
~~~~~~~:::~~~~~
--
~~~~
-= -------------------
; GRAPH I CS READ
~~~;~~~~-~~~~--
-
;~~~--
--
~~~~
------
-
------
CALL
S26
CONVERTED TO OFFSET I N REGEN
MOV
SI,AX
SAVE IN SI
SUB
SP,8
ALLOCATE SPACE FOR THE READ CODE POINT
MOV
BP, SP
PO I NTER TO SAVE AREA
1559 0635 5E
1560 0636 5F
1561
0637 47
1562 0638 47
1563 0639 E2 C5
1564 063B E9 0 I 3D R
1565 063E
1566
1567
1568
1569 063E
1570 063E E8 06E9 R
1571 0641
8B FO
1572 0643 83 EC 08
1573 0646 8B EC
1574
1575
1576
1577 0648 80 3E 0049 R 06
1578 0640 06
1579 064E IF
1580 064F 72 19
1581
1582
1583
1584
1585 065 I B6 04
1586 0653
1587 0653 8A 04
1588 0655 88 46 00
1589 0658 45
1590 0659 8A 84 2000
159 I 0650 88 46 00
1592 0660 45
1593 0661
83 C6 50
1594 0664 FE CE
1595 0666 75 EB
1596 0668 EB 16
1597
15'18
1599 066A
1600 066A 01 E6
160 I
066C B6 04
1602 066E
1603 066E E8 06CF R
1604 0671
81 C6 IFFE
1605 0675 E8 06CF R
1606 0678 81 EE IFB2
1607 067C FE CE
1608 067E 75 EE
1609
1610
161 I
0680
1612 0680 BF 0000 E
1613 0683 OE
1614 0684 07
16 I 5 0685 83 ED 08
1616 0688 8B F5
1617 068A BO 00
1618 068C
1619 068C 16
1620 0680 IF
1621 068E BA 0080
1622 0691
1623 0691
56
1624 0692 57
1625 0693 B9 0004
1626 0696 F3/ A 7
1627 0698 5F
1628 0699 5E
1629 069A 74 IE
1630 069C FE CO
1631 069E 83 C7 08
1632 06A I 4A
'
1633 06A2 75 ED
1634
1635
1636
1637 06A4 3C 00
1638 06A6 74 12
1639 06A8 2B CO
1640 06AA 8E 08
1641
1642 06AC C4 3E 007C R
1643 06BO 8C CO
1644 06B2 OB C7
1645 06B4 74 04
1646 06B6 BO 80
1647 06B8 EB 02
1648
1649
1650
1651 06BA
1652 06BA 83 C4 08
1653 06BD E9 0 I 3D R
1654 06CO
1655
1656
1657
1658
1659
1660
1661 06CO
1662 06CO 51
1663 06C I B9 0008
1664 06C4
1665 06C4 DO C8
1666 06C6 01 DO
1667 06C8 01
FD
1668 06CA E2 F8
1669
1670 06CC 95
1671 06CD 59
1672 06CE C3
5-76
VIDEO (01/10/86)

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents