mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-12-22 12:30:01 +00:00
better video recording (rotate, copy frames); preset updates
This commit is contained in:
parent
56677a25e9
commit
c787cc40a8
2
gif.js
2
gif.js
@ -1 +1 @@
|
||||
Subproject commit 55bdbfea897753787fd2f4efc62f144371351522
|
||||
Subproject commit 082076d81c4ef2a34d77feb47d2f9b5d7c92c2ef
|
@ -125,6 +125,15 @@ body {
|
||||
<iframe id="pixeditframe" src="pixels.html">
|
||||
</iframe>
|
||||
</div>
|
||||
<div id="pleaseWaitModal" class="modal fade">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
Please wait...
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="videoPreviewModal" class="modal fade">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
|
@ -47,7 +47,7 @@ if (window.self === window.top) {
|
||||
var palette = [0xff000000, 0xffffffff];
|
||||
*/
|
||||
var paldatastr = " 0x00, 0x03, 0x19, 0x50, 0x52, 0x07, 0x1f, 0x37, 0xe0, 0xa4, 0xfd, 0xff, 0x38, 0x70, 0x7f, 0xf8, ";
|
||||
var fmt = {w:14,h:16,bpp:4,brev:1};
|
||||
var fmt = {w:14,h:16,bpp:4,brev:1,count:2};
|
||||
//fmt = {w:14,h:8,bpp:4,brev:1,count:2};
|
||||
var datastr = "0x00,0x00,0xef,0xef,0xe0,0x00,0x00, 0x00,0xee,0xee,0xfe,0xee,0xe0,0x00, 0x0e,0xed,0xef,0xef,0xed,0xee,0x00, 0x0e,0xee,0xdd,0xdd,0xde,0xee,0x00, 0x0e,0xee,0xed,0xde,0xee,0xee,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0x00,0xed,0xdd,0xe0,0x00,0x0d, 0xdd,0xdd,0xee,0xee,0xed,0xdd,0xd0, 0x0d,0xee,0xee,0xee,0xee,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xdd,0xdd,0xd0,0xde,0x00, 0x0d,0x00,0xee,0x0e,0xe0,0x0d,0x00, 0x00,0x00,0xed,0x0e,0xe0,0x00,0x00, 0x00,0x0d,0xdd,0x0d,0xdd,0x00,0x18,";
|
||||
/*
|
||||
|
@ -1,8 +1,9 @@
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
const uint8_t sprite[0x1][0x20] = {/*{w:16,h:16,remap:[4,0,1,2,3],brev:1}*/
|
||||
{0xa0, 0x40, 0xa0, 0x10, 0xa, 0x4, 0xa, 0x0, 0x0, 0xa, 0x4, 0xa, 0x10, 0xa0, 0x40, 0xa0, 0x5, 0x2, 0x5, 0x8, 0x50, 0x20, 0x50, 0x0, 0x0, 0x50, 0x20, 0x50, 0x8, 0x5, 0x2, 0x5}
|
||||
{0xE0, 0xC0, 0xA0, 0x10, 0x0A, 0x04, 0x0B, 0x03, 0x03, 0x0B, 0x04, 0x0A, 0x10, 0xA0, 0xC0, 0xE0, 0x07, 0x03, 0x05, 0x08, 0x50, 0x20, 0xD0, 0xC0, 0xC0, 0xD0, 0x20, 0x50, 0x08, 0x05, 0x03, 0x07}
|
||||
};
|
||||
|
||||
#include "cv.h"
|
||||
@ -24,77 +25,100 @@ volatile bool step; // Has to be volatile since it's modified in the NMI handler
|
||||
|
||||
void move_cursor(struct cvu_sprite *s)
|
||||
{
|
||||
int x, y;
|
||||
struct cv_controller_state cs;
|
||||
int x, y;
|
||||
struct cv_controller_state cs;
|
||||
|
||||
cv_get_controller_state(&cs, 0); // Read the controller.
|
||||
|
||||
x = cvu_get_sprite_x(s);
|
||||
y = cvu_get_sprite_y(s);
|
||||
cv_get_controller_state(&cs, 0); // Read the controller.
|
||||
|
||||
if(cs.joystick & CV_RIGHT) // Move cursor to the right by one pixel.
|
||||
x++;
|
||||
else if(cs.joystick & CV_LEFT) // Move the cursor to the left by one pixel.
|
||||
x--;
|
||||
if(cs.joystick & CV_DOWN) // Move the cursor down by one pixel.
|
||||
y++;
|
||||
else if(cs.joystick & CV_UP) // Move the cursor up by one pixel.
|
||||
y--;
|
||||
x = cvu_get_sprite_x(s);
|
||||
y = cvu_get_sprite_y(s);
|
||||
|
||||
// Move cursor by how much the wheels on the super action controllers or the ball in the roller controller indicate.
|
||||
x += cvu_get_spinner(0);
|
||||
y += cvu_get_spinner(1);
|
||||
if(cs.joystick & CV_RIGHT) // Move cursor to the right by one pixel.
|
||||
x++;
|
||||
else if(cs.joystick & CV_LEFT) // Move the cursor to the left by one pixel.
|
||||
x--;
|
||||
if(cs.joystick & CV_DOWN) // Move the cursor down by one pixel.
|
||||
y++;
|
||||
else if(cs.joystick & CV_UP) // Move the cursor up by one pixel.
|
||||
y--;
|
||||
|
||||
// Limit to area.
|
||||
if(x > 239)
|
||||
x = 239;
|
||||
else if(x < 0)
|
||||
x = 0;
|
||||
if(y > 152)
|
||||
y = 152;
|
||||
else if(y < 0)
|
||||
y = 0;
|
||||
// Move cursor by how much the wheels on the super action controllers or the ball in the roller controller indicate.
|
||||
x += cvu_get_spinner(0);
|
||||
y += cvu_get_spinner(1);
|
||||
|
||||
cvu_set_sprite_xy(s, x, y);
|
||||
// Limit to area.
|
||||
if(x > 239)
|
||||
x = 239;
|
||||
else if(x < 0)
|
||||
x = 0;
|
||||
if(y > 152)
|
||||
y = 152;
|
||||
else if(y < 0)
|
||||
y = 0;
|
||||
|
||||
cvu_set_sprite(SPRITES, 0, s); // Update the cursor on the screen.
|
||||
cvu_set_sprite_xy(s, x, y);
|
||||
}
|
||||
|
||||
void nmi(void)
|
||||
{
|
||||
step = true;
|
||||
cv_set_colors(0, CV_COLOR_YELLOW);
|
||||
}
|
||||
|
||||
void waitvblank() {
|
||||
step = false;
|
||||
while(!step); // Wait until the NMI handler sets step to true.
|
||||
cv_set_colors(0, CV_COLOR_RED);
|
||||
}
|
||||
|
||||
void shuffle_sprites(struct cvu_sprite* s) {
|
||||
int i;
|
||||
for (i=1; i<32; i++) {
|
||||
s->x = i*16;
|
||||
s->y = i*8;
|
||||
cvu_set_sprite(SPRITES, i, s); // Update the cursor on the screen.
|
||||
}
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
struct cvu_sprite s; // The sprite used for the cursor.
|
||||
|
||||
cv_set_screen_active(false); // Switch screen off.
|
||||
|
||||
cv_set_color_table(0x3fff);
|
||||
cv_set_character_pattern_t(0x1fff);
|
||||
cv_set_image_table(IMAGE);
|
||||
cv_set_sprite_pattern_table(SPRITE_PATTERNS);
|
||||
cv_set_sprite_attribute_table(SPRITES);
|
||||
cv_set_screen_mode(CV_SCREENMODE_BITMAP); // Doesn't really matter much here. We only need a screen mode that supports sprites.
|
||||
cvu_vmemset(0x2000, (CV_COLOR_BLACK << 4) | CV_COLOR_BLACK, 6144); // Set both colors for all characters to black to get a black background.
|
||||
|
||||
cv_set_sprite_magnification(false);
|
||||
cv_set_sprite_big(true); // 16x16 pixel sprites.
|
||||
|
||||
cvu_set_sprite_x(&s, 60); // Set initial cursor position.
|
||||
cvu_set_sprite_y(&s, 60); // Set initial cursor position.
|
||||
cvu_set_sprite_color(&s, CV_COLOR_WHITE);
|
||||
s.name = 0; // Use sprite pattern number 0.
|
||||
cvu_memtovmemcpy(SPRITE_PATTERNS, sprite, 0x20); // Copy sprite pattern number 0 to graphics memory.
|
||||
|
||||
cv_set_screen_active(true); // Switch screen on.
|
||||
|
||||
cv_set_vint_handler(nmi);
|
||||
for(;;)
|
||||
{
|
||||
step = false;
|
||||
while(!step); // Wait until the NMI handler sets step to true.
|
||||
move_cursor(&s);
|
||||
}
|
||||
struct cvu_sprite s; // The sprite used for the player cursor.
|
||||
struct cvu_sprite s2; // The sprite used for the target cursor.
|
||||
|
||||
cv_set_screen_active(false); // Switch screen off.
|
||||
|
||||
cv_set_color_table(0x3fff);
|
||||
cv_set_character_pattern_t(0x1fff);
|
||||
cv_set_image_table(IMAGE);
|
||||
cv_set_sprite_pattern_table(SPRITE_PATTERNS);
|
||||
cv_set_sprite_attribute_table(SPRITES);
|
||||
cv_set_screen_mode(CV_SCREENMODE_BITMAP); // Doesn't really matter much here. We only need a screen mode that supports sprites.
|
||||
cvu_vmemset(0, 0, 0x4000);
|
||||
|
||||
cv_set_sprite_magnification(false);
|
||||
cv_set_sprite_big(true); // 16x16 pixel sprites.
|
||||
|
||||
cvu_set_sprite_x(&s, 60); // Set initial cursor position.
|
||||
cvu_set_sprite_y(&s, 60); // Set initial cursor position.
|
||||
cvu_set_sprite_color(&s, CV_COLOR_WHITE);
|
||||
cvu_set_sprite_color(&s2, CV_COLOR_GREEN);
|
||||
s.name = 0; // Use sprite pattern number 0.
|
||||
s2.name = 0;
|
||||
cvu_memtovmemcpy(SPRITE_PATTERNS, sprite, 0x20); // Copy sprite pattern number 0 to graphics memory.
|
||||
|
||||
cv_set_screen_active(true); // Switch screen on.
|
||||
|
||||
shuffle_sprites(&s2);
|
||||
|
||||
cv_set_vint_handler(nmi);
|
||||
for(;;)
|
||||
{
|
||||
cv_set_colors(0, 0);
|
||||
waitvblank();
|
||||
cv_set_colors(0, CV_COLOR_LIGHT_GREEN);
|
||||
cvu_set_sprite_color(&s, cv_get_sprite_collission() ?
|
||||
CV_COLOR_RED : CV_COLOR_WHITE);
|
||||
move_cursor(&s);
|
||||
cvu_set_sprite(SPRITES, 0, &s); // Update the cursor on the screen.
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ void setup_mode2() {
|
||||
cv_set_screen_mode(CV_SCREENMODE_BITMAP); // mode 2
|
||||
cv_set_image_table(IMAGE);
|
||||
cv_set_character_pattern_t(PATTERN|0x1fff); // AND mask
|
||||
cv_set_color_table(COLOR|0xfff); // AND mask
|
||||
cv_set_color_table(COLOR|0x1fff); // AND mask
|
||||
cv_set_sprite_attribute_table(0x2800);
|
||||
{
|
||||
byte i=0;
|
||||
@ -48,47 +48,26 @@ void set_pixel(byte x, byte y, byte color) {
|
||||
}
|
||||
}
|
||||
|
||||
void draw_line(int x0, int y0, int x1, int y1, byte color)
|
||||
{
|
||||
int dx, dy, p, x, y;
|
||||
dx=x1-x0;
|
||||
dy=y1-y0;
|
||||
x=x0;
|
||||
y=y0;
|
||||
p=2*dy-dx;
|
||||
while(x<x1)
|
||||
{
|
||||
if(p>=0)
|
||||
{
|
||||
set_pixel(x,y,color);
|
||||
y=y+1;
|
||||
p=p+2*dy-2*dx;
|
||||
}
|
||||
else
|
||||
{
|
||||
set_pixel(x,y,color);
|
||||
p=p+2*dy;
|
||||
}
|
||||
x=x+1;
|
||||
}
|
||||
void draw_line(int x0, int y0, int x1, int y1, byte color) {
|
||||
int dx = abs(x1-x0);
|
||||
int sx = x0<x1 ? 1 : -1;
|
||||
int dy = abs(y1-y0);
|
||||
int sy = y0<y1 ? 1 : -1;
|
||||
int err = (dx>dy ? dx : -dy)>>1;
|
||||
int e2;
|
||||
for(;;) {
|
||||
set_pixel(x0, y0, color);
|
||||
if (x0==x1 && y0==y1) break;
|
||||
e2 = err;
|
||||
if (e2 > -dx) { err -= dy; x0 += sx; }
|
||||
if (e2 < dy) { err += dx; y0 += sy; }
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
setup_mode2();
|
||||
cv_set_screen_active(true);
|
||||
while(1)
|
||||
draw_line(rand()&0xff, rand()&0xff, rand()&0xff, rand()&0xff, rand()&15);
|
||||
/*
|
||||
set_pixel(0, 0, 2);
|
||||
set_pixel(1, 0, 2);
|
||||
set_pixel(0, 1, 2);
|
||||
set_pixel(2, 2, 2);
|
||||
set_pixel(3, 3, 2);
|
||||
set_pixel(0, 7, 4);
|
||||
set_pixel(7, 7, 4);
|
||||
set_pixel(8, 7, 4);
|
||||
set_pixel(0, 8, 4);
|
||||
draw_line(20,0,210,150,2);
|
||||
while(1);
|
||||
*/
|
||||
while(1) {
|
||||
draw_line(rand()&0xff, rand()&0xbf, rand()&0xff, rand()&0xbf, rand()&15);
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ void setup_32_column_font() {
|
||||
cvu_memtovmemcpy(PATTERN+0x1000, (void *)(font_bitmap_0 - '0'*0), 0x800);
|
||||
cv_set_character_pattern_t(PATTERN|0x1fff); // AND mask
|
||||
cv_set_screen_mode(CV_SCREENMODE_BITMAP); // mode 2
|
||||
cv_set_color_table(0x2000|0xfff); // AND mask
|
||||
cv_set_color_table(0x2000|0x1fff); // AND mask
|
||||
{
|
||||
int i;
|
||||
for (i=0; i<0x800; i++)
|
||||
|
96
presets/coleco/mode2bitmap.c
Normal file
96
presets/coleco/mode2bitmap.c
Normal file
@ -0,0 +1,96 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "cv.h"
|
||||
#include "cvu.h"
|
||||
|
||||
#define PATTERN ((const cv_vmemp)0x0)
|
||||
#define IMAGE ((const cv_vmemp)0x1800)
|
||||
#define COLOR ((const cv_vmemp)0x2000)
|
||||
|
||||
#define COLS 32
|
||||
#define ROWS 24
|
||||
|
||||
typedef unsigned char byte;
|
||||
typedef signed char sbyte;
|
||||
typedef unsigned short word;
|
||||
|
||||
// converted with: http://msx.jannone.org/conv/
|
||||
|
||||
const byte msx_bitmap[] = {
|
||||
0xfe,0x00,0x00,0xff,0x37,0x00,0x00,0xaa,0xad,0x55,0x48,0xda,0xad,0xaa,0x52,0xaa,0xaa,0x55,0xdf,0xb5,0x29,0xaa,0x52,0xaa,0xaa,0x54,0x55,0xaa,0x55,0xaa,0xb6,0xaa,0x94,0xab,0xa4,0x55,0x55,0xaa,0xaa,0xaa,0x92,0x6d,0x92,0x6d,0x52,0xaa,0xaa,0xaa,0xa9,0x24,0x95,0x55,0xaa,0x44,0xaa,0xff,0x5a,0x91,0x55,0x55,0xff,0xb6,0x40,0xff,0xaa,0x55,0x08,0x22,0x08,0xa2,0x08,0xff,0x92,0x55,0xff,0xaa,0xff,0x49,0x04,0xff,0x49,0xff,0x25,0x88,0x20,0x0a,0x40,0xff,0x24,0xff,0x52,0x04,0x90,0x04,0xa8,0xff,0x89,0x20,0x09,0xa0,0x0a,0xa0,0x15,0xff,0x12,0x40,0x08,0x22,0x88,0x22,0x49,0xff,0x49,0x80,0x12,0x84,0x51,0x08,0x42,0xff,0x24,0xff,0x92,0x40,0x15,0x40,0x2a,0xff,0x94,0xff,0xa5,0xff,0x29,0x40,0x95,0xff,0x94,0x21,0x55,0xff,0x4a,0x20,0x08,0xf7,0xf7,0xd7,0xf7,0x43,0xf7,0x98,0x08,0xaa,0xaa,0x80,0x49,0x55,0xaa,0xff,0xaa,0xaa,0xa5,0x12,0x55,0x55,0xaa,0x84,0x24,0xaa,0x55,0x4a,0x6a,0x2a,0xd5,0x24,0xaa,0xaa,0x4a,0xb5,0xdd,0x6d,0x55,0xaa,0xab,0xaa,0x55,0x6d,0xaa,0xb5,0x44,0x2a,0x55,0xaa,0x55,0x49,0x5b,0x2a,0x95,0xaa,0x52,0xaa,0x55,0x12,0x5b,0xab,0x54,0x01,0xaa,0x55,0xdb,0x55,0xaa,0xaa,0xb6,0xdb,0xab,0x55,0x55,0x6d,0xb6,0xdb,0x6d,0xa5,0xaa,0x55,0xaa,0xaa,0xaa,0x55,0xb5,0x55,0xdb,0x55,0xaa,0x6d,0xaa,0x77,0xaa,0x55,0x55,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0xaa,0xaa,0x55,
|
||||
0xaa,0x55,0xaa,0x55,0xaa,0xaa,0x55,0x49,0xb6,0xad,0x55,0xaa,0xb6,0x55,0xdb,0x55,0xaa,0x55,0xb6,0x55,0x55,0x24,0x95,0x52,0xad,0xaa,0x55,0xaa,0x55,0x52,0x28,0xaa,0x55,0xaa,0x55,0x92,0x55,0xaa,0x40,0x49,0x55,0xaa,0x55,0xaa,0xfd,0x20,0x8a,0x55,0xff,0xaa,0xf7,0x25,0xaa,0xdf,0xa8,0xff,0x2a,0x80,0x25,0x10,0x41,0x88,0x24,0x81,0x28,0x02,0x48,0x02,0x28,0x85,0x20,0x51,0x04,0xa2,0x14,0x80,0x54,0x02,0x50,0x2a,0x01,0x90,0x05,0x90,0x01,0x48,0x02,0x02,0x50,0x09,0x40,0x15,0xff,0x91,0x04,0x40,0x15,0x40,0x01,0x28,0x02,0x48,0x02,0x24,0xff,0x48,0x02,0x20,0x0a,0x90,0x22,0x10,0x82,0x10,0x84,0x20,0x09,0xa0,0x04,0x84,0x21,0x08,0xa2,0xff,0x24,0xff,0x92,0xff,0x2a,0x41,0x12,0x80,0x24,0x81,0x10,0xa2,0x08,0x42,0x11,0x44,0x12,0x20,0x04,0xe7,0x08,0xe7,0xeb,0xe7,0x10,0xeb,0xe5,0x7f,0x52,0xdf,0xaa,0x7e,0x2a,0x40,0x08,0x92,0x55,0x80,0x2a,0x80,0x09,0xa4,0xff,0x55,0x55,0x40,0x95,0x09,0x50,0xaa,0x01,0x49,0x55,0xaa,0x55,0x12,0xaa,0xaa,0x55,0x55,0x55,0x55,0x49,0x55,0xaa,0xaa,0x55,0x55,0xaa,0x55,0xff,0x5b,0xa5,0xba,0x4a,0x55,0x92,0xb5,0x54,0x6d,0x12,0xd5,0xaa,0xaa,0x54,0xaa,0x5b,0x84,0x76,0xb6,0xdb,0x29,0x6b,0xbd,0xd6,0x7b,0x55,0x6a,0x95,0xaa,0x49,0xaa,0x55,0x55,0x92,0x55,0x55,0x55,0xaa,0x11,0xa5,0x55,0x55,0x54,0x55,0x55,0xb6,0x55,0x55,0x55,0x55,0x92,0x55,0x55,0x55,0x55,0xaa,0x55,0x6d,0x55,0x49,0xaa,
|
||||
0x55,0x55,0x56,0x55,0x55,0x55,0xaa,0x92,0xb6,0x54,0x24,0xaa,0xaa,0x4a,0x24,0xa4,0x5b,0xa4,0x55,0x95,0xaa,0x55,0xa2,0x95,0x44,0xaa,0x25,0x54,0x24,0x4a,0xa9,0x55,0xaa,0x04,0x40,0x95,0x54,0x81,0x20,0x55,0x7e,0x92,0xf7,0x29,0x40,0xff,0x09,0x02,0x10,0x42,0x08,0x01,0x24,0xff,0x04,0x01,0xa4,0x08,0x41,0x08,0x21,0x04,0x90,0x15,0x40,0x02,0x50,0x04,0x20,0xff,0x89,0x09,0x40,0x09,0x20,0x82,0x08,0x20,0x05,0x20,0x09,0x42,0x10,0x04,0xa2,0x14,0x42,0x41,0x14,0x21,0x8a,0x21,0x94,0x4a,0xa2,0x28,0x42,0x14,0x42,0x29,0x94,0x4a,0xa9,0x88,0x22,0x88,0x52,0x09,0xa4,0xaa,0x55,0x90,0x25,0x80,0x55,0x24,0x92,0xa9,0x24,0xff,0x54,0xff,0x52,0x08,0xa2,0x48,0x95,0x04,0x90,0xff,0xa4,0xff,0x89,0x20,0x15,0x90,0x02,0x88,0x20,0x01,0x08,0x41,0x10,0xef,0x21,0xef,0x10,0xef,0xef,0x10,0x10,0x42,0x10,0x45,0x10,0x82,0x48,0x81,0x10,0xa4,0x01,0x28,0x02,0x48,0x01,0x24,0xff,0x94,0xf7,0x4a,0xff,0x24,0xdf,0x48,0x02,0x02,0x91,0x55,0x88,0x55,0x80,0x08,0x40,0x4a,0x52,0x55,0xaa,0x55,0x01,0x90,0xaa,0x55,0x55,0x55,0x24,0x52,0x55,0xaa,0x49,0x55,0xaa,0xb7,0x55,0x6d,0x49,0x24,0x55,0xd5,0xaa,0xb6,0x4a,0xb5,0xaa,0x56,0x55,0xaa,0x54,0x92,0xab,0x55,0xaa,0xaa,0x55,0xaa,0xdb,0x6d,0x55,0x6a,0x95,0xaa,0x55,0x45,0x6d,0xb6,0xad,0x52,0x55,0x6d,0x55,0x55,0x52,0x5a,0xda,0xd4,0xaa,0xad,0x55,0x24,0xaa,0xaa,0xda,0xa9,0xaa,0x4a,0x55,0x55,
|
||||
0xb6,0xdb,0xb6,0x55,0xaa,0x49,0x55,0xaa,0x55,0x48,0x55,0x48,0x25,0x24,0x49,0x90,0x15,0xc8,0x22,0x80,0x15,0x51,0x04,0x24,0x81,0x10,0x95,0xff,0x55,0x7e,0xf7,0x04,0xff,0x21,0x04,0xfe,0xf7,0x10,0xff,0x40,0xff,0x04,0x10,0xff,0xff,0x24,0x81,0x50,0xff,0x02,0x88,0xff,0x22,0x09,0x44,0xff,0x8a,0x20,0x01,0x44,0x11,0xad,0xaa,0xff,0x21,0x04,0xff,0x55,0x55,0x56,0xab,0x50,0x05,0x50,0x05,0x55,0xbe,0xeb,0x7f,0x14,0x49,0xa4,0x15,0x6a,0xff,0xdf,0xfb,0x15,0xaa,0xaa,0x55,0xaa,0xff,0xff,0xdf,0x2a,0xaa,0xaa,0x56,0xdb,0xbe,0xff,0xff,0xaa,0xaa,0xaa,0xb5,0xdb,0xff,0xff,0xff,0xaa,0xaa,0xaa,0x55,0xb6,0xfd,0xff,0xef,0x48,0xa4,0xaa,0x52,0xaa,0xed,0xff,0xff,0xa0,0x8a,0x51,0x94,0xaa,0xb5,0xff,0xff,0x42,0x08,0x41,0x28,0xa5,0xb6,0xff,0xb5,0xef,0x10,0xef,0xef,0x85,0xcd,0xef,0xcd,0x82,0xff,0x88,0xff,0x50,0xaa,0xaa,0x76,0x49,0xff,0x20,0x82,0xff,0x95,0xa8,0xaa,0x10,0x41,0xff,0xf7,0xef,0xcf,0xd7,0x87,0x12,0xff,0x24,0x80,0x02,0x10,0xa4,0xd5,0x4a,0xff,0x89,0x20,0x04,0x80,0x55,0xff,0xa4,0x52,0x4a,0x11,0x80,0x12,0x48,0x02,0xaa,0x92,0x55,0xff,0x55,0xff,0x92,0xff,0xaa,0x40,0x0a,0x20,0x02,0x48,0x01,0x24,0xff,0xaa,0x24,0xaa,0xff,0x22,0x08,0x52,0xaa,0x09,0xaa,0x40,0xaa,0x04,0x92,0xb5,0xaa,0x29,0xd6,0x52,0x89,0x48,0xab,0xa4,0xb5,0xaa,0x4a,0xb6,0x24,0x55,0x55,0x55,0xab,0x92,0xb5,0x4a,0xd6,0x6a,0x04,0x55,0x6a,
|
||||
0x55,0x6a,0xa4,0x92,0x4a,0xa9,0x24,0x24,0x92,0x24,0xad,0x55,0xdb,0x20,0xaf,0x40,0x25,0x80,0xf7,0x7f,0x04,0xff,0xff,0xff,0x08,0x7f,0xff,0x02,0x20,0x04,0x10,0xff,0x09,0xa0,0x05,0x40,0x09,0x02,0xa9,0x04,0x21,0x09,0x45,0x34,0x4a,0x25,0x55,0x2a,0x49,0x36,0x49,0xb6,0xab,0x5a,0x6b,0x55,0xab,0xb6,0x5b,0xad,0xf6,0xbf,0x57,0xfd,0x2b,0xff,0xad,0xff,0xb7,0xfe,0xfb,0xdb,0x7f,0xef,0xbf,0xff,0xfd,0xb7,0xff,0x7f,0xff,0xff,0xf7,0xff,0xbf,0xff,0xf7,0x7d,0xff,0xff,0xff,0xfb,0x7f,0xff,0xff,0xff,0xff,0xff,0xee,0xff,0xff,0xff,0xbf,0xfe,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xed,0xef,0xef,0xef,0xc7,0xcf,0xff,0x7b,0xff,0xff,0xff,0xff,0xf7,0xff,0xdd,0x7f,0xff,0xfe,0xfb,0xff,0x6e,0xff,0xff,0xf7,0xdf,0xfd,0xf7,0xbb,0xee,0xf9,0x10,0xe7,0xe7,0xe7,0xef,0xe7,0xc7,0xe7,0xd5,0x94,0x6b,0xaa,0x44,0xff,0xd1,0x6c,0x2c,0xfc,0xf8,0xf0,0xf2,0xc0,0xc9,0xb6,0x2b,0x91,0x65,0x54,0xf2,0x4a,0x53,0xa8,0x80,0x09,0x40,0x80,0x3f,0x7f,0x1f,0x03,0x48,0x01,0xff,0xff,0x04,0xff,0x90,0xff,0x20,0xff,0xff,0x01,0x10,0xff,0xff,0x02,0xff,0x24,0x02,0x10,0x49,0x92,0x21,0xff,0xa9,0x02,0x48,0x55,0x22,0x49,0x55,0x48,0x55,0xaa,0xa9,0x04,0x6a,0x55,0xdf,0x12,0x55,0x54,0xaa,0x92,0xaa,0x6b,0x12,0xa9,0x55,0x24,0xa9,0x56,0xaa,0x49,0x55,0x24,0x80,0x55,0x02,0xa9,0x52,0x55,0x55,0x49,0x40,0x2a,0x55,0x55,0xdd,0xaa,0x15,0x55,0x55,
|
||||
0xaa,0x55,0xaa,0x2a,0xaa,0xaa,0x4a,0x08,0x20,0xab,0x49,0xfe,0xdb,0x24,0xdb,0x7f,0x01,0xff,0x77,0xbf,0xff,0xbf,0xf7,0x40,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x04,0xff,0x22,0x80,0xff,0xff,0xff,0xff,0xaa,0x09,0x42,0xff,0xff,0xff,0xff,0xff,0x95,0x6a,0x15,0xff,0x08,0x22,0xff,0x04,0xed,0x5b,0xae,0xab,0x54,0x0a,0xa2,0x14,0x5f,0xfb,0xef,0x7f,0xad,0xaa,0xab,0xad,0xff,0xbf,0xff,0xff,0xbb,0xef,0x5f,0xf5,0xff,0xff,0xff,0x77,0xff,0xff,0x5e,0xfb,0xf7,0xdf,0x7f,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xff,0xbf,0xff,0xfd,0xff,0xdf,0xfe,0xff,0xff,0xfd,0xeb,0xfb,0xf3,0xef,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xff,0xff,0x7b,0xff,0xff,0x7b,0xfb,0xff,0xfd,0xf7,0xbf,0xfe,0xfc,0xf8,0xe0,0xe8,0xf3,0xf7,0xc7,0xb7,0x4f,0x57,0x07,0x07,0xc7,0xe7,0x30,0xc7,0xcf,0x8f,0xcf,0xef,0x54,0xfe,0xfc,0xfa,0xf2,0xc0,0x3f,0xaa,0xad,0xaa,0x55,0xaa,0x55,0x55,0x6d,0xaa,0xab,0x5a,0xab,0x56,0x55,0xb5,0x52,0x55,0x93,0xad,0xd7,0xcb,0xe7,0xe7,0xff,0x7f,0xff,0xff,0xff,0x80,0xff,0xff,0xff,0xff,0x10,0xef,0xff,0xfd,0xff,0xef,0xfd,0xff,0x49,0xef,0x42,0xa9,0x55,0xb7,0x54,0x4a,0x25,0x92,0x7f,0x49,0x24,0x7f,0x82,0x10,0x54,0x82,0x55,0x28,0x85,0x49,0x28,0x85,0x92,0xb6,0x48,0x22,0x54,0x55,0x02,0x48,0x92,0xaa,0x49,0x92,0x55,0x48,0x22,0xaa,0x55,0x84,0xdd,0x55,0x10,0xbb,0x92,0xd5,0x55,0x2a,0x55,0xaa,0x55,0x7f,0x2a,0x52,0x55,
|
||||
0x6a,0x55,0xaa,0x24,0x55,0x92,0x4a,0xf7,0xde,0xab,0xfe,0xb7,0xdb,0xaa,0xff,0xff,0xff,0xbf,0xef,0xfb,0x7f,0xd6,0xff,0xff,0xff,0xff,0xff,0x7f,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0xff,0xff,0x41,0x14,0x81,0x08,0x02,0x29,0x02,0x24,0x52,0x4a,0x2a,0x92,0x4a,0x2a,0xaa,0x4a,0xb6,0xab,0xad,0xb7,0xaa,0xdf,0xb5,0xdf,0xbf,0xdf,0x77,0xdf,0xfd,0x77,0xdf,0x7f,0xdf,0x7f,0xff,0xff,0xbf,0xf7,0xff,0xbf,0xf7,0xff,0xff,0xff,0xbf,0xff,0xfe,0xff,0xff,0xf7,0xff,0xff,0xff,0xbe,0xfe,0xfe,0xe7,0xef,0xcf,0x8e,0x9d,0x1c,0xc2,0x19,0xdf,0xdf,0x0f,0xcf,0xce,0xde,0xdd,0xdc,0xff,0xfc,0xfc,0xf0,0xe1,0x55,0x55,0x8a,0x55,0x55,0x55,0x55,0xd5,0xa5,0x55,0xaa,0x07,0x0f,0x07,0x07,0x07,0x0f,0x5f,0x07,0xef,0xee,0xee,0xea,0xec,0xe8,0xc8,0xc8,0xad,0xad,0xaa,0xaa,0xaa,0x5a,0x55,0x55,0x55,0xaa,0x55,0x55,0xb5,0x55,0xaa,0x55,0x55,0xaa,0xaa,0xaa,0x55,0xad,0x2a,0xaa,0x80,0x7f,0x80,0x7f,0x7f,0x3f,0x3f,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xf7,0xff,0xfe,0xff,0xfd,0xf7,0xff,0x75,0xf7,0xdf,0xff,0xf7,0xdf,0xfa,0x55,0xaa,0x4a,0xff,0x7f,0xfd,0xeb,0xfe,0x41,0xd5,0x52,0xff,0xff,0x7f,0xdc,0xf5,0xbf,0xed,0xff,0x24,0xc0,0x2a,0xd5,0x40,0xd5,0xd5,0xea,0xaa,0x80,0x2a,0x55,0x7e,0xd5,0x55,0x55,0xaf,0xaa,0xbe,0x55,0xeb,0x55,0xaf,0xad,0xef,0x44,0xaa,0xef,0xaa,0x56,0xd6,0xb5,
|
||||
0xff,0xaa,0xed,0xa4,0xab,0xad,0x6a,0xad,0xef,0xb5,0xda,0xaf,0xf5,0x9a,0xd7,0xab,0x7e,0xd7,0xfb,0x5e,0xb7,0xfb,0x5d,0xfb,0xef,0xfd,0x77,0xff,0xd6,0x7f,0xd5,0x6f,0xff,0x6d,0xdf,0x7f,0xf7,0xbf,0xd7,0x01,0xff,0x02,0xff,0x02,0xff,0x04,0x01,0x11,0x45,0x12,0x89,0x25,0x94,0x4a,0x22,0x2b,0x55,0x55,0x56,0x55,0xab,0xad,0x55,0x6b,0x5e,0xb7,0xfd,0x57,0xff,0x5b,0xef,0xfd,0xdf,0xff,0xf7,0xbf,0xff,0x7f,0xf7,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0xff,0xdf,0x7f,0xfc,0xf8,0xf0,0xf0,0xe0,0xe9,0xea,0xd5,0x79,0x31,0x71,0x21,0x61,0x14,0xc1,0xc3,0xc8,0xd8,0x27,0xd0,0xd8,0xf5,0xf4,0xd0,0x25,0xd5,0x55,0x6b,0xaa,0x55,0x55,0x52,0x55,0xaa,0x55,0x55,0xaa,0xab,0x55,0xaa,0x0f,0x0f,0x0f,0x0f,0x07,0x0f,0x0f,0x0f,0xc0,0xd8,0x25,0xd8,0xc0,0x2f,0xc0,0xd0,0x55,0x5a,0xaa,0x55,0x55,0x54,0x53,0xad,0x55,0x6a,0xed,0xd5,0x2a,0x55,0x55,0xab,0x52,0x55,0x4a,0xaa,0xaa,0x55,0xaa,0x56,0xbf,0x5f,0x9f,0x5f,0x4f,0x2f,0x87,0x07,0xd5,0xda,0xef,0xf2,0xdd,0xe6,0xd2,0xe0,0x4a,0xb7,0x68,0x91,0x40,0x8a,0xfe,0x20,0xeb,0x04,0xf4,0x09,0x24,0xb6,0x03,0xab,0xa0,0x6d,0xf7,0x5d,0xf6,0xdf,0xfa,0x12,0x77,0x22,0x76,0x6a,0xfd,0x6b,0x55,0xab,0xfa,0xb5,0x7f,0x55,0xaa,0xd5,0xab,0x56,0xdd,0x55,0x6b,0xaa,0xdd,0x6a,0xda,0xaa,0x56,0xab,0x57,0xaa,0xb6,0xdb,0x55,0xba,0xd5,0x55,0xb6,0xda,0xab,0x6d,0xb5,0x7a,0x55,
|
||||
0xaa,0x55,0xab,0x6d,0x4a,0xa9,0x5a,0xad,0xb5,0xab,0xad,0xd5,0xab,0xaa,0xaa,0xeb,0x5e,0x6b,0xba,0x55,0x6b,0xad,0xaa,0x7e,0xd5,0x5b,0xed,0x56,0xb5,0x5e,0xaa,0xff,0xaf,0x7f,0xbf,0xef,0xbf,0xef,0xbf,0x08,0x02,0x08,0x02,0x10,0x04,0x11,0x04,0x95,0x25,0x92,0x4a,0x95,0x49,0x25,0x95,0x56,0x5b,0xad,0xb7,0x55,0x5f,0x55,0x6f,0xbd,0xef,0x7f,0xdb,0x7f,0xee,0x7f,0xbb,0xdf,0xff,0x7f,0xff,0xdd,0xff,0xff,0xff,0xff,0x7b,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xfe,0xfe,0xfc,0xfc,0xf8,0xf0,0xf0,0x50,0xad,0xaa,0x52,0x55,0xab,0x69,0x55,0x6a,0x93,0x6b,0x57,0x2b,0xab,0x57,0x57,0xb0,0xf0,0xb0,0xe0,0xb0,0xa0,0xa0,0xf0,0x55,0xaa,0xaa,0xa5,0xd6,0x55,0x55,0x5b,0x55,0x5b,0x55,0xd5,0x52,0x55,0x55,0x55,0x0f,0x0f,0x0f,0x0f,0x07,0x0f,0x0f,0x0f,0x2d,0xd4,0xc0,0xd0,0x2a,0xd4,0xd2,0x5b,0x5b,0xaa,0x55,0xaa,0x55,0x55,0xaa,0xad,0x55,0xaa,0x6d,0x55,0xaa,0x92,0x55,0x55,0x55,0x5a,0x55,0xaa,0x52,0xaa,0xaa,0x55,0xa8,0x27,0x57,0x53,0xab,0x55,0xaa,0x4a,0xd4,0xc1,0xd4,0xc2,0x91,0xff,0xff,0xff,0xfa,0x40,0xf6,0xff,0xd5,0xff,0xed,0xbb,0x01,0xaa,0xff,0xda,0x77,0xb5,0xde,0x6a,0xb6,0xdb,0xed,0xb6,0xb5,0xba,0x5a,0xda,0x56,0x6e,0x6d,0xed,0x6a,0xd4,0xd5,0xd5,0xaa,0xaa,0x55,0x25,0xda,0xaa,0xaa,0x55,0xda,0x6e,0xab,0xda,0xda,0xaa,0x44,0xd5,0xd7,0x57,0xaa,0xaa,0x22,0x95,0x5f,0x56,0x55,0x6b,0x4a,0xad,0x4a,0x29,0xa4,0x95,0x2a,
|
||||
0xa5,0x92,0xaa,0x92,0x49,0xaa,0x25,0x95,0xaa,0x95,0x54,0xaa,0xff,0xb6,0x49,0x55,0xaa,0x4a,0xaa,0x2a,0xa5,0xaa,0xff,0xab,0xb5,0xca,0x55,0xaa,0x55,0x96,0xaa,0x7f,0xdf,0xbf,0xbf,0xef,0x7f,0xbf,0xd7,0x21,0x04,0x11,0xff,0x14,0x02,0x21,0x04,0x2a,0x45,0x2a,0x92,0x4a,0x29,0x45,0x2a,0xb5,0x5b,0xad,0xb7,0xad,0x5b,0x6d,0xb7,0xef,0x7f,0xdf,0x7b,0xef,0x7f,0xde,0x7b,0xdf,0x7d,0xff,0xff,0x6f,0xff,0xff,0xfe,0x7f,0xff,0xff,0xff,0xfb,0xfe,0xfe,0xfc,0xf1,0xc0,0xc0,0xea,0xd0,0xd5,0xad,0x55,0x6a,0xae,0xa4,0xa9,0x52,0xb5,0x81,0x55,0xab,0x57,0x4b,0xab,0x57,0xa7,0x2b,0x97,0xea,0xb2,0xe9,0x5f,0xa0,0x5a,0xe4,0xa0,0x92,0xaa,0x55,0x55,0x57,0x55,0xaa,0x55,0xaa,0x55,0x54,0x4b,0xb4,0xb5,0x25,0x55,0x0f,0x0f,0x2f,0x07,0x0f,0x07,0x0f,0x07,0xd0,0x55,0x4a,0xd1,0x49,0xa4,0xea,0xb5,0xaa,0x55,0x55,0x55,0x29,0x5a,0xaa,0x55,0xaa,0xad,0x55,0xaa,0xba,0x2a,0x55,0x52,0xb6,0xaa,0xaa,0x2a,0xaa,0x92,0xaa,0x95,0xad,0xa8,0x56,0xb5,0x55,0xaa,0x52,0xab,0xfa,0x7f,0x28,0x7f,0x7f,0x7f,0xbf,0x3f,0xed,0xbf,0xea,0x76,0x5f,0x7a,0xef,0xb5,0xda,0xfd,0xaa,0xd6,0x12,0x51,0xde,0x6b,0xda,0xda,0x95,0xfb,0x24,0xdb,0xdb,0xfb,0x55,0xb5,0x49,0x76,0x94,0xaa,0xaa,0x55,0x52,0x55,0x55,0xaa,0xa4,0xab,0x44,0x6d,0x91,0xb5,0x2a,0x91,0xb5,0xdb,0x92,0x49,0x22,0x6b,0x49,0xdb,0x95,0x52,0x89,0x54,0x48,0xa6,0x29,0x94,0x52,0x4a,0x29,0xa4,0x94,
|
||||
0xa9,0x25,0x94,0xaa,0x49,0xaa,0xdb,0xff,0xda,0x01,0xa4,0x01,0xff,0xaa,0xff,0xbe,0xff,0x55,0xff,0x55,0xff,0xff,0x95,0xa5,0x95,0x55,0xff,0x7f,0x05,0xa5,0xff,0x7f,0x5f,0x5f,0xef,0xbf,0xff,0x7f,0xaf,0x01,0x14,0x02,0x28,0x01,0x04,0x10,0xff,0x12,0xaa,0x05,0xa9,0x25,0x15,0xa5,0x12,0xad,0xb6,0x5b,0x56,0x6d,0x57,0x5a,0xad,0xef,0xdf,0x7a,0xdf,0xf7,0x5e,0xfb,0xaf,0xef,0xff,0xff,0xbf,0xf7,0xff,0xef,0xbf,0xf8,0xf0,0xf0,0xe0,0xe0,0xc0,0xca,0x56,0x55,0x55,0x54,0x55,0xaa,0x54,0xea,0x54,0xae,0x55,0x4a,0x2a,0x4b,0xa4,0x96,0xab,0x4b,0xab,0x53,0xaf,0x53,0x8b,0x53,0xab,0xa0,0x5b,0xea,0xe9,0xd2,0xe4,0x49,0xd1,0xaa,0x52,0xaa,0xb6,0x2a,0xd5,0x2a,0xa9,0x54,0x95,0xaa,0x55,0xb5,0x45,0xb5,0x55,0x07,0x0f,0x07,0x27,0x07,0x07,0xe8,0x47,0x5a,0xa4,0x45,0xa9,0xaa,0xea,0xd5,0xa9,0x55,0x56,0xaa,0x55,0xb6,0xaa,0x6d,0x55,0xb5,0x29,0xd6,0x6d,0xaa,0x95,0x6a,0xb6,0x6a,0x55,0xda,0xaa,0x92,0x55,0xad,0x55,0x92,0xaa,0xaa,0x55,0xb6,0x55,0x54,0x4a,0x9f,0x5f,0xdf,0x2f,0x4f,0xa8,0x83,0x48,0xfe,0x55,0xef,0xb4,0x6f,0xf5,0xaa,0xf6,0xb5,0xb5,0xfd,0xa5,0x5a,0xaa,0xee,0xaa,0x84,0xff,0x24,0xb5,0xaa,0xd5,0xaa,0xaa,0xaa,0x6a,0x94,0x6a,0xaa,0x55,0xaa,0xa4,0xd6,0x7b,0x52,0x80,0x55,0x88,0x25,0x6d,0xdb,0x6d,0x4a,0xa5,0xef,0xaa,0x09,0x64,0x4a,0xa2,0x15,0x52,0xa9,0x8a,0x24,0xaa,0x95,0x52,0x4a,0x29,0x54,0x92,0x4a,0x55,0xaa,
|
||||
0x55,0xa4,0xaa,0x95,0xaa,0x6f,0xae,0xff,0x20,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0a,0xff,0xff,0xff,0x4a,0x01,0xff,0xff,0xff,0x55,0xff,0xff,0x5b,0x0f,0xff,0xaa,0xff,0xff,0xff,0x15,0x02,0xff,0xff,0xff,0x2f,0x97,0xff,0x57,0x89,0x22,0xff,0x08,0x02,0xff,0xff,0xff,0x56,0x29,0x8a,0x52,0x09,0x44,0x01,0x14,0xfa,0x57,0xad,0xb6,0x55,0xaa,0x15,0x4a,0xfe,0xfe,0xfc,0xfc,0xf8,0xf8,0xf2,0xe0,0xaa,0x55,0x55,0xab,0x55,0xaa,0xdf,0xc0,0xa9,0x52,0x54,0x52,0xa9,0xa4,0xea,0xe9,0x55,0x25,0x95,0x4a,0x25,0xb6,0xa4,0x55,0x4b,0x27,0x53,0xab,0x4b,0x23,0x95,0x4b,0xea,0xd6,0x69,0xaa,0xc9,0xd5,0xd2,0x55,0xaa,0x6d,0x29,0x55,0x54,0x55,0x55,0x56,0xab,0x54,0x55,0xaa,0xab,0x54,0xaa,0xdb,0x03,0x07,0xb7,0x4b,0x57,0xab,0x93,0x4b,0xad,0xbf,0xad,0x2a,0x95,0x2a,0x55,0x2a,0x55,0x6d,0x55,0xaa,0x55,0x55,0xb6,0xaa,0x55,0x55,0x12,0x55,0x55,0xb5,0xa5,0xda,0x55,0xaa,0xb6,0x55,0x54,0x5a,0x2a,0xa9,0x6b,0xaa,0x5b,0xab,0xa2,0xa5,0x49,0xaa,0x13,0x52,0x52,0x55,0x4a,0x55,0x25,0x55,0xad,0xf6,0xaa,0x76,0x5b,0x7f,0x7f,0xc1,0x92,0xfe,0x93,0xaa,0xfa,0x0b,0xf4,0xed,0xaa,0xd5,0x55,0xaa,0x4a,0xb5,0x92,0xed,0xaa,0x55,0x54,0x02,0xa9,0xff,0xaa,0x69,0xb6,0x92,0x6a,0xaa,0x12,0xa4,0x12,0xa9,0x12,0x4a,0xa9,0x44,0xaa,0x24,0x92,0x49,0x92,0x49,0x2a,0x6a,0xaa,0xa4,0x52,0x0a,0xaa,0x52,0x2a,0xb6,0xaa,0xaa,0x49,0x5a,0x51,
|
||||
0x6a,0xaa,0x55,0x92,0xaa,0x55,0x54,0xff,0xff,0xb7,0xff,0xdb,0x24,0x55,0xaa,0xff,0xff,0xff,0xff,0x7f,0xff,0x6d,0x91,0xff,0xff,0xff,0xff,0xff,0x44,0x55,0xaa,0xff,0xff,0xff,0xff,0xff,0x77,0x6a,0xaa,0xff,0xff,0xff,0xff,0xff,0x82,0xb4,0xb6,0xbf,0x17,0x8b,0xff,0xff,0xb6,0xaa,0xaa,0x01,0xff,0xff,0xbf,0x07,0xdb,0xaa,0x24,0x25,0x11,0x05,0xfe,0xfe,0x5a,0xa5,0x49,0xe5,0xd7,0xaf,0x1f,0x80,0x7f,0x40,0xea,0x1f,0x2b,0xab,0xd4,0x12,0xfe,0x02,0x4b,0xe4,0xd5,0xd5,0xaa,0x55,0xd5,0xaa,0x55,0x6d,0x49,0x56,0xa9,0x55,0x57,0xb5,0x4a,0x53,0x4b,0xa9,0x45,0x52,0xa8,0x56,0x94,0x55,0xaa,0x51,0x55,0xca,0xaa,0xd6,0x28,0x55,0x2a,0x52,0x4a,0xaa,0xad,0x92,0xaa,0x49,0xaa,0xda,0xa9,0xa5,0xeb,0x42,0x28,0x2b,0xd7,0xab,0x5b,0xa0,0x6a,0x90,0x2a,0x55,0x2a,0x54,0x55,0x55,0x4a,0x55,0x94,0x56,0xab,0xae,0x4a,0xaa,0x92,0x54,0x82,0xaa,0x6d,0xad,0x8a,0x55,0xa8,0x84,0x57,0x55,0x4a,0xb5,0xaa,0x55,0xa4,0x95,0x95,0x55,0xaa,0xdf,0xaa,0x40,0x2a,0xaa,0x55,0xaa,0xb5,0x54,0x82,0x2b,0xd4,0xdd,0xbb,0x3f,0x5f,0x15,0x51,0x8a,0xaa,0x55,0xaa,0xef,0xb4,0xb5,0xb5,0x55,0xaa,0xab,0x54,0x24,0xb5,0x6d,0x49,0x2a,0xa9,0xbb,0x55,0x95,0x44,0xb5,0x5a,0x52,0x52,0x55,0x42,0x04,0xaa,0x44,0xaa,0x54,0x6d,0x2a,0x5a,0xa5,0x14,0xd2,0xb5,0xb5,0xd5,0xad,0x49,0x55,0x51,0x95,0x55,0x55,0xaa,0x7a,0x55,0x5a,0x4a,0xaa,0x55,0x52,0x95,0xdf,0xaa,0xaa,
|
||||
0xaa,0xaa,0x49,0xaa,0x55,0x55,0xda,0x55,0xbb,0xaa,0xaa,0x55,0x55,0x55,0x55,0x52,0x6a,0xaa,0xad,0x52,0x55,0x6e,0x4a,0xad,0xaa,0xda,0x25,0x55,0x55,0xda,0xaa,0x55,0xaa,0xaa,0xaa,0xaa,0x5b,0x24,0xdb,0x56,0xa9,0x4a,0xd5,0x4a,0xaa,0xab,0x54,0x88,0x55,0x52,0x55,0xaa,0xaa,0xa4,0xaa,0x92,0x54,0x4a,0x55,0x41,0xac,0x92,0xaa,0x94,0x52,0x62,0xd5,0x15,0x5f,0x97,0x54,0x40,0x89,0x64,0x22,0x2b,0x5a,0x75,0x55,0xf9,0xf4,0x50,0xad,0x05,0x51,0x2a,0xc0,0x52,0x55,0x8a,0x50,0x75,0x15,0x42,0x12,0x52,0xaf,0x0d,0x07,0x07,0x7b,0x50,0x24,0xf7,0x05,0xf6,0xf2,0xe0,0xf3,0x06,0x56,0x7c,0x7e,0x25,0xc0,0x2a,0x09,0x80,0x24,0x5f,0xaa,0x24,0x0d,0x45,0x00,0x44,0x12,0x55,0xee,0xcc,0xa8,0x02,0x24,0x81,0x00,0xfd,0xab,0x68,0x32,0x39,0x08,0x11,0x20,0x2a,0x4a,0x5a,0x16,0x85,0x14,0x24,0x01,0xa2,0x55,0xaa,0x9a,0x32,0x00,0x10,0x44,0x56,0x52,0xaa,0xeb,0x54,0x80,0x00,0x40,0xaa,0x55,0xa8,0x94,0xad,0x48,0x12,0x08,0x52,0xad,0x81,0x14,0x53,0x89,0x02,0x20,0xd5,0xa9,0x24,0x92,0x80,0x20,0x44,0x91,0x55,0x55,0x95,0x55,0x09,0x02,0x21,0x0b,0x49,0xab,0x2a,0x55,0x49,0xad,0x55,0x55,0x2a,0xa4,0x6d,0x25,0xad,0x49,0x55,0x55,0xa5,0xb5,0x75,0x24,0xad,0x25,0x55,0xaa,0xaa,0xaa,0x49,0x5b,0x55,0x55,0x55,0xaa,0xab,0xaa,0x55,0x52,0x55,0x55,0x55,0x6d,0xaa,0x6d,0x25,0xa9,0x55,0x55,0x6a,0x55,0xaa,0x55,0x55,0x55,0x55,0x6d,0x49,0xab,0x5a,
|
||||
0x4a,0x55,0x54,0x53,0x55,0x54,0x55,0x22,0xaa,0x55,0xaa,0x55,0xaa,0xaa,0x55,0xab,0xaa,0x55,0xaa,0x55,0x55,0xbb,0x5a,0x6d,0x4a,0x56,0x94,0xb5,0x52,0x56,0x95,0xda,0xaa,0x55,0xaa,0x55,0xab,0x24,0xa4,0x6d,0xda,0xaa,0x5b,0xaa,0xaa,0xaa,0x52,0xaa,0xaa,0xaa,0x55,0x56,0xb6,0xaa,0x55,0xad,0xaa,0xaa,0x55,0xaa,0xa5,0xaa,0x55,0x52,0x55,0x55,0x55,0x92,0x4a,0xaa,0x55,0x95,0x49,0x54,0x5a,0xaa,0xaa,0x52,0x2a,0xb1,0xf8,0xaa,0xbe,0xb5,0x4a,0xa4,0x52,0x05,0x00,0x10,0x40,0x02,0x08,0x80,0x40,0xaa,0x25,0x00,0x01,0x48,0x00,0x00,0x44,0x02,0x50,0x0a,0x20,0x01,0x04,0x20,0x80,0x11,0x80,0xaa,0x24,0x01,0x00,0x00,0x44,0x00,0x12,0x80,0x55,0x02,0x00,0x00,0x08,0x48,0x04,0x10,0x44,0x2a,0x00,0x00,0x44,0x81,0x04,0x81,0x50,0x8a,0x00,0x00,0x44,0x10,0x42,0x00,0x15,0xd4,0x00,0x40,0x00,0x01,0x48,0x10,0x22,0x95,0x00,0x08,0x80,0x02,0x08,0x40,0x2a,0x41,0x08,0x00,0x00,0x40,0x04,0x92,0x48,0x22,0x00,0x00,0x00,0x8a,0x21,0x88,0xa4,0x00,0x00,0x02,0x10,0x2e,0x0f,0x86,0x05,0x27,0x0a,0x0f,0x15,0xaa,0x6a,0x55,0x52,0x56,0xaa,0xa9,0x55,0x95,0x6a,0x4a,0xaa,0xaa,0xaa,0x48,0x25,0xaa,0xaa,0xb6,0xaa,0x55,0xaa,0x6a,0x55,0x55,0x92,0x55,0x76,0xa5,0xad,0x4a,0x55,0xb6,0x25,0x50,0x4a,0x55,0x55,0xb5,0x51,0x49,0x55,0x55,0x6a,0x49,0x55,0x21,0x55,0x55,0x56,0xb7,0x55,0x54,0x4a,0x55,0x55,0x4a,0xa5,0x5a,0xaa,0xb6,0xa4,0x52,0x55,0xab,
|
||||
0x6d,0xaa,0xaa,0x55,0xaa,0xd5,0x56,0xaa,0xb6,0x52,0xaa,0xaa,0xb5,0xb5,0xaa,0xa5,0xaa,0xaa,0x2a,0x55,0x52,0x55,0x55,0xaa,0xaa,0x55,0xdb,0x55,0xa9,0x95,0x52,0x52,0x55,0xdb,0x55,0xda,0x52,0xaa,0x48,0xa5,0x52,0x8a,0xaa,0x52,0xaa,0x52,0xd5,0x54,0x92,0xaa,0x0a,0x55,0xad,0x55,0xee,0x6d,0x4a,0xaa,0x5f,0xf5,0x8b,0x4a,0x52,0xa4,0xd5,0xa4,0xad,0x3f,0x20,0x8a,0xdf,0x91,0x5a,0x6b,0x48,0x0d,0xbe,0xb6,0x0c,0xea,0xb7,0x5a,0xfb,0xf9,0xca,0x15,0xfc,0x81,0xe4,0xe0,0xc0,0xc0,0x15,0xd5,0xef,0x00,0x00,0x24,0x80,0x02,0x51,0x54,0x6a,0x02,0x10,0x80,0x09,0x20,0x04,0xa1,0x94,0x00,0x00,0x49,0x00,0x22,0x80,0x0a,0x52,0x80,0x00,0x12,0x40,0x04,0x10,0x82,0x54,0x00,0x00,0x48,0x82,0x08,0x20,0x8a,0xaa,0x00,0x00,0x91,0x04,0x20,0x80,0x11,0xa4,0x02,0x00,0x10,0x42,0x00,0x25,0x09,0x44,0x00,0x00,0x12,0x44,0x00,0x20,0x24,0xa8,0x40,0x02,0x08,0x82,0x10,0x00,0xa4,0x4a,0x80,0x04,0x10,0x40,0x00,0x04,0x90,0x52,0x00,0x40,0x01,0x80,0x04,0x10,0x82,0x48,0x2a,0xad,0xbd,0x2a,0xaa,0x0a,0x25,0x96,0x6f,0xd6,0xb5,0x55,0xd5,0x2b,0xaa,0x52,0x6d,0x12,0xb5,0x75,0x8a,0xa4,0x54,0x48,0x55,0x95,0x55,0xaa,0x55,0xaa,0x48,0x52,0x55,0x55,0xaa,0xaa,0xaa,0xaa,0x95,0xaa,0x56,0x55,0xaa,0xaa,0xb6,0x49,0xaa,0x55,0xad,0xdb,0x52,0xaa,0xaa,0x95,0x55,0xaa,0xb7,0x22,0x6a,0x55,0xaa,0x95,0xaa,0xaa,0xaa,0xd5,0x6b,0x54,0xab,0xab,0xaa,0xaa,0xaa,
|
||||
0x55,0x55,0xaa,0x55,0x44,0x4a,0x55,0xad,0x55,0xb6,0x49,0xaa,0x55,0x5b,0xaa,0xaa,0xee,0x6d,0x92,0x92,0x52,0x55,0xaa,0xaa,0xda,0x55,0x55,0xaa,0xaa,0x6a,0x95,0xab,0x52,0xaa,0xad,0xaa,0xad,0xaa,0x4a,0xa9,0xaa,0x55,0x6a,0x52,0xa9,0x4a,0xaa,0x55,0xb5,0x55,0x2a,0x5a,0x52,0xa8,0xaa,0x55,0xad,0x44,0x40,0xd5,0x6a,0x5b,0x52,0x54,0x52,0xaa,0x01,0x55,0x15,0x5f,0x69,0x92,0x55,0xd5,0xff,0xa9,0x14,0x35,0x25,0x4a,0x54,0x5d,0x21,0x4a,0xa9,0x4a,0x55,0x55,0xb5,0x4a,0x5b,0xaa,0x55,0x56,0x22,0xaa,0x55,0xaa,0x55,0xaa,0x55,0x52,0xad,0x52,0x4a,0xaa,0xa4,0x53,0x2b,0xa5,0x52,0xaa,0x94,0xa1,0x95,0xb7,0xa4,0x52,0xad,0x92,0x4a,0xaa,0x55,0x2a,0x76,0x24,0x92,0xaa,0xaa,0xaa,0x4a,0xaa,0x5b,0xa4,0x52,0xaa,0xaa,0x91,0xaa,0x6e,0x24,0x92,0x55,0x95,0x56,0x49,0x55,0x4a,0xaa,0xaa,0x55,0x55,0xaa,0x51,0x4a,0xaa,0x54,0xaa,0x49,0xa1,0x14,0x4a,0xa4,0xaa,0xb6,0xaa,0x55,0xa9,0xad,0x92,0xaa,0xaa,0xdb,0xaa,0x24,0x12,0x49,0x55,0x92,0x49,0x55,0xa5,0xaa,0x8b,0x55,0x55,0x95,0x55,0x2a,0x52,0xaa,0x5b,0x5b,0x57,0x6e,0x56,0xaa,0x95,0x25,0xa5,0xaa,0xaa,0x6d,0xbb,0x4a,0xa9,0x6a,0x57,0x50,0x54,0x6b,0x91,0x4a,0xaa,0xab,0xaa,0xb6,0x55,0x55,0xaa,0xaa,0xa9,0x56,0x92,0xaa,0xaa,0x6e,0x55,0xd5,0x4a,0x6e,0x6d,0x55,0xaa,0x25,0x52,0xb7,0xaa,0x55,0xaa,0xaa,0xaa,0xb6,0xaa,0xdb,0xd5,0x55,0xaa,0x57,0xa9,0xda,0xaa,0x6d,0x55,0xaa,0xad,
|
||||
0xaa,0x55,0xaa,0xaa,0x55,0x5a,0xda,0xb5,0x55,0x5b,0x55,0xaa,0xaa,0x4a,0xab,0x49,0x24,0xaa,0xda,0x55,0xb5,0x55,0xd5,0x52,0x55,0x11,0x4a,0xb5,0x55,0x55,0xaa,0x56,0x55,0xf7,0x65,0xd5,0xaa,0xaa,0xaa,0xab,0x2a,0x5a,0x54,0x92,0x55,0xaa,0x55,0x7f,0x52,0xf6,0x5b,0xaa,0x55,0xb5,0xaa,0x75,0xaa,0x5a,0xa9,0xaa,0xaa,0xaa,0x55,0x4a,0xab,0xfa,0xda,0x95,0x6a,0x91,0xb5,0xaa,0x6f,0x55,0x5b,0x55,0x55,0xaa,0x4a,0x6a,0x56,0xf6,0x15,0x9b,0xab,0xab,0xab,0x55,0xd5,0x52,0x5f,0x57,0x6a,0xbd,0x5d,0x52,0xb6,0x07,0xaa,0x05,0xbf,0x6f,0xbf,0xd7,0x04,0xf9,0xf0,0xf4,0xfb,0xf9,0xfa,0xd5,0xea,0xe8,0x49,0xa8,0x55,0xe9,0x5a,0x55,0xaf,0xa9,0x56,0xaa,0x52,0x55,0x2a,0x95,0x6d,0xaa,0x56,0xa9,0xaa,0x11,0x55,0x55,0xaa,0xaa,0xaa,0x55,0x55,0x25,0x55,0x49,0x55,0xaa,0xa9,0x54,0x42,0x29,0x55,0x2a,0x55,0xa9,0x55,0xaa,0xaa,0x11,0x4a,0xaa,0x55,0x55,0x55,0x92,0x55,0xaa,0x55,0x92,0x48,0x25,0x54,0xaa,0x55,0x92,0x54,0xad,0x92,0x4a,0xa9,0x95,0x49,0xaa,0xaa,0x56,0xab,0xad,0x55,0x55,0x55,0xaa,0x55,0xaa,0xb5,0x55,0x5b,0x2a,0x6d,0xa9,0x6a,0xaa,0x22,0xaa,0x52,0x55,0xaa,0xee,0x55,0x55,0x55,0x55,0xbd,0xb5,0xaa,0x55,0xab,0x49,0x55,0xb6,0x52,0x5d,0xaa,0xd5,0xab,0x55,0xb7,0x25,0xaa,0xa9,0x55,0x55,0xb6,0x55,0xda,0x52,0x55,0xad,0xad,0x55,0x55,0xad,0x4a,0xdb,0x49,0x54,0xaa,0x55,0x5b,0x55,0x55,0x55,0xaa,0xad,0xaa,0x55,0x55,0xaa,
|
||||
0xbb,0x2a,0x5d,0x44,0xaa,0xb6,0x52,0xd7,0xee,0xaa,0xab,0x4a,0x52,0xaa,0xb6,0xda,0x25,0x6d,0xa8,0x69,0x51,0x55,0xaa,0x4a,0x4a,0x55,0x6e,0x55,0xb5,0x52,0xa9,0x55,0x6d,0xb6,0xab,0xdd,0x6a,0xad,0x29,0x55,0xb7,0x77,0x6a,0x5b,0x5f,0xf6,0x52,0x24,0x55,0xb7,0xad,0xdf,0x44,0xea,0x55,0x6d,0x14,0xab,0xeb,0xb5,0xbd,0x55,0x49,0x21,0xc0,0x6a,0xfe,0xf5,0x52,0x6a,0x25,0x79,0xb5,0x75,0x40,0xa4,0x5f,0x3e,0x52,0x74,0x6a,0xad,0xec,0x6a,0xff,0x6a,0x55,0x6a,0xad,0xa9,0xaa,0x09,0xea,0xaa,0xd5,0x37,0x1f,0x3f,0x0f,0x0f,0x68,0x95,0x57,0xe0,0xf1,0xf8,0xf8,0xb8,0xec,0xfd,0xa2,0xf4,0xe0,0xea,0xf8,0xfa,0xc9,0x95,0xe4,0xaa,0x84,0xaa,0x55,0xaa,0xaa,0x55,0xaa,0x45,0xaa,0x55,0x54,0xaa,0xaa,0x56,0xaa,0x4a,0xb6,0xb5,0x92,0xaa,0x89,0xaa,0xaa,0xa4,0x92,0x6a,0xaa,0x54,0x52,0x4a,0xaa,0xaa,0xa9,0xaa,0xaa,0xaa,0xaa,0x92,0x55,0xa9,0xaa,0x55,0xaa,0xd5,0x54,0xaa,0x55,0x4a,0xaa,0x55,0xaa,0xaa,0xaa,0xaa,0x6d,0x92,0x55,0x4a,0xaa,0xad,0xad,0xaa,0x55,0xae,0xae,0x95,0xb5,0xa5,0x55,0xb7,0xad,0x95,0xaa,0xaa,0x55,0x4a,0xd6,0x51,0x4c,0x55,0x52,0x4a,0xaa,0xa9,0x2a,0x2a,0x5a,0x54,0xaa,0xb5,0x55,0x90,0x4a,0x55,0x5b,0x49,0x55,0xd5,0x55,0x52,0xaa,0x4a,0xa5,0x7a,0xba,0x55,0xd6,0x2a,0x55,0xaa,0x55,0x44,0xaa,0xab,0x55,0x12,0x95,0x55,0x5a,0x5b,0xb6,0x6d,0x55,0xb5,0xaa,0xae,0x55,0xfd,0xaa,0x56,0x55,0xaa,0x55,0xaa,0xaa,0x55,
|
||||
0x55,0xdb,0xaa,0x55,0xb6,0xaa,0xab,0x52,0xaa,0xb5,0xaa,0x55,0x22,0x95,0x68,0x44,0x4a,0x42,0x99,0x45,0x54,0xaa,0x80,0x75,0x54,0x22,0xaa,0x48,0xa5,0xa4,0x52,0x94,0x5a,0x6b,0x52,0xb5,0x55,0xab,0x49,0xaa,0xf6,0x5a,0x56,0x4a,0xdb,0x55,0x91,0x49,0xda,0xab,0x52,0x95,0xaa,0xbb,0x55,0xab,0x6b,0xee,0x55,0xea,0xed,0x80,0x55,0x57,0xfe,0xbf,0x5f,0xaa,0xb7,0x54,0xeb,0x28,0xba,0xfa,0x6a,0x4a,0x5f,0x56,0x40,0x6e,0x7e,0x6a,0x4a,0x25,0x57,0x6d,0x01,0xb5,0x49,0x55,0x55,0x5b,0x7b,0x6a,0x29,0x56,0x52,0xd4,0xdd,0x55,0x55,0x55,0x55,0x95,0x5d,0x4a,0x4a,0xaa,0xaa,0xb4,0x55,0x55,0xf1,0xde,0xaf,0x45,0xaa,0xea,0xeb,0x55,0x55,0xaa,0x55,0x55,0x2a,0xa5,0xb6,0x5a,0x55,0x45,0x54,0x2a,0xd5,0xdf,0x55,0x55,0x56,0xd6,0x8a,0x55,0xb7,0xaa,0x4b,0xa8,0x5a,0x92,0xaa,0xb1,0xb3,0x52,0xaa,0xaa,0x55,0x4a,0x6a,0x55,0x55,0x4a,0x29,0xa5,0x55,0xaa,0xaa,0x55,0xaa,0x09,0xb4,0x12,0x54,0xaa,0xab,0x55,0x55,0x54,0xaa,0xaa,0xdf,0xaa,0x52,0x4a,0xd5,0x89,0xaa,0x41,0x5a,0x95,0x95,0x55,0xab,0x4a,0x8a,0xad,0xad,0xdd,0xaa,0x49,0x55,0x14,0x4a,0x55,0xb5,0xb5,0xaa,0x25,0x55,0x95,0x42,0xab,0x54,0x95,0x55,0x55,0x55,0x25,0xa9,0xaa,0xaa,0x55,0x55,0xaa,0xaa,0x55,0x55,0xaa,0x55,0x92,0x55,0x55,0xaa,0xaa,0xa5,0x55,0x55,0x6d,0x55,0x55,0xaa,0x55,0xaa,0xb5,0x55,0x6d,0xaa,0x55,0xaa,0xaa,0x55,0x55,0x25,0xad,0xaa,0x55,0xaa,0xa9,0x55,0x4a,
|
||||
0xdd,0x52,0x55,0xaa,0x55,0xa9,0x55,0x96,0xb6,0x52,0xb6,0x25,0xaa,0x54,0xb5,0x5a,0x45,0xab,0x6f,0x52,0xaa,0x76,0x52,0x6d,0x55,0xaa,0xaa,0xaa,0x41,0xd2,0x92,0x49,0x52,0xa8,0xab,0x49,0x25,0xab,0x52,0xb2,0xbd,0x77,0xdd,0x69,0xa8,0x55,0xd5,0xd5,0xd5,0xff,0xb6,0xdb,0x89,0xdb,0xa9,0x55,0x16,0x57,0x7d,0xf7,0x7e,0xaa,0xaa,0x8b,0xeb,0xcb,0x5b,0xaa,0xaf,0xab,0xdb,0x09,0xc0,0xdb,0xfe,0x4b,0x88,0x84,0xd6,0xfa,0xb5,0xe0,0xf8,0x05,0x80,0x52,0x02,0x95,0x49,0x24,0x92,0xab,0x2a,0xa5,0x55,0xaa,0xd5,0x92,0xa9,0x94,0xaa,0x55,0x49,0x57,0xab,0xeb,0xaa,0x55,0xaa,0xaa,0x5a,0xea,0xab,0xa2,0x15,0x68,0x81,0xa4,0x55,0xaa,0x55,0x95,0xb5,0xa5,0x6b,0x52,0xaa,0xaa,0xd5,0xd5,0xaa,0x55,0x56,0x56,0x91,0x55,0x57,0x57,0x05,0x55,0xd4,0xd5,0x5f,0xd5,0xa9,0x54,0x53,0xaa,0x55,0xaa,0xaa,0x6d,0x52,0xaa,0x55,0x92,0x55,0xaa,0x55,0x52,0xaa,0x4a,0x55,0xaa,0x5b,0xaa,0x54,0xa5,0xaa,0xaa,0x55,0xaa,0x4a,0xaa,0x94,0x0a,0x2a,0x49,0x56,0x76,0xaa,0xaa,0x05,0x69,0x2a,0xaa,0xaf,0xaf,0xa9,0x94,0x55,0x51,0xaa,0x94,0xa2,0x5a,0xaa,0xaa,0xd4,0x58,0x26,0x56,0x25,0x54,0xaa,0xad,0x8a,0x6e,0x55,0x4a,0xaa,0xaa,0xaa,0xab,0xa5,0x55,0x55,0x92,0x55,0xaa,0x55,0x54,0x25,0x54,0xb5,0x55,0x55,0xd5,0xaa,0xa5,0x54,0xaa,0x54,0x57,0xa4,0xa5,0x94,0xaa,0xad,0xab,0xab,0x55,0x5a,0x4a,0x55,0x55,0xb5,0x55,0xaa,0x54,0x56,0xad,0x55,0xb5,0xb5,0x55,
|
||||
0xb6,0x55,0xaa,0x6a,0x95,0x55,0xdd,0x55,0x91,0x55,0x55,0xdb,0x55,0x55,0x4a,0xaa,0x20,0x56,0x95,0xa8,0xfa,0xd2,0x55,0xaa,0x90,0xaf,0x50,0xb5,0xdb,0xda,0x55,0xaa,0xaa,0x55,0xaa,0x55,0x6e,0xef,0x52,0x2a,0x2a,0xa1,0x56,0x11,0xef,0xde,0xd6,0xa0,0xb6,0xaa,0xfe,0xaa,0xbb,0x44,0x5b,0x02,0x15,0xaa,0x52,0x5f,0x7b,0x48,0xbf,0xbc,0x55,0xfd,0xde,0xbd,0xaf,0xaf,0xd0,0xbf,0x28,0xaa,0x6f,0xfe,0xfd,0xfa,0x8d,0xea,0x69,0x21,0xb7,0xaf,0xab,0x54,0xaa,0x94,0xda,0xda,0xda,0xf0,0x96,0x15,0x5b,0x55,0xb5,0x55,0x55,0x92,0xa4,0xb5,0x55,0x56,0xab,0xdd,0x54,0x57,0xaa,0x55,0xae,0x2a,0x50,0xab,0x44,0x95,0xa9,0x7a,0xa9,0xb5,0x52,0x55,0x6e,0x29,0x5b,0x52,0x4a,0x52,0xa8,0x56,0xda,0x25,0x54,0xb6,0xa9,0xbe,0xbb,0xa5,0x9b,0xb6,0x49,0x24,0x5d,0xa5,0x40,0x92,0xd4,0x76,0x56,0x54,0xb5,0x55,0x92,0x4a,0xaa,0xb5,0x55,0x55,0xa4,0x2a,0x92,0xd5,0xaa,0x4a,0x55,0x6a,0xaa,0x55,0xaa,0x6b,0x94,0x52,0xa9,0x4a,0xa5,0x50,0xaa,0x55,0x95,0x55,0xaa,0x55,0xaa,0x8a,0x57,0x56,0x5e,0xae,0x51,0x55,0xaa,0x25,0x92,0xa9,0x55,0x92,0xb5,0x29,0x29,0x6a,0x29,0x6d,0xaa,0xaa,0x55,0x54,0xa2,0x95,0xdb,0x55,0x55,0x40,0x16,0x56,0x55,0x55,0x54,0x22,0x9a,0xa5,0x54,0xaa,0x55,0xab,0x94,0x55,0xaa,0x55,0x92,0x4a,0xaa,0x55,0xa5,0x55,0xb6,0x49,0x55,0x55,0xaa,0x95,0x57,0x50,0x2a,0x5a,0x4a,0x55,0xb5,0x55,0xad,0x55,0x92,0xb6,0x55,0xaa,0x55,0x54,
|
||||
0x55,0x52,0xaa,0xaa,0xaa,0x55,0x6d,0x25,0x48,0x12,0xa4,0x11,0x44,0x12,0x20,0x2a,0x91,0x44,0x92,0x24,0x12,0xa4,0x89,0x4a,0x21,0x94,0x22,0x89,0x52,0x24,0x09,0x12,0x4a,0x91,0x4a,0x25,0x10,0x84,0x52,0xaa,0x4a,0x20,0x4a,0x11,0x84,0x52,0x92,0x54,0x94,0x4a,0xaa,0x24,0x92,0x49,0x20,0xa4,0x55,0x89,0x22,0x88,0x55,0x22,0x48,0x56,0xeb,0x15,0xd5,0x54,0x02,0xa8,0x12,0x64,0xde,0xd5,0x01,0xaa,0x49,0x92,0x48,0xb5,0xaa,0x29,0x12,0x49,0x24,0x81,0x28,0xd5,0xaa,0x24,0xab,0x01,0xaa,0x24,0x92,0x5a,0x55,0xdf,0x56,0x25,0x48,0x92,0xaa,0xb6,0x12,0x52,0x76,0x25,0x92,0x49,0xaa,0xa5,0xda,0x55,0x21,0x55,0x55,0x4a,0x24,0xb7,0x59,0xa5,0x55,0x55,0x2a,0x92,0xa4,0xb5,0x25,0x52,0x55,0xaa,0xaa,0x95,0xaa,0xba,0x36,0xab,0x55,0xaa,0xa4,0x04,0x52,0xa1,0xab,0x42,0x35,0xda,0xae,0xaa,0x49,0x2a,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x52,0xa9,0xad,0xaa,0x55,0x52,0x55,0x95,0xea,0x5a,0x24,0x5b,0x49,0x4a,0x55,0xad,0xaa,0xd5,0x85,0x52,0x6e,0x54,0x56,0xaa,0xab,0x55,0x54,0xaa,0x94,0xee,0x55,0xa9,0xa8,0x55,0xab,0xaa,0xa9,0x15,0x55,0x49,0x84,0x52,0x2a,0x55,0x2a,0x4a,0x54,0xb5,0xaa,0xad,0xaa,0x55,0xaa,0xaa,0x24,0xaa,0xaa,0x55,0x55,0xd5,0xa9,0xba,0x55,0xaa,0xaa,0x55,0xaa,0x55,0x55,0xaa,0x48,0xa5,0x55,0x6a,0xaa,0xa8,0x7a,0xaa,0x01,0xaa,0x55,0xdb,0xab,0xad,0x55,0x49,0xaa,0x22,0xaa,0x48,0xab,0x45,0x55,0x55,
|
||||
0xb7,0x24,0xaa,0xaa,0x55,0x52,0x4a,0x0a,0xa1,0x24,0x11,0x4a,0x20,0x0a,0x40,0x20,0x15,0x42,0x08,0x51,0x24,0x82,0x51,0x44,0x51,0x12,0x80,0x2a,0x44,0x48,0x12,0x24,0x41,0x14,0x82,0x28,0x82,0xa8,0x12,0x21,0x4a,0x24,0x80,0x2a,0x94,0x42,0x10,0x0a,0x52,0x88,0x22,0x88,0x42,0x10,0xa5,0x92,0x49,0x24,0x92,0x88,0x22,0x88,0x22,0x84,0x52,0x29,0x80,0x25,0x94,0x42,0x28,0x92,0x49,0x24,0x25,0x88,0x22,0x91,0x48,0x96,0x42,0x10,0x45,0x10,0x44,0x29,0x92,0x49,0xa4,0x12,0x44,0x91,0x4a,0x44,0x11,0x24,0x89,0x44,0x22,0x94,0x11,0x44,0x11,0x95,0x20,0x84,0x2a,0x49,0x22,0x29,0x44,0x52,0x49,0x84,0x52,0x28,0x45,0x12,0x40,0x52,0x09,0x44,0xa9,0x24,0x89,0x42,0x29,0x41,0x14,0xa2,0x49,0x12,0x49,0x20,0x4a,0x55,0x49,0x24,0x49,0x24,0x11,0x44,0xaa,0x24,0x52,0x24,0x92,0x24,0x49,0x92,0x44,0x52,0x88,0x22,0x88,0x55,0x22,0x88,0x24,0x22,0x95,0x40,0x95,0x20,0x4a,0x90,0x45,0x24,0x55,0x48,0x12,0x44,0x90,0x4a,0x24,0x2a,0x81,0x28,0xa6,0x92,0x48,0x92,0x40,0x4a,0x10,0xa5,0x12,0x80,0x54,0x92,0x44,0xaa,0x95,0x4a,0x20,0x95,0x40,0x95,0x42,0xaa,0xaa,0x48,0x92,0x25,0x54,0x21,0x88,0x92,0xaa,0xaa,0x54,0x25,0x91,0x24,0x92,0x5b,0x95,0xaa,0xaa,0x49,0x24,0x49,0x84,0x56,0x56,0x24,0x92,0x24,0x49,0x22,0x95,0xaa,0xd6,0x4a,0x91,0x55,0x49,0x24,0x42,0xaa,0xaa,0xdb,0x20,0x4a,0x29,0x44,0x12,0xdb,0xb5,0x92,0x49,0x92,0x49,0x25,0x90,0xb5,
|
||||
0xb5,0x55,0x5a,0x49,0x54,0x12,0x40,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
|
||||
0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
|
||||
0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
|
||||
0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,0xd1,0x00,0x00,0x0f,0xd1,0x00,0x01,0x0f,0xd1,0x00,0x02,0x0f,0xd1,0x00,0x03,0x0f,0xd1,0x00,0x04,0x0f,0xd1,0x00,0x05,0x0f,0xd1,0x00,0x06,0x0f,0xd1,0x00,0x07,0x0f,0xd1,0x00,0x08,0x0f,0xd1,0x00,0x09,0x0f,0xd1,0x00,0x0a,0x0f,0xd1,0x00,0x0b,0x0f,0xd1,0x00,0x0c,0x0f,0xd1,0x00,0x0d,0x0f,0xd1,0x00,0x0e,0x0f,0xd1,0x00,0x0f,0x0f,0xd1,0x00,0x10,0x0f,0xd1,0x00,0x11,0x0f,0xd1,0x00,0x12,0x0f,0xd1,0x00,0x13,0x0f,0xd1,0x00,0x14,0x0f,0xd1,0x00,0x15,0x0f,0xd1,0x00,0x16,0x0f,0xd1,0x00,0x17,0x0f,0xd1,0x00,0x18,0x0f,0xd1,0x00,0x19,0x0f,0xd1,0x00,0x1a,0x0f,0xd1,0x00,0x1b,0x0f,0xd1,0x00,0x1c,0x0f,0xd1,0x00,0x1d,0x0f,0xd1,0x00,0x1e,0x0f,0xd1,0x00,0x1f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x93,0xea,0xd3,0xda,0xa5,0xb3,0xdb,0xd3,0xea,0x93,0xd3,0xb9,0xa5,0xea,0xd3,0xea,0xea,0x93,0xdb,0xb3,0xdb,0xea,0x93,0xea,0xea,0xda,0xe3,0xda,0xea,0xea,0xda,0xea,0xea,0xda,0xea,0xea,0xe6,0xea,0xea,0xea,0xea,0xea,0xdb,0xea,0xea,0xea,0xdb,0xea,0xb1,0xea,0xdb,0xea,0xea,0xb1,0xe9,0xeb,0xb1,0xea,0xea,0xeb,0xeb,0xdb,0xeb,0xeb,0xb1,0xeb,0xea,0xb1,0xe9,0xb1,0xeb,0xeb,0xb1,0xeb,0xb1,0xeb,0xeb,0xeb,0xeb,0xeb,0xb1,0xeb,0xb1,0xeb,0xeb,0xeb,0xeb,0xeb,0xb1,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xb1,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xb1,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xfb,0xb1,0xeb,0xb1,0xeb,0xeb,0xeb,0xeb,0xeb,0xb1,0xeb,0xb1,0xeb,0xb1,0xeb,0xeb,0xeb,0xb1,0xeb,0xeb,0xea,0xb1,0xeb,0xeb,0xeb,0xb1,0xb1,0xb4,0xb1,0xea,0xb1,0xdb,0xcb,0xea,0xea,0xeb,0xdb,0xea,0xea,0xb1,0xeb,0xea,0xea,0xdb,0xea,0xea,0xea,0xeb,0xdb,0xea,0xea,0xda,0xea,0xea,0xea,0xdb,0xea,0xea,0xda,0xe3,0xb9,0xa5,0xea,0xea,0xea,0xea,0x93,0xea,0xda,0xe3,0xea,0xdb,0xea,0xea,0xd3,0xea,0xa5,0xea,0xdb,0xe3,0xda,0xea,0xd3,0xda,0xa5,0xea,0xd3,0xdb,0xd3,0x93,0xb5,0x93,0xd3,0xea,0xa5,0xa5,0xea,0x93,0xa5,0xb3,0xd3,0xb3,0xd3,0xea,0xd3,0x93,0xd3,0xea,0xd3,0x93,0xa5,0x93,0xb5,0xd3,0x93,0xa5,0xd3,0xb3,0xd3,0x93,0xa5,0x93,0xd3,0x93,0xd3,0xea,0xd3,0x93,0xd3,0xd3,0x93,0xd3,0xd3,0x93,0xd3,0xea,0xd3,0xd3,
|
||||
0x93,0xd3,0x93,0xd3,0x93,0xd3,0x93,0xea,0xe6,0xb3,0xda,0xea,0xa5,0xea,0xa5,0xda,0xea,0x93,0xeb,0x93,0xea,0xdb,0xea,0xda,0xea,0xea,0x93,0xeb,0xea,0xda,0xeb,0xea,0xea,0xea,0xda,0xeb,0xea,0xea,0xdb,0xdb,0xea,0xea,0xea,0xea,0xb9,0xdb,0xeb,0xea,0xb1,0xeb,0xb9,0xeb,0xea,0xb9,0xeb,0xb1,0xeb,0xdb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xfb,0xeb,0xeb,0xeb,0xfb,0xfb,0xfb,0xeb,0xfb,0xfb,0xfb,0xeb,0xfb,0xfb,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xeb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xeb,0xfb,0xfb,0xfb,0xb1,0xfb,0xb1,0xfb,0xb1,0xeb,0xeb,0xfb,0xfb,0xfb,0xfb,0xfb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xfb,0xfb,0xe6,0xcb,0xb6,0xb3,0xe6,0xcb,0xb6,0xea,0xba,0xeb,0xb9,0xeb,0xb9,0xeb,0xeb,0xeb,0xeb,0xea,0xeb,0xeb,0xeb,0xdb,0xeb,0xb1,0xea,0xea,0xdb,0xeb,0xdb,0xeb,0xea,0xeb,0xdb,0xea,0xea,0xea,0xdb,0xea,0xea,0xea,0xea,0x93,0xeb,0xdb,0xea,0xea,0xea,0xea,0xea,0xea,0xd3,0xb1,0xea,0xda,0xea,0xea,0xea,0xdb,0xb3,0xdb,0xe3,0xda,0xea,0xea,0xd3,0xea,0xda,0xe3,0xda,0xea,0xa5,0xa5,0xea,0xa5,0xa5,0xb5,0xa5,0xd3,0xea,0xea,0xd3,0xea,0xd3,0xea,0xd3,0xea,0xd3,0xea,0xea,0xd3,0xda,0xd3,0xea,0xd3,0xea,0xd3,0x93,0xb5,0x93,0xd3,0xea,0xd3,0xda,0xe3,0x93,0xd3,0x93,0xa5,0x93,0xe3,0xda,0xd3,0xd3,
|
||||
0x93,0xd3,0xea,0xd3,0x93,0xd3,0x93,0xea,0xa5,0xea,0xdb,0x93,0xea,0xea,0xda,0xda,0xea,0xea,0xea,0xda,0xea,0xea,0xea,0xea,0xdb,0xea,0xea,0xea,0xdb,0xea,0xea,0xea,0xea,0xdb,0xdb,0xea,0xea,0xeb,0xdb,0xea,0xb9,0xeb,0xb9,0xeb,0xdb,0xb1,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xb1,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xfb,0xeb,0xfb,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xb1,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xb1,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xb1,0xeb,0xb6,0xcb,0xb6,0xb6,0xcb,0xdb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xfb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xb1,0xeb,0xb9,0xeb,0xb1,0xeb,0xb9,0xeb,0xdb,0xeb,0xdb,0xea,0xeb,0xea,0xeb,0xdb,0xdb,0xdb,0xea,0xea,0xea,0xea,0xdb,0xdb,0xea,0xea,0x93,0xeb,0xdb,0xea,0xea,0xea,0xda,0xda,0xe3,0xb9,0xea,0xa5,0xea,0xdb,0xea,0xea,0x93,0xea,0xda,0xea,0x93,0xea,0xea,0xd3,0xea,0xdb,0xb3,0xdb,0xea,0xea,0xea,0xda,0xb3,0xb5,0x93,0xea,0xea,0xea,0xea,0xea,0xa5,0xa5,0xea,0xea,0xea,0xa5,0xea,0xda,0x93,0xea,0xa5,0xea,0x93,0xea,0xda,0xda,0xd3,0xea,0xa5,0xea,0xd3,0xea,0x93,0x93,
|
||||
0xb5,0xa5,0xa5,0xea,0xd3,0xea,0x93,0xea,0xea,0xda,0xea,0xea,0xea,0xdb,0xea,0xdb,0xea,0xea,0xdb,0xdb,0xea,0xea,0xdb,0xea,0xdb,0xdb,0xea,0xb1,0xea,0xb9,0xb9,0xdb,0xb1,0xeb,0xeb,0xb9,0xb9,0xeb,0xb1,0xeb,0xb1,0xeb,0xeb,0xb1,0xb1,0xeb,0xeb,0xeb,0xb1,0xeb,0xeb,0xb1,0xeb,0xfb,0xfb,0xb1,0xeb,0xeb,0xfb,0xfb,0xfb,0xfb,0xfb,0xb1,0xfb,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xeb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xfb,0xfe,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xf1,0xfe,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xf1,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xf1,0xf1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xfe,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xf1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xf1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xfb,0xb6,0xcb,0xb6,0xb3,0xfb,0xfa,0xe6,0xfa,0xfb,0xb1,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xeb,0xb1,0xfb,0xfb,0xb1,0xfb,0xfb,0xfb,0xeb,0xeb,0xb1,0xb6,0xb1,0xe1,0xb1,0xb1,0xeb,0xb1,0xeb,0xeb,0xdb,0xeb,0xfb,0xfb,0xea,0xb1,0xdb,0xeb,0xeb,0xeb,0xfb,0xb1,0xeb,0xea,0xea,0xeb,0xeb,0xeb,0xfb,0xfb,0xea,0xea,0xea,0xb1,0xeb,0xb1,0xfb,0xb1,0xea,0xdb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xb1,0xea,0xeb,0xea,0xb1,0xeb,0xeb,0xda,0xea,0xdb,0xea,0xdb,0xea,0xeb,0xda,0xb3,0xea,0xda,0xea,0xea,0xeb,0xea,0xd3,0xba,0xb3,0xea,0xdb,0xb3,0xdb,0x93,0xea,0xd3,0xea,0xdb,0xb3,0xdb,0xb3,0xd3,0xda,0xd3,0xea,
|
||||
0xda,0xb3,0xdb,0x93,0xda,0xd3,0xea,0xea,0xea,0xdb,0xba,0xea,0xba,0xdb,0xba,0xdb,0xea,0xeb,0xb9,0xb9,0xeb,0xb1,0xb1,0xb1,0xeb,0xb9,0xb1,0xfb,0xeb,0xfb,0xfb,0xb1,0xeb,0xeb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xfb,0xf1,0xfb,0xfe,0xfe,0xfb,0xfe,0xfb,0xfb,0xf1,0xfe,0xfe,0xf1,0xfb,0xf1,0xf1,0xfe,0xf1,0xfe,0xf1,0xfe,0xfe,0xf1,0xf1,0xf1,0xfe,0xfe,0xf1,0xf1,0xf1,0xf1,0xf1,0xfe,0xf1,0xf1,0xf1,0xfe,0xfe,0xfe,0xfe,0xf1,0xf1,0xf1,0xf1,0xf1,0xf1,0xfb,0xfe,0xfb,0xfb,0xe6,0xfa,0xfc,0xf1,0xfe,0xf1,0xf1,0xf1,0xf1,0xfe,0xf1,0xfb,0xfe,0xf1,0xfe,0xfe,0xf1,0xfe,0xf1,0xf1,0xfb,0xfb,0xfb,0xfe,0xfb,0xfb,0xfb,0xcb,0xe6,0xec,0xb6,0xb1,0xec,0xb6,0xec,0xfb,0xfb,0xfb,0xfb,0xfb,0xb1,0xfb,0xfb,0xfb,0xb1,0xe6,0xec,0xa1,0xb6,0x31,0x61,0xb1,0xb1,0x61,0x31,0x61,0xa1,0x61,0xa1,0xfb,0xfb,0xfb,0xcb,0xb6,0xb1,0xb1,0xb6,0xfb,0xfb,0xb1,0xb1,0xeb,0xb1,0xeb,0xb1,0xfb,0xb1,0xb1,0xeb,0xeb,0xb1,0xb1,0xdb,0xb1,0xeb,0xdb,0xdb,0xea,0xda,0xeb,0xb1,0xea,0xdb,0xda,0xea,0xea,0xda,0xea,0xea,0xea,0x93,0xea,0xda,0xea,0x93,0xb9,0xda,0xda,0xea,0x93,0xea,0xda,0xb3,0xda,0xea,0x93,0xdb,0x93,0x93,0xea,0xda,0x93,0xea,0xea,0xd3,0xda,0xda,0x93,0xea,0x93,0xda,0xda,0xd3,0xba,0xd3,0xa9,0xd3,0xba,0x93,0x93,
|
||||
0x93,0x93,0x93,0xdb,0xa3,0xda,0x93,0xdb,0xdb,0xba,0xea,0xba,0xb9,0xea,0xba,0xb9,0xeb,0xb1,0xb9,0xba,0xb1,0xb9,0xb9,0xfb,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xfb,0xb1,0xfb,0xfb,0xb1,0xb1,0xb1,0xb1,0xfb,0xfb,0xfb,0xb1,0xb1,0xb1,0xb1,0xb1,0xfb,0xfb,0xfb,0xb1,0xfb,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xfb,0xf1,0xf1,0xfb,0xfb,0xfb,0xfb,0xf1,0xf1,0xf1,0xfe,0xf1,0xf1,0xfe,0xfb,0xfe,0xfe,0xfe,0xf1,0xf1,0xf1,0xf1,0xfe,0xf1,0xfe,0xf1,0xf1,0xfe,0xf1,0xfe,0xf1,0xfe,0xfe,0xf1,0xf1,0xfe,0xfe,0xfb,0xfa,0xf6,0xfa,0xfd,0xf3,0xf6,0xfa,0xfc,0xf6,0xf1,0xf1,0xfe,0xf1,0xf1,0xfe,0xfb,0xf1,0xfb,0xfe,0xfe,0xfb,0xf6,0xfc,0xe6,0xa1,0xfa,0xe1,0xe1,0xb1,0xb1,0xb1,0xf6,0xe1,0xe6,0xb1,0xcb,0xe6,0xb1,0xa1,0xb1,0xe1,0xfb,0xb1,0xe1,0xb1,0xe1,0xf6,0xca,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xc6,0xa1,0x81,0xa1,0xa1,0xb6,0xba,0xb1,0xb9,0xb1,0xb1,0xb1,0xfb,0xb1,0xb1,0xb1,0xb1,0xeb,0xb9,0xb1,0xb9,0xb1,0xb9,0xb9,0xb1,0xea,0xb9,0xdb,0xba,0xea,0xb9,0xba,0xea,0xea,0xda,0xba,0xea,0xda,0xba,0xdb,0xda,0xea,0xda,0xea,0xda,0xea,0xda,0xea,0xea,0xda,0xb3,0xda,0xda,0xea,0x93,0xda,0xdb,0xda,0x93,0xea,0xda,0x93,0xea,0xda,0x93,0x93,0xda,0xa5,0x93,0xda,0xa5,0xda,0xa3,0x93,0xda,0x93,0x93,0x93,0xa5,0xda,0x93,0x93,
|
||||
0x93,0x93,0x93,0xda,0x63,0xda,0x93,0xb9,0xb9,0xba,0xba,0xba,0xb9,0xba,0xb1,0xb1,0xb1,0xba,0xb9,0xba,0xb9,0xba,0xb1,0xb1,0xb1,0xb1,0xb1,0xba,0xba,0xb1,0xba,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xfb,0xb1,0xb1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfe,0xfb,0xfb,0xf1,0xf1,0xfe,0xfe,0xf1,0xfe,0xfe,0xf1,0xf1,0xf1,0xfe,0xf1,0xfe,0xf1,0xf1,0xfe,0xf1,0xf1,0xf1,0xfe,0xfa,0xf1,0xfa,0xe6,0xfc,0xf6,0xec,0xf6,0xcb,0xe6,0xea,0xb1,0xfa,0xe1,0xa6,0xa1,0xa1,0xb1,0xf1,0xfa,0xe1,0xf6,0xb1,0xc6,0x61,0xa1,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xa1,0xa1,0xea,0xe1,0xe6,0xfc,0xe6,0xe1,0xb1,0xf6,0xb1,0xb1,0xb1,0xb1,0xa1,0xe1,0xe6,0xfc,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xa1,0xa1,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0x61,0xa1,0x61,0xc6,0x61,0xc6,0x61,0xc6,0xcb,0xb6,0xcb,0xb1,0xb1,0xb1,0xb6,0xa1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xba,0xb1,0xb9,0xb1,0xba,0xb1,0xba,0xba,0xb1,0xba,0xb9,0xb9,0xb1,0xba,0xba,0xba,0xba,0xba,0xea,0xb1,0xb9,0xb9,0xba,0xba,0xba,0xa9,0xda,0xb1,0xb1,0xba,0xba,0xb9,0xa9,0xa9,0xa1,0xda,0xba,0xda,0x63,0xba,0xa6,0x93,0xa6,0x63,0xda,0xda,0x63,0xa6,0xa6,0x63,0xda,0xa6,0x63,0xa6,0x63,0xa6,0x63,0xa6,0x93,0xa9,0xda,0x93,0xa6,0x93,0x63,0xa6,0x93,
|
||||
0xa1,0xda,0xa3,0xda,0x63,0x63,0x63,0xba,0xb9,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xb1,0xba,0xba,0xba,0xba,0xb1,0xba,0xba,0xba,0xba,0xba,0xba,0xfb,0xb1,0xfb,0xb1,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xf1,0xfb,0xfe,0xfe,0xfb,0xf1,0xfe,0xfb,0xf1,0xfe,0xfe,0xf1,0xf1,0xf1,0xf1,0xfe,0xf1,0xf1,0xf1,0xfe,0xfe,0xf1,0xf1,0xf1,0xf1,0xfe,0xfe,0xf6,0xfc,0xf6,0xfc,0xf6,0xa1,0xb1,0xb1,0xe1,0xe6,0xec,0xe6,0xf1,0xca,0xe6,0xb1,0xe6,0xe1,0xcb,0xe6,0xe1,0xb1,0xb1,0xe6,0xa1,0x61,0x31,0x61,0xa1,0x61,0xc6,0x61,0x61,0xc6,0x61,0xa1,0x61,0xc6,0x61,0xa1,0xfc,0xf1,0xe6,0xfc,0xf6,0xf1,0xe6,0xfc,0xf6,0xb1,0xca,0xe1,0xe6,0xcb,0xe6,0xb1,0x61,0xc6,0x61,0xc6,0x61,0xa1,0xa1,0x61,0xa1,0x61,0xc6,0x61,0xa1,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xa1,0x61,0xc6,0xb1,0xa1,0xb1,0xa1,0xb1,0xb1,0xa6,0xb1,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xa9,0xba,0xb9,0xba,0xba,0xba,0xba,0xa9,0xba,0xa9,0xba,0xa9,0xa9,0xa9,0xa9,0xa9,0xa6,0xda,0xa9,0xda,0xa6,0x63,0xa6,0xa6,0x93,0xa6,0xa6,0x63,0xa3,0xa6,0x63,0xa6,0x63,0xa6,0xa6,0x63,0xa6,0x63,0x63,0x63,0xa6,0xc6,0x63,0x63,0xa6,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0xa6,0x63,
|
||||
0xa6,0xc6,0x63,0x63,0xc6,0xc6,0x63,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xb1,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfe,0xf1,0xfe,0xf1,0xfe,0xf1,0xf1,0xf1,0xf1,0xfe,0xf1,0xf1,0xf1,0xf1,0xfe,0xf1,0xf1,0xfe,0xf6,0xfc,0xe6,0xf6,0xfc,0xe6,0xc6,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xa1,0x63,0xb1,0xa1,0x91,0xb1,0xa1,0x91,0xa1,0xec,0xb1,0xe6,0xe1,0xe6,0xec,0xe6,0xb1,0xa1,0x61,0xc6,0x61,0xc6,0x61,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xa1,0x61,0xc6,0xe6,0xf1,0xe6,0xf1,0xfa,0xf1,0xe6,0xfc,0xcb,0xb1,0xe6,0xb1,0xca,0x91,0xb1,0x63,0xc6,0x61,0xa1,0xa1,0x61,0xc6,0x61,0xc6,0x61,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0x61,0xcb,0xa1,0x91,0xa1,0xa1,0xd1,0xc6,0x61,0xba,0xba,0xba,0xba,0xba,0xa1,0xa1,0xa1,0xa9,0xba,0xa9,0xa1,0xa9,0xa1,0xa8,0xa8,0xba,0xa9,0xa1,0xa8,0xa9,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0x63,0xa6,0x63,0xa6,0x63,0xa6,0x63,0xa6,0x63,0xa6,0x62,0xa6,0x63,0xa6,0x63,0xc6,0xa6,0xc6,0xa6,0xc6,0x63,0x63,0x63,0x62,0xa6,0xc6,0xc6,0x63,0x62,0xa6,0xc6,0x63,0xc6,0xc6,0x63,0xc6,0xc6,0x63,0xc6,0x63,0xc6,0xc6,0xc6,0xc6,0xc6,
|
||||
0xc6,0xc6,0xdc,0xc6,0xc6,0xc6,0xc6,0xba,0xba,0xba,0xba,0xba,0xa1,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xa1,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xfb,0xfb,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfe,0xfe,0xf1,0xf1,0xfe,0xf1,0xf1,0xfe,0xfe,0xf1,0xf1,0xf1,0xfe,0xfa,0xf1,0xf6,0xb1,0xf6,0xec,0x61,0xc6,0x61,0xc6,0x61,0x61,0xc6,0x61,0xa1,0x61,0xc6,0x61,0x61,0xa1,0x91,0xb1,0xa1,0xa1,0x91,0xb1,0xa1,0xb1,0xb1,0xe1,0x63,0xf1,0x63,0xb1,0xe6,0x61,0xc6,0x61,0x61,0xc6,0x61,0xa1,0x61,0x61,0xa1,0xa1,0xa1,0x61,0xc6,0x61,0xc6,0xe1,0xe6,0xe1,0xf6,0xec,0xf6,0xe1,0xf6,0xb1,0xc8,0xc6,0xa1,0xc6,0xb1,0xa1,0x61,0x61,0xa1,0x61,0xc6,0x61,0xc6,0x61,0xa1,0x61,0xc6,0x61,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0x61,0x31,0x61,0xc6,0x61,0xc6,0xa9,0xa6,0xba,0xa1,0xa1,0xa1,0x91,0xa1,0xa6,0xa9,0xa6,0xa6,0xa8,0xa6,0xa8,0xa6,0x63,0xa6,0xa6,0xa6,0xca,0xa6,0xa6,0xa6,0x63,0xa6,0xc6,0xa6,0xc6,0xa6,0x62,0xa6,0xc6,0xa6,0xc6,0xa6,0xc6,0xa6,0xc6,0xa6,0xa6,0xc6,0xa6,0xc6,0xa6,0xc6,0xc6,0x62,0xc6,0x63,0xc6,0xc6,0x62,0x63,0xc6,0xc6,0xc6,0x62,0xc6,0x62,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
|
||||
0xc6,0xc6,0xc6,0xc6,0xc6,0xdc,0x61,0xa1,0xba,0xba,0xba,0xba,0xa1,0xba,0xa1,0xba,0xa1,0xba,0xa1,0xba,0xa1,0xa1,0xba,0xba,0xba,0xba,0xa1,0xba,0xba,0xba,0xa1,0xba,0xba,0xba,0xba,0xba,0xb1,0xba,0xba,0xfb,0xeb,0xfb,0xfb,0xfb,0xfb,0xfb,0xb1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfe,0xfb,0xfe,0xfb,0xfb,0xfb,0xfe,0xfb,0xfe,0xf1,0xf1,0xfe,0xfe,0xf1,0xfb,0xfb,0xfc,0xf6,0xf1,0xea,0xf1,0xe6,0xa1,0xc6,0xc6,0x61,0xc6,0x61,0xa1,0xa1,0x61,0xa1,0xc1,0x61,0x61,0x31,0x61,0x31,0x61,0xc1,0xb1,0xa1,0xb1,0x61,0xa1,0xb1,0xb1,0x91,0xe1,0xc9,0xa1,0xd1,0xc6,0xa1,0xc6,0x61,0xa1,0xa1,0x61,0xc6,0x61,0x61,0xa1,0xa1,0x61,0xa1,0xa1,0x61,0xc6,0x61,0x61,0x31,0xfc,0xb1,0xf6,0xb1,0xf6,0xe1,0xcb,0xb1,0xc6,0xa1,0xc6,0xa1,0xa1,0x61,0xc6,0x61,0x61,0xc6,0x61,0x31,0x61,0x61,0xc6,0x61,0xc6,0x61,0x61,0xc6,0x61,0xa1,0x61,0xc6,0x61,0x31,0x61,0xc6,0x61,0xd1,0xc6,0x61,0x61,0xc6,0x61,0xd1,0xc6,0x61,0xa1,0xa1,0xa1,0xa1,0x61,0xa1,0xa1,0xc6,0xa1,0xc6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0x62,0xa6,0xa6,0xa6,0xc6,0xa6,0xa6,0xc6,0xa1,0xc6,0xa6,0xc6,0xa6,0xa6,0xc6,0xc6,0xa6,0xc6,0xa6,0xc6,0xa6,0xc6,0xa6,0x63,0x62,0xca,0xc6,0xc6,0xc6,0xc6,0x62,0x62,0x62,0xc6,0xc6,0x62,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xd1,0xc6,
|
||||
0xc6,0xc6,0xd1,0xc6,0xc6,0x61,0xc6,0xa1,0xba,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xba,0xa1,0xa1,0xa1,0xba,0xba,0xa1,0xa1,0xa1,0xba,0xa1,0xa1,0xba,0xba,0xa1,0xba,0xa1,0xa1,0xa1,0xba,0xfb,0xb1,0xb1,0xb1,0xba,0xba,0xa1,0xba,0xfb,0xfb,0xb1,0xfb,0xfb,0xb1,0xb1,0xb1,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xeb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfc,0xe6,0xec,0xf6,0xb1,0xe1,0xe6,0x61,0xa1,0xa1,0x61,0xa1,0xa1,0x61,0xcb,0xa1,0xa1,0x61,0xa1,0x61,0xa1,0xb1,0xa1,0x61,0x61,0x31,0xd1,0x61,0xc6,0x61,0x61,0xa1,0xb1,0xa1,0x61,0xa1,0xe1,0xa1,0xa1,0x31,0x61,0xa1,0xc6,0x61,0xc6,0x61,0xa1,0x61,0xc6,0x61,0x61,0xa1,0x61,0x31,0x61,0x61,0xa1,0x61,0x31,0x61,0xa1,0x61,0xc6,0xe6,0xb1,0xa1,0xa1,0xa1,0xa1,0xa1,0x91,0x61,0xc1,0x61,0x61,0xa1,0xa1,0x61,0xa1,0x61,0xc6,0x61,0xa1,0x61,0x31,0x61,0x31,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0x61,0xa1,0x61,0xc6,0x61,0xd1,0xc6,0x61,0xa1,0x61,0x31,0x61,0xc6,0x61,0xc6,0x61,0xc6,0xa1,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xd1,0xa6,0xa6,0xa6,0xa6,0xa6,0xa1,0x61,0xca,0xc6,0xa6,0xa6,0xc8,0xa6,0xa6,0xa6,0x62,0xa6,0xa6,0xc6,0xa6,0xc6,0xa6,0xc6,0xa6,0xc6,0xa6,0xc6,0xc6,0xca,0x61,0xc6,0xa6,0x62,0xc6,0xa6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x61,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x61,0xc6,0xc6,0xc6,0x61,0xc6,
|
||||
0x61,0xc6,0xc6,0xc6,0x61,0xc6,0xc6,0xa1,0xa1,0xa8,0xa1,0xa8,0xc6,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa8,0x61,0xc1,0xc6,0xa1,0xa1,0xa1,0xa1,0xa1,0xc6,0xc6,0x61,0xa1,0xa1,0xa1,0xa1,0xa1,0x61,0xc6,0x61,0xa1,0xa1,0xa1,0xa1,0xa1,0xc6,0xc6,0x61,0xba,0xba,0xba,0xa1,0xa1,0xa6,0xc6,0xa1,0xfb,0xb1,0xb1,0xba,0xba,0xa6,0xc6,0xc6,0xfb,0xfb,0xfb,0xba,0xa6,0xa6,0xc6,0xc6,0xa1,0xa1,0xb1,0xb6,0xcb,0xa6,0xc6,0x62,0xfa,0xfe,0xfb,0xfb,0xfb,0xa1,0xc6,0xca,0xb1,0xa1,0x61,0xa1,0x61,0xc1,0x61,0x61,0xc6,0x61,0x61,0xa1,0x61,0xc1,0x61,0x61,0x61,0x31,0x61,0x61,0x31,0x61,0xc1,0x61,0x61,0xc6,0x61,0xa1,0x61,0xc1,0x61,0xb1,0x61,0xa1,0xa1,0x61,0x31,0x61,0x61,0xc1,0x61,0x61,0xc6,0x61,0x61,0xc6,0x61,0x61,0xa1,0x61,0xc1,0x61,0xc1,0x61,0x61,0x31,0xa1,0xd1,0xa1,0xa1,0x61,0x31,0x61,0xc1,0x61,0x61,0xc6,0x61,0xc6,0x61,0x31,0x61,0x31,0x61,0xc6,0x61,0xa1,0xd1,0xc1,0x61,0xc6,0x61,0x61,0x31,0x61,0xc1,0xd1,0xc6,0x61,0x61,0xc6,0x61,0xc1,0xd1,0xc6,0xc6,0x31,0x61,0xa1,0x61,0xa1,0xd1,0xc6,0x61,0x61,0xa1,0xa1,0xc6,0xc6,0xa1,0xa1,0xdc,0xa6,0xa6,0x62,0xa6,0xc6,0x61,0xc6,0xc6,0xc6,0xa6,0x62,0xc6,0xc6,0x61,0xc6,0x61,0xc6,0xc6,0xa6,0xc6,0x61,0xa1,0xc6,0xd1,0xc6,0xc6,0xc6,0xc6,0x61,0xc6,0x61,0xc6,0xc6,0xc6,0xc6,0x61,0xc6,0x61,0xc6,0xd1,0xa1,0xc6,0xc6,0x61,0xa1,0x31,0x61,0x31,0xc6,0xc6,0x61,0xa1,0xa1,0xd1,0xc6,0xd1,0xc6,
|
||||
0x61,0xc6,0x61,0x31,0xd1,0x31,0x61,0xd1,0xc6,0x61,0xc6,0xc6,0x41,0xc6,0x61,0x61,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0x61,0xc6,0x61,0xc6,0xc6,0xdc,0x61,0xc6,0xd1,0xc6,0xc6,0x61,0xdc,0xc6,0x61,0xdc,0x61,0xc6,0xc6,0xc6,0x61,0xdc,0xc6,0x61,0xdc,0xc6,0xc6,0xc6,0x61,0x63,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xa1,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0x61,0xc6,0xc6,0x63,0xc6,0xc6,0xca,0xc6,0xc6,0x61,0xc6,0x61,0xc6,0x61,0x61,0xa1,0xc6,0xc6,0x61,0x61,0xc1,0x61,0x61,0xc1,0xa6,0xc6,0x62,0xa1,0xa1,0xc1,0xa1,0x61,0xfb,0xea,0xfa,0xa1,0x61,0x61,0x61,0xcb,0xe1,0xb1,0xe6,0xa1,0xb1,0x61,0x61,0xa6,0xc6,0xc1,0x61,0xc1,0xa1,0xc1,0x61,0x63,0xc6,0x61,0xc1,0x21,0x61,0xc1,0x63,0x63,0xc6,0x61,0xa1,0xc1,0x61,0x21,0x61,0xc6,0xa1,0x61,0xc1,0x61,0x61,0xc1,0x61,0xa1,0x61,0xc1,0xd1,0x61,0xc1,0xc1,0xc6,0xc6,0xd1,0xc1,0x61,0x21,0xd1,0xc1,0xc6,0xc6,0xd1,0xc1,0x61,0x61,0x21,0x41,0xc6,0xd1,0xa1,0xd1,0xc1,0xd1,0x61,0xc1,0xd1,0xc6,0x61,0xd1,0xc1,0x61,0x41,0x41,0x31,0xd1,0xa1,0x31,0xd1,0xd1,0x41,0xc1,0x61,0x31,0xd1,0x31,0x61,0x41,0xd1,0xc1,0xd1,0xc6,0x51,0xc6,0x61,0xc4,0x61,0xc6,0xdc,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0x41,0x31,0xd1,0xc6,0xd1,0xc6,0xd1,0x31,0xd1,0x41,0xc6,0x61,0xc6,0x41,0x61,0x31,0xd1,0xc6,0x41,0xa1,0x31,0xd1,0x31,0xd1,0xc6,0xd1,0xc6,0xd1,0x31,0xd1,0x31,0x61,0x51,0x31,0xd1,0x31,0x61,0x51,0xc6,0x61,0xc4,0xc4,
|
||||
0x61,0x31,0xd1,0x31,0xd1,0x31,0xd1,0xdc,0x61,0x31,0xd1,0x31,0xd1,0xc6,0xa1,0xc6,0xd1,0xc1,0xd1,0xc6,0xd1,0xc6,0x61,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0x31,0xd1,0xc6,0x61,0xdc,0xc6,0x61,0xc6,0xd1,0xc6,0xd1,0xc6,0x61,0xdc,0xc6,0xc6,0xd1,0xc6,0x61,0xc6,0xd1,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xc6,0xd1,0x63,0xc6,0xc6,0xc6,0xd1,0xa1,0x31,0x61,0xc6,0xc6,0xc6,0xc6,0x61,0x21,0x41,0xc1,0xc1,0x61,0x31,0xd1,0xc1,0xd1,0x21,0xc1,0xc1,0x21,0x21,0x61,0xc1,0x31,0x41,0x61,0xc1,0xc1,0xc1,0xc1,0x61,0x61,0xc1,0xd1,0x61,0x21,0x21,0x61,0x21,0x61,0x41,0x31,0x41,0x21,0x21,0xd1,0xc1,0x61,0x61,0x41,0xc1,0x21,0x21,0x61,0xc1,0x41,0x61,0x41,0x31,0x21,0x21,0x61,0x41,0x41,0x21,0x61,0xc1,0x21,0x61,0x21,0x61,0x61,0xc1,0x41,0xc1,0x21,0x61,0x41,0xc1,0xc1,0xc1,0x61,0x41,0xc1,0x21,0x21,0x61,0xc1,0x61,0x41,0xc1,0x21,0x21,0x21,0x61,0xc1,0x41,0xc1,0x21,0x21,0x61,0x61,0x61,0xc1,0x61,0x41,0xc1,0xd1,0x61,0x31,0xd1,0xc6,0xc6,0xd1,0xc6,0x41,0xc6,0x61,0xd1,0x31,0xc6,0x41,0xc6,0x61,0xdc,0xd1,0xc6,0x61,0xc4,0x61,0x31,0xd1,0xc6,0xd1,0x31,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0x31,0xc6,0xd1,0xdc,0xd1,0x31,0xd1,0xc6,0xd1,0xd1,0x31,0xd1,0xc6,0x41,0xc6,0xd1,0x31,0x31,0x61,0xc6,0x41,0xa1,0xd1,0x31,0xd1,0x61,0xd1,0x31,0x61,0xc4,0x61,0xd1,0x31,0xc1,
|
||||
0xd1,0x31,0x61,0x31,0xd1,0xc1,0xd1,0xd1,0xc6,0xc6,0xc6,0xdc,0x61,0xc6,0xd1,0xdc,0xc6,0xd1,0x63,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xc6,0x64,0xc6,0xc6,0xc6,0xc6,0xc6,0xdc,0x61,0x63,0x63,0xc6,0xdc,0xc6,0xc6,0xc6,0xc6,0xdc,0xa6,0xc6,0xc6,0x63,0xc6,0xc6,0xdc,0xa6,0x63,0x63,0x83,0xa6,0x63,0xc6,0x63,0x63,0xa3,0xa6,0x63,0xda,0xc6,0x63,0xc6,0x63,0xb6,0xda,0xda,0xa6,0xc6,0x63,0x63,0xda,0xba,0xa6,0x63,0xba,0x63,0x63,0x63,0xa6,0xba,0xa6,0xc6,0xa6,0x61,0x31,0x61,0x61,0xa1,0x61,0xc1,0x61,0x21,0x21,0x41,0xc1,0xc1,0x61,0x31,0x61,0x61,0x61,0xd1,0xc1,0xc1,0x61,0x61,0x31,0x21,0x21,0xc1,0x21,0x61,0x41,0x41,0x61,0xc1,0x21,0xc1,0xd1,0x61,0x61,0xd1,0x31,0x21,0x21,0xc1,0x61,0x41,0xd1,0x61,0xc1,0x21,0x21,0xc1,0xd1,0x41,0xc1,0x61,0x61,0x41,0x21,0x41,0x61,0x21,0xc1,0x61,0xd1,0x21,0x21,0xc1,0x61,0x21,0xc1,0x41,0x61,0x61,0xc1,0xc1,0x61,0x41,0x21,0xc1,0xd1,0xc1,0xc1,0xc1,0xd1,0x21,0x61,0x41,0xa1,0x21,0xc1,0x41,0x61,0x41,0xc1,0x61,0x41,0xd1,0xc6,0x62,0xa1,0xc6,0xd1,0x61,0x31,0xc6,0x64,0xc6,0xc6,0xd1,0x63,0xc6,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xdc,0xc6,0x31,0xc6,0xdc,0x61,0x63,0xdc,0xc6,0xd1,0xd1,0xc6,0xc6,0xd1,0xc6,0x63,0xc6,0xd1,0x31,0xd1,0xc6,0xd1,0xc6,0xc6,0xdc,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0x62,0xc6,0xd1,0xc6,0xd1,0xc6,0x41,0xc6,0xc6,0xd1,0xc6,0xd1,0xc1,0xd1,0x31,0xc6,0x61,0xdc,0xc6,0x31,
|
||||
0xd1,0x31,0xd1,0x31,0xc6,0xdc,0xd1,0xc6,0xd1,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0x61,0xdc,0xc6,0x41,0xc6,0xc6,0xd1,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xd1,0xc6,0x63,0xc6,0xd1,0xc6,0xc6,0xc6,0xd1,0xc6,0x63,0xc6,0xc6,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0x83,0xc6,0xc6,0xdc,0xc6,0x61,0xdc,0xc6,0x63,0x63,0x63,0xc6,0xc6,0xc6,0xd1,0xba,0x63,0xc6,0x63,0x63,0xc6,0xc6,0xd1,0xa1,0xc6,0xc6,0x63,0xc6,0xc6,0x91,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc1,0x61,0x61,0xc6,0x61,0xa1,0xc6,0x61,0x61,0xc1,0x61,0xc6,0x61,0xa1,0x31,0x61,0x61,0xc1,0x61,0x61,0xb1,0x31,0x61,0xa1,0xc1,0x61,0x41,0x61,0xc6,0x61,0x61,0xc1,0x61,0x61,0xc1,0x61,0x61,0xc6,0x61,0x61,0x61,0xc1,0x61,0x61,0x31,0x61,0xa1,0x61,0xc1,0x61,0x41,0x61,0xc6,0x61,0xa1,0x61,0xc1,0x61,0xc1,0xd1,0xc1,0x61,0xc1,0x61,0xc1,0x61,0x61,0x31,0x61,0x31,0x61,0x61,0x61,0xa1,0xa1,0x41,0x61,0xc1,0x61,0x61,0xc1,0x61,0x31,0x61,0x61,0xc1,0x61,0xd1,0xa1,0x61,0x31,0x61,0xd1,0x31,0x61,0xc1,0x61,0x31,0x61,0xc1,0xd1,0xa1,0xd1,0x31,0x61,0xc6,0x61,0xc6,0xd1,0xc6,0x31,0xc6,0xc6,0x63,0xc6,0x64,0xc6,0xc6,0xd1,0xc6,0xc9,0xc6,0xdc,0x61,0xdc,0xd1,0xc6,0xc6,0x31,0x63,0xc6,0x41,0xc6,0xc6,0xd1,0x31,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0xc6,0xdc,0x61,0xdc,0xd1,0xc6,0xd1,0x31,0xdc,0xc6,0xd1,0xc6,0x61,0xc4,0x61,0x51,0xd1,0x31,0xd1,0xc6,0xd1,0xc6,0xd1,0x31,0xc6,
|
||||
0xd1,0x31,0xc6,0xd1,0x31,0xd1,0xc6,0xd1,0xc6,0x63,0xc6,0xc6,0x61,0xdc,0x61,0xc6,0xc6,0xc6,0x63,0xd1,0xc6,0xc6,0xd1,0xc6,0xdc,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0x63,0xc6,0x63,0xc6,0x63,0xc6,0xd1,0xc6,0xd1,0xc6,0x63,0xc6,0xc6,0xc6,0xd1,0x63,0x61,0xca,0x63,0x63,0xc6,0xc6,0xd1,0xc6,0x63,0x63,0xa6,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0x63,0xa6,0x93,0xc6,0xc6,0xc6,0xdc,0xc6,0x62,0x63,0xb6,0xc6,0xd1,0x63,0xc6,0xd1,0x63,0xa6,0xc6,0x63,0xc6,0x61,0xc6,0xc6,0x61,0x63,0xb1,0x61,0x31,0x61,0xc6,0xa1,0x63,0xfb,0xfb,0xfe,0xa1,0x61,0xb3,0x61,0xca,0xf6,0xea,0xb1,0xa1,0xe6,0xa1,0x61,0xa1,0xe1,0xc6,0xb1,0xc6,0x61,0xc6,0xc1,0x61,0x61,0xc1,0xd1,0xc1,0x61,0x41,0x31,0x61,0xc1,0x61,0x61,0x31,0x41,0xc6,0x31,0x61,0x31,0x61,0x31,0x61,0x41,0xa1,0x41,0x61,0x31,0x61,0x31,0xd1,0xd1,0x31,0x31,0x61,0xc1,0x61,0xc1,0xd1,0x61,0x31,0xc1,0x61,0xc1,0x61,0x41,0x61,0xc1,0x61,0xa1,0xa1,0xa1,0xd1,0xc1,0x61,0x61,0x31,0x61,0x41,0xa1,0x61,0x31,0xd1,0xc1,0xd1,0x61,0x31,0x61,0x31,0xd1,0x31,0xd1,0x31,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0xdc,0xc6,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0xd1,0xc6,0xd1,0xc6,0xd1,0x31,0xd1,0xc6,0xc6,0xd1,0xc6,0xd1,0x31,0xd1,0xc6,0x61,0xd1,0xc6,0xd1,0xc6,0x41,0xc6,0x61,0xc4,0xd1,0xc6,0xd1,0x31,0x61,0xc4,0x61,0x31,0xc6,0xd1,0xc6,0xd1,0x31,0xd1,0x31,0x61,0xc6,0xd1,0x31,0xd1,0xc1,0xd1,0xc6,0xd1,0xd1,
|
||||
0xc6,0xd1,0xc6,0x41,0xd1,0xc6,0x41,0xc4,0x61,0xc6,0x63,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0x63,0xc6,0x63,0xc6,0x63,0xc6,0xd1,0xc6,0x83,0x63,0xc6,0x63,0xc6,0xc6,0xc6,0x63,0x63,0x63,0x63,0x63,0x63,0xc6,0xc6,0x63,0xa6,0x63,0x63,0xa6,0xa6,0xc6,0xc6,0x63,0xa6,0x63,0xa6,0xda,0xa6,0x63,0x63,0xda,0x63,0xa6,0x63,0xa6,0x83,0xc6,0xc6,0xba,0x63,0xa6,0xa6,0xda,0x63,0xc6,0xa6,0x63,0xa6,0xda,0xc6,0xa6,0xba,0xc6,0xa6,0x63,0x63,0xa6,0x63,0xa1,0xa6,0x63,0xd1,0x63,0xc6,0xc6,0xc6,0xa1,0xc6,0x61,0xfb,0xfa,0xe9,0xfb,0xb6,0xc6,0xc6,0x61,0xfa,0xfb,0xfa,0xfe,0xfa,0xb6,0xa1,0xa6,0xb1,0xe6,0xb1,0xba,0xb1,0x61,0xc6,0xa1,0xc6,0x61,0xc6,0x61,0x31,0x61,0x31,0x61,0x61,0xa1,0x61,0x31,0x61,0x31,0x61,0x31,0x31,0x61,0xc6,0x61,0xc6,0xd1,0xc6,0x61,0x61,0xa1,0x61,0x31,0xd1,0xa1,0xa1,0xc6,0x61,0x31,0x61,0x61,0x31,0x61,0x31,0x61,0x31,0x61,0x61,0xc1,0x61,0xd1,0x31,0x61,0x61,0x31,0x61,0x61,0xc1,0xd1,0xc1,0x61,0x31,0x61,0xa1,0xd1,0xc1,0x61,0x31,0xd1,0x61,0xc6,0xd1,0xc6,0x61,0x31,0x64,0xc1,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xdc,0x61,0x63,0xc6,0x63,0xc6,0xc6,0xd1,0x31,0xc6,0xc6,0xc6,0xd1,0xdc,0xd1,0xc6,0x61,0xdc,0xc6,0xc6,0xc6,0x61,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0x51,0xc6,0x61,0xdc,0xc6,0xd1,0xc6,0xc4,0x61,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0xc6,0x41,0xc6,0xc6,
|
||||
0xd1,0xc6,0xc6,0xd1,0xc6,0xd1,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xdc,0xc6,0xc6,0xc6,0xc6,0xdc,0xc6,0x63,0xc6,0xc6,0xdc,0xc6,0xc6,0xd1,0x83,0xc6,0x63,0x63,0xc6,0x63,0xc6,0x61,0x63,0xc6,0x63,0x63,0x63,0xc6,0x62,0x63,0xc6,0xc6,0x63,0x63,0xc6,0xc6,0xc6,0x64,0xc6,0x63,0xa6,0xa6,0x63,0x61,0xc4,0xd6,0xc6,0x63,0xa3,0xa6,0x63,0x31,0x61,0x93,0x63,0xc6,0x93,0xa6,0x63,0xd1,0xa3,0xa6,0xda,0x63,0xa6,0x63,0xc6,0xc6,0x63,0x63,0xca,0xc6,0xc6,0xc6,0x61,0xc6,0x62,0xc6,0xc6,0xc6,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xc6,0xc6,0xa1,0xc6,0x61,0xc6,0x61,0xc6,0xc6,0xc6,0xa1,0x61,0xc6,0xd1,0xc6,0x61,0xc6,0xd1,0x31,0x61,0x31,0xd1,0xa1,0x61,0xc6,0x61,0xc6,0x61,0x31,0xd1,0x61,0xc6,0x61,0xc6,0x61,0xc6,0xd1,0x31,0x61,0xc6,0x61,0x61,0xc6,0x41,0xc6,0x61,0xc6,0x61,0xc6,0x31,0x61,0xd1,0xc1,0x61,0xd1,0xa1,0x31,0x61,0x31,0x61,0xc1,0x61,0xc6,0x61,0x61,0xd1,0xa1,0x61,0xc1,0x61,0x61,0x31,0x61,0x61,0xc1,0x61,0xd1,0xa1,0xc6,0x61,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0x61,0xdc,0xc6,0xd1,0xc6,0x63,0xc6,0xc6,0xdc,0xc6,0xc6,0xd1,0xc6,0x63,0xc6,0xc6,0xdc,0xc6,0xc6,0xc6,0xc6,0xc6,0xd1,0xc6,0xdc,0x61,0x63,0xd1,0xc6,0xc6,0xd1,0x62,0xc6,0xd1,0x63,0xdc,0x61,0xdc,0xd1,0xc6,0xc6,0xc6,0xc6,0xc6,0xd1,0xc6,0xd1,0xc6,0xc6,0xdc,0x61,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0x41,0xc6,0xc6,0xc6,0xd1,
|
||||
0xc6,0xc6,0x41,0xc6,0x61,0xdc,0xc6,0xc6,0x63,0xc6,0x63,0xc6,0xc6,0xc6,0x63,0xc6,0xc6,0x63,0xa6,0xc6,0xc6,0x63,0xc6,0x62,0xc6,0xa6,0x63,0xc6,0xc6,0x63,0xc6,0xc6,0xc6,0xda,0x63,0xc6,0xc6,0x63,0xa1,0x63,0xa6,0xa9,0xa6,0xc6,0xda,0xc6,0x61,0x63,0xa6,0xa1,0x63,0x63,0xba,0x63,0xc6,0x63,0xba,0xa9,0xa9,0xa6,0xba,0xa6,0x63,0xba,0xa9,0xba,0xa9,0xa6,0xba,0x63,0xa6,0xda,0xba,0xa9,0xba,0xba,0xba,0xa6,0xa3,0xa6,0x63,0xba,0xa6,0xc9,0xba,0xc6,0xda,0xc6,0xc6,0xc6,0xc6,0x63,0xc6,0xc6,0xc6,0x61,0x62,0xc6,0xc6,0xc6,0x61,0x31,0xc6,0x61,0xc6,0x61,0xc6,0xa1,0xc6,0x61,0xc6,0x61,0x62,0xc6,0xc6,0xc1,0xc6,0xa1,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0x61,0xa1,0x61,0xc6,0x61,0x31,0x61,0xc6,0x61,0xc6,0x61,0xc6,0x61,0xc6,0xd1,0xc6,0x61,0x61,0xa1,0xa1,0xc1,0xd1,0xc6,0x61,0xc6,0x61,0x31,0x61,0xa1,0x61,0x31,0x61,0x61,0x31,0x61,0x31,0x61,0x61,0xc1,0x61,0x41,0x31,0x61,0x61,0x31,0x61,0x31,0x61,0x31,0x41,0xc6,0x61,0x61,0xc6,0xd1,0xc6,0x61,0xc6,0xd1,0xc6,0x61,0xc6,0xc6,0xc6,0xd1,0xc6,0xdc,0xc6,0xc6,0xc6,0xd1,0x63,0xc6,0xc6,0xc6,0x63,0xc6,0x51,0xc6,0x63,0xc6,0x63,0xc6,0xc6,0xd1,0x62,0xc6,0x63,0xc6,0xc6,0xc6,0xc6,0xc6,0xd1,0x62,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xc6,0xdc,0x61,0xdc,0xc6,0xc6,0xd1,0xc6,0xd1,0xc6,0xd1,0xc6,0xc6,0xdc,0xc6,0x61,0xd1,0xc6,0xdc,0x61,0xc6,0xdc,0x61,0xc6,0xd1,
|
||||
0xc6,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xc6,0xdc,0x61,0x63,0xa1,0x41,0xdc,0xc6,0xc6,0xc6,0xc6,0x63,0xc6,0x41,0x63,0xc6,0xc6,0xc6,0x63,0x63,0xa6,0x31,0x63,0xa6,0x31,0xd1,0x63,0x63,0xa6,0xc6,0x63,0xc6,0xc6,0x31,0xe6,0xa6,0xa6,0x63,0xda,0x63,0x31,0x63,0x63,0xa6,0xba,0xa6,0xba,0xa6,0x63,0xc6,0xa6,0xb9,0xc6,0xa6,0xba,0xa6,0xa3,0x63,0xba,0xba,0xa6,0xa1,0x63,0xba,0x63,0xa9,0xa6,0xb6,0xa1,0x61,0xa6,0x93,0xc6,0xa3,0xa6,0x61,0x31,0xdc,0xc6,0x61,0xc6,0x63,0xa6,0xc6,0x61,0xc4,0x61,0xc6,0x61,0xc6,0xc6,0x31,0xd1,0x31,0x61,0x31,0x61,0xc6,0xa1,0x61,0x31,0x61,0xc6,0xa6,0xc6,0xc6,0xc6,0x61,0xc6,0x61,0xc6,0x61,0x31,0x61,0xa1,0xc6,0x61,0x31,0xc6,0x61,0x31,0x61,0xa1,0x31,0x61,0xd1,0xc6,0x61,0xa1,0x61,0xc6,0xc6,0xc6,0x61,0xc6,0xa1,0xc6,0xc1,0x61,0xc6,0xd1,0xc6,0x31,0xd1,0x61,0x31,0x61,0xc1,0xd1,0x61,0xa1,0x61,0xc1,0x61,0xd1,0xc1,0x61,0x31,0xd1,0x61,0xc1,0xd1,0xa1,0x61,0x31,0xd1,0xdc,0x61,0x31,0xd1,0x61,0x31,0x61,0x31,0xdc,0x61,0xc6,0x61,0xc6,0xc6,0x41,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x63,0xc6,0xdc,0xc6,0xc6,0x63,0xd1,0xc6,0xc6,0xc6,0xc6,0xc6,0x63,0xc6,0xdc,0xc6,0xc6,0x62,0xc6,0xdc,0xc6,0xc6,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0xc6,0xc6,0xd1,0xc6,0xdc,0x61,0xdc,0xd1,0xc6,0xc6,0xd1,0xc6,0xd1,0xc6,0xc6,0xd1,0xc6,0xd1,0xc6,0xc6,0xd1,
|
||||
0xc6,0x31,0xd1,0xc6,0xc6,0xd1,0xc6,0xc1,0xd1,0x41,0xc1,0x41,0xd1,0xc1,0x41,0xc1,0xd1,0x41,0xc1,0x61,0x41,0xc1,0xd1,0xd1,0x41,0x31,0x61,0x41,0xc1,0xd1,0xc1,0xd1,0x31,0x61,0x41,0xc1,0x51,0xd1,0xc1,0x31,0xd1,0x41,0x31,0xd1,0x41,0xc1,0xd1,0xc6,0x41,0x61,0xc1,0x41,0xc1,0xd1,0x41,0xc6,0xc6,0x41,0x51,0x51,0xc1,0xd1,0x41,0x93,0x63,0x61,0xc1,0x41,0x41,0xd1,0xc1,0xdc,0x63,0xc6,0x41,0x41,0xc1,0xd1,0xc1,0x61,0x63,0xc6,0xd1,0x31,0x51,0x41,0xd1,0x61,0x63,0xc6,0xc6,0x41,0x41,0xc1,0x61,0x61,0x31,0x63,0xc6,0x41,0x41,0x61,0xc1,0xc6,0x41,0xc6,0x63,0x31,0x41,0x61,0xc1,0x31,0x61,0xc1,0xc6,0x51,0xc1,0x61,0x41,0x61,0x31,0xd1,0xc6,0xd1,0x31,0x61,0x41,0xc6,0x61,0x31,0xd1,0xc6,0x61,0x41,0xc1,0xc6,0x61,0x31,0xd1,0xc6,0xc6,0x41,0x41,0x61,0xc6,0xd1,0x61,0x31,0x61,0x31,0x41,0x31,0x61,0x31,0x61,0x41,0xc6,0x61,0xc1,0x61,0x61,0x31,0xd1,0x31,0x61,0x31,0xd1,0x31,0x61,0x61,0xc1,0x61,0x51,0xc6,0x41,0xd1,0x61,0xc1,0x61,0xc6,0xd1,0xd1,0xc6,0xc6,0x61,0xc6,0x61,0x31,0xd1,0x31,0xc6,0x61,0x62,0xc6,0x31,0xd1,0xc1,0xd1,0xc6,0xc6,0xdc,0xc6,0x41,0xa1,0x41,0xc6,0xc6,0xc6,0xdc,0x61,0x31,0xd1,0x31,0x61,0xdc,0xc6,0x41,0xd1,0x31,0xd1,0xc6,0xc6,0xd1,0xc6,0xd1,0xc1,0xd1,0x31,0xd1,0xc6,0xc1,0xc6,0x41,0xc1,0xd1,0xc6,0x41,0x61,0xc6,0xc6,0xc1,0x51,0xd1,0xc6,0x61,0xc1,0x41,0x41,0xc6,0x41,0xc6,0x51,0xc6,0x41,0x61,0xd1,
|
||||
0xc6,0xd1,0x31,0xd1,0x31,0xd1,0xc1,0x41,0xc1,0x61,0x41,0xc1,0x41,0x41,0xd1,0x41,0xc1,0xd1,0x51,0xc1,0x41,0x61,0xc1,0x41,0xc1,0xd1,0x41,0x41,0xc1,0x61,0xc1,0x41,0x61,0x31,0x41,0x41,0x61,0xc1,0x41,0x41,0xc1,0x41,0x41,0x61,0xc1,0x41,0x41,0x41,0xc1,0xd1,0xd1,0x31,0x41,0x41,0xc1,0xc1,0x61,0x41,0xc1,0x41,0xd1,0xc1,0xd1,0x41,0xc1,0xd1,0x41,0x41,0xc1,0x61,0x41,0x41,0x61,0xc1,0x41,0xc1,0xd1,0xc1,0xd1,0xc1,0x41,0x51,0x31,0xd1,0x41,0xc1,0x61,0x41,0xc1,0x41,0x61,0x41,0xc1,0x41,0xd1,0x41,0xc1,0xd1,0x41,0xc1,0xd1,0x51,0xc1,0x41,0x41,0xd1,0xc1,0x41,0xc1,0x61,0x41,0xc1,0x41,0x61,0x41,0xc1,0xc1,0xd1,0x51,0xc1,0x41,0xd1,0xc1,0x41,0x61,0x41,0xc1,0x41,0x51,0xc1,0xd1,0xc1,0x41,0x41,0xc1,0xc1,0x61,0x41,0xc1,0x41,0x61,0x41,0xc1,0x41,0xc1,0x61,0x41,0xc1,0x41,0xc1,0x41,0x41,0x31,0xd1,0x41,0xc1,0x41,0x61,0x41,0xc1,0x41,0xd1,0x31,0xc1,0x41,0x61,0x41,0xd1,0xc1,0x41,0x41,0x31,0xd1,0xc1,0x41,0x41,0xd1,0xd1,0xc1,0x41,0xc1,0xd1,0x41,0x41,0x51,0x31,0x41,0x41,0xd1,0xc1,0x41,0xd1,0xc1,0x41,0x41,0x31,0xd1,0x41,0xc1,0xd1,0x31,0x41,0x61,0x41,0xc1,0x41,0x61,0xa1,0x41,0xc1,0x61,0x41,0xc1,0x41,0xc1,0xc6,0x41,0x61,0xc1,0x41,0xc1,0x41,0x41,0xd1,0xc6,0x41,0x31,0x41,0x61,0x41,0xc1,0xd1,0xc6,0xd1,0x41,0xc1,0x41,0x61,0x41,0xc6,0xd1,0xc6,0x41,0x41,0xc1,0xd1,0x41,0xc4,0x61,0xdc,0x41,0x61,0x41,0xc1,0x41,0xd1,
|
||||
0xc6,0xd1,0xc1,0xd1,0xc1,0x41,0x51
|
||||
};
|
||||
|
||||
void setup_mode2() {
|
||||
cvu_vmemset(0, 0, 0x4000);
|
||||
cv_set_screen_mode(CV_SCREENMODE_BITMAP); // mode 2
|
||||
cv_set_image_table(IMAGE);
|
||||
cv_set_character_pattern_t(PATTERN|0x1fff); // AND mask
|
||||
cv_set_color_table(COLOR|0x1fff); // AND mask
|
||||
cv_set_sprite_attribute_table(0x1b00);
|
||||
}
|
||||
|
||||
void main() {
|
||||
setup_mode2();
|
||||
cvu_memtovmemcpy(PATTERN, msx_bitmap+7, sizeof(msx_bitmap)-7);
|
||||
cv_set_screen_active(true);
|
||||
while (1) ;
|
||||
}
|
116
presets/coleco/musicplayer.c
Normal file
116
presets/coleco/musicplayer.c
Normal file
File diff suppressed because one or more lines are too long
694
presets/coleco/platform.c
Normal file
694
presets/coleco/platform.c
Normal file
@ -0,0 +1,694 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "cv.h"
|
||||
#include "cvu.h"
|
||||
|
||||
#define PATTERN ((const cv_vmemp)0x1000)
|
||||
#define IMAGE ((const cv_vmemp)0x1800)
|
||||
#define COLOR ((const cv_vmemp)0x2000)
|
||||
#define SPRITE_PATTERNS ((const cv_vmemp)0x3800)
|
||||
#define SPRITES ((const cv_vmemp)0x3c00)
|
||||
|
||||
#define COLS 32
|
||||
#define ROWS 24
|
||||
|
||||
typedef unsigned char byte;
|
||||
typedef signed char sbyte;
|
||||
typedef unsigned short word;
|
||||
|
||||
uintptr_t __at(0x6a) font_bitmap_a;
|
||||
uintptr_t __at(0x6c) font_bitmap_0;
|
||||
|
||||
volatile bool vint;
|
||||
volatile uint_fast8_t vint_counter;
|
||||
|
||||
void vint_handler(void)
|
||||
{
|
||||
vint = true;
|
||||
vint_counter++;
|
||||
}
|
||||
|
||||
#define XOFS 12 // sprite horiz. offset
|
||||
|
||||
#define CH_BORDER 64
|
||||
#define CH_FLOOR 65
|
||||
#define CH_LADDER 66
|
||||
|
||||
const byte char_table[][8] = {
|
||||
/*{w:8,h:8,count:8}*/
|
||||
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
|
||||
{0xFF,0xBF,0xBF,0x00,0xFF,0xFB,0xFB,0x00},
|
||||
{0x81,0xFF,0x81,0x81,0x81,0xFF,0x81,0x81},
|
||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||
};
|
||||
|
||||
const byte static_sprite_table[][16*2] = {
|
||||
/*{w:16,h:16,remap:[-5,0,1,2,3,5,6,7,8,9],count:1}*/
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x3F,
|
||||
0x35, 0x2A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3F,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x40, 0xFC,
|
||||
0x54, 0xAC, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFC,
|
||||
}
|
||||
};
|
||||
|
||||
const byte blimp_sprite_table[][16*2] = {
|
||||
/*{w:16,h:16,remap:[-5,0,1,2,3,5,6,7,8,9],count:4}*/
|
||||
{
|
||||
0x00, 0x01, 0x03, 0xE7, 0xFF, 0xFE, 0xFE, 0xFE,
|
||||
0xFE, 0xFF, 0xE7, 0x03, 0x01, 0x00, 0x00, 0x00,
|
||||
0xF0, 0xE0, 0xC0, 0x80, 0xC0, 0x20, 0xFF, 0xFF,
|
||||
0x20, 0xC0, 0x80, 0xC0, 0xE0, 0xF0, 0x00, 0x00,
|
||||
},{
|
||||
0xFC, 0xFF, 0xFF, 0xF6, 0xF5, 0xF5, 0xF6, 0xF5,
|
||||
0xF5, 0x86, 0xFF, 0xFF, 0xFF, 0xFC, 0x40, 0x80,
|
||||
0x00, 0xE0, 0xFE, 0x3F, 0xBF, 0xBF, 0x3F, 0xBF,
|
||||
0xBF, 0x3F, 0xFF, 0xFE, 0xE0, 0x11, 0x0E, 0x01,
|
||||
},{
|
||||
0x00, 0x1F, 0xFF, 0xF8, 0xF6, 0xF6, 0xF8, 0xFE,
|
||||
0xFE, 0xFE, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xBA, 0x92, 0xAA, 0xAA, 0xBA,
|
||||
0xBA, 0xBA, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x07,
|
||||
},{
|
||||
0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x7F,
|
||||
0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x07, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x7F, 0x07, 0x00, 0x00, 0x00, 0x00,
|
||||
}
|
||||
};
|
||||
|
||||
#define NUM_SPRITE_PATTERNS 5
|
||||
#define NUM_SPRITE_STATES 4
|
||||
|
||||
const byte sprite_table[NUM_SPRITE_PATTERNS*2][16*2] = {
|
||||
/*{w:16,h:16,remap:[-5,0,1,2,3,5,6,7,8,9],count:5,np:2}*/
|
||||
{ // first plane
|
||||
0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x0F, 0x0F,
|
||||
0x0F, 0x07, 0x07, 0x07, 0x0F, 0x0F, 0x02, 0x00,
|
||||
0xC0, 0xA0, 0xA0, 0xA0, 0xC0, 0x00, 0x80, 0x80,
|
||||
0xF0, 0xE0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||
},{
|
||||
0x03, 0x07, 0x07, 0x07, 0x02, 0x04, 0x0C, 0x1C,
|
||||
0x1C, 0x14, 0x07, 0x06, 0x0E, 0x0E, 0x00, 0x00,
|
||||
0xC0, 0xE0, 0xEC, 0xEC, 0x4C, 0x38, 0x30, 0x20,
|
||||
0x20, 0x20, 0xF0, 0x70, 0x00, 0x00, 0x00, 0x00,
|
||||
},{
|
||||
0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x0F, 0x0F,
|
||||
0x0F, 0x07, 0x07, 0x0F, 0x0F, 0x0C, 0x0C, 0x00,
|
||||
0xC0, 0xA0, 0xA0, 0xA0, 0xC0, 0x00, 0x98, 0xF8,
|
||||
0xF0, 0x80, 0x80, 0xE0, 0xF0, 0x00, 0x00, 0x00,
|
||||
},{
|
||||
0x03, 0x04, 0x06, 0x06, 0x43, 0x60, 0x3F, 0x1C,
|
||||
0x05, 0x04, 0x07, 0x0F, 0x1C, 0x00, 0x00, 0x00,
|
||||
0xC0, 0x20, 0x60, 0x60, 0xC0, 0x02, 0xE6, 0x3C,
|
||||
0xB8, 0x20, 0xE0, 0xE0, 0x70, 0x00, 0x00, 0x00,
|
||||
},{
|
||||
0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x0F, 0x0F,
|
||||
0x0F, 0x47, 0x47, 0x0F, 0x1F, 0x19, 0x00, 0x00,
|
||||
0xC0, 0xA0, 0xA0, 0xA0, 0xC0, 0x00, 0x98, 0xB0,
|
||||
0xE0, 0x80, 0x80, 0x80, 0x80, 0xC0, 0x00, 0x00,
|
||||
},{ // second plane
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x30, 0x30,
|
||||
0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0D,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0,
|
||||
},{
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03,
|
||||
0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1C,
|
||||
0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0,
|
||||
0xC0, 0xC0, 0x00, 0x00, 0x30, 0x38, 0x00, 0x00,
|
||||
},{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x30, 0x30,
|
||||
0x30, 0x30, 0x00, 0x00, 0x00, 0x30, 0x30, 0x20,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, 0x00,
|
||||
},{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03,
|
||||
0x02, 0x03, 0x00, 0x00, 0x00, 0x18, 0x38, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0,
|
||||
0x40, 0xC0, 0x00, 0x00, 0x00, 0x30, 0x38, 0x00,
|
||||
},{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x30, 0x30,
|
||||
0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x19, 0x0C,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
|
||||
}
|
||||
};
|
||||
|
||||
///
|
||||
|
||||
const unsigned char reverse_lookup[16] = {
|
||||
0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf, };
|
||||
|
||||
byte reverse_bits(byte n) {
|
||||
return (reverse_lookup[n&0b1111] << 4) | reverse_lookup[n>>4];
|
||||
}
|
||||
|
||||
void flip_sprite_patterns(word dest, const byte* patterns, word len) {
|
||||
word i;
|
||||
for (i=0; i<len; i++) {
|
||||
cvu_voutb(reverse_bits(*patterns++), dest++ ^ 16); // swap left/right chars
|
||||
}
|
||||
}
|
||||
|
||||
#define BGCOL CV_COLOR_BLUE
|
||||
|
||||
void setup_32_column_font() {
|
||||
cvu_vmemset(0, 0, 0x4000); // clear video memory
|
||||
|
||||
cv_set_screen_mode(CV_SCREENMODE_STANDARD);
|
||||
cv_set_color_table(COLOR);
|
||||
cv_set_image_table(IMAGE);
|
||||
cv_set_character_pattern_t(PATTERN);
|
||||
|
||||
cvu_memtovmemcpy(PATTERN, (void *)(font_bitmap_0 - '0'*8), 0x800);
|
||||
cvu_memtovmemcpy(PATTERN+8*64, char_table, sizeof(char_table));
|
||||
cvu_memtovmemcpy(PATTERN+8*128, static_sprite_table, sizeof(static_sprite_table));
|
||||
|
||||
cvu_vmemset(COLOR, 0x30|BGCOL, 8); // set color for chars 0-63
|
||||
cvu_vmemset(COLOR+8, 0x0|BGCOL, 32-8); // set chars 63-255
|
||||
cvu_vmemset(COLOR+16, 0xb0|BGCOL, 1); // set chars 128-128+8
|
||||
|
||||
cvu_memtovmemcpy(SPRITE_PATTERNS, sprite_table, sizeof(sprite_table));
|
||||
flip_sprite_patterns(SPRITE_PATTERNS + 512, (const byte*)sprite_table, sizeof(sprite_table));
|
||||
flip_sprite_patterns(SPRITE_PATTERNS + 384, (const byte*)blimp_sprite_table, sizeof(blimp_sprite_table));
|
||||
cv_set_sprite_pattern_table(SPRITE_PATTERNS);
|
||||
cv_set_sprite_attribute_table(SPRITES);
|
||||
cv_set_sprite_big(true);
|
||||
}
|
||||
|
||||
char cursor_x;
|
||||
char cursor_y;
|
||||
|
||||
void clrscr() {
|
||||
cvu_vmemset(IMAGE, ' ', COLS*ROWS);
|
||||
}
|
||||
|
||||
#define LOCHAR 0x0
|
||||
#define HICHAR 0xff
|
||||
|
||||
#define CHAR(ch) (ch-LOCHAR)
|
||||
|
||||
byte getchar(byte x, byte y) {
|
||||
return cvu_vinb(IMAGE + y*COLS + x);
|
||||
}
|
||||
|
||||
void putchar(byte x, byte y, byte attr) {
|
||||
cvu_voutb(attr, IMAGE + y*COLS + x);
|
||||
}
|
||||
|
||||
void putstring(byte x, byte y, const char* string) {
|
||||
while (*string) {
|
||||
putchar(x++, y, CHAR(*string++));
|
||||
}
|
||||
}
|
||||
|
||||
void wait_vsync() {
|
||||
vint = false;
|
||||
while (!vint) ;
|
||||
}
|
||||
|
||||
void delay(byte i) {
|
||||
while (i--) {
|
||||
wait_vsync();
|
||||
}
|
||||
}
|
||||
|
||||
///
|
||||
|
||||
typedef struct Level {
|
||||
byte ypos;
|
||||
byte height; // TODO: why does bitmask not work?
|
||||
byte gap:4;
|
||||
byte ladder1:4;
|
||||
byte ladder2:4;
|
||||
byte objtype:4;
|
||||
byte objpos:4;
|
||||
} Level;
|
||||
|
||||
#define MAX_LEVELS 32
|
||||
#define GAPSIZE 3
|
||||
|
||||
Level levels[MAX_LEVELS];
|
||||
|
||||
bool is_in_gap(byte x, byte gap) {
|
||||
if (gap) {
|
||||
byte x1 = gap*16 + 26 - XOFS;
|
||||
return (x > x1 && x < x1+GAPSIZE*8-4);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ladder_in_gap(byte x, byte gap) {
|
||||
return gap && x >= gap && x < gap+GAPSIZE*2;
|
||||
}
|
||||
|
||||
byte rndint(byte a, byte b) {
|
||||
return ((byte)rand() % (b-a+1)) + a;
|
||||
}
|
||||
|
||||
void make_levels() {
|
||||
byte i;
|
||||
byte y=0;
|
||||
Level* prevlev = &levels[0];
|
||||
for (i=0; i<MAX_LEVELS; i++) {
|
||||
Level* lev = &levels[i];
|
||||
lev->height = rndint(4,7);
|
||||
lev->ladder1 = rndint(1,14);
|
||||
lev->ladder2 = rndint(1,14);
|
||||
do {
|
||||
lev->gap = i>0 ? rndint(0,13) : 0;
|
||||
} while (ladder_in_gap(prevlev->ladder1, lev->gap) ||
|
||||
ladder_in_gap(prevlev->ladder2, lev->gap));
|
||||
lev->objtype = 1;
|
||||
lev->objpos = rndint(1,14);
|
||||
lev->ypos = y;
|
||||
y += lev->height;
|
||||
prevlev = lev;
|
||||
}
|
||||
levels[MAX_LEVELS-1].height = 15;
|
||||
levels[MAX_LEVELS-1].gap = 0;
|
||||
levels[MAX_LEVELS-1].ladder1 = 0;
|
||||
levels[MAX_LEVELS-1].ladder2 = 0;
|
||||
}
|
||||
|
||||
static byte scroll_y = 0;
|
||||
|
||||
void create_actors_on_level(byte i);
|
||||
|
||||
void draw_level_line(byte screen_y) {
|
||||
char buf[COLS];
|
||||
byte i;
|
||||
byte y = screen_y + scroll_y;
|
||||
for (i=0; i<MAX_LEVELS; i++) {
|
||||
Level* lev = &levels[i];
|
||||
byte dy = y - lev->ypos;
|
||||
// is this level visible on-screen?
|
||||
if (dy < lev->height) {
|
||||
if (dy == 0) {
|
||||
// draw floor
|
||||
memset(buf, CH_FLOOR, COLS);
|
||||
// draw the gap
|
||||
if (lev->gap)
|
||||
memset(buf+lev->gap*2, 0, GAPSIZE);
|
||||
} else {
|
||||
// draw empty space
|
||||
memset(buf, 0, sizeof(buf));
|
||||
// draw walls
|
||||
if (i < MAX_LEVELS-1) {
|
||||
buf[0] = CH_FLOOR;
|
||||
buf[COLS-1] = CH_FLOOR;
|
||||
}
|
||||
// draw ladders
|
||||
if (lev->ladder1)
|
||||
buf[lev->ladder1*2] = CH_LADDER;
|
||||
if (lev->ladder2)
|
||||
buf[lev->ladder2*2] = CH_LADDER;
|
||||
}
|
||||
//buf[0] = i+'a';buf[1] = y;buf[2] = dy+'0';buf[3] = lev->ypos;buf[4] = lev->height+'0';
|
||||
// draw object, if it exists
|
||||
if (lev->objtype) {
|
||||
byte ch = lev->objtype*4+128-4;
|
||||
if (dy == 1) {
|
||||
buf[lev->objpos*2] = ch+1;
|
||||
buf[lev->objpos*2+1] = ch+3;
|
||||
}
|
||||
else if (dy == 2) {
|
||||
buf[lev->objpos*2] = ch;
|
||||
buf[lev->objpos*2+1] = ch+2;
|
||||
}
|
||||
}
|
||||
// copy line to screen buffer
|
||||
cvu_memtovmemcpy(IMAGE + COLS*(ROWS-1) - COLS*screen_y, buf, COLS);
|
||||
// create actors on this level, if needed
|
||||
// (only when drawing top and bottom of screen)
|
||||
if (screen_y == 0 || screen_y == ROWS-1)
|
||||
create_actors_on_level(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void draw_screen() {
|
||||
byte y;
|
||||
for (y=0; y<ROWS; y++) {
|
||||
draw_level_line(y);
|
||||
}
|
||||
}
|
||||
|
||||
word get_floor_yy(byte level) {
|
||||
return levels[level].ypos * 8 + 8;
|
||||
}
|
||||
|
||||
word get_ceiling_yy(byte level) {
|
||||
return (levels[level].ypos + levels[level].height) * 8 + 8;
|
||||
}
|
||||
|
||||
#define MAX_ACTORS 5
|
||||
|
||||
typedef enum ActorState {
|
||||
INACTIVE, WALKING, CLIMBING, JUMPING, FALLING
|
||||
};
|
||||
|
||||
typedef struct Actor {
|
||||
word yy;
|
||||
byte x;
|
||||
byte name;
|
||||
byte color1:4;
|
||||
byte color2:4;
|
||||
byte level;
|
||||
byte state:4;
|
||||
byte dir:1;
|
||||
byte onscreen:1;
|
||||
union {
|
||||
struct {
|
||||
sbyte yvel;
|
||||
sbyte xvel;
|
||||
} jumping;
|
||||
} u;
|
||||
} Actor;
|
||||
|
||||
Actor actors[MAX_ACTORS];
|
||||
|
||||
void create_actors_on_level(byte level_index) {
|
||||
byte actor_index = (level_index % (MAX_ACTORS-1)) + 1;
|
||||
struct Actor* a = &actors[actor_index];
|
||||
if (!a->onscreen) {
|
||||
Level *level = &levels[level_index];
|
||||
a->state = WALKING;
|
||||
a->color1 = level->ladder1;
|
||||
a->color2 = level->ladder2;
|
||||
a->name = 0;
|
||||
a->x = level->ladder1 ^ (level->ladder2<<3) ^ (level->gap<<6);
|
||||
a->yy = get_floor_yy(level_index);
|
||||
a->level = level_index;
|
||||
}
|
||||
}
|
||||
|
||||
void draw_actor(byte i) {
|
||||
struct Actor* a = &actors[i];
|
||||
struct cvu_sprite sprite;
|
||||
int screen_y = 175 - a->yy + scroll_y*8;
|
||||
if (screen_y > 192+8 || screen_y < -18) {
|
||||
a->onscreen = 0;
|
||||
return; // offscreen vertically
|
||||
}
|
||||
sprite.name = a->name + (a->state - WALKING)*4;
|
||||
switch (a->state) {
|
||||
case INACTIVE:
|
||||
a->onscreen = 0;
|
||||
return; // inactive, offscreen
|
||||
case WALKING:
|
||||
sprite.name += (a->x & 4) ? NUM_SPRITE_STATES*4 : 0;
|
||||
case JUMPING:
|
||||
case FALLING:
|
||||
sprite.name += a->dir ? 16*4 : 0;
|
||||
break;
|
||||
case CLIMBING:
|
||||
sprite.name += (a->yy & 4) ? 16*4 : 0;
|
||||
break;
|
||||
}
|
||||
sprite.x = a->x;
|
||||
sprite.y = screen_y;
|
||||
sprite.tag = a->color1 | 0x80;
|
||||
if (sprite.x >= 255-XOFS) {
|
||||
sprite.tag &= ~0x80;
|
||||
sprite.x -= 32-XOFS;
|
||||
} else {
|
||||
sprite.x += XOFS;
|
||||
}
|
||||
cvu_set_sprite(SPRITES, i*2, &sprite);
|
||||
sprite.name += NUM_SPRITE_PATTERNS*4;
|
||||
sprite.tag ^= a->color1 ^ a->color2;
|
||||
cvu_set_sprite(SPRITES, i*2+1, &sprite);
|
||||
a->onscreen = 1;
|
||||
}
|
||||
|
||||
void refresh_actors() {
|
||||
byte i;
|
||||
for (i=0; i<MAX_ACTORS; i++)
|
||||
draw_actor(i);
|
||||
}
|
||||
|
||||
void refresh_screen() {
|
||||
wait_vsync();
|
||||
draw_screen();
|
||||
refresh_actors();
|
||||
}
|
||||
|
||||
byte is_ladder_close(byte actor_x, byte ladder_pos) {
|
||||
byte ladder_x;
|
||||
if (ladder_pos == 0)
|
||||
return 0;
|
||||
ladder_x = ladder_pos * 16 + 21 - XOFS;
|
||||
return ((byte)(actor_x - ladder_x) < 16) ? ladder_x : 0;
|
||||
}
|
||||
|
||||
byte get_closest_ladder(byte player_x, byte level_index) {
|
||||
Level* level = &levels[level_index];
|
||||
byte x;
|
||||
if (level_index >= MAX_LEVELS) return 0;
|
||||
x = is_ladder_close(player_x, level->ladder1);
|
||||
if (x) return x;
|
||||
x = is_ladder_close(player_x, level->ladder2);
|
||||
if (x) return x;
|
||||
return 0;
|
||||
}
|
||||
|
||||
byte mount_ladder(Actor* player, signed char level_adjust) {
|
||||
byte x = get_closest_ladder(player->x, player->level + level_adjust);
|
||||
if (x) {
|
||||
player->x = x + 8;
|
||||
player->state = CLIMBING;
|
||||
player->level += level_adjust;
|
||||
return 1;
|
||||
} else
|
||||
return 0;
|
||||
}
|
||||
|
||||
void check_scroll_up() {
|
||||
byte player_screen_y = cvu_vinb(SPRITES + 0); // sprite Y pos
|
||||
if (player_screen_y < 192/2-4) {
|
||||
scroll_y++;
|
||||
refresh_screen();
|
||||
check_scroll_up();
|
||||
}
|
||||
}
|
||||
|
||||
void check_scroll_down() {
|
||||
byte player_screen_y = cvu_vinb(SPRITES + 0); // sprite Y pos
|
||||
if (player_screen_y > 192/2+4 && scroll_y > 0) {
|
||||
scroll_y--;
|
||||
refresh_screen();
|
||||
check_scroll_down();
|
||||
}
|
||||
}
|
||||
|
||||
void fall_down(struct Actor* actor) {
|
||||
actor->level--;
|
||||
actor->state = FALLING;
|
||||
actor->u.jumping.xvel = 0;
|
||||
actor->u.jumping.yvel = 0;
|
||||
}
|
||||
|
||||
void move_actor(struct Actor* actor, byte joystick, bool scroll) {
|
||||
switch (actor->state) {
|
||||
|
||||
case WALKING:
|
||||
// left/right has priority over climbing
|
||||
if (joystick & CV_FIRE_0) {
|
||||
actor->state = JUMPING;
|
||||
actor->u.jumping.xvel = 0;
|
||||
actor->u.jumping.yvel = 15;
|
||||
if (joystick & CV_LEFT) actor->u.jumping.xvel = -1;
|
||||
if (joystick & CV_RIGHT) actor->u.jumping.xvel = 1;
|
||||
} else if (joystick & CV_LEFT) {
|
||||
actor->x--;
|
||||
actor->dir = 1;
|
||||
} else if (joystick & CV_RIGHT) {
|
||||
actor->x++;
|
||||
actor->dir = 0;
|
||||
} else if (joystick & CV_UP) {
|
||||
mount_ladder(actor, 0); // state -> CLIMBING
|
||||
if (scroll) check_scroll_up();
|
||||
} else if (joystick & CV_DOWN) {
|
||||
mount_ladder(actor, -1); // state -> CLIMBING, level -= 1
|
||||
if (scroll) check_scroll_down();
|
||||
}
|
||||
break;
|
||||
|
||||
case CLIMBING:
|
||||
if (joystick & CV_UP) {
|
||||
if (actor->yy >= get_ceiling_yy(actor->level)) {
|
||||
actor->level++;
|
||||
actor->state = WALKING;
|
||||
if (scroll) check_scroll_up();
|
||||
} else {
|
||||
actor->yy++;
|
||||
}
|
||||
} else if (joystick & CV_DOWN) {
|
||||
if (actor->yy <= get_floor_yy(actor->level)) {
|
||||
actor->state = WALKING;
|
||||
if (scroll) check_scroll_down();
|
||||
} else {
|
||||
actor->yy--;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case JUMPING:
|
||||
case FALLING:
|
||||
actor->x += actor->u.jumping.xvel;
|
||||
actor->yy += actor->u.jumping.yvel/4;
|
||||
actor->u.jumping.yvel -= 1;
|
||||
if (actor->yy <= get_floor_yy(actor->level)) {
|
||||
actor->yy = get_floor_yy(actor->level);
|
||||
actor->state = WALKING;
|
||||
if (scroll) check_scroll_down();
|
||||
}
|
||||
break;
|
||||
}
|
||||
// don't allow player to travel past left/right edges of screen
|
||||
if (actor->x == 0) actor->x = 255; // we wrapped around right edge
|
||||
if (actor->x < 24) actor->x = 24;
|
||||
// if player lands in a gap, they fall (switch to JUMPING state)
|
||||
if (actor->state == WALKING &&
|
||||
is_in_gap(actor->x, levels[actor->level].gap)) {
|
||||
fall_down(actor);
|
||||
}
|
||||
}
|
||||
|
||||
void pickup_object(Actor* actor) {
|
||||
Level* level = &levels[actor->level];
|
||||
byte objtype = level->objtype;
|
||||
if (objtype && actor->state == WALKING) {
|
||||
byte objx = level->objpos * 16 + 24 - XOFS;
|
||||
if (actor->x >= objx && actor->x < objx+16) {
|
||||
level->objtype = 0;
|
||||
refresh_screen();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void move_player() {
|
||||
struct cv_controller_state ctrl;
|
||||
cv_get_controller_state(&ctrl, 0);
|
||||
move_actor(&actors[0], ctrl.joystick, true);
|
||||
pickup_object(&actors[0]);
|
||||
}
|
||||
|
||||
inline byte iabs(int x) {
|
||||
return x >= 0 ? x : -x;
|
||||
}
|
||||
|
||||
bool check_collision(Actor* a) {
|
||||
byte i;
|
||||
for (i=1; i<MAX_ACTORS; i++) {
|
||||
Actor* b = &actors[i];
|
||||
// actors must be on same level
|
||||
// no need to apply XOFS because both sprites are offset
|
||||
if (a->level == b->level &&
|
||||
iabs(a->yy - b->yy) < 8 &&
|
||||
iabs(a->x - b->x) < 8) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
///
|
||||
|
||||
void preview_stage() {
|
||||
scroll_y = levels[MAX_LEVELS-1].ypos;
|
||||
while (scroll_y > 0) {
|
||||
wait_vsync();
|
||||
refresh_screen();
|
||||
refresh_actors();
|
||||
scroll_y--;
|
||||
}
|
||||
}
|
||||
|
||||
void draw_blimp(struct cvu_sprite* sprite) {
|
||||
sprite->name = 48;
|
||||
wait_vsync();
|
||||
cvu_set_sprite(SPRITES, 28, sprite);
|
||||
sprite->name += 4;
|
||||
sprite->x += 16;
|
||||
cvu_set_sprite(SPRITES, 29, sprite);
|
||||
sprite->name += 4;
|
||||
sprite->x += 16;
|
||||
cvu_set_sprite(SPRITES, 30, sprite);
|
||||
sprite->name += 4;
|
||||
sprite->x += 16;
|
||||
cvu_set_sprite(SPRITES, 31, sprite);
|
||||
refresh_actors();
|
||||
}
|
||||
|
||||
void blimp_pickup_scene() {
|
||||
struct cvu_sprite sprite;
|
||||
byte player_screen_y = cvu_vinb(SPRITES + 0); // sprite Y pos
|
||||
sprite.x = actors[0].x-14;
|
||||
sprite.y = 240;
|
||||
sprite.tag = 0x8f;
|
||||
while (sprite.y != player_screen_y-16) {
|
||||
draw_blimp(&sprite);
|
||||
sprite.x -= 48;
|
||||
sprite.y++;
|
||||
}
|
||||
while (sprite.y != 240) {
|
||||
draw_blimp(&sprite);
|
||||
sprite.x -= 48;
|
||||
sprite.y--;
|
||||
actors[0].yy++;
|
||||
}
|
||||
}
|
||||
|
||||
void play_scene() {
|
||||
byte i;
|
||||
|
||||
memset(actors, 0, sizeof(actors));
|
||||
actors[0].state = WALKING;
|
||||
actors[0].color1 = 0xf;
|
||||
actors[0].color2 = 0xb;
|
||||
actors[0].name = 0;
|
||||
actors[0].x = 64;
|
||||
actors[0].yy = 8;
|
||||
actors[0].level = 0;
|
||||
|
||||
create_actors_on_level(2);
|
||||
refresh_screen();
|
||||
|
||||
while (actors[0].level != MAX_LEVELS-1) {
|
||||
wait_vsync();
|
||||
refresh_actors();
|
||||
move_player();
|
||||
// move all the actors
|
||||
for (i=1; i<MAX_ACTORS; i++) {
|
||||
move_actor(&actors[i], rand(), false);
|
||||
}
|
||||
// see if the player hit another actor
|
||||
if (cv_get_sprite_collission()) {
|
||||
if (actors[0].level > 0 && check_collision(&actors[0])) {
|
||||
fall_down(&actors[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
blimp_pickup_scene();
|
||||
}
|
||||
|
||||
void main() {
|
||||
setup_32_column_font();
|
||||
cv_set_screen_active(true);
|
||||
cv_set_vint_handler(&vint_handler);
|
||||
|
||||
make_levels();
|
||||
play_scene();
|
||||
}
|
@ -653,8 +653,8 @@ void does_missile_hit_player() {
|
||||
return;
|
||||
for (i=0; i<MAX_ATTACKERS; i++) {
|
||||
if (missiles[i].dy &&
|
||||
in_rect(missiles[i].xpos + 8, missiles[i].ypos,
|
||||
player_x, player_y - 8, 16, 16)) {
|
||||
in_rect(missiles[i].xpos + 8, missiles[i].ypos + 16,
|
||||
player_x, player_y, 16, 16)) {
|
||||
player_exploding = 1;
|
||||
break;
|
||||
}
|
||||
@ -736,7 +736,6 @@ void play_round() {
|
||||
framecount = 0;
|
||||
new_player_ship();
|
||||
while (end_timer) {
|
||||
//cvu_voutb(cv_get_sprite_collission()*4, COLOR);
|
||||
if (player_exploding) {
|
||||
if ((framecount & 7) == 1) {
|
||||
animate_player_explosion();
|
||||
@ -755,18 +754,13 @@ void play_round() {
|
||||
move_attackers();
|
||||
move_missiles();
|
||||
does_player_shoot_formation();
|
||||
does_player_shoot_attacker();
|
||||
does_player_shoot_attacker();
|
||||
draw_next_row();
|
||||
draw_attackers();
|
||||
if ((framecount & 0xf) == 0) think_attackers();
|
||||
set_sounds();
|
||||
framecount++;
|
||||
if (!enemies_left) end_timer--;
|
||||
if (0) {
|
||||
putchar(12,0,vint_counter&3);
|
||||
putchar(13,0,framecount&3);
|
||||
putchar(14,0,(vint_counter^framecount)&3);
|
||||
}
|
||||
wait_for_frame();
|
||||
copy_sprites();
|
||||
}
|
||||
@ -776,8 +770,8 @@ void main() {
|
||||
cv_set_screen_active(false);
|
||||
setup_32_column_font();
|
||||
clrscr();
|
||||
cv_set_screen_active(true);
|
||||
cv_set_vint_handler(&vint_handler);
|
||||
cv_set_screen_active(true);
|
||||
play_round();
|
||||
main();
|
||||
}
|
||||
|
@ -33,8 +33,8 @@ void setup_32_column_font() {
|
||||
cv_set_character_pattern_t(0x1800);
|
||||
cv_set_screen_mode(CV_SCREENMODE_STANDARD);
|
||||
cv_set_color_table(COLOR);
|
||||
cvu_vmemset(COLOR, 0x36, 8); // set color for chars 0-63
|
||||
cvu_vmemset(COLOR+8, 0x06, 32-8); // set chars 63-255
|
||||
cvu_vmemset(COLOR, 0x30, 8); // set color for chars 0-63
|
||||
cvu_vmemset(COLOR+8, 0x50, 32-8); // set chars 63-255
|
||||
}
|
||||
|
||||
char cursor_x;
|
||||
|
@ -1,29 +1,28 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "cv.h"
|
||||
#include "cvu.h"
|
||||
|
||||
#define PATTERN ((const cv_vmemp)0x0000)
|
||||
#define COLOR ((const cv_vmemp)0x2000)
|
||||
#define IMAGE ((const cv_vmemp)0x1c00)
|
||||
#define PATTERN 0x0000
|
||||
#define IMAGE 0x0800
|
||||
|
||||
uintptr_t __at(0x6a) font_bitmap_a;
|
||||
uintptr_t __at(0x6c) font_bitmap_0;
|
||||
|
||||
void setup_40_column_font() {
|
||||
cv_set_image_table(IMAGE);
|
||||
cvu_memtovmemcpy(0x1800, (void *)(font_bitmap_0 - 0x30*8), 2048);
|
||||
cv_set_character_pattern_t(0x1800);
|
||||
void setup_text_mode() {
|
||||
cv_set_screen_mode(CV_SCREENMODE_TEXT);
|
||||
cv_set_image_table(IMAGE);
|
||||
cvu_memtovmemcpy(PATTERN, (void *)(font_bitmap_0 - '0'*8), 256*8);
|
||||
cv_set_character_pattern_t(PATTERN);
|
||||
}
|
||||
|
||||
void main(void) {
|
||||
setup_40_column_font();
|
||||
void show_text() {
|
||||
cv_set_colors(CV_COLOR_LIGHT_GREEN, CV_COLOR_BLACK);
|
||||
cvu_vmemset(IMAGE, '.', 960);
|
||||
cvu_vmemset(IMAGE, '.', 40*24);
|
||||
cvu_memtovmemcpy(IMAGE + 1, "Hello Professor Falken", 22);
|
||||
cv_set_screen_active(true);
|
||||
}
|
||||
|
||||
void main() {
|
||||
setup_text_mode();
|
||||
show_text();
|
||||
while (1);
|
||||
}
|
||||
|
@ -1,13 +1,12 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "cv.h"
|
||||
#include "cvu.h"
|
||||
|
||||
#define COLOR ((const cv_vmemp)0x2000)
|
||||
#define IMAGE ((const cv_vmemp)0x1c00)
|
||||
#define PATTERN 0x0000
|
||||
#define IMAGE 0x1c00
|
||||
#define COLOR 0x2000
|
||||
|
||||
#define COLS 32
|
||||
#define ROWS 24
|
||||
@ -16,11 +15,11 @@ uintptr_t __at(0x6a) font_bitmap_a;
|
||||
uintptr_t __at(0x6c) font_bitmap_0;
|
||||
|
||||
void setup_32_column_font() {
|
||||
cv_set_character_pattern_t(PATTERN);
|
||||
cv_set_image_table(IMAGE);
|
||||
cvu_memtovmemcpy(0x1800, (void *)(font_bitmap_0 - '0'*8), 2048);
|
||||
cv_set_character_pattern_t(0x1800);
|
||||
cv_set_screen_mode(CV_SCREENMODE_STANDARD);
|
||||
cv_set_color_table(COLOR);
|
||||
cv_set_screen_mode(CV_SCREENMODE_STANDARD);
|
||||
cvu_memtovmemcpy(PATTERN, (void *)(font_bitmap_0 - '0'*8), 2048);
|
||||
cvu_vmemset(COLOR, 0x36, 8); // set color for chars 0-63
|
||||
cvu_vmemset(COLOR+8, 0x06, 32-8); // set chars 63-255
|
||||
}
|
||||
|
@ -4,59 +4,48 @@
|
||||
#include <conio.h>
|
||||
#include <joystick.h>
|
||||
|
||||
static const char Text [] = "Hello world!";
|
||||
const char Text [] = "Hello world!";
|
||||
|
||||
int main (void)
|
||||
{
|
||||
unsigned char XSize, YSize;
|
||||
unsigned char width, height;
|
||||
|
||||
/* Set screen colors */
|
||||
(void) textcolor (COLOR_WHITE);
|
||||
(void) bordercolor (COLOR_BLACK);
|
||||
(void) bgcolor (COLOR_BLACK);
|
||||
(void) bgcolor (COLOR_BLUE);
|
||||
|
||||
/* Clear the screen, put cursor in upper left corner */
|
||||
clrscr ();
|
||||
|
||||
/* Ask for the screen size */
|
||||
screensize (&XSize, &YSize);
|
||||
screensize (&width, &height);
|
||||
|
||||
/* Draw a border around the screen */
|
||||
|
||||
/* Top line */
|
||||
cputc (CH_ULCORNER);
|
||||
chline (XSize - 2);
|
||||
chline (width - 2);
|
||||
cputc (CH_URCORNER);
|
||||
|
||||
/* Vertical line, left side */
|
||||
cvlinexy (0, 1, YSize - 2);
|
||||
cvlinexy (0, 1, height - 2);
|
||||
|
||||
/* Bottom line */
|
||||
cputc (CH_LLCORNER);
|
||||
chline (XSize - 2);
|
||||
chline (width - 2);
|
||||
cputc (CH_LRCORNER);
|
||||
|
||||
/* Vertical line, right side */
|
||||
cvlinexy (XSize - 1, 1, YSize - 2);
|
||||
cvlinexy (width - 1, 1, height - 2);
|
||||
|
||||
/* Write the greeting in the mid of the screen */
|
||||
gotoxy ((XSize - strlen (Text)) / 2, YSize / 2);
|
||||
gotoxy ((width - strlen (Text)) / 2, height / 2);
|
||||
cprintf ("%s", Text);
|
||||
|
||||
#if defined(__NES__) || defined(__PCE__) || defined(__GAMATE__)
|
||||
|
||||
/* Wait for the user to press a button */
|
||||
joy_install (joy_static_stddrv);
|
||||
while (!joy_read (JOY_1)) ;
|
||||
joy_uninstall ();
|
||||
|
||||
#else
|
||||
|
||||
/* Wait for the user to press a key */
|
||||
cgetc ();
|
||||
|
||||
#endif
|
||||
|
||||
/* Clear the screen again */
|
||||
clrscr ();
|
||||
|
||||
|
@ -44,7 +44,7 @@ _exit:
|
||||
; clear RAM -- not a subroutine because we clear the stack too
|
||||
lda #0
|
||||
tax
|
||||
.loop
|
||||
.clearRAM
|
||||
sta $0,x
|
||||
sta $100,x
|
||||
; skip $200-$2FF, used for OAM display list
|
||||
@ -54,7 +54,7 @@ _exit:
|
||||
sta $600,x
|
||||
sta $700,x
|
||||
inx
|
||||
bne .loop
|
||||
bne .clearRAM
|
||||
; wait for PPU warmup
|
||||
jsr WaitSync
|
||||
; set palette background
|
||||
|
@ -54,7 +54,7 @@ _exit:
|
||||
; clear RAM -- not a subroutine because we clear the stack too
|
||||
lda #0
|
||||
tax
|
||||
.loop
|
||||
.clearRAM
|
||||
sta $0,x
|
||||
sta $100,x
|
||||
; skip $200-$2FF, used for OAM display list
|
||||
@ -64,7 +64,7 @@ _exit:
|
||||
sta $600,x
|
||||
sta $700,x
|
||||
inx
|
||||
bne .loop
|
||||
bne .clearRAM
|
||||
; end of clear RAM routine
|
||||
jsr SetPalette ;set colors
|
||||
jsr FillVRAM ;set PPU RAM
|
||||
|
@ -1,42 +1,48 @@
|
||||
|
||||
#include "nes.h"
|
||||
#include <nes.h>
|
||||
|
||||
unsigned char index;
|
||||
const unsigned char TEXT[]="Hello PPU!!!!";
|
||||
|
||||
const unsigned char TEXT[]={"Hello PPU!!!"};
|
||||
|
||||
const unsigned char PALETTE[]={0x1, 0x00, 0x10, 0x20}; //blue, gray, lt gray, white
|
||||
const unsigned char PALETTE[]={0x1, 0x00, 0x10, 0x20}; // blue, gray, lt gray, white
|
||||
|
||||
void main (void) {
|
||||
unsigned char index; // used in 'for' loops
|
||||
|
||||
// turn off the screen
|
||||
PPU.control = 0;
|
||||
PPU.mask = 0;
|
||||
|
||||
// load the palette
|
||||
PPU.vram.address = 0x3f;
|
||||
PPU.vram.address = 0x0;
|
||||
for(index = 0; index < sizeof(PALETTE); ++index){
|
||||
PPU.vram.data = PALETTE[index];
|
||||
}
|
||||
// if we've just powered on,
|
||||
// wait for PPU to warm-up
|
||||
waitvblank();
|
||||
waitvblank();
|
||||
|
||||
// load the text
|
||||
PPU.vram.address = 0x21; // set an address in the PPU of 0x21ca
|
||||
PPU.vram.address = 0xca; // about the middle of the screen
|
||||
for( index = 0; index < sizeof(TEXT); ++index ){
|
||||
PPU.vram.data = TEXT[index];
|
||||
}
|
||||
|
||||
// reset the scroll position
|
||||
PPU.vram.address = 0x20;
|
||||
PPU.vram.address = 0x0;
|
||||
PPU.scroll = 0;
|
||||
PPU.scroll = 0;
|
||||
// turn off screen
|
||||
PPU.control = 0x0; // NMI off
|
||||
PPU.mask = 0x0; // screen off
|
||||
|
||||
// load the palette
|
||||
// set PPU address to 0x3f00
|
||||
PPU.vram.address = 0x3f;
|
||||
PPU.vram.address = 0x00;
|
||||
for (index = 0; index < sizeof(PALETTE); index++) {
|
||||
PPU.vram.data = PALETTE[index];
|
||||
}
|
||||
|
||||
// load the text into VRAM
|
||||
// set PPU address to 0x21c9
|
||||
PPU.vram.address = 0x21;
|
||||
PPU.vram.address = 0xc9;
|
||||
for (index = 0; index < sizeof(TEXT); index++) {
|
||||
PPU.vram.data = TEXT[index];
|
||||
}
|
||||
|
||||
// reset the scroll position to 0
|
||||
PPU.scroll = 0;
|
||||
PPU.scroll = 0;
|
||||
// reset the PPU address to 0x2000 (frame start)
|
||||
PPU.vram.address = 0x20;
|
||||
PPU.vram.address = 0x00;
|
||||
|
||||
// turn on screen
|
||||
PPU.control = 0x80; // NMI on
|
||||
PPU.mask = 0x1e; // screen on
|
||||
|
||||
// infinite loop
|
||||
while (1);
|
||||
// turn on the screen
|
||||
PPU.mask = 0x1e;
|
||||
|
||||
// infinite loop
|
||||
while (1);
|
||||
}
|
||||
|
479
presets/vcs/examples/fracpitch.a
Normal file
479
presets/vcs/examples/fracpitch.a
Normal file
@ -0,0 +1,479 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;; Playing music on the Atari VCS can be challenging since
|
||||
;; the frequencies rarely line up with the desired notes of a
|
||||
;; musical scale, and if they do, they're likely out of tune.
|
||||
;; There are only 32 divisors to configure pitch for a channel,
|
||||
;; and three possible base clocks that produce square tones --
|
||||
;; a total of 96 possible frequencies.
|
||||
;;
|
||||
;; This demo implements fractional frequencies by duty cycling
|
||||
;; the frequency divisor.
|
||||
;; This extends the number of audible pitches to 768.
|
||||
;;
|
||||
;; We have a lookup table with AUDF, AUDC, and a duty cycle
|
||||
;; bitmask for each note. Every 2 msec, we rotate the bitmask
|
||||
;; and add the next bit to the divisor -- cycling between
|
||||
;; two neighboring divisors.
|
||||
;;
|
||||
;; The pitches are modulated 8 times per frame, but could
|
||||
;; be reduced to 1 or 2 times per frame, but "vibrato"
|
||||
;; would be more apparent.
|
||||
;;
|
||||
;; The song file format is simple:
|
||||
;; - High bit set: delay (0-126)
|
||||
;; - High bit clear: note (0-63)
|
||||
;; - $FF: done
|
||||
;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
processor 6502
|
||||
include "vcs.h"
|
||||
include "macro.h"
|
||||
include "xmacro.h"
|
||||
|
||||
|
||||
org $f000
|
||||
|
||||
Chan0dur equ $e0 ; current note duration channel 0
|
||||
Chan1dur equ $e1 ; current note duration channel 1
|
||||
Chan0note equ $e2 ; current note pitch channel 0
|
||||
Chan1note equ $e3 ; current note pitch channel 1
|
||||
Chan0duty equ $e4 ; current duty bits channel 0
|
||||
Chan1duty equ $e5 ; current duty bits channel 1
|
||||
DurationTimer equ $e6 ; duration until next cmd
|
||||
CurChannel equ $e7 ; next channel to add note
|
||||
SongPtr equ $e8 ; ptr to next song byte
|
||||
|
||||
BitmapY equ $f0 ; next line of bitmap
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
MAC PULSE
|
||||
TIMER_SETUP 35
|
||||
jsr DutyCycle ; cycle notes
|
||||
jsr Pulse ; decrement duration timer
|
||||
lda Chan0note
|
||||
sta COLUBK
|
||||
lda Chan1note
|
||||
sta COLUPF
|
||||
jsr DrawBitmap ; draw ~34 lines of bitmap
|
||||
ENDM
|
||||
|
||||
MAC DUTYCYCLE
|
||||
TIMER_SETUP 34
|
||||
jsr DutyCycle ; cycle notes
|
||||
jsr DrawBitmap ; draw ~33 lines of bitmap
|
||||
ENDM
|
||||
|
||||
Start
|
||||
CLEAN_START
|
||||
jsr ResetTrack
|
||||
|
||||
NextFrame
|
||||
VERTICAL_SYNC
|
||||
lda #$d0
|
||||
sta BitmapY ; top of bitmap
|
||||
; 35*2 + 34*6 = 274 lines (264 b/c we exit timer early)
|
||||
PULSE
|
||||
DUTYCYCLE
|
||||
DUTYCYCLE
|
||||
DUTYCYCLE
|
||||
PULSE
|
||||
DUTYCYCLE
|
||||
DUTYCYCLE
|
||||
DUTYCYCLE
|
||||
lda #0
|
||||
sta COLUBK
|
||||
jmp NextFrame
|
||||
|
||||
DrawBitmap
|
||||
ldy BitmapY
|
||||
ScanLoop
|
||||
; WSYNC and store playfield registers
|
||||
sta WSYNC
|
||||
lda PFBitmap0,y
|
||||
sta PF0 ; store first playfield byte
|
||||
lda PFBitmap1,y
|
||||
sta PF1 ; store 2nd byte
|
||||
lda PFBitmap2,y
|
||||
sta PF2 ; store 3rd byte
|
||||
; Here's the asymmetric part -- by this time the TIA clock
|
||||
; is far enough that we can rewrite the same PF registers
|
||||
; and display new data on the right side of the screen
|
||||
nop
|
||||
nop
|
||||
nop ; pause to let playfield finish drawing
|
||||
lda PFBitmap3,y
|
||||
sta PF0 ; store 4th byte
|
||||
lda PFBitmap4,y
|
||||
sta PF1 ; store 5th byte
|
||||
lda PFBitmap5,y
|
||||
sta PF2 ; store 6th byte
|
||||
dey
|
||||
lda INTIM
|
||||
cmp #2
|
||||
bcs ScanLoop ; repeat until all scanlines drawn
|
||||
TIMER_WAIT
|
||||
sty BitmapY
|
||||
lda #0
|
||||
sta PF0
|
||||
sta PF1
|
||||
sta PF2
|
||||
rts
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; Table of AUDF base values for each note
|
||||
FREQZ .byte 30, 30, 30, 30, 30, 28, 26, 25, 23, 22, 21, 19, 18, 17, 16, 15, 14, 13, 12, 12, 11, 10, 10, 9, 8, 8, 7, 7, 6, 6, 5, 5, 30, 29, 27, 25, 24, 22, 21, 20, 19, 18, 16, 15, 15, 14, 13, 12, 11, 11, 10, 31, 29, 27, 25, 24, 23, 21, 20, 19, 18, 16, 15, 15
|
||||
; Table of duty-cycle bits for each note
|
||||
DUTYZ .byte 247, 247, 247, 247, 1, 73, 219, 1, 219, 73, 0, 219, 181, 85, 85, 85, 181, 219, 247, 1, 73, 181, 0, 73, 219, 17, 219, 17, 219, 73, 247, 85, 247, 1, 85, 247, 73, 247, 181, 17, 1, 0, 247, 247, 0, 1, 17, 73, 181, 0, 17, 0, 1, 85, 247, 73, 0, 181, 73, 1, 0, 247, 247, 0
|
||||
; Table of AUDC values for each note
|
||||
TONEZ .byte 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
|
||||
|
||||
; Cycle the pitches of each channel
|
||||
DutyCycle
|
||||
; set playfield colors
|
||||
lda Chan0duty
|
||||
ora #$07
|
||||
sta COLUBK
|
||||
lda Chan1duty
|
||||
and #$f0
|
||||
sta COLUPF
|
||||
; update channel 0
|
||||
ldx #0
|
||||
jsr MusicFrame
|
||||
; update channel 1
|
||||
ldx #1
|
||||
jsr MusicFrame
|
||||
rts
|
||||
|
||||
; Play a note
|
||||
; X = channel (0,1)
|
||||
; Y = note index (0-63)
|
||||
PlayNote
|
||||
lda FREQZ,y
|
||||
sta Chan0note,x
|
||||
lda DUTYZ,y
|
||||
sta Chan0duty,x
|
||||
lda TONEZ,y
|
||||
sta AUDC0,x
|
||||
lda #31
|
||||
sta Chan0dur,x
|
||||
lda #15
|
||||
sta AUDV0,x
|
||||
rts
|
||||
|
||||
; Reset to start of song
|
||||
ResetTrack
|
||||
lda #<NOTEZ
|
||||
sta SongPtr+0
|
||||
lda #>NOTEZ
|
||||
sta SongPtr+1
|
||||
rts
|
||||
|
||||
; Called 2x per frame
|
||||
; Decrement the volumes for each channel
|
||||
; Also decrement next-note timer, fetch next note
|
||||
Pulse
|
||||
lda Chan0dur
|
||||
beq NoDec0
|
||||
lsr
|
||||
sta AUDV0
|
||||
dec Chan0dur
|
||||
NoDec0
|
||||
lda Chan1dur
|
||||
beq NoDec1
|
||||
lsr
|
||||
sta AUDV1
|
||||
dec Chan1dur
|
||||
NoDec1
|
||||
lda DurationTimer
|
||||
beq NextData
|
||||
dec DurationTimer
|
||||
rts
|
||||
|
||||
; Timer ran out, so fetch next note
|
||||
NextData
|
||||
ldx #0
|
||||
lda (SongPtr,x)
|
||||
bmi LoadDuration
|
||||
; < $80, play next note
|
||||
ldx CurChannel ; next channel
|
||||
tay
|
||||
jsr PlayNote
|
||||
inx
|
||||
txa
|
||||
and #1
|
||||
sta CurChannel ; inc next channel
|
||||
jmp IncDataPtr
|
||||
; >= $80, load next duration
|
||||
LoadDuration
|
||||
cmp #$ff ; $ff = end of song
|
||||
beq ResetTrack
|
||||
and #$7f
|
||||
asl
|
||||
sta DurationTimer ; store duration * 2
|
||||
IncDataPtr
|
||||
; increment song pointer
|
||||
inc SongPtr
|
||||
bne NoIncHi
|
||||
inc SongPtr+1
|
||||
NoIncHi
|
||||
rts
|
||||
|
||||
; Update channel pitch in AUDF0
|
||||
MusicFrame
|
||||
; 8-bit rotation of duty cycle bits
|
||||
lda Chan0duty,x
|
||||
asl
|
||||
bcc NoCarry
|
||||
ora #1
|
||||
NoCarry
|
||||
sta Chan0duty,x
|
||||
lda Chan0note,x
|
||||
; If next bit is set, add 1 to AUDF0
|
||||
adc #0
|
||||
sta AUDF0,x
|
||||
VolZero
|
||||
rts
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; MUSIC DATA - "The Easy Winners" by Scott Joplin
|
||||
|
||||
NOTEZ
|
||||
hex 2a1e983327a431258c2f238c2e228c2c
|
||||
hex 208c2a1e98281c8c271b9825198c2317
|
||||
hex 8c22128c238c258c278c281e8c2a1c8c
|
||||
hex 2c1b8c2e198c2f17981e9812981e982f
|
||||
hex 17983327981298361e9838178c368c1e
|
||||
hex 8c388c33128c388c361e983d108c3b8c
|
||||
hex 208c378c3b108c3d8c3b288c368c1798
|
||||
hex 2a1e8c2c8c2e128c2f8c311e8c328c33
|
||||
hex 1798331e981298331e9838178c368c27
|
||||
hex 8c388c36188c368c33219836198c2e8c
|
||||
hex 228c368c2f198c368c2f25982e1e981c
|
||||
hex 981b8c2a8c2e258c348c331798331e98
|
||||
hex 129833279838178c368c1e8c388c3612
|
||||
hex 8c388c331e983d108c3b8c208c3d8c3b
|
||||
hex 1c8c3b8c381c8c3f8c1b8c338c37228c
|
||||
hex 3a8c3f0f983a8c3b8c3d108c3b8c208c
|
||||
hex 3d8c38108c3d8c3b288c368c178c348c
|
||||
hex 361e8c348c33178c368c278c368c3012
|
||||
hex 8c348c1e8c368c34128c338c281e982f
|
||||
hex 1e981298149816983317983327981298
|
||||
hex 331e9838178c368c1e8c388c36128c38
|
||||
hex 8c331e983d108c3b8c208c3d8c3b108c
|
||||
hex 3d8c38288c368c17982a1e8c2c8c2e12
|
||||
hex 8c2f8c311e8c328c331798331e981298
|
||||
hex 361e9838178c368c278c328c36188c36
|
||||
hex 8c36219836198c2e8c228c368c35198c
|
||||
hex 368c2f2598361e981c981b8c2a8c2e25
|
||||
hex 8c348c2f1798331e981298361e983817
|
||||
hex 8c368c1e8c328c36128c388c361e983d
|
||||
hex 108c388c288c3d8c3b1c8c3b8c3d1c8c
|
||||
hex 378c1b8c338c37168c3a8c3f1b983a8c
|
||||
hex 3b8c3d108c3b8c208c3d8c3b108c3d8c
|
||||
hex 38288c368c178c388c361e8c348c2f17
|
||||
hex 8c368c278c368c36128c348c1e8c308c
|
||||
hex 34128c338c311e982f179812982f0b98
|
||||
hex 2a8c2b8c2c128c2d8c2e288c2e8c168c
|
||||
hex 368c341e8c318c2c198c2d8c2e288c2e
|
||||
hex 8c198c318c2c1a8c2e8c2f1b8c2a8c2c
|
||||
hex 278c2e8c2f128c308c311e8c328c3323
|
||||
hex 8c328c331e8c338c128c368c311e8c33
|
||||
hex 8c34258c3d8c1e8c338c34128c3d8c1e
|
||||
hex 8c338c34258c3d8c1e8c3b8c3a128c38
|
||||
hex 8c36168c348c33178c3b8c278c328c33
|
||||
hex 128c3b8c1e8c328c33178c3b8c278c38
|
||||
hex 8c36128c338c311e8c2f8c2e148c2f8c
|
||||
hex 302a8c308c188c368c33208c308c2e1b
|
||||
hex 8c2f8c302a8c308c148c338c38208c33
|
||||
hex 8c31198c308c31288c2c8c1c8c308c31
|
||||
hex 208c348c38198c338c34208c318c258c
|
||||
hex 2c8c288c258c261d8c29208c2c238c2f
|
||||
hex 268c32298c322998322998358c388c32
|
||||
hex 8c3eb03f8c3b8c368c338c338c2f8c27
|
||||
hex 8c2a8c28128c288c128c2f8c17982a8c
|
||||
hex 2b8c2c128c2d8c2e288c318c168c368c
|
||||
hex 341e8c318c2c198c2d8c2e288c2e8c19
|
||||
hex 8c318c2c1a8c2e8c2f1b8c2a8c2c278c
|
||||
hex 2e8c2f128c308c311e8c328c33178c32
|
||||
hex 8c33278c338c128c368c311e8c338c34
|
||||
hex 198c3d8c288c338c34128c3d8c1e8c33
|
||||
hex 8c34198c3d8c288c3b8c3a128c388c36
|
||||
hex 168c348c33178c3b8c278c328c33128c
|
||||
hex 3b8c1e8c328c33178c3b8c278c388c36
|
||||
hex 128c338c311e8c2f8c2e148c2f8c302a
|
||||
hex 8c308c188c368c33208c308c2e1b8c2f
|
||||
hex 8c302a8c308c148c338c38208c338c31
|
||||
hex 198c308c31288c2c8c1c8c308c31208c
|
||||
hex 348c38198c338c34208c318c258c2c8c
|
||||
hex 288c258c261d8c29208c2c238c2f268c
|
||||
hex 32298c322998322998358c2f8c3b8c3e
|
||||
hex b03f8c3b8c368c338c338c2f8c278c2a
|
||||
hex 8c281e8c288c128c2f8c17982a983317
|
||||
hex 98331e981298331e9838178c368c1e8c
|
||||
hex 388c36128c388c3327983d108c3b8c20
|
||||
hex 8c3d8c3b108c378c3b208c368c17982a
|
||||
hex 1e8c2c8c2e128c2f8c311e8c328c3317
|
||||
hex 983327981298361e9838178c338c278c
|
||||
hex 388c36188c368c36219836198c318c22
|
||||
hex 8c368c2f198c368c2f2598361e981c98
|
||||
hex 1b8c2a8c2e258c348c331798331e9812
|
||||
hex 9836279838178c338c1e8c388c36128c
|
||||
hex 388c361e983d108c388c208c3d8c3b1c
|
||||
hex 8c3b8c3d1c8c378c1b8c338c37228c3a
|
||||
hex 8c3f0f983a8c3b8c37108c3b8c208c3d
|
||||
hex 8c3b1c8c3d8c3b208c338c178c388c36
|
||||
hex 1e8c348c2f238c368c1e8c368c36128c
|
||||
hex 348c1e8c368c311e8c338c3112982f17
|
||||
hex 9812982f0bb03428983428a42f238c34
|
||||
hex 288c362a8c38982ca42f8c348c388c2f
|
||||
hex 8c3698338c178c338c2d17982c1c9810
|
||||
hex 9812982f148c308c31158c398c2d8c36
|
||||
hex 8c301e8c398c1f8c368c2f208c348c38
|
||||
hex 2c8c3d8c1c8c3b8c38238c348c33178c
|
||||
hex 3b8c362d8c338c311e8c338c1f8c2f8c
|
||||
hex 34208c348c381c8c3b8c238c3d8c3b14
|
||||
hex 8c388c31158c398c258c368c302a8c39
|
||||
hex 8c1f8c368c2f208c348c38238c3d8c1c
|
||||
hex 8c3b8c382c8c348c36198c388c36288c
|
||||
hex 348c33128c348c2e8c318c2f2398321d
|
||||
hex 8c361e8c3317982f209831218c398c25
|
||||
hex 8c368c301e8c398c1f8c368c2c8c2f8c
|
||||
hex 34238c388c3d1c8c3b8c38238c348c33
|
||||
hex 238c3b8c36238c338c311e8c338c1f8c
|
||||
hex 2f8c2c8c348c381c8c3b8c38178c3d8c
|
||||
hex 3b148c388c31158c398c258c368c301e
|
||||
hex 8c398c218c368c208c2f8c341c8c388c
|
||||
hex 3d238c3b8c381c8c2f8c2e198c318c12
|
||||
hex 982d0b8c33982c8c1c98381c8c348c36
|
||||
hex 178c388c2f148c308c31158c398c2d8c
|
||||
hex 368c301e8c398c1f8c368c2f208c348c
|
||||
hex 382c8c3d8c1c8c3b8c38238c348c3317
|
||||
hex 8c3b8c362d8c338c311e8c338c1f8c2f
|
||||
hex 8c34208c348c381c8c3b8c238c3d8c3b
|
||||
hex 148c388c31158c398c258c368c302a8c
|
||||
hex 398c1f8c368c2f208c348c38238c3d8c
|
||||
hex 288c3b8c38238c348c36198c388c3628
|
||||
hex 8c348c331e8c348c288c318c2f239832
|
||||
hex 1d8c331e8c3b17982f289831158c398c
|
||||
hex 258c368c301e8c398c2b8c368c208c2f
|
||||
hex 8c34238c388c3d1c8c3b8c382c8c348c
|
||||
hex 33178c3b8c36238c338c311e8c338c2b
|
||||
hex 8c2f8c208c348c381c8c3b8c38178c3d
|
||||
hex 8c32148c388c31218c398c198c368c30
|
||||
hex 1e8c398c218c368c208c2f8c34288c38
|
||||
hex 8c3d178c3b8c381c8c2f8c2e198c318c
|
||||
hex 12982d178c36982c8c1098179834108c
|
||||
hex 2f8c318c3e8c331e982f238c318c2398
|
||||
hex 23983312982f238c318c1e8c2f178c31
|
||||
hex 168c33158c3414983b2c8c318c1c9823
|
||||
hex 983414983b2c8c318c1c981d981e983d
|
||||
hex 2d8c3b8c179823981b983d2d8c338c17
|
||||
hex 9823981c983d2c8c348c179823981c98
|
||||
hex 3d2c8c3b8c208c2f8c311f8c328c3f1e
|
||||
hex 982f2d8c318c179823983f12982f2d8c
|
||||
hex 318c128c2f178c3d168c33158c342098
|
||||
hex 2f238c3d8c1c9823982c8c348c381c8c
|
||||
hex 3b8c38178c3d8c32148c388c31158c39
|
||||
hex 8c258c368c301e8c398c218c368c208c
|
||||
hex 2f8c341c8c388c3d238c3b8c381c8c2f
|
||||
hex 8c2e198c318c12982d178c36982c8c2c
|
||||
hex 1098179834208c2f8c3d1f8c328c332a
|
||||
hex 982f238c3d8c17982398331e982f238c
|
||||
hex 3d8c128c2f178c31168c33218c381498
|
||||
hex 2f238c318c1c982c983814982f238c31
|
||||
hex 8c1c9829981e983d238c338c17982d98
|
||||
hex 1b983d238c338c17982d981c983d238c
|
||||
hex 348c17982c981c983d238c3b8c208c2f
|
||||
hex 8c312b8c328c3f1e982f238c318c1798
|
||||
hex 2d983f12982f238c318c128c3b238c31
|
||||
hex 168c33158c3414982f238c3d8c289823
|
||||
hex 98208c348c381c8c3b8c38238c3d8c3b
|
||||
hex 148c388c31158c398c198c368c301e8c
|
||||
hex 398c2d8c368c208c2f8c341c8c388c3d
|
||||
hex 178c3b8c381c8c2f8c2e258c318c1298
|
||||
hex 2d0b8c33982c8c2c109817983410ff
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; BITMAP DATA - Bob
|
||||
|
||||
PFBitmap0
|
||||
hex 000000808080c0c0c0c0c0e0e0e0e0e0
|
||||
hex e0e0e020000040c0c0c0808080000000
|
||||
hex 00000000000000000000000000000000
|
||||
hex 00000000000000000000000000000000
|
||||
hex 00000000000000000000000000000000
|
||||
hex 00000000000000000000800000008000
|
||||
hex 80000000800000008000800080000000
|
||||
hex 00000000800080008000800080008000
|
||||
hex 80008000800080008000000000000000
|
||||
hex 00000000000000000000000000000000
|
||||
hex 00000000000000000000000000000000
|
||||
PFBitmap1
|
||||
hex 0000c0e0e0f0f0f8b8f8b8bcbcbcbcbe
|
||||
hex be3e7ebf7f7f7f7fbfb7b7d3a3030101
|
||||
hex 01010100020001020201060306050505
|
||||
hex 0d020e0b0a0d0a0e0a0a1e0e0f1e0f0e
|
||||
hex 1f0e0c0c0c0c08080828686028205040
|
||||
hex b040d08068c0d0c0d1e0d0e0d0e5d0e6
|
||||
hex dae6d3f5d7f9eafcfcfcfafffbfbfdf8
|
||||
hex f9f8fcf0fcf8faf8f8f8fcf1fcf1fcf8
|
||||
hex f4f8fcf8f4f8fcf9f4f8fdfdfdfefdff
|
||||
hex ffffff7fff7f7f7f7f3f3f3f3f3e3f1f
|
||||
hex 1f0f0f0f0f0707030301010000000000
|
||||
PFBitmap2
|
||||
hex 000000000000000000000000000000f0
|
||||
hex f8f8fc3cbc16bc173b5f3b9b3b377b37
|
||||
hex 776ff7effffffe7e7e3cfc78fcfc3c7c
|
||||
hex fc3e1c1e0c0ecefcfefefffefffefdfd
|
||||
hex fd79fa7a7a502c282830102060002040
|
||||
hex 2040c02040514247466c4870c833e672
|
||||
hex f6777f7f78793fba1c3c1f1f1f0f1782
|
||||
hex 00200000890020008110400000200000
|
||||
hex 400000200000800001a0cafafefbfeff
|
||||
hex ffffffffffffffffbfffbfdf5bd55944
|
||||
hex 4d696f2f7fbffffffffffffefe200000
|
||||
PFBitmap3
|
||||
hex 00000000000000000000000000c0f0f0
|
||||
hex f0f0a050004000000000000000000010
|
||||
hex 4000b070b0f0a04000100010f0408000
|
||||
hex 50800000000050f0c080101030303070
|
||||
hex 70f0e0e080000040004000a000004000
|
||||
hex 000000000000000000000000004000c0
|
||||
hex 80c0c080808000400000000000008000
|
||||
hex 00000000800040000040000000004000
|
||||
hex 00004000008000001070f0f0f0f0f0f0
|
||||
hex f0f0f0f0d0f0b0c090c08080c0404040
|
||||
hex 60406070a070f0f0f0f0f0f0f0000000
|
||||
PFBitmap4
|
||||
hex 000000000000000000000000000080c0
|
||||
hex c06060e0303010380818080c040c0406
|
||||
hex 04064606820342038303010341014101
|
||||
hex 41614160703130f9f8fc787d060f0e1f
|
||||
hex 0a1b1a199090a060a040000000000000
|
||||
hex 00000000000008101820202010149a11
|
||||
hex d9fffefea2f8a8c040f97f7f7f3e1c10
|
||||
hex 00000000000000400800000080000000
|
||||
hex 00880000000000000000008080c0f0f8
|
||||
hex 7cfeffffffffffbfbf5d3f5d177d972d
|
||||
hex b62ea3afb3aff7fffefefcf8e0000000
|
||||
PFBitmap5
|
||||
hex 00000000000000000000000000000000
|
||||
hex 00000000000000000000000000000000
|
||||
hex 00000000000000000000000000000100
|
||||
hex 01000101030103020301030203020302
|
||||
hex 03050301030202000200101808200800
|
||||
hex 1028201030102830303832383a703a78
|
||||
hex 3a78327a3a793a793b7b797a7d7a397c
|
||||
hex 7b7c7d797d797d797c797a787c78687a
|
||||
hex 6c787c7a687c6c7c3c7c7c3c7e3c7e3e
|
||||
hex 3e3e3e3f3f1f1f1f1f0f0f0f0703030b
|
||||
hex 03070101010100000000000000000000
|
||||
|
||||
; Epilogue
|
||||
org $fffc
|
||||
.word Start
|
||||
.word Start
|
@ -881,6 +881,7 @@ var BaseMAMEPlatform = function() {
|
||||
var running = false;
|
||||
var console_vars = {};
|
||||
var console_varname;
|
||||
var initluavars = false;
|
||||
|
||||
this.luareset = function() {
|
||||
console_vars = {};
|
||||
@ -912,6 +913,8 @@ var BaseMAMEPlatform = function() {
|
||||
|
||||
this.reset = function() {
|
||||
this.luacall('manager:machine():soft_reset()');
|
||||
running = true;
|
||||
initluavars = false;
|
||||
}
|
||||
|
||||
this.isRunning = function() {
|
||||
@ -1030,8 +1033,6 @@ var BaseMAMEPlatform = function() {
|
||||
return state;
|
||||
}
|
||||
|
||||
var initluavars=false;
|
||||
|
||||
this.readAddress = function(a) {
|
||||
if (!initluavars) {
|
||||
self.luacall('cpu = manager:machine().devices[":maincpu"]\nmem = cpu.spaces["program"]\n')
|
||||
|
@ -26,6 +26,7 @@ function PixelEditor(parentDiv, fmt, palette, initialData, thumbnails) {
|
||||
for (var i=0; i<thumbnails.length; i++) {
|
||||
thumbnails[i].copyImageFrom(self);
|
||||
}
|
||||
initialData.set(self.getImageColors());
|
||||
}
|
||||
|
||||
this.copyImageFrom = function(src) {
|
||||
@ -249,6 +250,7 @@ function convertBytesToImages(bytes, fmt) {
|
||||
var nplanes = fmt.np || 1;
|
||||
var bytesperline = fmt.sl || Math.ceil(width * bpp / 8);
|
||||
var mask = (1 << bpp)-1;
|
||||
var pofs = fmt.pofs || bytesperline*height*count;
|
||||
var images = [];
|
||||
for (var n=0; n<count; n++) {
|
||||
var imgdata = [];
|
||||
@ -259,7 +261,7 @@ function convertBytesToImages(bytes, fmt) {
|
||||
var color = 0;
|
||||
var ofs = remapBits(ofs0, fmt.remap);
|
||||
for (var p=0; p<nplanes; p++) {
|
||||
var byte = bytes[ofs + p*(fmt.pofs|0)];
|
||||
var byte = bytes[ofs + p*pofs];
|
||||
color |= ((fmt.brev ? byte>>(8-shift-bpp) : byte>>shift) & mask) << (p*bpp);
|
||||
}
|
||||
imgdata.push(color);
|
||||
@ -270,7 +272,7 @@ function convertBytesToImages(bytes, fmt) {
|
||||
}
|
||||
}
|
||||
}
|
||||
images.push(imgdata);
|
||||
images.push(new Uint8Array(imgdata));
|
||||
}
|
||||
return images;
|
||||
}
|
||||
@ -283,7 +285,8 @@ function convertImagesToBytes(images, fmt) {
|
||||
var nplanes = fmt.np || 1;
|
||||
var bytesperline = fmt.sl || Math.ceil(fmt.w * bpp / 8);
|
||||
var mask = (1 << bpp)-1;
|
||||
var bytes = new Uint8Array(bytesperline * height * nplanes * count);
|
||||
var pofs = fmt.pofs || bytesperline*height*count;
|
||||
var bytes = new Uint8Array(bytesperline*height*count*nplanes);
|
||||
for (var n=0; n<count; n++) {
|
||||
var imgdata = images[n];
|
||||
var i = 0;
|
||||
@ -295,7 +298,7 @@ function convertImagesToBytes(images, fmt) {
|
||||
var ofs = remapBits(ofs0, fmt.remap);
|
||||
for (var p=0; p<nplanes; p++) {
|
||||
var c = (color >> (p*bpp)) & mask;
|
||||
bytes[ofs + p*(fmt.pofs|0)] |= (fmt.brev ? (c << (8-shift-bpp)) : (c << shift));
|
||||
bytes[ofs + p*pofs] |= (fmt.brev ? (c << (8-shift-bpp)) : (c << shift));
|
||||
}
|
||||
shift += bpp;
|
||||
if (shift >= 8) {
|
||||
@ -373,10 +376,10 @@ function pixelEditorDecodeMessage(e) {
|
||||
// TODO: swap palettes
|
||||
}
|
||||
} else {
|
||||
var ncols = (currentFormat.bpp || 1) * (currentFormat.np || 2);
|
||||
var ncols = (currentFormat.bpp || 1) * (currentFormat.np || 1);
|
||||
switch (ncols) {
|
||||
case 2:
|
||||
palette = [0xff000000, 0xffff0000, 0xffffff00, 0xffffffff];
|
||||
palette = [0xff000000, 0xffff00ff, 0xffffff00, 0xffffffff];
|
||||
break;
|
||||
// TODO
|
||||
}
|
||||
|
@ -19,8 +19,13 @@ var ColecoVision_PRESETS = [
|
||||
{id:'stars.c', name:'Scrolling Starfield'},
|
||||
{id:'cursorsmooth.c', name:'Moving Cursor'},
|
||||
{id:'simplemusic.c', name:'Simple Music'},
|
||||
{id:'musicplayer.c', name:'Multivoice Music'},
|
||||
{id:'mode2bitmap.c', name:'Mode 2 Bitmap'},
|
||||
{id:'lines.c', name:'Mode 2 Lines'},
|
||||
{id:'multicolor.c', name:'Multicolor Mode'},
|
||||
{id:'siegegame.c', name:'Siege Game'},
|
||||
{id:'shoot.c', name:'Solarian Game'},
|
||||
{id:'platform.c', name:'Platform Game'},
|
||||
];
|
||||
|
||||
// doesn't work, use MAME
|
||||
|
@ -15,6 +15,8 @@ var NES_CONIO_PRESETS = [
|
||||
{id:'siegegame.c', name:'C: Siege Game'},
|
||||
];
|
||||
|
||||
new jt.M6502(); // to get Javatari.getOpcodeMetadata
|
||||
|
||||
/// JSNES
|
||||
|
||||
var JSNESPlatform = function(mainElement) {
|
||||
@ -34,6 +36,7 @@ var JSNESPlatform = function(mainElement) {
|
||||
nes.loadRom(data);
|
||||
}
|
||||
|
||||
this.getOpcodeMetadata = Javatari.getOpcodeMetadata;
|
||||
this.getToolForFilename = getToolForFilename_6502;
|
||||
this.getDefaultExtension = function() { return ".c"; };
|
||||
|
||||
@ -67,6 +70,7 @@ var NESMAMEPlatform = function(mainElement, lzgRom, romSize) {
|
||||
});
|
||||
}
|
||||
|
||||
this.getOpcodeMetadata = Javatari.getOpcodeMetadata;
|
||||
this.getToolForFilename = getToolForFilename_6502;
|
||||
this.getDefaultExtension = function() { return ".c"; };
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ var VCS_PRESETS = [
|
||||
{id:'examples/road', chapter:33, name:'Pseudo 3D Road'},
|
||||
{id:'examples/bankswitching', chapter:35, name:'Bankswitching'},
|
||||
{id:'examples/wavetable', chapter:36, name:'Wavetable Sound'},
|
||||
{id:'examples/fracpitch', name:'Fractional Pitch'},
|
||||
// {id:'examples/music2', name:'Pitch-Accurate Music'},
|
||||
// {id:'examples/fullgame', name:'Thru Hike: The Game', title:'Thru Hike'},
|
||||
];
|
||||
|
24
src/ui.js
24
src/ui.js
@ -1096,20 +1096,30 @@ function openBitmapEditorAtCursor() {
|
||||
}
|
||||
|
||||
function _recordVideo() {
|
||||
var gif = new GIF({
|
||||
workerScript: 'gif.js/dist/gif.worker.js',
|
||||
workers: 4,
|
||||
quality: 10
|
||||
});
|
||||
var canvas = $("#emulator").find("canvas")[0];
|
||||
if (!canvas) {
|
||||
alert("Could not find canvas element to record video!");
|
||||
return;
|
||||
}
|
||||
var rotate = 0;
|
||||
if (canvas.style && canvas.style.transform) {
|
||||
if (canvas.style.transform.indexOf("rotate(-90deg)") >= 0)
|
||||
rotate = -1;
|
||||
else if (canvas.style.transform.indexOf("rotate(90deg)") >= 0)
|
||||
rotate = 1;
|
||||
}
|
||||
var gif = new GIF({
|
||||
workerScript: 'gif.js/dist/gif.worker.js',
|
||||
workers: 4,
|
||||
quality: 10,
|
||||
rotate: rotate
|
||||
});
|
||||
var img = $('#videoPreviewImage');
|
||||
//img.attr('src', 'https://articulate-heroes.s3.amazonaws.com/uploads/rte/kgrtehja_DancingBannana.gif');
|
||||
gif.on('finished', function(blob) {
|
||||
img.attr('src', URL.createObjectURL(blob));
|
||||
$("#pleaseWaitModal").modal('hide');
|
||||
platform.resume();
|
||||
$("#videoPreviewModal").modal('show');
|
||||
});
|
||||
var intervalMsec = 17;
|
||||
@ -1119,9 +1129,11 @@ function _recordVideo() {
|
||||
var f = function() {
|
||||
if (nframes++ > maxFrames) {
|
||||
console.log("Rendering video");
|
||||
$("#pleaseWaitModal").modal('show');
|
||||
platform.pause();
|
||||
gif.render();
|
||||
} else {
|
||||
gif.addFrame(canvas, {delay: intervalMsec});
|
||||
gif.addFrame(canvas, {delay: intervalMsec, copy: true});
|
||||
setTimeout(f, intervalMsec);
|
||||
}
|
||||
};
|
||||
|
@ -7,12 +7,14 @@ parser.add_argument('-l', '--length', type=int, default=64, help="length of note
|
||||
parser.add_argument('-u', '--upper', type=int, default=49, help="upper note # to test")
|
||||
parser.add_argument('-f', '--freq', type=float, default=3579545/32.0, help="base frequency (Hz)")
|
||||
parser.add_argument('-b', '--bias', type=float, default=0, help="divisor bias")
|
||||
parser.add_argument('-m', '--maxbits', type=float, default=12, help="max. # of bits")
|
||||
args = parser.parse_args()
|
||||
|
||||
test_notes = args.upper
|
||||
final_notes = args.length
|
||||
basehz = args.freq
|
||||
bias = args.bias
|
||||
maxval = (1<<int(args.maxbits))-1
|
||||
|
||||
results = []
|
||||
|
||||
@ -21,6 +23,8 @@ for a440 in range(4300,4500):
|
||||
for note in range(1,test_notes):
|
||||
notehz = a440 / 10.0 * math.pow(2.0, (note - 49) / 12.0);
|
||||
period = int(round(basehz / notehz))
|
||||
while period > maxval:
|
||||
period /= 2
|
||||
tonehz = basehz / period
|
||||
error += abs(notehz-tonehz)
|
||||
#print a440,note,notehz,notehz-tonehz,period
|
||||
@ -31,11 +35,14 @@ for a440 in range(4300,4500):
|
||||
results.sort()
|
||||
best_error, best_a440 = results[0]
|
||||
best_a440 /= 10.0
|
||||
print '//', args
|
||||
print '//', best_a440, best_error, test_notes
|
||||
|
||||
print "const int note_table[%d] = {" % final_notes
|
||||
for note in range(0,final_notes):
|
||||
notehz = best_a440 * math.pow(2.0, (note - 49) / 12.0);
|
||||
period = int(round(basehz / notehz)) - bias
|
||||
while period > maxval:
|
||||
period /= 2
|
||||
print '%d,' % period,
|
||||
print "};"
|
||||
|
Loading…
Reference in New Issue
Block a user