1
0
Fork 0

Be more compatible by converting tabs to spaces in the DOS console device rather than in the video BIOS teletype function.

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3983
This commit is contained in:
ripsaw8080 2016-05-23 11:33:09 +00:00
parent 9fc2c31a97
commit 64a04b9985
4 changed files with 19 additions and 11 deletions

View file

@ -133,7 +133,7 @@ static Bitu DOS_21Handler(void) {
Bit8u c=reg_dl;Bit16u n=1;
DOS_WriteFile(STDOUT,&c,&n);
//Not in the official specs, but happens nonetheless. (last written character)
reg_al = c;// reg_al=(c==9)?0x20:c; //Officially: tab to spaces
reg_al=(c==9)?0x20:c; //strangely, tab conversion to spaces is reflected here
}
break;
case 0x03: /* Read character from STDAUX */
@ -184,8 +184,10 @@ static Bitu DOS_21Handler(void) {
default:
{
Bit8u c = reg_dl;Bit16u n = 1;
dos.direct_output=true;
DOS_WriteFile(STDOUT,&c,&n);
reg_al = reg_dl;
dos.direct_output=false;
reg_al=c;
}
break;
};
@ -211,6 +213,7 @@ static Bitu DOS_21Handler(void) {
while ((c=mem_readb(buf++))!='$') {
DOS_WriteFile(STDOUT,&c,&n);
}
reg_al=c;
}
break;
case 0x0a: /* Buffered Input */
@ -1236,6 +1239,7 @@ public:
dos.version.major=5;
dos.version.minor=0;
dos.direct_output=false;
}
~DOS(){
for (Bit16u i=0;i<DOS_DRIVES;i++) delete Drives[i];