summaryrefslogtreecommitdiff
path: root/v4.0/src/MAPPER/DBCS.ASM
diff options
context:
space:
mode:
authorGravatar Mark Zbikowski2024-04-25 21:24:10 +0100
committerGravatar Microsoft Open Source2024-04-25 22:32:27 +0000
commit2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch)
tree80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/MAPPER/DBCS.ASM
parentMerge pull request #430 from jpbaltazar/typoptbr (diff)
downloadms-dos-main.tar.gz
ms-dos-main.tar.xz
ms-dos-main.zip
MZ is back!HEADmain
Diffstat (limited to 'v4.0/src/MAPPER/DBCS.ASM')
-rw-r--r--v4.0/src/MAPPER/DBCS.ASM71
1 files changed, 71 insertions, 0 deletions
diff --git a/v4.0/src/MAPPER/DBCS.ASM b/v4.0/src/MAPPER/DBCS.ASM
new file mode 100644
index 0000000..a856a09
--- /dev/null
+++ b/v4.0/src/MAPPER/DBCS.ASM
@@ -0,0 +1,71 @@
1;
2page 80,132
3;
4title CP/DOS DosGetDBCSEv
5;
6dosxxx segment byte public 'dos'
7 assume cs:dosxxx,ds:nothing,es:nothing,ss:nothing
8;
9;**********************************************************************
10;*
11;* MODULE: DosGetDBCSEv
12;*
13;* CALLING SEQUENCE:
14;*
15;* PUSH WORD Length
16;* PUSH@ DWORD Countrycode
17;* PUSH@ DWORD Memorybuffer
18;*
19;* MODULES CALLED: none
20;*
21;*********************************************************************
22;
23 public DosGetDBCSEv
24 .sall
25 include macros.inc
26
27str struc
28old_bp dw ?
29return dd ?
30DataAreaPtr dd ? ; Data buffer pointer
31CountryCodePtr dd ? ; Country code pointer
32DataAreaLength dw ? ; Length of data area
33str ends
34
35DosGetDBCSEv proc far
36
37 Enter DosGetDBCSEv ;AN000; push registers
38
39; Get the country, so we can then get the country case map stuff
40
41; lds si,[bp].CountryCodePtr
42; mov ax,ds:[si]
43
44; Note: do the country selection later (maybe never)
45
46 mov ax,6300H ;AN000; get DBCS vector
47 INT 21H ;AN000; DS:SI-->vector area
48
49 jc Exit
50Copy_Vector:
51 les di,[bp].DataAreaPtr ;AN000; ES:DI-->return buffer
52 mov cx,[bp].DataAreaLength ;AN000;
53loopx:
54 mov al,ds:[si] ;AN000;
55 mov es:[di],al ;AN000;
56 inc si ;AN000;
57 inc di ;AN000;
58 loop loopx ;AN000;
59
60 xor ax,ax ;AN000;
61
62Exit:
63 Mexit ;AN000;pop registers
64
65 ret size str - 6 ;AN000; return
66
67DosGetDBCSEv endp
68
69dosxxx ends
70
71 end