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:
parent
9fc2c31a97
commit
64a04b9985
4 changed files with 19 additions and 11 deletions
|
@ -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];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue