summaryrefslogtreecommitdiff
path: root/v4.0/src/MAPPER/KBDGSTAT.ASM
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/MAPPER/KBDGSTAT.ASM')
-rw-r--r--v4.0/src/MAPPER/KBDGSTAT.ASM76
1 files changed, 76 insertions, 0 deletions
diff --git a/v4.0/src/MAPPER/KBDGSTAT.ASM b/v4.0/src/MAPPER/KBDGSTAT.ASM
new file mode 100644
index 0000000..078fd5d
--- /dev/null
+++ b/v4.0/src/MAPPER/KBDGSTAT.ASM
@@ -0,0 +1,76 @@
1;0
2page 80,132
3;
4title CP/DOS KbdGetStatus
5;
6 .sall
7 .xlist
8 include kbd.inc
9 .list
10
11kbddata segment word public 'kbddata'
12
13 public KbdBitMask
14KbdBitMask dw CookedModeOn or EchoOn
15
16 public KbdTurnAroundCharacter
17KbdTurnAroundCharacter dw 0dh
18
19 public KbdInterimCharFlags
20KbdInterimCharFlags dw 0
21
22kbddata ends
23
24kbdxxx segment byte public 'kbd'
25 assume cs:kbdxxx,ds:nothing,es:nothing,ss:nothing
26;
27; ************************************************************************* *
28; *
29; * MODULE: kbdGetStatus
30; *
31; * CALLING SEQUENCE:
32; *
33; *
34; *************************************************************************
35
36 public kbdgetstatus
37
38str struc
39old_bp dw ?
40return dd ?
41handle dw ? ; kbd handle
42data dd ? ; data area pointer
43str ends
44
45kbdgetstatus proc far
46
47 Enter KbdGetStatus ; push registers
48
49 les di,[bp].data ; setup area where status is
50 ; returned
51 mov ax,seg kbddata
52 mov ds,ax
53 assume ds:kbddata
54
55 mov ax,KbdBitMask ; save kbd bit mask in
56 mov es:[di].Bit_Mask,ax ; return data area
57
58 mov ax,KbdTurnAroundCharacter ; save turn around character
59 mov es:[di].Turn_Around_Char,ax
60
61 mov ax,KbdInterimCharFlags ; save interim character flag
62 mov es:[di].Interim_Char_Flags,ax
63
64 mov ah,2
65 int 16h ; get kbd shift status
66
67 xor ah,ah
68 mov es:[di].Status_Shift_State,ax ; save it in return data
69 ; area
70 Mexit ; restore registers
71
72 ret size str - 6 ; return
73
74kbdgetstatus endp
75kbdxxx ends
76 end