hello, today, i've made a basic function set to change the case of chars.
it takes the modifier from a 256 bytes LUT, and it translates the char.
then, of course, it is using the charset of européan letters. with accents, etc...
let's go!!
;;change case:
;usage:
;
;force lower case:
; mov al,char
; call case.low
;
;force upper case:
; mov al,char
; call case.up
;
;inverse case:
; mov al,char
; call case.inv
case:
;al=char
;trashes eax,ebx
.low:
mov ah,al
mov ebx,.lut
xlatb
or ah,al
mov al,ah
ret
.up:
mov ah,al
mov ebx,.lut
xlatb
not al
and ah,al
mov al,ah
ret
.inv:
mov ah,al
mov ebx,.lut
xlatb
xor ah,al
mov al,ah
ret
.lut:
.00 db 0 ;.
.01 db 0 ;.
.02 db 0 ;.
.03 db 0 ;.
.04 db 0 ;.
.05 db 0 ;.
.06 db 0 ;.
.07 db 0 ;.
.08 db 0 ;.
.09 db 0 ;.
.0A db 0 ;.
.0B db 0 ;.
.0C db 0 ;.
.0D db 0 ;.
.0E db 0 ;.
.0F db 0 ;.
.10 db 0 ;.
.11 db 0 ;.
.12 db 0 ;.
.13 db 0 ;.
.14 db 0 ;.
.15 db 0 ;.
.16 db 0 ;.
.17 db 0 ;.
.18 db 0 ;.
.19 db 0 ;.
.1A db 0 ;.
.1B db 0 ;.
.1C db 0 ;.
.1D db 0 ;.
.1E db 0 ;.
.1F db 0 ;.
.20 db 0 ;
.21 db 0 ;!
.22 db 0 ;"
.23 db 0 ;#
.24 db 0 ;$
.25 db 0 ;%
.26 db 0 ;&
.27 db 0 ;'
.28 db 0 ;(
.29 db 0
.2A db 0 ;*
.2B db 0 ;+
.2C db 0 ;,
.2D db 0 ;-
.2E db 0 ;.
.2F db 0 ;/
.30 db 0 ;0
.31 db 0 ;1
.32 db 0 ;2
.33 db 0 ;3
.34 db 0 ;4
.35 db 0 ;5
.36 db 0 ;6
.37 db 0 ;7
.38 db 0 ;8
.39 db 0 ;9
.3A db 0 ;:
.3B db 0 ;;
.3C db 0 ;<
.3D db 0 ;=
.3E db 0 ;>
.3F db 0 ;?
.40 db 0 ;@
.41 db 20h ;Aa
.42 db 20h ;Bb
.43 db 20h ;Cc
.44 db 20h ;Dd
.45 db 20h ;Ee
.46 db 20h ;Ff
.47 db 20h ;Gg
.48 db 20h ;Hh
.49 db 20h ;Ii
.4A db 20h ;Jj
.4B db 20h ;Kk
.4C db 20h ;Ll
.4D db 20h ;Mm
.4E db 20h ;Nn
.4F db 20h ;Oo
.50 db 20h ;Pp
.51 db 20h ;Qq
.52 db 20h ;Rr
.53 db 20h ;Ss
.54 db 20h ;Tt
.55 db 20h ;Uu
.56 db 20h ;Vv
.57 db 20h ;Ww
.58 db 20h ;Xx
.59 db 20h ;Yy
.5A db 20h ;Zz
.5B db 0 ;[
.5C db 0 ;\
.5D db 0 ;]
.5E db 0 ;^
.5F db 0 ;_
.60 db 0 ;`
.61 db 20h ;aA
.62 db 20h ;bB
.63 db 20h ;cC
.64 db 20h ;dD
.65 db 20h ;eE
.66 db 20h ;fF
.67 db 20h ;gG
.68 db 20h ;hH
.69 db 20h ;iI
.6A db 20h ;jJ
.6B db 20h ;kK
.6C db 20h ;lL
.6D db 20h ;mM
.6E db 20h ;nN
.6F db 20h ;oO
.70 db 20h ;pP
.71 db 20h ;qQ
.72 db 20h ;rR
.73 db 20h ;sS
.74 db 20h ;tT
.75 db 20h ;uU
.76 db 20h ;vV
.77 db 20h ;wW
.78 db 20h ;xX
.79 db 20h ;yY
.7A db 20h ;zZ
.7B db 0 ;{
.7C db 0 ;|
.7D db 0 ;}
.7E db 0 ;~
.7F db 0 ;.
.80 db 0 ;€
.81 db 0 ;.
.82 db 0 ;‚
.83 db 0 ;ƒ
.84 db 0 ;„
.85 db 0 ;…
.86 db 0 ;†
.87 db 0 ;‡
.88 db 0 ;ˆ
.89 db 0 ;‰
.8A db 10h ;Šš
.8B db 0 ;‹
.8C db 10h ;Œœ
.8D db 0 ;.
.8E db 0 ;Ž
.8F db 0 ;.
.90 db 0 ;.
.91 db 0 ;‘
.92 db 0 ;’
.93 db 0 ;“
.94 db 0 ;”
.95 db 0 ;•
.96 db 0 ;–
.97 db 0 ;—
.98 db 0 ;˜
.99 db 0 ;™
.9A db 10h ;šŠ
.9B db 0 ;›
.9C db 10h ;œŒ
.9D db 0 ;.
.9E db 0 ;ž
.9F db 60h ;Ÿÿ
.A0 db 0 ;
.A1 db 0 ;¡
.A2 db 0 ;¢
.A3 db 0 ;£
.A4 db 0 ;¤
.A5 db 0 ;¥
.A6 db 0 ;¦
.A7 db 0 ;§
.A8 db 0 ;¨
.A9 db 0 ;©
.AA db 0 ;ª
.AB db 0 ;«
.AC db 0 ;¬
.AD db 0 ;
.AE db 0 ;®
.AF db 0 ;¯
.B0 db 0 ;°
.B1 db 0 ;±
.B2 db 0 ;²
.B3 db 0 ;³
.B4 db 0 ;´
.B5 db 0 ;µ
.B6 db 0 ;¶
.B7 db 0 ;·
.B8 db 0 ;¸
.B9 db 0 ;¹
.BA db 0 ;º
.BB db 0 ;»
.BC db 0 ;¼
.BD db 0 ;½
.BE db 0 ;¾
.BF db 0 ;¿
.C0 db 20h ;Àà
.C1 db 20h ;Áá
.C2 db 20h ;Ââ
.C3 db 20h ;Ãã
.C4 db 20h ;Ää
.C5 db 20h ;Åå
.C6 db 20h ;Ææ
.C7 db 20h ;Çç
.C8 db 20h ;Èè
.C9 db 20h ;Éé
.CA db 20h ;Êê
.CB db 20h ;Ëë
.CC db 20h ;Ìì
.CD db 20h ;Íí
.CE db 20h ;Îî
.CF db 20h ;Ïï
.D0 db 20h ;Ðð
.D1 db 20h ;Ññ
.D2 db 20h ;Òò
.D3 db 20h ;Óó
.D4 db 20h ;Ôô
.D5 db 20h ;Õõ
.D6 db 20h ;Öö
.D7 db 0 ;×
.D8 db 20h ;Øø
.D9 db 20h ;Ùù
.DA db 20h ;Úú
.DB db 20h ;Ûû
.DC db 20h ;Üü
.DD db 20h ;Ýý
.DE db 20h ;Þþ
.DF db 0 ;ß
.E0 db 20h ;àÀ
.E1 db 20h ;áÁ
.E2 db 20h ;âÂ
.E3 db 20h ;ãÃ
.E4 db 20h ;äÄ
.E5 db 20h ;åÅ
.E6 db 20h ;æÆ
.E7 db 20h ;çÇ
.E8 db 20h ;èÈ
.E9 db 20h ;éÉ
.EA db 20h ;êÊ
.EB db 20h ;ëË
.EC db 20h ;ìÌ
.ED db 20h ;íÍ
.EE db 20h ;îÎ
.EF db 20h ;ïÏ
.F0 db 20h ;ðÐ
.F1 db 20h ;ñÑ
.F2 db 20h ;òÒ
.F3 db 20h ;óÓ
.F4 db 20h ;ôÔ
.F5 db 20h ;õÕ
.F6 db 20h ;öÖ
.F7 db 0 ;÷
.F8 db 20h ;øØ
.F9 db 20h ;ùÙ
.FA db 20h ;úÚ
.FB db 20h ;ûÛ
.FC db 20h ;üÜ
.FD db 20h ;ýÝ
.FE db 20h ;þÞ
.FF db 60h ;ÿŸ
to use it, just include it in your source.
i am not responsible for the explosion of your fridge nor the tsunami.