diff options
Diffstat (limited to 'os/ks32/archevaluator7t.c')
| -rw-r--r-- | os/ks32/archevaluator7t.c | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/os/ks32/archevaluator7t.c b/os/ks32/archevaluator7t.c new file mode 100644 index 00000000..223c11f0 --- /dev/null +++ b/os/ks32/archevaluator7t.c @@ -0,0 +1,161 @@ +#include "u.h" +#include "../port/lib.h" +#include "mem.h" +#include "dat.h" +#include "fns.h" +#include "io.h" +#include "ureg.h" +#include "../port/error.h" + +extern int cflag; +extern int consoleprint; +extern int redirectconsole; +extern int main_pool_pcnt; +extern int heap_pool_pcnt; +extern int image_pool_pcnt; + +void +archreset(void) +{ +} + +void +archconfinit(void) +{ + conf.topofmem = 512 * 1024; + conf.flashbase = 0x01800000; + conf.cpuspeed = 50000000; + + conf.useminicache = 1; + conf.cansetbacklight = 0; + conf.cansetcontrast = 0; + conf.remaplo = 0; +} + +void +archconsole(void) +{ + uartspecial(0, 57600, 'n', &kbdq, &printq, kbdcr2nl); +} + +void +archreboot(void) +{ +} + +void +setleds(uchar val) +{ + ulong leds = IOPDATA; + IOPDATA = (leds & ~0xf0) | ((val & 0xf) << 4); +} + +static void +setled7(uchar val) +{ + ulong leds = IOPDATA; + IOPDATA = (leds & ~(0x7f << 10)) | ((val & 0x7f) << 10); +} + +#define LEDSEGA 0x01 +#define LEDSEGB 0x02 +#define LEDSEGC 0x04 +#define LEDSEGD 0x08 +#define LEDSEGE 0x10 +#define LEDSEGG 0x20 +#define LEDSEGF 0x40 + +static uchar led7map[] = { +[' '] 0, +['0'] LEDSEGA | LEDSEGB | LEDSEGC | LEDSEGD | LEDSEGE | LEDSEGF, +['1'] LEDSEGB | LEDSEGC, +['2'] LEDSEGA | LEDSEGB | LEDSEGD | LEDSEGE | LEDSEGG, +['3'] LEDSEGA | LEDSEGB | LEDSEGC | LEDSEGD | LEDSEGG, +['4'] LEDSEGB | LEDSEGC | LEDSEGF | LEDSEGG, +['5'] LEDSEGA | LEDSEGC | LEDSEGD | LEDSEGF | LEDSEGG, +['6'] LEDSEGA | LEDSEGC | LEDSEGD | LEDSEGE | LEDSEGF | LEDSEGG, +['7'] LEDSEGA |LEDSEGB | LEDSEGC, +['8'] LEDSEGA | LEDSEGB | LEDSEGC | LEDSEGD | LEDSEGE | LEDSEGF | LEDSEGG, +['9'] LEDSEGA | LEDSEGB | LEDSEGC | LEDSEGD | LEDSEGF | LEDSEGG, +['A'] LEDSEGA | LEDSEGB | LEDSEGC | LEDSEGE | LEDSEGF | LEDSEGG, +['B'] LEDSEGC | LEDSEGD | LEDSEGE | LEDSEGF | LEDSEGG, +['C'] LEDSEGA | LEDSEGD | LEDSEGE | LEDSEGF, +['D'] LEDSEGB | LEDSEGC | LEDSEGD | LEDSEGE | LEDSEGG, +['E'] LEDSEGA | LEDSEGD | LEDSEGE | LEDSEGF | LEDSEGG, +['F'] LEDSEGA | LEDSEGE | LEDSEGF | LEDSEGG, +['H'] LEDSEGC | LEDSEGE | LEDSEGF | LEDSEGG, +['P'] LEDSEGA | LEDSEGB | LEDSEGE | LEDSEGF | LEDSEGG, +['R'] LEDSEGE | LEDSEGG, +['S'] LEDSEGA | LEDSEGC | LEDSEGD | LEDSEGF | LEDSEGG, +['T'] LEDSEGD | LEDSEGE | LEDSEGF | LEDSEGG, +['U'] LEDSEGB | LEDSEGC | LEDSEGD | LEDSEGE | LEDSEGF, +['~'] LEDSEGB | LEDSEGE | LEDSEGG, +}; + +void +setled7ascii(char c) +{ + if (c <= '~') + setled7(led7map[c]); +} + +void +trace(char c) +{ + int i; +// int x = splfhi(); + setled7ascii(c); + for (i = 0; i < 2000000; i++) + ; +// splx(x); +} + +void +ttrace() +{ + static char c = '6'; + + trace(c); + c = '6' + '7' -c; +} + +void +lights(ulong val) +{ + IOPDATA = (IOPDATA & (0x7ff << 4)) | ((val & 0x7ff) << 4); +} + +void +lcd_setbacklight(int) +{ +} + +void +lcd_setbrightness(ushort) +{ +} + +void +lcd_setcontrast(ushort) +{ +} + +void +archflashwp(int /*wp*/) +{ +} + +void +screenputs(char *, int) +{ +} + +void +cursorenable(void) +{ +} + +void +cursordisable(void) +{ +} |
