untrusted comment: verify with signify key from exoticsilicon.com
RWRn5d3Yx35u098lyidICo1h2w9KF3IZ7AMHhk8giRh9IJKvUKro+ChnnQdcwn9eyXuYSCJLccZex0peEWeMSSH6i3p8vcg7PgM=
--- dev/wscons/wsdisplayvar.h.dist Sun Sep 13 07:05:46 2020
+++ dev/wscons/wsdisplayvar.h Sat May 14 19:00:26 2022
@@ -99,6 +99,9 @@
#define WSATTR_BLINK 4
#define WSATTR_UNDERLINE 8
#define WSATTR_WSCOLORS 16
+#define WSATTR_DIM 32
+#define WSATTR_STRIKE 64
+#define WSATTR_DOUBLE_UNDERLINE 128
};
#define WSSCREEN_NAME_SIZE 16
--- dev/wscons/wsemul_vt100_subr.c.dist Mon May 25 06:55:49 2020
+++ dev/wscons/wsemul_vt100_subr.c Sat May 14 19:26:11 2022
@@ -549,6 +549,9 @@
case 1: /* bold */
flags |= WSATTR_HILIT;
break;
case 2: /* dim */
flags |= WSATTR_DIM;
break;
case 4: /* underline */
flags |= WSATTR_UNDERLINE;
break;
@@ -558,17 +561,30 @@
case 7: /* reverse */
flags |= WSATTR_REVERSE;
break;
case 9: /* strikethrough */
flags |= WSATTR_STRIKE;
break;
case 21: /* double underline */
flags |= WSATTR_DOUBLE_UNDERLINE;
break;
case 22: /* ~bold VT300 only */
flags &= ~WSATTR_HILIT;
/* Disable dim attribute as well */
flags &= ~WSATTR_DIM;
break;
case 24: /* ~underline VT300 only */
flags &= ~WSATTR_UNDERLINE;
/* Disable double underline attribute as well */
flags &= ~WSATTR_DOUBLE_UNDERLINE;
break;
case 25: /* ~blink VT300 only */
flags &= ~WSATTR_BLINK;
break;
case 27: /* ~reverse VT300 only */
flags &= ~WSATTR_REVERSE;
break;
case 29: /* no strikethrough */
flags &= ~WSATTR_STRIKE;
break;
case 30: case 31: case 32: case 33:
case 34: case 35: case 36: case 37:
--- dev/rasops/rasops.c.dist Wed Feb 2 17:58:47 2022
+++ dev/rasops/rasops.c Sat May 14 19:28:54 2022
@@ -36,6 +36,8 @@
#include <sys/time.h>
#include <sys/task.h>
+int exotic=0;
#include <dev/wscons/wsdisplayvar.h>
#include <dev/wscons/wsconsio.h>
#include <dev/wsfont/wsfont.h>
@@ -545,7 +547,7 @@
int
rasops_pack_cattr(void *cookie, int fg, int bg, int flg, uint32_t *attr)
{
#ifdef RASOPS_CLIPPING
fg &= 7;
@@ -568,6 +570,11 @@
if ((flg & WSATTR_HILIT) != 0)
fg += 8;
flg = ((flg & WSATTR_UNDERLINE) ? 1 : 0);
if (rasops_isgray[fg])
@@ -576,6 +583,10 @@
if (rasops_isgray[bg])
flg |= 4;
*attr = (bg << 16) | (fg << 24) | flg;
return (0);
}
@@ -879,6 +890,50 @@
else
ri->ri_devcmap[i] = c;
#else
+#define RED ((c & 0xff0000) >> 16)
+#define GREEN ((c & 0x00ff00) >> 8)
+#define BLUE (c & 0x0000ff)
+#define GREY ((int)(((GREEN0.7)+(RED0.2)+(BLUE*0.1))))
+switch (exotic) {
/* Reduce blue component */
#if defined (__amd64__) || defined (__i386__)
asm volatile ("shrb %%al;" : "+a" (c) : :);
#else
c=(c & 0xffff00) | ((c & 0xff)>>1);
#endif
break ;
/* Convert to green-scale */
c=(int)(((GREEN*0.7)+(RED*0.2)+(BLUE*0.1)))<<8;
break ;
/* Convert to amber-scale */
c=(GREY<<16)|(GREY<<8);
break ;
/* Convert to greyscale */
c=((GREY<<16) | (GREY<<8) | GREY);
break ;
/* Convert to pink-scale */
c=((GREY<<16) | ((GREY>>1)<<8) | (GREY>>1));
break ;
/* Convert to greyscale and reduce blue component */
c=((GREY<<16) | (GREY<<8) | (GREY>>1));
break ;
break;
+}
ri->ri_devcmap[i] = c;
#endif
}
@@ -908,6 +963,9 @@
int32_t *dp, clr;
ri = (struct rasops_info *)cookie;
#ifdef RASOPS_CLIPPING
if (row < 0) {
--- dev/rasops/rasops32.c.dist Wed Feb 2 17:59:00 2022
+++ dev/rasops/rasops32.c Sat May 14 19:40:06 2022
@@ -93,6 +93,12 @@
b = ri->ri_devcmap[(attr >> 16) & 0xf];
f = ri->ri_devcmap[(attr >> 24) & 0xf];
f=(f>>1) & 0x007F7F7F;
}
u.d[0][0] = b; u.d[0][1] = b;
u.d[1][0] = b; u.d[1][1] = f;
u.d[2][0] = f; u.d[2][1] = b;
@@ -202,12 +208,36 @@
}
}
/* Do underline a pixel at a time */
if ((attr & 1) != 0) {
rp -= step;
for (cnt = 0; cnt < width; cnt++)
((int *)rp)[cnt] = f;
}
rp-=step;
rp-=step;
for (cnt=0; cnt< width; cnt++)
((int *)rp)[cnt]=f;
/* Reset pointer to ensure that strikethough appears at a consistent height if combined with underlining */
rp+=step;
rp+=step;
}
/* Reset pointer to ensure that strikethough appears at a consistent height if combined with underlining */
if ((attr & 1)==1) {
rp+=step ;
}
rp -= (1+ri->ri_font->fontheight/2)*step;
for (cnt=0; cnt< width; cnt++)
((int *)rp)[cnt]=f;
}
return 0;
}
--- sys/sysctl.h.dist Mon May 17 14:54:31 2021
+++ sys/sysctl.h Sat May 14 19:58:54 2022
@@ -190,7 +190,8 @@
#define KERN_TIMEOUT_STATS 87 /* struct: timeout status and stats */
#define KERN_UTC_OFFSET 88 /* int: adjust RTC time to UTC */
#define KERN_VIDEO 89 /* struct: video properties */
-#define KERN_MAXID 90 /* number of valid kern ids */
+#define KERN_EXOTIC 90 /* alternative framebuffer colour pallette */
+#define KERN_MAXID 91 /* number of valid kern ids */
#define CTL_KERN_NAMES { \
{ 0, 0 }, \
@@ -283,6 +284,7 @@
{ "timeout_stats", CTLTYPE_STRUCT }, \
{ "utc_offset", CTLTYPE_INT }, \
{ "video", CTLTYPE_STRUCT }, \
}
/*
--- kern/kern_sysctl.c.dist Tue May 4 18:57:15 2021
+++ kern/kern_sysctl.c Tue May 10 22:56:17 2022
@@ -128,6 +128,8 @@
extern int audio_record_enable;
extern int video_record_enable;
+extern int exotic;
int allowkmem;
int sysctl_diskinit(int, struct proc *);
@@ -452,6 +454,10 @@
}
switch (name[0]) {
return (sysctl_int(oldp, oldlenp, newp, newlen, &exotic));
case KERN_OSTYPE:
return (sysctl_rdstring(oldp, oldlenp, newp, ostype));
case KERN_OSRELEASE:
text/plain
This content has been proxied by September (ba2dc).