VOGONS


Enable CON to handle DBCS characters

Topic actions

First post, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie

The console (CON) is supposed to use Int 10H to display characters, but actually it bypassed for speed. So new Int 10H handler will not take effect on CON while hook on Int 16H will. This behavior will prevent applications from using their own 10H to display far east DBCS characters (Chinese/Korea/Japanese) at prompt.

This patch will restore compatibility by using real INT10 service instead of INT10 routines for CON outputting.

I have tested ET35(CHT) and XZL/TWAY(CHS) with this patch applied. Users running applicaitons use their own INT10H hook may be interested in this patch. I think compatibility is more important than speed.

I hope you will find this patch helpful.

Last edited by cyberwalker on 2005-07-16, 18:25. Edited 2 times in total.

Reply 1 of 28, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

It looks quite complex.
Can't you just call interrupt 29 ? (which in turns calls intt10 ?)

or does it lack some "intelligence" in dealing with certain characters/postioning elements.
Not sure though. maybe int29 should have the ansi parsing and not the con device. well details 😀

Water flows down the stream
How to ask questions the smart way!

Reply 2 of 28, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
Qbix wrote:
It looks quite complex. Can't you just call interrupt 29 ? (which in turns calls intt10 ?) […]
Show full quote

It looks quite complex.
Can't you just call interrupt 29 ? (which in turns calls intt10 ?)

or does it lack some "intelligence" in dealing with certain characters/postioning elements.
Not sure though. maybe int29 should have the ansi parsing and not the con device. well details 😀

Maybe you are right. What I have done was to get it working by converting source directly.

Reply 3 of 28, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie

A new file (shell_misc.cpp) added.

Reply 4 of 28, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

Why don't you make a patch by typing 'diff -urN A(previous) B(changed) < filename'?
It can be an easy way to check the changes or apply the patch.

Reply 5 of 28, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
ykhwong wrote:

Why don't you make a patch by typing 'diff -urN A(previous) B(changed) < filename'?
It can be an easy way to check the changes or apply the patch.

I had thought a complete code was good for users not to use CVS tools and users could generate *.diff on their own. However *.diff files added.
Thank you.

Reply 6 of 28, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

I think it's that a lot of people are maintaining their own CVS builds and would like to integrate your changes into theirs for experimental testing purposes. A patch makes this much easier to accomplish.

Reply 7 of 28, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
ykhwong wrote:

Why don't you make a patch by typing 'diff -urN A(previous) B(changed) < filename'?
It can be an easy way to check the changes or apply the patch.

ykhwong, I tested your recent build and found no F11/F12 patch applied. The information on your english page requires correcting.

Reply 8 of 28, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

I didn't add the keys ('/','*','+' and '-' on keypad) that will be recevied by DOS apps. But F11/F12 keys are not working? I thought that I properly applied it.

It was difficult for me to combine three files with a patch file below.
keyb.patch, qemukeyboard.cpp, and bios_keyboard.cpp

Check the attchment. Can you point out mistakes that I made?

Reply 9 of 28, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
ykhwong wrote:
I didn't add the keys ('/','*','+' and '-' on keypad) that will be recevied by DOS apps. But F11/F12 keys are not working? I tho […]
Show full quote

I didn't add the keys ('/','*','+' and '-' on keypad) that will be recevied by DOS apps. But F11/F12 keys are not working? I thought that I properly applied it.
It was difficult for me to combine three files with a patch file below.
keyb.patch, qemukeyboard.cpp, and bios_keyboard.cpp
Check the attchment. Can you point out mistakes that I made?

I have checked your diff file briefly. The file sdl_mapper.cpp was quite different than CVS's(and mine). I think new bugs have been brought in when you patched it before. You may want to debug your build.

Reply 10 of 28, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

Check this patch that moe modified. http://garni.ch/~jwalt/intlkey.diff
does the file sdl_mapper.cpp affect the operation of f11/f12 keys working in dos apps?

Reply 11 of 28, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
ykhwong wrote:

Check this patch that moe modified. http://garni.ch/~jwalt/intlkey.diff
does the file sdl_mapper.cpp affect the operation of f11/f12 keys working in dos apps?

I think applying this patch should be ok. It seems keyboard.cpp patched with intlkey.diff in your last post changed the behavior of keyboard. I am not so sure. Debugging will tell the difference.

Reply 12 of 28, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

I assume that some strings are repeated and max code was wrong in keyboard.cpp
I deleted three lines and changed code number 61 to 58.
Can you test dosbox.exe that I attached, cyberwalker? 😀
(I found that f11/f12 keys really do work in MdirIII app under my build)

Reply 13 of 28, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
ykhwong wrote:
I assume that some strings are repeated and max code was wrong in keyboard.cpp I deleted three lines and changed code number 61 […]
Show full quote

I assume that some strings are repeated and max code was wrong in keyboard.cpp
I deleted three lines and changed code number 61 to 58.
Can you test dosbox.exe that I attached, cyberwalker? 😀
(I found that f11/f12 keys really do work in MdirIII app under my build)

This build worked as expected. I think you have figured out what is wrong with keyboard.cpp.

I also found with Smart Updating enabled, the CPU usage decreased greatly when DOS is "Idle". Maybe Smart Updating will give DOSBOX a big advantage over VMware and VPC in running DOS applications, though it flickers displaying and forgets to update screen sometime.

Reply 15 of 28, by knowen

User metadata
Rank Newbie
Rank
Newbie

hi all

i have a big problem about dos based prog. name is eta

it is working on win9x but we upgrade the system winxp pro sp2 and now eta is not working when i open the program i get ntvdm cpu error message and later program is closing

now i am working with dosbox v.70 it is working but i cant use turkish keywords (ş,ü,ö)

i searched the language file turkish.lng but i couldnt found

how i can resolve this problem ??

thanks a lot forums members

Reply 16 of 28, by bugs_bugger

User metadata
Rank Member
Rank
Member

You have to load codepage 857 to get an s with cedilla.

Reply 17 of 28, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Be aware that in filenames special characters are NOT allowed
or translated to the host code page.

Reply 18 of 28, by knowen

User metadata
Rank Newbie
Rank
Newbie

i have to but how

i search the cedilla and find only windows versiyon i need a dos versiyon

thanks

Reply 19 of 28, by knowen

User metadata
Rank Newbie
Rank
Newbie

for example z:\>mount f c:\eta and program is openin but the turkish char. is missing (ü,ç) dosbox codepage according to us not turkey

how can i

thanks