From 1555138647130bc0305e8c910b98f2432df22910 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Tue, 1 Apr 2003 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 2003-04-01 --- pc/devarch.c | 6 ++++++ pc/l.s | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pc/devarch.c b/pc/devarch.c index cad297e7e81f77df396242da3c797a11b4e73fb6..ac3c0861c82145e68857c9d2b81ecd4d8f6bd72d 100644 --- a/pc/devarch.c +++ b/pc/devarch.c @@ -763,6 +763,7 @@ enum CMpge, CMcoherence, CMi8253set, +CMrealmode }; static Cmdtab archctlmsg[] = @@ -770,6 +771,7 @@ static Cmdtab archctlmsg[] = CMpge, "pge", 2, CMcoherence, "coherence", 2, CMi8253set, "i8253set", 2, +CMrealmode, "realmode", 1, }; static long @@ -814,6 +816,10 @@ archctlwrite(Chan*, void *a, long n, vlong) else cmderror(cb, "invalid i2853set ctl"); break; + case CMrealmode: + if(strcmp(cb->f[1], "realmode") == 0) + realmode(); + break; } free(cb); poperror(); diff --git a/pc/l.s b/pc/l.s index f58c31de59d57052840bdbbc26a538764d82d525..70a79b7c8a820f68ec3ccdec09a65cee95da2361 100644 --- a/pc/l.s +++ b/pc/l.s @@ -7,7 +7,7 @@ * Some machine instructions not handled by 8[al]. */ #define OP16 BYTE $0x66 -#define DELAY BYTE $0xEB; BYTE $0x00 /* JMP .+2 */ +#define DELAY BYTE $0xEB; BYTE $0x00 /* JMP .+2 */ #define CPUID BYTE $0x0F; BYTE $0xA2 /* CPUID, argument in AX */ #define WRMSR BYTE $0x0F; BYTE $0x30 /* WRMSR, argument in AX/DX (lo/hi) */ #define RDMSR BYTE $0x0F; BYTE $0x32 /* RDMSR, result in AX/DX (lo/hi) */ @@ -827,3 +827,7 @@ TEXT vectortable(SB), $0 CALL _strayintr(SB); BYTE $0xFD CALL _strayintr(SB); BYTE $0xFE CALL _strayintr(SB); BYTE $0xFF + +TEXT realmode(SB), $0 + RET +