From e49b6b079cc191983ea6883df40f6d6372b2663f Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Thu, 9 Sep 1993 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1993-09-09 --- carrera/io.h | 4 ++-- carrera/main.c | 2 +- carrera/screen.c | 10 +++++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/carrera/io.h b/carrera/io.h index 381120d8c16fffbbc960b2a2138d8efca22a0f92..7f13ef1654821c6b4762906d7f551ca815c3b660 100644 --- a/carrera/io.h +++ b/carrera/io.h @@ -70,5 +70,5 @@ struct Tte #define UNCACHED(type, v) (type*)((ulong)(v)|0xA0000000) #define EISA(v) (Eisamvirt+(v)) -#define EISAOUTB(port, v) *(uchar*)((EisaControl+(port))^2) = v -#define EISAINB(port) (*(uchar*)((EisaControl+(port))^2)) +#define EISAOUTB(port, v) *(uchar*)((EisaControl+(port))^7) = v +#define EISAINB(port) (*(uchar*)((EisaControl+(port))^7)) diff --git a/carrera/main.c b/carrera/main.c index fc21bbddc34d7ed2513681e96085b8f141091e57..564a93b6e0784ba407d0e6e7c8e7d9520afc7276 100644 --- a/carrera/main.c +++ b/carrera/main.c @@ -47,7 +47,7 @@ main(void) serialinit(); vecinit(); iprint("\n\nBrazil\n"); - screeninit(); /**/ +screeninit(); pageinit(); procinit0(); initseg(); diff --git a/carrera/screen.c b/carrera/screen.c index 20c2fae4e9bf993015941c950880f2725d21243b..d5a18253b75d0a49b56a671fbc389a8a04ed9099 100644 --- a/carrera/screen.c +++ b/carrera/screen.c @@ -190,6 +190,10 @@ screeninit(void) int i, j; uchar *scr; + EISAOUTB(0x3c3, 1); + delay(1); + EISAOUTB(0x46e8, 0x8); + setmode(&dfltmode); getvmode(&x); writeregisters(&x); @@ -445,9 +449,6 @@ setmode(VGAmode *v) { int i; - for(i = 0; i < sizeof(v->general); i++) - genout(i, v->general[i]); - /* turn screen off (to avoid damage) */ srout(1, 0x21); @@ -457,6 +458,9 @@ setmode(VGAmode *v) srout(0x00, srin(0x00) & 0xFD); /* synchronous reset*/ + for(i = 0; i < sizeof(v->general); i++) + genout(i, v->general[i]); + for(i = 0; i < sizeof(v->sequencer); i++) if(i == 1) srout(i, v->sequencer[i]|0x20);