mirror of
				https://github.com/FDOS/kernel.git
				synced 2025-10-31 19:34:24 +01:00 
			
		
		
		
	Don't disable a20 for "exit" int21/ah=4c
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@654 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
		
							parent
							
								
									8a7b83ab63
								
							
						
					
					
						commit
						68805961dc
					
				| @ -45,8 +45,7 @@ segment HMA_TEXT | ||||
| ; | ||||
| ;       Special call for switching processes | ||||
| ; | ||||
| ;       void exec_user(irp) | ||||
| ;       iregs far *irp; | ||||
| ;       void exec_user(iregs far *irp, int disable_a20) | ||||
| ; | ||||
|                 global  _exec_user | ||||
| _exec_user: | ||||
| @ -61,14 +60,19 @@ _exec_user: | ||||
| 
 | ||||
|                 pop     ax		      ; irp (user ss:sp) | ||||
|                 pop	dx | ||||
| 		pop	cx		      ; disable A20? | ||||
|                 cli | ||||
|                 mov     ss,dx | ||||
|                 mov     sp,ax                   ; set-up user stack | ||||
|                 sti | ||||
| ; | ||||
| 		or	cx,cx | ||||
|                 POP$ALL | ||||
| 		jz      do_iret | ||||
|                 extern _ExecUserDisableA20 | ||||
|                 jmp far _ExecUserDisableA20 | ||||
| do_iret: | ||||
| 		iret | ||||
| 
 | ||||
| segment _LOWTEXT | ||||
| 
 | ||||
|  | ||||
| @ -373,7 +373,7 @@ UWORD get_machine_name(BYTE FAR * netname); | ||||
| VOID set_machine_name(BYTE FAR * netname, UWORD name_num); | ||||
| 
 | ||||
| /* procsupt.asm */ | ||||
| VOID ASMCFUNC exec_user(iregs FAR * irp); | ||||
| VOID ASMCFUNC exec_user(iregs FAR * irp, int disable_a20); | ||||
| 
 | ||||
| /* new by TE */ | ||||
| 
 | ||||
|  | ||||
| @ -314,7 +314,7 @@ int load_transfer(UWORD ds, exec_blk *exp, UWORD fcbcode, COUNT mode) | ||||
|      | ||||
|     if (InDOS) | ||||
|       --InDOS; | ||||
|     exec_user(irp); | ||||
|     exec_user(irp, 1); | ||||
|      | ||||
|     /* We should never be here          
 | ||||
|        fatal("KERNEL RETURNED!!!");                    */ | ||||
| @ -528,7 +528,7 @@ VOID return_user(void) | ||||
| 
 | ||||
|   if (InDOS) | ||||
|     --InDOS; | ||||
|   exec_user((iregs FAR *) q->ps_stack); | ||||
|   exec_user((iregs FAR *) q->ps_stack, 0); | ||||
| } | ||||
| 
 | ||||
| COUNT DosExeLoader(BYTE FAR * namep, exec_blk * exp, COUNT mode, COUNT fd) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user