From: ceriel Date: Wed, 13 Jul 1988 14:29:32 +0000 (+0000) Subject: make trap handling more consistent X-Git-Tag: release-5-5~3047 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=87e020db8ae7b99509116e6673ec18a791945bd2;p=ack.git make trap handling more consistent --- diff --git a/mach/i86/libem/adi.s b/mach/i86/libem/adi.s index 88f12a293..b76949ae1 100644 --- a/mach/i86/libem/adi.s +++ b/mach/i86/libem/adi.s @@ -24,5 +24,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push bx jmp .trp diff --git a/mach/i86/libem/dvi.s b/mach/i86/libem/dvi.s index 9fa847058..e09c98d68 100644 --- a/mach/i86/libem/dvi.s +++ b/mach/i86/libem/dvi.s @@ -35,5 +35,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push bx jmp .trp diff --git a/mach/i86/libem/dvu.s b/mach/i86/libem/dvu.s index ba563156c..45f73a1d6 100644 --- a/mach/i86/libem/dvu.s +++ b/mach/i86/libem/dvu.s @@ -35,5 +35,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push bx jmp .trp diff --git a/mach/i86/libem/error.s b/mach/i86/libem/error.s index dedc9df00..49194d65e 100644 --- a/mach/i86/libem/error.s +++ b/mach/i86/libem/error.s @@ -1,5 +1,6 @@ .sect .text; .sect .rom; .sect .data; .sect .bss .define .error +.define .Xtrp ! ax is trap number ! all registers must be saved @@ -31,3 +32,11 @@ pop si pop bp ret + +.Xtrp: + cmp ax,16 + jge 1f + call .error + ret +1: + jmp .trp diff --git a/mach/i86/libem/fakfp.s b/mach/i86/libem/fakfp.s index f3a62a357..bffaea36c 100644 --- a/mach/i86/libem/fakfp.s +++ b/mach/i86/libem/fakfp.s @@ -35,5 +35,4 @@ .cmf4: .cmf8: mov ax,18 ! illegal instruction EILLINS - call .trp - ret + jmp .trp diff --git a/mach/i86/libem/mli.s b/mach/i86/libem/mli.s index a8dbe3d51..eb0b800c3 100644 --- a/mach/i86/libem/mli.s +++ b/mach/i86/libem/mli.s @@ -38,5 +38,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push bx jmp .trp diff --git a/mach/i86/libem/ngi.s b/mach/i86/libem/ngi.s index ce4589511..49061e16c 100644 --- a/mach/i86/libem/ngi.s +++ b/mach/i86/libem/ngi.s @@ -26,5 +26,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push bx jmp .trp diff --git a/mach/i86/libem/rmi.s b/mach/i86/libem/rmi.s index e3c508794..43bde9f3e 100644 --- a/mach/i86/libem/rmi.s +++ b/mach/i86/libem/rmi.s @@ -35,5 +35,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push bx jmp .trp diff --git a/mach/i86/libem/rmu.s b/mach/i86/libem/rmu.s index a026148dd..4ed99722d 100644 --- a/mach/i86/libem/rmu.s +++ b/mach/i86/libem/rmu.s @@ -35,5 +35,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push bx jmp .trp diff --git a/mach/i86/libem/rol.s b/mach/i86/libem/rol.s index df8629914..2b2af4f8c 100644 --- a/mach/i86/libem/rol.s +++ b/mach/i86/libem/rol.s @@ -32,5 +32,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push dx jmp .trp diff --git a/mach/i86/libem/ror.s b/mach/i86/libem/ror.s index ea1183c1c..d92069c22 100644 --- a/mach/i86/libem/ror.s +++ b/mach/i86/libem/ror.s @@ -33,5 +33,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push dx jmp .trp diff --git a/mach/i86/libem/sbi.s b/mach/i86/libem/sbi.s index 13018ff3e..f5c81ebe0 100644 --- a/mach/i86/libem/sbi.s +++ b/mach/i86/libem/sbi.s @@ -26,5 +26,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push bx jmp .trp diff --git a/mach/i86/libem/set.s b/mach/i86/libem/set.s index 4bc683274..2a030b8f4 100644 --- a/mach/i86/libem/set.s +++ b/mach/i86/libem/set.s @@ -35,7 +35,6 @@ .extern .trp pop di mov ax,ESET - push ax jmp .trp .sect .data diff --git a/mach/i86/libem/sli.s b/mach/i86/libem/sli.s index b8b0f1ef3..4c4f98c2f 100644 --- a/mach/i86/libem/sli.s +++ b/mach/i86/libem/sli.s @@ -31,5 +31,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push dx jmp .trp diff --git a/mach/i86/libem/sri.s b/mach/i86/libem/sri.s index 1566ac3be..e3e623a94 100644 --- a/mach/i86/libem/sri.s +++ b/mach/i86/libem/sri.s @@ -31,5 +31,5 @@ .extern EODDZ .extern .trp mov ax,EODDZ - push ax + push dx jmp .trp diff --git a/mach/i86/libem/strhp.s b/mach/i86/libem/strhp.s index 601f4676b..c8898f053 100644 --- a/mach/i86/libem/strhp.s +++ b/mach/i86/libem/strhp.s @@ -12,14 +12,16 @@ add ax,02000 and ax,~0777 mov (.limhp),ax + push bx push ax call _brk - or ax,ax - jne 2f + pop cx + pop bx + cmp ax,-1 + je 2f 1: jmp bx 2: mov ax,EHEAP - push ax - call .trp - jmp bx + push bx + jmp .trp