Microsoft (R) Macro Assembler Version 5.10                  5/16/24 23:40:15
CP/DOS DosGetDBCSEv                                         Page     1-1


				;
				page 80,132
				;
				title CP/DOS DosGetDBCSEv
				;
 0000				dosxxx	segment byte public 'dos'
					assume	cs:dosxxx,ds:nothing,es:nothing,ss:nothing
				;
				;**********************************************************************
				;*
				;*   MODULE:   DosGetDBCSEv
				;*
				;*   CALLING SEQUENCE:
				;*
				;*	       PUSH   WORD     Length
				;*	       PUSH@  DWORD    Countrycode
				;*	       PUSH@  DWORD    Memorybuffer
				;*
				;*   MODULES CALLED:  none
				;*
				;*********************************************************************
				;
					public	DosGetDBCSEv
					.sall
					include macros.inc
			     C	;
			     C	
			     C	
			     C	pushal  macro
			     C	        push    bx
			     C	        push    cx
			     C	        push    dx
			     C	        push    si
			     C	        push    di
			     C	        push    ds
			     C	        push    es
			     C	        push    ss
			     C	        push    bp
			     C	        endm
			     C	;
			     C	popal   macro
			     C	        pop     bp
			     C	        pop     ss
			     C	        pop     es
			     C	        pop     ds
			     C	        pop     di
			     C	        pop     si
			     C	        pop     dx
			     C	        pop     cx
			     C	        pop     bx
			     C	        endm
			     C	;
			     C	Enter   macro   Routine
			     C	
			     C	        push    bp
			     C	        mov     bp,sp
			     C	        pushal
			     C	
			     C	        endm
			     C	;
			     C	Mexit   macro
			     C	
			     C	        popal
			     C	        mov     sp,bp
			     C	        pop     bp
			     C	
			     C	        endm
			     C	
				
				str	struc
 0000  0000			old_bp	dw	?
 0002  00000000			return	dd	?
 0006  00000000			DataAreaPtr	dd	?      ; Data buffer pointer
 000A  00000000			CountryCodePtr	dd	?      ; Country code pointer
 000E  0000			DataAreaLength	dw	?      ; Length of data area
 0010				str	ends
Microsoft (R) Macro Assembler Version 5.10                  5/16/24 23:40:15
CP/DOS DosGetDBCSEv                                         Page     1-2


				
 0000				DosGetDBCSEv	proc	far
				
					Enter  DosGetDBCSEv		    ;AN000; push registers
				
				; Get the country, so we can then get the country case map stuff
				
				;	lds	si,[bp].CountryCodePtr
				;	mov	ax,ds:[si]
				
				; Note: do the country selection later (maybe never)
				
 000C  B8 6300				mov	ax,6300H		     ;AN000; get DBCS vector
 000F  CD 21				INT	21H			     ;AN000; DS:SI-->vector area
				
 0011  72 11				jc	Exit
 0013				Copy_Vector:
 0013  C4 7E 06				les	di,[bp].DataAreaPtr	     ;AN000; ES:DI-->return buffer
 0016  8B 4E 0E				mov	cx,[bp].DataAreaLength	     ;AN000;
 0019				loopx:
 0019  8A 04				mov    al,ds:[si]		     ;AN000;
 001B  26: 88 05			mov    es:[di],al		     ;AN000;
 001E  46				inc    si			     ;AN000;
 001F  47				inc    di			     ;AN000;
 0020  E2 F7				loop   loopx			     ;AN000;
				
 0022  33 C0				xor	ax,ax			     ;AN000;
				
 0024				Exit:
					Mexit				    ;AN000;pop registers
				
 0030  CA 000A				ret	size str - 6		    ;AN000; return
				
 0033				DosGetDBCSEv	endp
				
 0033				dosxxx	ends
				
					end

Microsoft (R) Macro Assembler Version 5.10                  5/16/24 23:40:15
CP/DOS DosGetDBCSEv                                         Symbols-1


Macros:

		N a m e			Lines

ENTER  . . . . . . . . . . . . .  	   3
MEXIT  . . . . . . . . . . . . .  	   3
POPAL  . . . . . . . . . . . . .  	   9
PUSHAL . . . . . . . . . . . . .  	   9

Structures and Records:

                N a m e                 Width   # fields
                                        Shift   Width   Mask    Initial

STR  . . . . . . . . . . . . . .  	0010	0005
  OLD_BP . . . . . . . . . . . .  	0000
  RETURN . . . . . . . . . . . .  	0002
  DATAAREAPTR  . . . . . . . . .  	0006
  COUNTRYCODEPTR . . . . . . . .  	000A
  DATAAREALENGTH . . . . . . . .  	000E

Segments and Groups:

                N a m e         	Length	 Align	Combine Class

DOSXXX . . . . . . . . . . . . .  	0033	BYTE	PUBLIC	'DOS'

Symbols:            

                N a m e         	Type	 Value	 Attr

COPY_VECTOR  . . . . . . . . . .  	L NEAR	0013	DOSXXX

DosGetDBCSEv . . . . . . . . . .  	F PROC	0000	DOSXXX	Global	Length = 0033

EXIT . . . . . . . . . . . . . .  	L NEAR	0024	DOSXXX

LOOPX  . . . . . . . . . . . . .  	L NEAR	0019	DOSXXX

@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  dbcs		
@VERSION . . . . . . . . . . . .  	TEXT  510		


    117 Source  Lines
    141 Total   Lines
     21 Symbols

  47464 + 291893 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
