graphics: fixed pixels not plotting on non crt_color

This commit is contained in:
minjaesong
2021-04-27 16:02:30 +09:00
parent e031f0d256
commit eb58838a57
11 changed files with 85 additions and 60 deletions

View File

@@ -1,37 +1,26 @@
con.curs_set(0)
con.clear()
let t=`${system.maxmem()>>>10} Kbytes System`
// 0b_HL where H is top pixel
// H-bits
let imgh = [
[252,0,3,0,0],
[48,0,3,0,0],
[51,239,191,102,255],
[51,237,191,66,219],
[52,45,161,126,219],
[54,109,179,124,219]];
// L-bits
let imgl = [
[252,0,3,0,0],
[51,207,31,60,254],
[48,109,191,66,219],
[54,109,179,102,219],
[52,45,161,96,219],
[51,237,159,60,219]];
let imgc = [32,220,223,219]
for (let y=0;y<imgh.length;y++) {
for (let x=0;x<imgh[0].length;x++) {
for (let b=7;b>=0;b--) {
con.mvaddch(y+1,1+x*8+7-b,imgc[(imgh[y][x]>>b&1)<<1|imgl[y][x]>>b&1])
}}}
let imageBits = gzip.decomp(base64.atob(
"H4sICC62h2ACA3RhbmRlbV9sb2dvXzI0MC5iaW4AhdQ/bsMgGAXwh4hEhyisHSq5R+iYISpX6REydqhkjsZRfASPDJbJ449jQuxUspDsn2XD+z6wAMSIPjiECQOgAwcoIMwQNuoAQ+2TilZlrehbdeioJqspypeTqgfttrXLqhvVljO9qypq/IPqrLLRblcZQQi8oyqqClZwiI+6cdHPVYcdlUnHVmdc5aooypVV+iaS+lYnXMUr9dQjkk6LMsEt/YkRcKL8WlQPj+BO+NtW/vFZpc06Ununcan1S9r3rHL+X+3HgwpkHaim1bPglVSFqFzTpsZeWzWncUZRd+DLTg+HOskL8Jv1+ErtiZk7PaKu4I6W6n8jph+1S+pRd85dOX/Wq6h9UmOjTqg71kAsykD2dI4qnZ5R75RVexbirmWXGSuTTlGF0wH1Dt1R02pg81BtfTIYp5L6qFh0OVWe1NUnUtIb4Dr/QbAEAAA="
))
for (let y = 0; y < 40; y++) {
for (let x = 0; x < 30; x++) {
let octet = imageBits[y * 30 + x]
for (let i = 0; i < 8; i++) {
graphics.plotPixel(8*x + i, y+8, ((octet >>> (7 - i)) & 1 != 0) ? 255 : 239)
}
}
}
con.move(8,1+(40-t.length>>1))
print(t)
// wait arbitrary time
for (let b=0;b<333333;b++) {
for (let b=0;b<system.maxmem()*10;b++) {
sys.poke(0,(Math.random()*255)|0)
sys.poke(0,0)
}
con.clear();
con.clear()
graphics.clearPixels(255)
///////////////////////////////////////////////////////////////////////////////

44
assets/bw_r8_to_bits.c Normal file
View File

@@ -0,0 +1,44 @@
#include <stdio.h>
#include <stdint.h>
#include <string.h>
char word_to_byte(char * inbuf) {
return
((*(inbuf + 0) & 1) << 7) |
((*(inbuf + 1) & 1) << 6) |
((*(inbuf + 2) & 1) << 5) |
((*(inbuf + 3) & 1) << 4) |
((*(inbuf + 4) & 1) << 3) |
((*(inbuf + 5) & 1) << 2) |
((*(inbuf + 6) & 1) << 1) |
((*(inbuf + 7) & 1) << 0);
}
int main(int argc, char const *argv[]) {
FILE * infile;
FILE * outfile;
char word[8];
infile = fopen(argv[1], "r");
outfile = fopen(argv[2], "w");
int exit = -1;
while (exit < 0) {
for (int i = 0; i < 8; i++) {
int b = fgetc(infile);
if (b == -1 && exit < 0) exit = i;
word[i] = (char) b;
}
if (exit == 0) break; // if the first byte is EOF, do not write out
fputc(word_to_byte(word), outfile);
}
fflush(outfile);
fclose(infile);
fclose(outfile);
return 0;
}

View File

@@ -1,19 +1,15 @@
var imageBits = gzip.decomp(base64.atob(
"H4sICPx7h2ACA3RhbmRlbV9sb2dvXzI0MC5iaW4A7dQ/boMwFAbwz3Ikd4jitUMleoSOGaL6Kj1Cxg6V8NF8FI7AyIBwPv8hOA6kW6Y8IST4WWC/92zvX/GMsABEj9Y7+BEdoD1vUICfIKJ2MNQ2qqhVlop2XU1Sk5WDoyqHZtFmXZukulJtOdOrqqxmuFGdVFbabCpT4D2fqIqqvBW8hVdNP+vnot2Gyqh9rRPOclFk5coKfRNRh1pHnMUjHah7RB1nZQbX9CekgBPl14IOGODdAX/ryj/eq7RJe2rrNE6lfkn7nlRO/6v9uFGBpB3V1HoUvKIqH5RrWtXQa4umbByR1e042OluV2byBPwm3T9Se2DOne5RVnBDc/W/EbIftIk6oOycq3L+rFdWe6fGBh1RdqyBmJUJ2dIpqHR6QrlTFm1ZiKvmXWasjDoGFU57lDt0Q02tns1DteXJYJyKOgTFrPOpcqeuPJGSvuIpcQH1GZbNgAcAAA=="
));
for (let y = 0; y < 64; y++) {
con.curs_set(0)
con.clear()
let t=`${system.maxmem()>>>10} Kbytes System`
let imageBits = gzip.decomp(base64.atob(
"H4sICC62h2ACA3RhbmRlbV9sb2dvXzI0MC5iaW4AhdQ/bsMgGAXwh4hEhyisHSq5R+iYISpX6REydqhkjsZRfASPDJbJ449jQuxUspDsn2XD+z6wAMSIPjiECQOgAwcoIMwQNuoAQ+2TilZlrehbdeioJqspypeTqgfttrXLqhvVljO9qypq/IPqrLLRblcZQQi8oyqqClZwiI+6cdHPVYcdlUnHVmdc5aooypVV+iaS+lYnXMUr9dQjkk6LMsEt/YkRcKL8WlQPj+BO+NtW/vFZpc06Ununcan1S9r3rHL+X+3HgwpkHaim1bPglVSFqFzTpsZeWzWncUZRd+DLTg+HOskL8Jv1+ErtiZk7PaKu4I6W6n8jph+1S+pRd85dOX/Wq6h9UmOjTqg71kAsykD2dI4qnZ5R75RVexbirmWXGSuTTlGF0wH1Dt1R02pg81BtfTIYp5L6qFh0OVWe1NUnUtIb4Dr/QbAEAAA="
))
for (let y = 0; y < 40; y++) {
for (let x = 0; x < 30; x++) {
let word = imageBits[y * 30 + x];
let octet = imageBits[y * 30 + x]
for (let i = 0; i < 8; i++) {
graphics.plotPixel(8*x + i, y, ((word >>> (7 - i)) & 1 != 0) ? 255 : 239);
graphics.plotPixel(8*x + i, y+8, ((octet >>> (7 - i)) & 1 != 0) ? 255 : 239)
}
}
}
// wait arbitrary time
for (let b=0;b<333333;b++) {
sys.poke(0,(Math.random()*255)|0);
sys.poke(0,0);
}
con.clear();
graphics.clearPixels(255);
con.move(8,1)

BIN
assets/tandem_logo_240.bin.gz LFS Normal file

Binary file not shown.

View File

@@ -0,0 +1 @@
H4sICC62h2ACA3RhbmRlbV9sb2dvXzI0MC5iaW4AhdQ/bsMgGAXwh4hEhyisHSq5R+iYISpX6REydqhkjsZRfASPDJbJ449jQuxUspDsn2XD+z6wAMSIPjiECQOgAwcoIMwQNuoAQ+2TilZlrehbdeioJqspypeTqgfttrXLqhvVljO9qypq/IPqrLLRblcZQQi8oyqqClZwiI+6cdHPVYcdlUnHVmdc5aooypVV+iaS+lYnXMUr9dQjkk6LMsEt/YkRcKL8WlQPj+BO+NtW/vFZpc06Ununcan1S9r3rHL+X+3HgwpkHaim1bPglVSFqFzTpsZeWzWncUZRd+DLTg+HOskL8Jv1+ErtiZk7PaKu4I6W6n8jph+1S+pRd85dOX/Wq6h9UmOjTqg71kAsykD2dI4qnZ5R75RVexbirmWXGSuTTlGF0wH1Dt1R02pg81BtfTIYp5L6qFh0OVWe1NUnUtIb4Dr/QbAEAAA=

BIN
assets/tandem_logo_240.kra LFS Normal file

Binary file not shown.

BIN
assets/tandem_logo_240.r8 Normal file

Binary file not shown.