EasyManua.ls Logo

IBM 5150 - Page 235

IBM 5150
393 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
LOC
(lBJ
LINE
SOURCE
3007
j
---
INT
17
---------------------------------
3006
;
PRIfHER_IO
3009
TliIS
ROUTINE PROVIDES COMMUNICATION WITH
THE
PRINTER
3010
(AH)=O
F'RIHT
THE
CHARACTER
IN
(All
3011
ON
RETUIHI, AH=1
IF
CHARACTER
COULD
NOT
BE PRINTED
(TIME
OUT)
3012
OTHER
BITS
SET
AS
ON
NORMAL
STATUS CALL
3013
(AH)=1
INITIALIZE
THE
PRunER
PORT
3014
RETURNS WITH
(AH)
SET WITH PRINTER STATUS
3015
(AH)=2
READ
THE
PRINTER STATUS
INTO
UH)
3016
3017
TIME
OUT
3018
51
i t1.
,::1
~~~~:D
3019
3020
_ 1
::.
SElECTED
3021
1
'"
OUT
OF
PAPER
3022
1 =
ACKNOWLEDGE
'3023
1 = BUSY
3024
3025
(OX)
= PRINTER
TO
BE
USED
(0.1.2)
CORRESPONDING
TO
ACTUAL VALUES
3026
I
IN
PRINTER_BASE
AREA
3027
; DATA
AREA
PRINTER_BASE CONTAItIS
THE
BASE ADDRESS
OF
THE
PRINTER
CAROlS)
3028
AVAILABLE
(LOCATED
AT
BEGINNWG
OF
DATA SEGMENT,
408H
ABSOLUTE, 3
WORDS)
3029
;REGISTER5
AH
IS
MODIfIED
3030
•
ALL
OTHERS
UNCHANGED
3031
;
----
------
--
----
-
--
-------------------
--
----
3032
ASSUME
CS:
CODE
,DS:DATA
EF02
3033
PRINTER
_10
PROC
fAR
EFOZ
Fe
3034
STI
INTERRUPTS BACK
ON
EF03 IE
3035
PUSH
os
j SAVE
SEGMENT
EFD4
52
3036
PUSH
OX
EFOS
56
3037
PUSH
5'
EF06 51
3038
PUSH
CX
HD7
53
3039
PUSH
ex
EFDB
8E4000
3040
NOV
51
,DATA
EFDB BEDE
3041
NOV
DS,SI
; ESTABLISH PRINTER
SEGMENT
£FDD
BaFl
3042-
HOV
SI,DX
; GET PRINTER
PARM
EFOF
01E6
3043
5HL
51,1
;
WORD
OFFSET
INTO
TABLE
EFEl
88940800
3044
HOV
OX,PRINTER_BASE[SI)
;
GET
BASE
ADDRESS
FOR
PRINTER
CARD
EFES
0802
3045
OR
OX,OX j TEST
OX
FOR
ZERO,
INDICATING
NO
PRINTER
EFE7
740C
3046
JZ
Bl
j RETURN
EFE9
0.6.£4
3047
OR
AH,AH
TEST
FOR
{AH
)=0
EFEB
740£
3048
JZ
e.
PRINT_AL
£FED
FEee
3049
DEC
AH
TEST
FOR
CAH)=1
.B
EFEF
7442
3050
JZ
INIT_PRT
EFFl
FEee
3051
DEC
AH
TEST
FOR
(AH
)::.2
EFF3
742.6. 3052-
JZ
6S
PR
INTER
STATUS
£FFS
3053
Bl
:
RETURN
EFF5
58
3054
POP
ex
EFF6
S9
3055
POP
ex
EfF7
5£
3056
POP
j
RECOVER
REGISTERS
5'
EFFS
5A
3057
POP
ox
j
RECOVER
REGISTERS
EFF9
IF
3058
POP
Os
EFFA
CF
3059
IRET
3060
3061
j------
PRINT
THE
CHARACTER
IN
(ALI
3062-
EFF6
3063
82:
EFFB
50
3064
PUSH
AX
SAVE VALUe
TO
PRINT
EFfC
830A
3065
HOV
st.IO
TIME
OUT
VALUE
EFFE
33C9
3066
XOR
ex,Cx
ESTABLISH
SHIFT
COUNT
FOOD
EE
3067
OUT
DX,AL
; OUTPUT
CHAR
TO
PORT
FOOl
42
3068
we
ox
;
PorNT
TO
STATUS
PORT
FOOl
3069
83:
; WAIT_BUSY
FOOZ
EC
3070
AL,DX
;
GET
STATUS
'"
F003
8AEO
3071
r.OV
AH,AL
j STATUS
TO
AH
ALSO
Foes
A880
3072
TEST
At,SOH
;
IS
TtfE PRINTER CURRENTLY
BUSY
F007
750E
3073
Jt~Z
6.
j
OUT
_STrlOBE
F009
EZF]
3074
LOOP
63
;
DECREMENT
COUNT
ON
TIME
OUT
FODe
FEee
3075
DEC
6L
FOOD
75F3
3076
JHZ
63
;
WAIT
FOR
NOT
BUSY
FOOF
BOCCOI
3077
OR
AH,l
; SET
EPROR
FLAG
FOl2
80E4F9
3078
Arm
AH,OF9H ;
TURN
OFF
THE
OTHER
BITS
Fots
EBI4
3079
JHP 5HORT
87
; RETUPtl
WITli
ERROR
flAG
SET
FOl7
30BO
84:
; OUT_STReBE
FOl7
BOOO
3081
HOV
AL,OOH
j SET
THE
STROBE
HIGH
F019
42
3082
we
DX
; STROBE
IS
BIT
0
OF
PORT
C
OF
8255
A-42

Table of Contents

Other manuals for IBM 5150

Related product manuals