Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:25
                                                             Page     1-1


				.list
				
				sBegin  code
 0000                        2	_TEXT segment 
				assumes cs,code
				
				;
				; c = IToupper (c, routine);
				;
				;       c is char to be converted
				;       routine is case map call in internation
				al table
				;
				
				cProc   IToupper,<PUBLIC>
 0000                        2	IToupper label near 
				parmW   c
				parmD   routine
				cBegin
 0000                        1		    _IToupper proc NEAR 
 0000  55                    1			push bp 
 0001  8B EC                 1			mov bp,sp 
 0003  8B 46 04			        mov     ax,c
 0006  0A E4			        or      ah,ah
 0008  75 0D			        jnz     donothing
 000A  3C 61			        cmp     al,'a'
 000C  72 06			        jb      noconv
 000E  3C 7A			        cmp     al,'z'
 0010  77 02			        ja      noconv
 0012  2C 20			        sub     al,20H
 0014				noconv:
 0014  FF 5E 06			        call    routine
 0017				donothing:
				cEnd
 0017  8B E5                 1			mov sp,bp 
 0019  5D                    1			pop bp 
 001A  C3                    1			ret 
 001B                        1		_IToupper endp 
				
				
				;Get_Lbtbl
				;
				;       Get pointer to LBTBL from DOS if we are
				 running on a version
				;       of DOS which supports it.  If not, init
				ialize the table with
				;       a pointer to a local "default" table wi
				th KANJI lead bytes.
				;
				;Input: word pointer to LONG "Lbtbl"
				;Output: long initialized to Lead byte pointer
				;
				
				cProc   get_lbtbl,<PUBLIC> 
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:25
                                                             Page     1-2


 001B                        2	get_lbtbl label near 
				                                
				parmW   pointer_to_table                       
				 
				                                
				;	on entry, low word of DWORD pointer has
				 offset of
				;	a default table of lead bytes defined w
				ithin the C program
				;	If function 63 is supported, the DWORD 
				pointer to DOS'
				;	table will be placed here instead.
				cBegin
 001B                        1		    _get_lbtbl proc NEAR 
 001B  55                    1			push bp 
 001C  8B EC                 1			mov bp,sp 
 001E  56			        push    si
 001F  57			        push    di
 0020  8B 5E 04			        mov     bx,pointer_to_table     ;get po
				inter
 0023  8B 37				mov	si,[bx]			;defaul
				t table pointer in DS:SI
 0025  06			        push    es
 0026  1E				push	ds
 0027  B8 6300			        mov     ax,6300h                ;make G
				et Lead Byte call
 002A  CD 21			        int     21h
 002C  36: 89 37		        mov     ss:[bx],si		;si did
				n't change if non ECS dos
 002F  36: 8C 5F 02		        mov     ss:[bx+2],ds            ;store 
				segment
 0033  1F				pop	ds
 0034  07				pop	es
 0035  5F			        pop     di
 0036  5E			        pop     si
				cEnd       
 0037  8B E5                 1			mov sp,bp 
 0039  5D                    1			pop bp 
 003A  C3                    1			ret 
 003B                        1		_get_lbtbl endp 
				
				
				;
				; test_ECS(char,DWORD_prt)      test the char t
				o find out if it is
				;                               a valid lead by
				te using passed DWORD
				; Input: char                   PTR to the Lead
				 Byte table.
				;        DWORD PTR to table
				; Output: AX=FFFF (is_lead)     Lead byte table
				 may be default in 
				;         AX=0    (not_lead)    program or ECS 
				table in DOS when
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:25
                                                             Page     1-3


				;                               running on a ve
				rsion which supports it.
				;
				cProc   test_ECS,<PUBLIC>  ;test for lead byte 
				 ;if Lead, then
 003B                        2	test_ECS label near 
				                                               
				 ; return AX=Is_lead
				                                               
				 ; else 
				                                               
				 ; return AX=FALSE
 = FFFF				Is_lead         EQU     0FFFFH
 = 0000				Not_lead        EQU     0
				
				parmW   char
				parmD   pointer         ;DWORD PTR to Lead Byte
				 Table
				cBegin 
 003B                        1		    _test_ECS proc NEAR 
 003B  55                    1			push bp 
 003C  8B EC                 1			mov bp,sp 
 003E  8B 46 04			        mov     ax,char
 0041  86 E0			        xchg    ah,al
 0043  56			        push    SI
 0044  1E			        push    DS
 0045  C5 76 06			        LDS     SI,pointer
 0048				ktlop:
 0048  AC			        lodsb
 0049  0A C0			        or      al,al
 004B  74 11			        jz      notlead
 004D  3A C4			        cmp     al,ah
 004F  77 0D			        ja      notlead
 0051  AC			        lodsb
 0052  3A E0			        cmp     ah,al
 0054  77 F2			        ja      ktlop
 0056  B8 FFFF			        mov     ax,Is_lead
 0059				notl_exit:
 0059  1F			        pop     ds
 005A  5E			        pop     si
 005B  EB 06 90			        jmp     cexit
 005E				notlead:
 005E  B8 0000			        mov     ax,not_lead
 0061  EB F6			        jmp     notl_exit
 0063				cexit:
				cEnd
 0063  8B E5                 1			mov sp,bp 
 0065  5D                    1			pop bp 
 0066  C3                    1			ret 
 0067                        1		_test_ECS endp 
				
				
				
				
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:25
                                                             Page     1-4


				sEnd
 0067                        1		_TEXT ends 
				
				end

Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:25
                                                             Symbols-1


Macros:

		N a m e			Lines

?UTPE  . . . . . . . . . . . . .  	   1
ADDSEG . . . . . . . . . . . . .  	  20
ADD_DGROUP . . . . . . . . . . .  	   1
ADD_IGROUP . . . . . . . . . . .  	   1
ARG  . . . . . . . . . . . . . .  	   4
ASSUMES  . . . . . . . . . . . .  	  20
BEGINCODE  . . . . . . . . . . .  	   2
BEGINDATA  . . . . . . . . . . .  	   2
CBEGIN . . . . . . . . . . . . .  	   0
CCALL  . . . . . . . . . . . . .  	  30
CEND . . . . . . . . . . . . . .  	   0
CPROC  . . . . . . . . . . . . .  	   1
CREATESEG  . . . . . . . . . . .  	  16
DEFB . . . . . . . . . . . . . .  	   1
DEFCP  . . . . . . . . . . . . .  	   1
DEFD . . . . . . . . . . . . . .  	   1
DEFDP  . . . . . . . . . . . . .  	   1
DEFGRP . . . . . . . . . . . . .  	   1
DEFQ . . . . . . . . . . . . . .  	   1
DEFT . . . . . . . . . . . . . .  	   1
DEFW . . . . . . . . . . . . . .  	   1
ERRN$  . . . . . . . . . . . . .  	   1
ERRNZ  . . . . . . . . . . . . .  	   5
ERRNZ1 . . . . . . . . . . . . .  	   1
ERROR  . . . . . . . . . . . . .  	   2
EXTERNB  . . . . . . . . . . . .  	   1
EXTERNCP . . . . . . . . . . . .  	   1
EXTERND  . . . . . . . . . . . .  	   1
EXTERNDP . . . . . . . . . . . .  	   1
EXTERNFP . . . . . . . . . . . .  	   1
EXTERNNP . . . . . . . . . . . .  	   1
EXTERNP  . . . . . . . . . . . .  	   1
EXTERNQ  . . . . . . . . . . . .  	   1
EXTERNT  . . . . . . . . . . . .  	   1
EXTERNW  . . . . . . . . . . . .  	   1
GLOBALB  . . . . . . . . . . . .  	   2
GLOBALCP . . . . . . . . . . . .  	   1
GLOBALD  . . . . . . . . . . . .  	   2
GLOBALDP . . . . . . . . . . . .  	   1
GLOBALQ  . . . . . . . . . . . .  	   2
GLOBALT  . . . . . . . . . . . .  	   2
GLOBALW  . . . . . . . . . . . .  	   2
IN_DGROUP  . . . . . . . . . . .  	   7
IN_IGROUP  . . . . . . . . . . .  	   7
LABELB . . . . . . . . . . . . .  	   1
LABELCP  . . . . . . . . . . . .  	   1
LABELD . . . . . . . . . . . . .  	   1
LABELDP  . . . . . . . . . . . .  	   1
LABELFP  . . . . . . . . . . . .  	   1
LABELNP  . . . . . . . . . . . .  	   1
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:25
                                                             Symbols-2


LABELP . . . . . . . . . . . . .  	   1
LABELQ . . . . . . . . . . . . .  	   1
LABELT . . . . . . . . . . . . .  	   1
LABELW . . . . . . . . . . . . .  	   1
LOCALB . . . . . . . . . . . . .  	   1
LOCALCP  . . . . . . . . . . . .  	   1
LOCALD . . . . . . . . . . . . .  	   5
LOCALDP  . . . . . . . . . . . .  	   1
LOCALQ . . . . . . . . . . . . .  	   1
LOCALT . . . . . . . . . . . . .  	   1
LOCALV . . . . . . . . . . . . .  	   1
LOCALW . . . . . . . . . . . . .  	   1
OUTIF  . . . . . . . . . . . . .  	  17
PARMB  . . . . . . . . . . . . .  	   1
PARMCP . . . . . . . . . . . . .  	   1
PARMD  . . . . . . . . . . . . .  	  13
PARMDP . . . . . . . . . . . . .  	   1
PARMQ  . . . . . . . . . . . . .  	   1
PARMT  . . . . . . . . . . . . .  	   1
PARMW  . . . . . . . . . . . . .  	   1
REGPTR . . . . . . . . . . . . .  	   8
SAVE . . . . . . . . . . . . . .  	   2
SBEGIN . . . . . . . . . . . . .  	   1
SEND . . . . . . . . . . . . . .  	   1
SMASHES  . . . . . . . . . . . .  	   5
STATICB  . . . . . . . . . . . .  	   2
STATICCP . . . . . . . . . . . .  	   1
STATICD  . . . . . . . . . . . .  	   2
STATICDP . . . . . . . . . . . .  	   1
STATICQ  . . . . . . . . . . . .  	   2
STATICT  . . . . . . . . . . . .  	   2
STATICW  . . . . . . . . . . . .  	   2

Segments and Groups:

                N a m e         	Length	 Align	Combine Class

DGROUP . . . . . . . . . . . . .  	GROUP
  _DATA  . . . . . . . . . . . .  	0000	WORD	PUBLIC	'DATA'
IGROUP . . . . . . . . . . . . .  	GROUP
  _TEXT  . . . . . . . . . . . .  	0067	BYTE	PUBLIC	'CODE'

Symbols:            

                N a m e         	Type	 Value	 Attr

ALTVECT  . . . . . . . . . . . .  	ALIAS	 FALSE		
ASMPASS  . . . . . . . . . . . .  	NUMBER	0002	

BUFFERFLAG . . . . . . . . . . .  	NUMBER	FFFF	

C  . . . . . . . . . . . . . . .  	TEXT  word ptr [bp+4]		
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:25
                                                             Symbols-3


CEXIT  . . . . . . . . . . . . .  	L NEAR	0063	_TEXT
CHAR . . . . . . . . . . . . . .  	TEXT  word ptr [bp+4]		
CODEOFFSET . . . . . . . . . . .  	TEXT  OFFSET IGROUP:		

DATAOFFSET . . . . . . . . . . .  	TEXT  OFFSET DGROUP:		
DEF_DGROUP . . . . . . . . . . .  	NUMBER	0002	
DEF_IGROUP . . . . . . . . . . .  	NUMBER	0002	
DONOTHING  . . . . . . . . . . .  	L NEAR	0017	_TEXT

FALSE  . . . . . . . . . . . . .  	NUMBER	0000	

GET_LBTBL  . . . . . . . . . . .  	L NEAR	001B	_TEXT

IBM  . . . . . . . . . . . . . .  	ALIAS	 IBMVER		
IBMCOPYRIGHT . . . . . . . . . .  	ALIAS	 FALSE		
IBMJAPAN . . . . . . . . . . . .  	ALIAS	 FALSE		
IBMJAPVER  . . . . . . . . . . .  	ALIAS	 FALSE		
IBMVER . . . . . . . . . . . . .  	ALIAS	 TRUE		
INTERNAT . . . . . . . . . . . .  	ALIAS	 FALSE		
IS_LEAD  . . . . . . . . . . . .  	NUMBER	FFFF	
ITOUPPER . . . . . . . . . . . .  	L NEAR	0000	_TEXT

JAPAN  . . . . . . . . . . . . .  	ALIAS	 FALSE		

KANJI  . . . . . . . . . . . . .  	ALIAS	 FALSE		
KOREA  . . . . . . . . . . . . .  	ALIAS	 FALSE		
KTLOP  . . . . . . . . . . . . .  	L NEAR	0048	_TEXT

MEMC . . . . . . . . . . . . . .  	NUMBER	0000	
MEMH . . . . . . . . . . . . . .  	NUMBER	0000	
MEML . . . . . . . . . . . . . .  	NUMBER	0000	
MEMM . . . . . . . . . . . . . .  	NUMBER	0000	
MEMMOD . . . . . . . . . . . . .  	NUMBER	0001	
MEMS . . . . . . . . . . . . . .  	NUMBER	0001	
MSVER  . . . . . . . . . . . . .  	NUMBER	0000	

NOCONV . . . . . . . . . . . . .  	L NEAR	0014	_TEXT
NOTLEAD  . . . . . . . . . . . .  	L NEAR	005E	_TEXT
NOTL_EXIT  . . . . . . . . . . .  	L NEAR	0059	_TEXT
NOT_LEAD . . . . . . . . . . . .  	NUMBER	0000	

OFF_POINTER  . . . . . . . . . .  	TEXT  WORD ptr [bp+6]		
OFF_ROUTINE  . . . . . . . . . .  	TEXT  WORD ptr [bp+6]		

POINTER  . . . . . . . . . . . .  	TEXT  DWORD ptr [bp+6]		
POINTER_TO_TABLE . . . . . . . .  	TEXT  word ptr [bp+4]		

ROUTINE  . . . . . . . . . . . .  	TEXT  DWORD ptr [bp+6]		

SEG_POINTER  . . . . . . . . . .  	TEXT  WORD ptr [bp+8]		
SEG_ROUTINE  . . . . . . . . . .  	TEXT  WORD ptr [bp+8]		
SIZEC  . . . . . . . . . . . . .  	NUMBER	0000	
SIZED  . . . . . . . . . . . . .  	NUMBER	0000	

Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:25
                                                             Symbols-4


TEST_ECS . . . . . . . . . . . .  	L NEAR	003B	_TEXT
TRUE . . . . . . . . . . . . . .  	NUMBER	FFFF	
TRUEBYTE . . . . . . . . . . . .  	NUMBER	00FF	

??0000 . . . . . . . . . . . . .  	NUMBER	0001	
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  itoupper		
@VERSION . . . . . . . . . . . .  	TEXT  510		
_get_lbtbl . . . . . . . . . . .  	N PROC	001B	_TEXT	Global	Length = 0020
_IToupper  . . . . . . . . . . .  	N PROC	0000	_TEXT	Global	Length = 001B
_test_ECS  . . . . . . . . . . .  	N PROC	003B	_TEXT	Global	Length = 002C


   1157 Source  Lines
   2453 Total   Lines
    213 Symbols

  46916 + 236931 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
