Fancy video output with font.
This commit is contained in:
parent
200caa357b
commit
8db7e08965
4 changed files with 315 additions and 13 deletions
|
@ -51,9 +51,9 @@ video.ker: $(OBJS)
|
||||||
boot: image
|
boot: image
|
||||||
qemu-system-i386 \
|
qemu-system-i386 \
|
||||||
-fda boot.img \
|
-fda boot.img \
|
||||||
-m 64 \
|
-m 64
|
||||||
-d cpu_reset,int \
|
# -serial stdio
|
||||||
-serial stdio
|
# -d cpu_reset,int \
|
||||||
# -no-reboot \
|
# -no-reboot \
|
||||||
# -no-shutdown \
|
# -no-shutdown \
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -50,6 +50,105 @@ struct ModeInfoBlock {
|
||||||
uint16_t reserved2;
|
uint16_t reserved2;
|
||||||
} __attribute__((packed));
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
#include "pixelschrift.h"
|
||||||
|
|
||||||
|
static ModeInfoBlock mib;
|
||||||
|
|
||||||
|
static void setpixel(int x, int y, uint32_t color)
|
||||||
|
{
|
||||||
|
uint8_t *fb = (uint8_t*)mib.physbase;
|
||||||
|
|
||||||
|
fb[mib.pitch * y + 4 * x + 2] = (color >> 0) & 0xFF;
|
||||||
|
fb[mib.pitch * y + 4 * x + 1] = (color >> 8) & 0xFF;
|
||||||
|
fb[mib.pitch * y + 4 * x + 0] = (color >> 16) & 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char getDigit(uint32_t i)
|
||||||
|
{
|
||||||
|
if(i >= 0 && i <= 9) {
|
||||||
|
return '0' + i;
|
||||||
|
}
|
||||||
|
return 'A' + (i-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void print_str(int x, int y, const char *text)
|
||||||
|
{
|
||||||
|
const unsigned char *base = &MagickImage[10]; // HACKS!
|
||||||
|
int cx = x;
|
||||||
|
int cy = y;
|
||||||
|
while(*text)
|
||||||
|
{
|
||||||
|
char c = *text++;
|
||||||
|
|
||||||
|
int gx = c % 32;
|
||||||
|
int gy = 8 * (c / 32);
|
||||||
|
|
||||||
|
for(int py = 0; py < 8; py++)
|
||||||
|
{
|
||||||
|
unsigned char row = base[32 * (gy+py) + gx];
|
||||||
|
for(int px = 0; px < 8; px++)
|
||||||
|
{
|
||||||
|
if((row & (1<<px)) == 0)
|
||||||
|
continue;
|
||||||
|
setpixel(cx + 6 - px, cy + py, 0xFFFFFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cx += 6;
|
||||||
|
cy += 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t toString(
|
||||||
|
char *buffer,
|
||||||
|
size_t length,
|
||||||
|
uint32_t number,
|
||||||
|
uint32_t radix)
|
||||||
|
{
|
||||||
|
if(length == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(number == 0) {
|
||||||
|
buffer[0] = '0';
|
||||||
|
buffer[1] = '\0';
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t len = 0;
|
||||||
|
while(number > 0)
|
||||||
|
{
|
||||||
|
buffer[len++] = getDigit(number % radix);
|
||||||
|
if(len >= length)
|
||||||
|
break;
|
||||||
|
number /= radix;
|
||||||
|
}
|
||||||
|
|
||||||
|
int half = len / 2;
|
||||||
|
for(int i = 0; i < half; i++)
|
||||||
|
{
|
||||||
|
char c = buffer[i];
|
||||||
|
buffer[i] = buffer[len - i - 1];
|
||||||
|
buffer[len - i - 1] = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
buffer[len] = 0;
|
||||||
|
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
void strcpy(char *dst, const char *src)
|
||||||
|
{
|
||||||
|
while((*dst++ = *src++));
|
||||||
|
}
|
||||||
|
|
||||||
|
void strcat(char *buffer, const char *text)
|
||||||
|
{
|
||||||
|
while(*buffer++); // scroll to buffer end
|
||||||
|
buffer--;
|
||||||
|
while((*(buffer++) = *text++)); // copy text
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" void init(multiboot_info_t const & data)
|
extern "C" void init(multiboot_info_t const & data)
|
||||||
{
|
{
|
||||||
const char *msg = "You should not see this.";
|
const char *msg = "You should not see this.";
|
||||||
|
@ -58,21 +157,17 @@ extern "C" void init(multiboot_info_t const & data)
|
||||||
*(video++) = *msg++ | 0x0700;
|
*(video++) = *msg++ | 0x0700;
|
||||||
}
|
}
|
||||||
|
|
||||||
ModeInfoBlock *modeInfo = (ModeInfoBlock*)data.vbe_mode_info;
|
mib = *(ModeInfoBlock*)data.vbe_mode_info;
|
||||||
|
|
||||||
uint8_t *fb = (uint8_t*)modeInfo->physbase;
|
for(int y = 0; y < mib.Yres; y++)
|
||||||
|
|
||||||
for(int y = 0; y < modeInfo->Yres; y++)
|
|
||||||
{
|
{
|
||||||
for(int x = 0; x < modeInfo->Xres; x++)
|
for(int x = 0; x < mib.Xres; x++)
|
||||||
{
|
{
|
||||||
uint32_t r = (x * 384 / modeInfo->Xres);
|
uint32_t r = x % 256;
|
||||||
uint32_t g = (y * 384 / modeInfo->Yres);
|
uint32_t g = y % 256;
|
||||||
uint32_t b = 0x00;
|
uint32_t b = 0x00;
|
||||||
|
|
||||||
fb[modeInfo->pitch * y + 4 * x + 2] = r;
|
setpixel(x, y, r | (g << 8) | (b << 16));
|
||||||
fb[modeInfo->pitch * y + 4 * x + 1] = g;
|
|
||||||
fb[modeInfo->pitch * y + 4 * x + 0] = b;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,5 +175,33 @@ extern "C" void init(multiboot_info_t const & data)
|
||||||
write_com(0x3F8, 'i');
|
write_com(0x3F8, 'i');
|
||||||
write_com(0x3F8, '\n');
|
write_com(0x3F8, '\n');
|
||||||
|
|
||||||
|
const char *str = (const char*)MagickImage;
|
||||||
|
while(*str) {
|
||||||
|
write_com(0x3F8, *str++);
|
||||||
|
}
|
||||||
|
write_com(0x3F8, '\n');
|
||||||
|
|
||||||
|
print_str(16, 16, "Hello World!");
|
||||||
|
|
||||||
|
char buffer[256];
|
||||||
|
char temp[128];
|
||||||
|
strcpy(buffer, "X: ");
|
||||||
|
toString(temp, 128, mib.Xres, 10); strcat(buffer, temp);
|
||||||
|
strcat(buffer, " Y: ");
|
||||||
|
toString(temp, 128, mib.Yres, 10); strcat(buffer, temp);
|
||||||
|
print_str(16, 24, buffer);
|
||||||
|
|
||||||
|
strcpy(buffer, "Pitch: ");
|
||||||
|
toString(temp, 128, mib.pitch, 10); strcat(buffer, temp);
|
||||||
|
strcat(buffer, " / ");
|
||||||
|
toString(temp, 128, mib.pitch / 4, 10); strcat(buffer, temp);
|
||||||
|
print_str(16, 32, buffer);
|
||||||
|
|
||||||
|
write_com(0x3F8, 'B');
|
||||||
|
write_com(0x3F8, 'y');
|
||||||
|
write_com(0x3F8, 'e');
|
||||||
|
write_com(0x3F8, '\n');
|
||||||
|
|
||||||
|
|
||||||
while(true);
|
while(true);
|
||||||
}
|
}
|
||||||
|
|
179
prototypes/video/pixelschrift.h
Normal file
179
prototypes/video/pixelschrift.h
Normal file
|
@ -0,0 +1,179 @@
|
||||||
|
/*
|
||||||
|
pixelschrift.h (PNM).
|
||||||
|
*/
|
||||||
|
static unsigned char
|
||||||
|
MagickImage[] =
|
||||||
|
{
|
||||||
|
0x50, 0x34, 0x0A, 0x32, 0x35, 0x36, 0x20, 0x36, 0x34, 0x0A, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x20, 0x50, 0x50, 0x20, 0xC0, 0x40, 0x20, 0x10, 0x40,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x70, 0x20, 0x70, 0x70, 0x88, 0xF8,
|
||||||
|
0x70, 0xF8, 0x70, 0x70, 0x00, 0x00, 0x10, 0x00, 0x40, 0x70, 0x00, 0x20,
|
||||||
|
0x50, 0x50, 0x70, 0xC8, 0xA0, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x10, 0x88, 0x60, 0x88, 0x88, 0x88, 0x80, 0x88, 0x08, 0x88, 0x88,
|
||||||
|
0x30, 0x30, 0x20, 0x00, 0x20, 0x88, 0x00, 0x20, 0x00, 0xF8, 0xA0, 0x10,
|
||||||
|
0xA0, 0x00, 0x40, 0x10, 0x50, 0x20, 0x00, 0x00, 0x00, 0x20, 0x98, 0x20,
|
||||||
|
0x08, 0x08, 0x88, 0x80, 0x80, 0x10, 0x88, 0x88, 0x30, 0x30, 0x40, 0x70,
|
||||||
|
0x10, 0x08, 0x00, 0x20, 0x00, 0x50, 0x70, 0x20, 0x40, 0x00, 0x40, 0x10,
|
||||||
|
0x20, 0x70, 0x00, 0x70, 0x00, 0x20, 0xA8, 0x20, 0x10, 0x30, 0xF8, 0xF0,
|
||||||
|
0xF0, 0x20, 0x70, 0x78, 0x00, 0x00, 0x80, 0x00, 0x08, 0x10, 0x00, 0x00,
|
||||||
|
0x00, 0xF8, 0x28, 0x40, 0xA8, 0x00, 0x40, 0x10, 0x50, 0x20, 0x00, 0x00,
|
||||||
|
0x00, 0x20, 0xC8, 0x20, 0x20, 0x08, 0x08, 0x08, 0x88, 0x40, 0x88, 0x08,
|
||||||
|
0x00, 0x00, 0x40, 0x70, 0x10, 0x20, 0x00, 0x20, 0x00, 0x50, 0x70, 0x98,
|
||||||
|
0x90, 0x00, 0x20, 0x20, 0x00, 0x00, 0x30, 0x00, 0x30, 0x40, 0x88, 0x20,
|
||||||
|
0x40, 0x88, 0x08, 0x08, 0x88, 0x40, 0x88, 0x88, 0x30, 0x30, 0x20, 0x00,
|
||||||
|
0x20, 0x00, 0x00, 0x20, 0x00, 0x50, 0x20, 0x18, 0x68, 0x00, 0x10, 0x40,
|
||||||
|
0x00, 0x00, 0x10, 0x00, 0x30, 0x40, 0x70, 0x70, 0xF8, 0x70, 0x08, 0xF0,
|
||||||
|
0x70, 0x40, 0x70, 0x70, 0x30, 0x10, 0x10, 0x00, 0x40, 0x20, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0xF0, 0x70, 0xF0, 0xF8,
|
||||||
|
0xF8, 0x70, 0x88, 0x70, 0x38, 0x88, 0x80, 0x88, 0x88, 0x70, 0xF0, 0x70,
|
||||||
|
0xF0, 0x78, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF8, 0x30, 0x40, 0x30,
|
||||||
|
0x20, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x80, 0x88, 0x88, 0x20,
|
||||||
|
0x08, 0x90, 0x80, 0xD8, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x20, 0x88,
|
||||||
|
0x88, 0x88, 0x88, 0x88, 0x08, 0x20, 0x40, 0x10, 0x50, 0x00, 0xA8, 0x88,
|
||||||
|
0x88, 0x80, 0x88, 0x80, 0x80, 0x80, 0x88, 0x20, 0x08, 0xA0, 0x80, 0xA8,
|
||||||
|
0xC8, 0x88, 0x88, 0x88, 0x88, 0x80, 0x20, 0x88, 0x88, 0x88, 0x50, 0x88,
|
||||||
|
0x10, 0x20, 0x20, 0x10, 0x00, 0x00, 0xB8, 0xF8, 0xF0, 0x80, 0x88, 0xF0,
|
||||||
|
0xF0, 0x80, 0xF8, 0x20, 0x08, 0xC0, 0x80, 0xA8, 0xA8, 0x88, 0xF0, 0x88,
|
||||||
|
0xF0, 0x70, 0x20, 0x88, 0x50, 0x88, 0x20, 0x50, 0x20, 0x20, 0x20, 0x10,
|
||||||
|
0x00, 0x00, 0xA0, 0x88, 0x88, 0x80, 0x88, 0x80, 0x80, 0x98, 0x88, 0x20,
|
||||||
|
0x88, 0xA0, 0x80, 0x88, 0x98, 0x88, 0x80, 0xA8, 0xA0, 0x08, 0x20, 0x88,
|
||||||
|
0x50, 0xA8, 0x50, 0x20, 0x40, 0x20, 0x20, 0x10, 0x00, 0x00, 0x88, 0x88,
|
||||||
|
0x88, 0x88, 0x88, 0x80, 0x80, 0x88, 0x88, 0x20, 0x88, 0x90, 0x80, 0x88,
|
||||||
|
0x88, 0x88, 0x80, 0x90, 0x90, 0x08, 0x20, 0x88, 0x20, 0xA8, 0x88, 0x20,
|
||||||
|
0x80, 0x20, 0x10, 0x10, 0x00, 0x00, 0x70, 0x88, 0xF0, 0x70, 0xF0, 0xF8,
|
||||||
|
0x80, 0x78, 0x88, 0x70, 0x70, 0x88, 0xF8, 0x88, 0x88, 0x70, 0x80, 0x68,
|
||||||
|
0x88, 0xF0, 0x20, 0x70, 0x20, 0x50, 0x88, 0x20, 0xF8, 0x30, 0x10, 0x30,
|
||||||
|
0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
|
||||||
|
0x80, 0x00, 0x08, 0x00, 0x30, 0x00, 0x80, 0x00, 0x00, 0x80, 0x60, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x18, 0x20, 0xC0, 0x00, 0xA8, 0x10, 0x70, 0x80, 0x00, 0x08, 0x00,
|
||||||
|
0x48, 0x00, 0x80, 0x20, 0x20, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20,
|
||||||
|
0x00, 0x50, 0x00, 0x08, 0xB0, 0x70, 0x68, 0x70, 0x40, 0x70, 0x80, 0x00,
|
||||||
|
0x00, 0x90, 0x20, 0x50, 0xB0, 0x70, 0xF0, 0x78, 0xB0, 0x78, 0xE0, 0x88,
|
||||||
|
0x88, 0x88, 0x88, 0x88, 0xF8, 0x20, 0x20, 0x20, 0x00, 0xA8, 0x00, 0x78,
|
||||||
|
0xC8, 0x80, 0x98, 0x88, 0xE0, 0x88, 0xB0, 0x20, 0x20, 0xA0, 0x20, 0xA8,
|
||||||
|
0xC8, 0x88, 0x88, 0x88, 0xC8, 0x80, 0x40, 0x88, 0x88, 0x88, 0x50, 0x88,
|
||||||
|
0x10, 0x40, 0x20, 0x10, 0x50, 0x50, 0x00, 0x88, 0x88, 0x80, 0x88, 0xF8,
|
||||||
|
0x40, 0x88, 0xC8, 0x20, 0x20, 0xC0, 0x20, 0xA8, 0x88, 0x88, 0x88, 0x88,
|
||||||
|
0x80, 0x70, 0x40, 0x88, 0x50, 0xA8, 0x20, 0x88, 0x20, 0x20, 0x20, 0x20,
|
||||||
|
0xA0, 0xA8, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x40, 0x78, 0x88, 0x20,
|
||||||
|
0x20, 0xA0, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x08, 0x40, 0x88,
|
||||||
|
0x50, 0xA8, 0x50, 0x78, 0x40, 0x20, 0x20, 0x20, 0x00, 0x50, 0x00, 0x78,
|
||||||
|
0xF0, 0x70, 0x78, 0x70, 0x40, 0x08, 0x88, 0x20, 0x20, 0x90, 0x70, 0x88,
|
||||||
|
0x88, 0x70, 0xF0, 0x78, 0x80, 0xF0, 0x30, 0x70, 0x20, 0x50, 0x88, 0x08,
|
||||||
|
0xF8, 0x18, 0x20, 0xC0, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xF0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
Loading…
Reference in a new issue