RS-232 Mouse Driver
0141
87
LAST_SVNCH
DB 87H
;Copy of
last
lynch byte.
0142
OE
[
HPHIL_TABLE
D8 14 DUP ( 0)
;HP-HIL configuration table.
00
0150
00
HPHIL ADD
DB 0
; HP-HI L
'Iddre .. '
of mouse.
0151
00
PGID_VECT NUM
DB 0
: HP _ VECTOR_ TABLE ..,ec tor Idd resl of PGIO.
;JUMP TABLE FOR MS-DOS bRIVER COMMANDS
0152
02A 7
Cp.f)_TABlE
DW OFFSET INIT CODE
;Initialize driver.
0154
0292
DW OFFSET UNSUPPOR T CM[)
; Me d i I
C
he c
k .
0156
0292
DW OFFSET UNSUPPORT-CMD
;Bulld BPB.
0158
0292
DW OFFSET UNSUPPORT-CMO
; IoeTL input.
OlSA
0292
OW OFFSET UNSUPPORT-CMO
; I npu t .
OlSC
0292
DW OFFSET UNSUPPORT-CMD
; No n - d
I
It r u c t i ve
i npu t .
01SE
0292
DW OFFSET UNSUPPORT-CMD
; I npu t
I t i t u I .
0160
0292
DW OFFSET UNSUPPORT-CMD
; Flus h i npu t
buffer.
0162
0292
DW OFFSET UNSUP PORT-CMD
;Out put.
0164
0292
DW OFFSET UNSUPPORT-CMD
;Output with verify.
0166
0292
DW OFFSET UNSUPPORT-CMD
; Out put
s t i t us .
0168
0292
DW OFFSET UNSUPPORT-CMO
;Flush output
buffer.
016A
0292
DW OFFSET UNSUPPORT-CMD
; IOCTL output.
016C
0292
DW OFFSET UNSUPPORT-CMO
~ g~ ~ ~
e d
~: ~
1
~ ~
.
016E
0292
DW OFFSE T UNSUPPORT-CMO
0170
0292
DW OFFSET UNSUPPORT=CMO
;Removlble media check.
0172
0172
9C
0173
60
0174
1E
0175
06
0176
8C C8
0178
BE 08
017A
BO 20
Ol7C
E6 20
017E
88 0040
0181
8E
CO
0183
2E
8B
IE
0128 R
0188
26
8B 17
0188
EC
PAGE
;New chlrlcter count
,Store
it.
;Get
synch byte.
:~~~at:sll:ln~~t~yte
.
;See
if
they
are
the
same
,Sklp on if
10
(no chang_
1n button ,tate).
;Get
number of chlrlcters
left
1n frame.
:See
if
we're looking for
lynch byte.
;Jump
if
not.
:
~: ~: ~
f
~
0
~ ~
t
~ ~
n
m~ ~
; : . chi ric t e r .
~~:r t~e t~~ig~~,i ~~~~~C~:~eback.
: Put
c h a ric t e r in temp
0
r I r y b u f fer i f I
Y
n c h
:gr~:r~!II~~lt~j.ow
chlrlcter Iway.
; S tor e c h a ric t e r
IW I
Y .
,Update
the
frlme counter.
;And save
it.
;15
this
the l i l t
chlracter in frlme?
; Pro c e
5
I
the
frame
1 flO,
;Otherwise,
Ikip on.
;Get
base Iddrell of COM port
from tlble.
; EOI
; R
e - est
a
b 1
is
h d a t i S e g me n tad d r
I IS
1 b i
11
t y .
,Save the
registerl.
~~ASE
COUNT, BX
AL,TEMP BUFFER[BX]
~~S~A~~~~~~~t
AH
,Ar
MSI_3
AL .20H
20H, AL
BX , FRAME COUNT
BX, BX
-
MSt
1
AH
,l'L
AL,OFBH
AL, SOH
AL, AH
MSI_1
MSI_S
TEMP BUFFER[BX] ,AL
BX
--
FRAME COUNT, BX
BX,5 -
MSI
2
MSI=5
AX,40H
ES, AX
BX,COM NUMBER
DX,ES:TBX]
DS
ES
AX ,CS
OS ,AX
MOV
MOV
MOV
MeV
MOV
CMP
JZ
MeV
MOV
MeV
MOV
MeV
OR
JNZ
MOV
AND
CMP
MOV
JZ
JMP
MOV
INC
MOV
CMP
JZ
JMP
MOV
OUT
; CHECK FOR A CHANGE IN BUTTON STATE
; SEND BUTTON ISR EVENT RECORD (S)
TO INPUT SYSTEM
,GET CHARACTER FROM MOUSE
IN
AL,DX
;Get character.
;STORE IN TEMPORARV BUFFER UNTIL ENTIRE FRAME HAS BEEN RECEIVED
.
DATA AREA FOR EX-BIOS DRIVER PORTION
.
; PRE SE RVE MACHI NE STATE
PUSHF
PUSHA
PUSH
PUSH
MOV
MOV
; ISSUE END-OF-INTERRUPT TO 8259A
...............................
_
.
~
: •••••••••••••••••• * *. * * * * *
':'<;~~~
*
~~ ~~~ ~. ~~~~
* •• * •••• * * *. * * * * * * * * * *. * * *.:
BB 0000
2E'
89 IE 013A R
2E
8A 87 013C R
2E
8A 26 0141 R
2E
A2 0141 R
3A EO
74 56
2E·
88 IE 013A
R
OB DB
75 00
8A EO
24 F8
3C 80
8A C4
74 03
E9 0260
2E:
8887 013C·R
43
2E
89
IE
013A
83
FB
05
74 03
E9
0260
R
018C
0191
0193
0195
0197
0199
019B
0190
019F
01A2
OlA
7
01A8
OlAD
OlBO
01B2
0185
01B8
OlBD
01C2
01C7
OlCB
Oleo
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
466
Driver Writer's Guide
Need help?
Do you have a question about the Vectra and is the answer not in the manual?
Questions and answers