Hi Christian,

> However it's true that aborting the command line interpreter should
> not really abort it

Well if it aborts then it will have a reason to do so.
You cannot force a program to continue just by, say,
IRETing from int 21.4c...

> part of this mail contains technical information for the kernel developers  
...

> The Int21.4C00 handler already detects the special case of a PSP that owns  
> itself, but it will then return to the calling code, not to the Int22  
> handler (as stored in the PSP). Disassembling parts of the MS-DOS handler  
> for Int21.4C revealed that it does:

Seriously, it is not the goal of FreeDOS to reverse-engineer MS DOS.
If you want MS DOS, just get the files from your torrent. You might
even be able to get the sources but both would be evil license-wise.

Feel free to READ the return_user() source code of FreeDOS, it
is open source. But please do NOT WRITE MS DOS code into FreeDOS!
We implement 21.4c mostly in return_user, it handles int 22, 23,
24 vectors, network process end, network closeall, close all files,
parent stuff, indos, then you have to read exec_user which mostly
disables A20 and returns to the caller. Parts depend on whether
you go TSR or not :-).

Maybe 2a.82 is missing but maybe only in STABLE.
Dunno about flushing buffers or virtual open or whatever.

> for self-owning PSPs in inthndlr.c has to move to return_user() in task.c.  
> So change this line:
> 
>> if (!tsr)
> 
> to include the self-owner check:
> 
>> if (!tsr && !(p->ps_parent == cu_psp) )
> 
> And remove the following lines from inthndlr.c: (below case 0x4c:)
> 
>> if (((psp FAR *)MK_FP(cu_psp, 0))->ps_parent == cu_psp)
>>  break;
> 
> You may also want to add the es:bx = Int22 thing (well, how useful is it?)  
> to task.c. Below the two existing lines:
> 
>> irp->CS = FP_SEG(p->ps_isv22);
>> irp->IP = FP_OFF(p->ps_isv22);
> 
> add the following two:
> 
>> irp->ES = FP_SEG(p->ps_isv22);
>> irp->BX = FP_OFF(p->ps_isv22);
> 
> Then at least the flags are still set different in MS-DOS but I doubt  
> that's useful or required for DOS-C.

I do not think we should use code reversed from MS DOS sorry.

Eric




------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to