mirror of https://github.com/pevans/erc-c.git
743 lines
54 KiB
C
743 lines
54 KiB
C
/*
|
|
* apple2.hires.c
|
|
*
|
|
* High resolution graphics in Apple are a significant change from its
|
|
* low-resolution graphics. Where one byte can hold the color data for
|
|
* two onscreen cells in lores graphics, in hires, each _bit_
|
|
* corresponds to a pixel. The colors you can show depend on the pattern
|
|
* of high and low bits within a given data byte. Certain columns can be
|
|
* used to display black, purple, or blue; other columns can be used to
|
|
* show black, green, or orange.
|
|
*
|
|
* Some of this has to do with the space constraints available to the
|
|
* Apple II: the hires graphics buffer is held between $2000 and $3FFF,
|
|
* which is only 8k RAM. Some of this has to do with the peculiarities
|
|
* of the NTSC format, because the Apple II was designed to work with
|
|
* standard television screens.
|
|
*/
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "apple2/hires.h"
|
|
#include "apple2/text.h"
|
|
|
|
enum hires_color {
|
|
HIRES_GREEN,
|
|
HIRES_PURPLE,
|
|
HIRES_ORANGE,
|
|
HIRES_BLUE,
|
|
HIRES_BLACK,
|
|
HIRES_WHITE,
|
|
};
|
|
|
|
/*
|
|
* This table maps a row number to a base address in the hires graphics
|
|
* buffer. From there, (base + i) maps to column i in that row.
|
|
*/
|
|
static int addresses[] = {
|
|
// 0 1 2 3 4 5 6 7
|
|
0x2000, 0x2400, 0x2800, 0x2C00, 0x3000, 0x3400, 0x3800, 0x3C00, // 0-7
|
|
0x2080, 0x2480, 0x2880, 0x2C80, 0x3080, 0x3480, 0x3880, 0x3C80, // 8-15
|
|
0x2100, 0x2500, 0x2900, 0x2D00, 0x3100, 0x3500, 0x3900, 0x3D00, // 16-23
|
|
0x2180, 0x2580, 0x2980, 0x2D80, 0x3180, 0x3580, 0x3980, 0x3D80, // 24-31
|
|
0x2200, 0x2600, 0x2A00, 0x2E00, 0x3200, 0x3600, 0x3A00, 0x3E00, // 32-39
|
|
0x2280, 0x2680, 0x2A80, 0x2E80, 0x3280, 0x3680, 0x3A80, 0x3E80, // 40-47
|
|
0x2300, 0x2700, 0x2B00, 0x2F00, 0x3300, 0x3700, 0x3B00, 0x3F00, // 48-55
|
|
0x2380, 0x2780, 0x2B80, 0x2F80, 0x3380, 0x3780, 0x3B80, 0x3F80, // 56-63
|
|
0x2028, 0x2428, 0x2828, 0x2C28, 0x3028, 0x3428, 0x3828, 0x3C28, // 64-71
|
|
0x20A8, 0x24A8, 0x28A8, 0x2CA8, 0x30A8, 0x34A8, 0x38A8, 0x3CA8, // 72-79
|
|
0x2128, 0x2528, 0x2928, 0x2D28, 0x3128, 0x3528, 0x3928, 0x3D28, // 80-87
|
|
0x21A8, 0x25A8, 0x29A8, 0x2DA8, 0x31A8, 0x35A8, 0x39A8, 0x3DA8, // 88-95
|
|
0x2228, 0x2628, 0x2A28, 0x2E28, 0x3228, 0x3628, 0x3A28, 0x3E28, // 96-103
|
|
0x22A8, 0x26A8, 0x2AA8, 0x2EA8, 0x32A8, 0x36A8, 0x3AA8, 0x3EA8, // 104-111
|
|
0x2328, 0x2728, 0x2B28, 0x2F28, 0x3328, 0x3728, 0x3B28, 0x3F28, // 112-119
|
|
0x23A8, 0x27A8, 0x2BA8, 0x2FA8, 0x33A8, 0x37A8, 0x3BA8, 0x3FA8, // 120-127
|
|
0x2050, 0x2450, 0x2850, 0x2C50, 0x3050, 0x3450, 0x3850, 0x3C50, // 128-135
|
|
0x20D0, 0x24D0, 0x28D0, 0x2CD0, 0x30D0, 0x34D0, 0x38D0, 0x3CD0, // 136-143
|
|
0x2150, 0x2550, 0x2950, 0x2D50, 0x3150, 0x3550, 0x3950, 0x3D50, // 144-151
|
|
0x21D0, 0x25D0, 0x29D0, 0x2DD0, 0x31D0, 0x35D0, 0x39D0, 0x3DD0, // 152-159
|
|
0x2250, 0x2650, 0x2A50, 0x2E50, 0x3250, 0x3650, 0x3A50, 0x3E50, // 160-167
|
|
0x22D0, 0x26D0, 0x2AD0, 0x2ED0, 0x32D0, 0x36D0, 0x3AD0, 0x3ED0, // 168-175
|
|
0x2350, 0x2750, 0x2B50, 0x2F50, 0x3350, 0x3750, 0x3B50, 0x3F50, // 176-183
|
|
0x23D0, 0x27D0, 0x2BD0, 0x2FD0, 0x33D0, 0x37D0, 0x3BD0, 0x3FD0, // 184-191
|
|
};
|
|
|
|
#if 0
|
|
/*
|
|
* This table maps an address (across the entire hires graphics buffer
|
|
* range!) to a row. We're not using it at the moment, but I'm keeping
|
|
* it around in case we need it down the road. (Similar situation to the
|
|
* cols table.)
|
|
*/
|
|
static int rows[] = {
|
|
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // $2000
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // $2010
|
|
0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 64, 64, 64, 64, 64, // $2020
|
|
64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, // $2030
|
|
64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, // $2040
|
|
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, // $2050
|
|
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, // $2060
|
|
128, 128, 128, 128, 128, 128, 128, 128, -1, -1, -1, -1, -1, -1, -1, -1, // $2070
|
|
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // $2080
|
|
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // $2090
|
|
8, 8, 8, 8, 8, 8, 8, 8, 72, 72, 72, 72, 72, 72, 72, 72, // $20A0
|
|
72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, // $20B0
|
|
72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, // $20C0
|
|
136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, // $20D0
|
|
136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, // $20E0
|
|
136, 136, 136, 136, 136, 136, 136, 136, -1, -1, -1, -1, -1, -1, -1, -1, // $20F0
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, // $2100
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, // $2110
|
|
16, 16, 16, 16, 16, 16, 16, 16, 80, 80, 80, 80, 80, 80, 80, 80, // $2120
|
|
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, // $2130
|
|
80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, // $2140
|
|
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, // $2150
|
|
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, // $2160
|
|
144, 144, 144, 144, 144, 144, 144, 144, -1, -1, -1, -1, -1, -1, -1, -1, // $2170
|
|
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, // $2180
|
|
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, // $2190
|
|
24, 24, 24, 24, 24, 24, 24, 24, 88, 88, 88, 88, 88, 88, 88, 88, // $21A0
|
|
88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, // $21B0
|
|
88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, // $21C0
|
|
152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, // $21D0
|
|
152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, // $21E0
|
|
152, 152, 152, 152, 152, 152, 152, 152, -1, -1, -1, -1, -1, -1, -1, -1, // $21F0
|
|
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // $2200
|
|
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // $2210
|
|
32, 32, 32, 32, 32, 32, 32, 32, 96, 96, 96, 96, 96, 96, 96, 96, // $2220
|
|
96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, // $2230
|
|
96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, // $2240
|
|
160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, // $2250
|
|
160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, // $2260
|
|
160, 160, 160, 160, 160, 160, 160, 160, -1, -1, -1, -1, -1, -1, -1, -1, // $2270
|
|
40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, // $2280
|
|
40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, // $2290
|
|
40, 40, 40, 40, 40, 40, 40, 40, 104, 104, 104, 104, 104, 104, 104, 104, // $22A0
|
|
104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, // $22B0
|
|
104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, // $22C0
|
|
168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, // $22D0
|
|
168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, // $22E0
|
|
168, 168, 168, 168, 168, 168, 168, 168, -1, -1, -1, -1, -1, -1, -1, -1, // $22F0
|
|
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, // $2300
|
|
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, // $2310
|
|
48, 48, 48, 48, 48, 48, 48, 48, 112, 112, 112, 112, 112, 112, 112, 112, // $2320
|
|
112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, // $2330
|
|
112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, // $2340
|
|
176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, // $2350
|
|
176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, // $2360
|
|
176, 176, 176, 176, 176, 176, 176, 176, -1, -1, -1, -1, -1, -1, -1, -1, // $2370
|
|
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, // $2380
|
|
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, // $2390
|
|
56, 56, 56, 56, 56, 56, 56, 56, 120, 120, 120, 120, 120, 120, 120, 120, // $23A0
|
|
120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, // $23B0
|
|
120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, // $23C0
|
|
184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, // $23D0
|
|
184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, // $23E0
|
|
184, 184, 184, 184, 184, 184, 184, 184, -1, -1, -1, -1, -1, -1, -1, -1, // $23F0
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // $2400
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // $2410
|
|
1, 1, 1, 1, 1, 1, 1, 1, 65, 65, 65, 65, 65, 65, 65, 65, // $2420
|
|
65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, // $2430
|
|
65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, // $2440
|
|
129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, // $2450
|
|
129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, // $2460
|
|
129, 129, 129, 129, 129, 129, 129, 129, -1, -1, -1, -1, -1, -1, -1, -1, // $2470
|
|
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, // $2480
|
|
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, // $2490
|
|
9, 9, 9, 9, 9, 9, 9, 9, 73, 73, 73, 73, 73, 73, 73, 73, // $24A0
|
|
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, // $24B0
|
|
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, // $24C0
|
|
137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, // $24D0
|
|
137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, // $24E0
|
|
137, 137, 137, 137, 137, 137, 137, 137, -1, -1, -1, -1, -1, -1, -1, -1, // $24F0
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, // $2500
|
|
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, // $2510
|
|
17, 17, 17, 17, 17, 17, 17, 17, 81, 81, 81, 81, 81, 81, 81, 81, // $2520
|
|
81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, // $2530
|
|
81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, // $2540
|
|
145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, // $2550
|
|
145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, // $2560
|
|
145, 145, 145, 145, 145, 145, 145, 145, -1, -1, -1, -1, -1, -1, -1, -1, // $2570
|
|
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, // $2580
|
|
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, // $2590
|
|
25, 25, 25, 25, 25, 25, 25, 25, 89, 89, 89, 89, 89, 89, 89, 89, // $25A0
|
|
89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, // $25B0
|
|
89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, // $25C0
|
|
153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, // $25D0
|
|
153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, // $25E0
|
|
153, 153, 153, 153, 153, 153, 153, 153, -1, -1, -1, -1, -1, -1, -1, -1, // $25F0
|
|
33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, // $2600
|
|
33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, // $2610
|
|
33, 33, 33, 33, 33, 33, 33, 33, 97, 97, 97, 97, 97, 97, 97, 97, // $2620
|
|
97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, // $2630
|
|
97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, // $2640
|
|
161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, // $2650
|
|
161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, // $2660
|
|
161, 161, 161, 161, 161, 161, 161, 161, -1, -1, -1, -1, -1, -1, -1, -1, // $2670
|
|
41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, // $2680
|
|
41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, // $2690
|
|
41, 41, 41, 41, 41, 41, 41, 41, 105, 105, 105, 105, 105, 105, 105, 105, // $26A0
|
|
105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, // $26B0
|
|
105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, // $26C0
|
|
169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, // $26D0
|
|
169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, // $26E0
|
|
169, 169, 169, 169, 169, 169, 169, 169, -1, -1, -1, -1, -1, -1, -1, -1, // $26F0
|
|
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, // $2700
|
|
49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, // $2710
|
|
49, 49, 49, 49, 49, 49, 49, 49, 113, 113, 113, 113, 113, 113, 113, 113, // $2720
|
|
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, // $2730
|
|
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, // $2740
|
|
177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, // $2750
|
|
177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, // $2760
|
|
177, 177, 177, 177, 177, 177, 177, 177, -1, -1, -1, -1, -1, -1, -1, -1, // $2770
|
|
57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, // $2780
|
|
57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, // $2790
|
|
57, 57, 57, 57, 57, 57, 57, 57, 121, 121, 121, 121, 121, 121, 121, 121, // $27A0
|
|
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, // $27B0
|
|
121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, // $27C0
|
|
185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, // $27D0
|
|
185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, // $27E0
|
|
185, 185, 185, 185, 185, 185, 185, 185, -1, -1, -1, -1, -1, -1, -1, -1, // $27F0
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // $2800
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // $2810
|
|
2, 2, 2, 2, 2, 2, 2, 2, 66, 66, 66, 66, 66, 66, 66, 66, // $2820
|
|
66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, // $2830
|
|
66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, // $2840
|
|
130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, // $2850
|
|
130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, // $2860
|
|
130, 130, 130, 130, 130, 130, 130, 130, -1, -1, -1, -1, -1, -1, -1, -1, // $2870
|
|
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // $2880
|
|
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, // $2890
|
|
10, 10, 10, 10, 10, 10, 10, 10, 74, 74, 74, 74, 74, 74, 74, 74, // $28A0
|
|
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, // $28B0
|
|
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, // $28C0
|
|
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, // $28D0
|
|
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, // $28E0
|
|
138, 138, 138, 138, 138, 138, 138, 138, -1, -1, -1, -1, -1, -1, -1, -1, // $28F0
|
|
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, // $2900
|
|
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, // $2910
|
|
18, 18, 18, 18, 18, 18, 18, 18, 82, 82, 82, 82, 82, 82, 82, 82, // $2920
|
|
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, // $2930
|
|
82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, // $2940
|
|
146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, // $2950
|
|
146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, // $2960
|
|
146, 146, 146, 146, 146, 146, 146, 146, -1, -1, -1, -1, -1, -1, -1, -1, // $2970
|
|
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, // $2980
|
|
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, // $2990
|
|
26, 26, 26, 26, 26, 26, 26, 26, 90, 90, 90, 90, 90, 90, 90, 90, // $29A0
|
|
90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, // $29B0
|
|
90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, // $29C0
|
|
154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, // $29D0
|
|
154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, // $29E0
|
|
154, 154, 154, 154, 154, 154, 154, 154, -1, -1, -1, -1, -1, -1, -1, -1, // $29F0
|
|
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, // $2A00
|
|
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, // $2A10
|
|
34, 34, 34, 34, 34, 34, 34, 34, 98, 98, 98, 98, 98, 98, 98, 98, // $2A20
|
|
98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, // $2A30
|
|
98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, // $2A40
|
|
162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, // $2A50
|
|
162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, // $2A60
|
|
162, 162, 162, 162, 162, 162, 162, 162, -1, -1, -1, -1, -1, -1, -1, -1, // $2A70
|
|
42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, // $2A80
|
|
42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, // $2A90
|
|
42, 42, 42, 42, 42, 42, 42, 42, 106, 106, 106, 106, 106, 106, 106, 106, // $2AA0
|
|
106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, // $2AB0
|
|
106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, // $2AC0
|
|
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, // $2AD0
|
|
170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, // $2AE0
|
|
170, 170, 170, 170, 170, 170, 170, 170, -1, -1, -1, -1, -1, -1, -1, -1, // $2AF0
|
|
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, // $2B00
|
|
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, // $2B10
|
|
50, 50, 50, 50, 50, 50, 50, 50, 114, 114, 114, 114, 114, 114, 114, 114, // $2B20
|
|
114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, // $2B30
|
|
114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, // $2B40
|
|
178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, // $2B50
|
|
178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, // $2B60
|
|
178, 178, 178, 178, 178, 178, 178, 178, -1, -1, -1, -1, -1, -1, -1, -1, // $2B70
|
|
58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, // $2B80
|
|
58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, // $2B90
|
|
58, 58, 58, 58, 58, 58, 58, 58, 122, 122, 122, 122, 122, 122, 122, 122, // $2BA0
|
|
122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, // $2BB0
|
|
122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, // $2BC0
|
|
186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, // $2BD0
|
|
186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, // $2BE0
|
|
186, 186, 186, 186, 186, 186, 186, 186, -1, -1, -1, -1, -1, -1, -1, -1, // $2BF0
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // $2C00
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // $2C10
|
|
3, 3, 3, 3, 3, 3, 3, 3, 67, 67, 67, 67, 67, 67, 67, 67, // $2C20
|
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, // $2C30
|
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, // $2C40
|
|
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, // $2C50
|
|
131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, // $2C60
|
|
131, 131, 131, 131, 131, 131, 131, 131, -1, -1, -1, -1, -1, -1, -1, -1, // $2C70
|
|
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, // $2C80
|
|
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, // $2C90
|
|
11, 11, 11, 11, 11, 11, 11, 11, 75, 75, 75, 75, 75, 75, 75, 75, // $2CA0
|
|
75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, // $2CB0
|
|
75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, // $2CC0
|
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, // $2CD0
|
|
139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, // $2CE0
|
|
139, 139, 139, 139, 139, 139, 139, 139, -1, -1, -1, -1, -1, -1, -1, -1, // $2CF0
|
|
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, // $2D00
|
|
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, // $2D10
|
|
19, 19, 19, 19, 19, 19, 19, 19, 83, 83, 83, 83, 83, 83, 83, 83, // $2D20
|
|
83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, // $2D30
|
|
83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, // $2D40
|
|
147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, // $2D50
|
|
147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, // $2D60
|
|
147, 147, 147, 147, 147, 147, 147, 147, -1, -1, -1, -1, -1, -1, -1, -1, // $2D70
|
|
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, // $2D80
|
|
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, // $2D90
|
|
27, 27, 27, 27, 27, 27, 27, 27, 91, 91, 91, 91, 91, 91, 91, 91, // $2DA0
|
|
91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, // $2DB0
|
|
91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, // $2DC0
|
|
155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, // $2DD0
|
|
155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, // $2DE0
|
|
155, 155, 155, 155, 155, 155, 155, 155, -1, -1, -1, -1, -1, -1, -1, -1, // $2DF0
|
|
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, // $2E00
|
|
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, // $2E10
|
|
35, 35, 35, 35, 35, 35, 35, 35, 99, 99, 99, 99, 99, 99, 99, 99, // $2E20
|
|
99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, // $2E30
|
|
99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, // $2E40
|
|
163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, // $2E50
|
|
163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, // $2E60
|
|
163, 163, 163, 163, 163, 163, 163, 163, -1, -1, -1, -1, -1, -1, -1, -1, // $2E70
|
|
43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, // $2E80
|
|
43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, // $2E90
|
|
43, 43, 43, 43, 43, 43, 43, 43, 107, 107, 107, 107, 107, 107, 107, 107, // $2EA0
|
|
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, // $2EB0
|
|
107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, // $2EC0
|
|
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, // $2ED0
|
|
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, // $2EE0
|
|
171, 171, 171, 171, 171, 171, 171, 171, -1, -1, -1, -1, -1, -1, -1, -1, // $2EF0
|
|
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, // $2F00
|
|
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, // $2F10
|
|
51, 51, 51, 51, 51, 51, 51, 51, 115, 115, 115, 115, 115, 115, 115, 115, // $2F20
|
|
115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, // $2F30
|
|
115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, // $2F40
|
|
179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, // $2F50
|
|
179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, // $2F60
|
|
179, 179, 179, 179, 179, 179, 179, 179, -1, -1, -1, -1, -1, -1, -1, -1, // $2F70
|
|
59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, // $2F80
|
|
59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, // $2F90
|
|
59, 59, 59, 59, 59, 59, 59, 59, 123, 123, 123, 123, 123, 123, 123, 123, // $2FA0
|
|
123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, // $2FB0
|
|
123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, // $2FC0
|
|
187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, // $2FD0
|
|
187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, // $2FE0
|
|
187, 187, 187, 187, 187, 187, 187, 187, -1, -1, -1, -1, -1, -1, -1, -1, // $2FF0
|
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, // $3000
|
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, // $3010
|
|
4, 4, 4, 4, 4, 4, 4, 4, 68, 68, 68, 68, 68, 68, 68, 68, // $3020
|
|
68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, // $3030
|
|
68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, // $3040
|
|
132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, // $3050
|
|
132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, // $3060
|
|
132, 132, 132, 132, 132, 132, 132, 132, -1, -1, -1, -1, -1, -1, -1, -1, // $3070
|
|
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, // $3080
|
|
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, // $3090
|
|
12, 12, 12, 12, 12, 12, 12, 12, 76, 76, 76, 76, 76, 76, 76, 76, // $30A0
|
|
76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, // $30B0
|
|
76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, // $30C0
|
|
140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, // $30D0
|
|
140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, // $30E0
|
|
140, 140, 140, 140, 140, 140, 140, 140, -1, -1, -1, -1, -1, -1, -1, -1, // $30F0
|
|
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // $3100
|
|
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // $3110
|
|
20, 20, 20, 20, 20, 20, 20, 20, 84, 84, 84, 84, 84, 84, 84, 84, // $3120
|
|
84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, // $3130
|
|
84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, // $3140
|
|
148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, // $3150
|
|
148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, // $3160
|
|
148, 148, 148, 148, 148, 148, 148, 148, -1, -1, -1, -1, -1, -1, -1, -1, // $3170
|
|
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, // $3180
|
|
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, // $3190
|
|
28, 28, 28, 28, 28, 28, 28, 28, 92, 92, 92, 92, 92, 92, 92, 92, // $31A0
|
|
92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, // $31B0
|
|
92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, // $31C0
|
|
156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, // $31D0
|
|
156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, // $31E0
|
|
156, 156, 156, 156, 156, 156, 156, 156, -1, -1, -1, -1, -1, -1, -1, -1, // $31F0
|
|
36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, // $3200
|
|
36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, // $3210
|
|
36, 36, 36, 36, 36, 36, 36, 36, 100, 100, 100, 100, 100, 100, 100, 100, // $3220
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, // $3230
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, // $3240
|
|
164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, // $3250
|
|
164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, // $3260
|
|
164, 164, 164, 164, 164, 164, 164, 164, -1, -1, -1, -1, -1, -1, -1, -1, // $3270
|
|
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, // $3280
|
|
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, // $3290
|
|
44, 44, 44, 44, 44, 44, 44, 44, 108, 108, 108, 108, 108, 108, 108, 108, // $32A0
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, // $32B0
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, // $32C0
|
|
172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, // $32D0
|
|
172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, // $32E0
|
|
172, 172, 172, 172, 172, 172, 172, 172, -1, -1, -1, -1, -1, -1, -1, -1, // $32F0
|
|
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, // $3300
|
|
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, // $3310
|
|
52, 52, 52, 52, 52, 52, 52, 52, 116, 116, 116, 116, 116, 116, 116, 116, // $3320
|
|
116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, // $3330
|
|
116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, // $3340
|
|
180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, // $3350
|
|
180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, // $3360
|
|
180, 180, 180, 180, 180, 180, 180, 180, -1, -1, -1, -1, -1, -1, -1, -1, // $3370
|
|
60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, // $3380
|
|
60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, // $3390
|
|
60, 60, 60, 60, 60, 60, 60, 60, 124, 124, 124, 124, 124, 124, 124, 124, // $33A0
|
|
124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, // $33B0
|
|
124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, // $33C0
|
|
188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, // $33D0
|
|
188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, // $33E0
|
|
188, 188, 188, 188, 188, 188, 188, 188, -1, -1, -1, -1, -1, -1, -1, -1, // $33F0
|
|
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // $3400
|
|
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // $3410
|
|
5, 5, 5, 5, 5, 5, 5, 5, 69, 69, 69, 69, 69, 69, 69, 69, // $3420
|
|
69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, // $3430
|
|
69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, // $3440
|
|
133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, // $3450
|
|
133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, // $3460
|
|
133, 133, 133, 133, 133, 133, 133, 133, -1, -1, -1, -1, -1, -1, -1, -1, // $3470
|
|
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, // $3480
|
|
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, // $3490
|
|
13, 13, 13, 13, 13, 13, 13, 13, 77, 77, 77, 77, 77, 77, 77, 77, // $34A0
|
|
77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, // $34B0
|
|
77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, // $34C0
|
|
141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, // $34D0
|
|
141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, // $34E0
|
|
141, 141, 141, 141, 141, 141, 141, 141, -1, -1, -1, -1, -1, -1, -1, -1, // $34F0
|
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, // $3500
|
|
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, // $3510
|
|
21, 21, 21, 21, 21, 21, 21, 21, 85, 85, 85, 85, 85, 85, 85, 85, // $3520
|
|
85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, // $3530
|
|
85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, // $3540
|
|
149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, // $3550
|
|
149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, // $3560
|
|
149, 149, 149, 149, 149, 149, 149, 149, -1, -1, -1, -1, -1, -1, -1, -1, // $3570
|
|
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, // $3580
|
|
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, // $3590
|
|
29, 29, 29, 29, 29, 29, 29, 29, 93, 93, 93, 93, 93, 93, 93, 93, // $35A0
|
|
93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, // $35B0
|
|
93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, // $35C0
|
|
157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, // $35D0
|
|
157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, // $35E0
|
|
157, 157, 157, 157, 157, 157, 157, 157, -1, -1, -1, -1, -1, -1, -1, -1, // $35F0
|
|
37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, // $3600
|
|
37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, // $3610
|
|
37, 37, 37, 37, 37, 37, 37, 37, 101, 101, 101, 101, 101, 101, 101, 101, // $3620
|
|
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, // $3630
|
|
101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, // $3640
|
|
165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, // $3650
|
|
165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, // $3660
|
|
165, 165, 165, 165, 165, 165, 165, 165, -1, -1, -1, -1, -1, -1, -1, -1, // $3670
|
|
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, // $3680
|
|
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, // $3690
|
|
45, 45, 45, 45, 45, 45, 45, 45, 109, 109, 109, 109, 109, 109, 109, 109, // $36A0
|
|
109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, // $36B0
|
|
109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, // $36C0
|
|
173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, // $36D0
|
|
173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, // $36E0
|
|
173, 173, 173, 173, 173, 173, 173, 173, -1, -1, -1, -1, -1, -1, -1, -1, // $36F0
|
|
53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, // $3700
|
|
53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, // $3710
|
|
53, 53, 53, 53, 53, 53, 53, 53, 117, 117, 117, 117, 117, 117, 117, 117, // $3720
|
|
117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, // $3730
|
|
117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, // $3740
|
|
181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, // $3750
|
|
181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, // $3760
|
|
181, 181, 181, 181, 181, 181, 181, 181, -1, -1, -1, -1, -1, -1, -1, -1, // $3770
|
|
61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // $3780
|
|
61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // $3790
|
|
61, 61, 61, 61, 61, 61, 61, 61, 125, 125, 125, 125, 125, 125, 125, 125, // $37A0
|
|
125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, // $37B0
|
|
125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, // $37C0
|
|
189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, // $37D0
|
|
189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, // $37E0
|
|
189, 189, 189, 189, 189, 189, 189, 189, -1, -1, -1, -1, -1, -1, -1, -1, // $37F0
|
|
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // $3800
|
|
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, // $3810
|
|
6, 6, 6, 6, 6, 6, 6, 6, 70, 70, 70, 70, 70, 70, 70, 70, // $3820
|
|
70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, // $3830
|
|
70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, // $3840
|
|
134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, // $3850
|
|
134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, // $3860
|
|
134, 134, 134, 134, 134, 134, 134, 134, -1, -1, -1, -1, -1, -1, -1, -1, // $3870
|
|
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, // $3880
|
|
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, // $3890
|
|
14, 14, 14, 14, 14, 14, 14, 14, 78, 78, 78, 78, 78, 78, 78, 78, // $38A0
|
|
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, // $38B0
|
|
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, // $38C0
|
|
142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, // $38D0
|
|
142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, // $38E0
|
|
142, 142, 142, 142, 142, 142, 142, 142, -1, -1, -1, -1, -1, -1, -1, -1, // $38F0
|
|
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, // $3900
|
|
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, // $3910
|
|
22, 22, 22, 22, 22, 22, 22, 22, 86, 86, 86, 86, 86, 86, 86, 86, // $3920
|
|
86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, // $3930
|
|
86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, // $3940
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, // $3950
|
|
150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, // $3960
|
|
150, 150, 150, 150, 150, 150, 150, 150, -1, -1, -1, -1, -1, -1, -1, -1, // $3970
|
|
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, // $3980
|
|
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, // $3990
|
|
30, 30, 30, 30, 30, 30, 30, 30, 94, 94, 94, 94, 94, 94, 94, 94, // $39A0
|
|
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, // $39B0
|
|
94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, // $39C0
|
|
158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, // $39D0
|
|
158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, // $39E0
|
|
158, 158, 158, 158, 158, 158, 158, 158, -1, -1, -1, -1, -1, -1, -1, -1, // $39F0
|
|
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, // $3A00
|
|
38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, // $3A10
|
|
38, 38, 38, 38, 38, 38, 38, 38, 102, 102, 102, 102, 102, 102, 102, 102, // $3A20
|
|
102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, // $3A30
|
|
102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, // $3A40
|
|
166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, // $3A50
|
|
166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, // $3A60
|
|
166, 166, 166, 166, 166, 166, 166, 166, -1, -1, -1, -1, -1, -1, -1, -1, // $3A70
|
|
46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, // $3A80
|
|
46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, // $3A90
|
|
46, 46, 46, 46, 46, 46, 46, 46, 110, 110, 110, 110, 110, 110, 110, 110, // $3AA0
|
|
110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, // $3AB0
|
|
110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, // $3AC0
|
|
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, // $3AD0
|
|
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, // $3AE0
|
|
174, 174, 174, 174, 174, 174, 174, 174, -1, -1, -1, -1, -1, -1, -1, -1, // $3AF0
|
|
54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, // $3B00
|
|
54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, // $3B10
|
|
54, 54, 54, 54, 54, 54, 54, 54, 118, 118, 118, 118, 118, 118, 118, 118, // $3B20
|
|
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, // $3B30
|
|
118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, // $3B40
|
|
182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, // $3B50
|
|
182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, // $3B60
|
|
182, 182, 182, 182, 182, 182, 182, 182, -1, -1, -1, -1, -1, -1, -1, -1, // $3B70
|
|
62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, // $3B80
|
|
62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, // $3B90
|
|
62, 62, 62, 62, 62, 62, 62, 62, 126, 126, 126, 126, 126, 126, 126, 126, // $3BA0
|
|
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, // $3BB0
|
|
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, // $3BC0
|
|
190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, // $3BD0
|
|
190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, // $3BE0
|
|
190, 190, 190, 190, 190, 190, 190, 190, -1, -1, -1, -1, -1, -1, -1, -1, // $3BF0
|
|
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // $3C00
|
|
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // $3C10
|
|
7, 7, 7, 7, 7, 7, 7, 7, 71, 71, 71, 71, 71, 71, 71, 71, // $3C20
|
|
71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, // $3C30
|
|
71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, // $3C40
|
|
135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, // $3C50
|
|
135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, // $3C60
|
|
135, 135, 135, 135, 135, 135, 135, 135, -1, -1, -1, -1, -1, -1, -1, -1, // $3C70
|
|
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, // $3C80
|
|
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, // $3C90
|
|
15, 15, 15, 15, 15, 15, 15, 15, 79, 79, 79, 79, 79, 79, 79, 79, // $3CA0
|
|
79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, // $3CB0
|
|
79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, // $3CC0
|
|
143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, // $3CD0
|
|
143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, // $3CE0
|
|
143, 143, 143, 143, 143, 143, 143, 143, -1, -1, -1, -1, -1, -1, -1, -1, // $3CF0
|
|
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, // $3D00
|
|
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, // $3D10
|
|
23, 23, 23, 23, 23, 23, 23, 23, 87, 87, 87, 87, 87, 87, 87, 87, // $3D20
|
|
87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, // $3D30
|
|
87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, // $3D40
|
|
151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, // $3D50
|
|
151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, // $3D60
|
|
151, 151, 151, 151, 151, 151, 151, 151, -1, -1, -1, -1, -1, -1, -1, -1, // $3D70
|
|
31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, // $3D80
|
|
31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, // $3D90
|
|
31, 31, 31, 31, 31, 31, 31, 31, 95, 95, 95, 95, 95, 95, 95, 95, // $3DA0
|
|
95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, // $3DB0
|
|
95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, // $3DC0
|
|
159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, // $3DD0
|
|
159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, // $3DE0
|
|
159, 159, 159, 159, 159, 159, 159, 159, -1, -1, -1, -1, -1, -1, -1, -1, // $3DF0
|
|
39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, // $3E00
|
|
39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, // $3E10
|
|
39, 39, 39, 39, 39, 39, 39, 39, 103, 103, 103, 103, 103, 103, 103, 103, // $3E20
|
|
103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, // $3E30
|
|
103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, // $3E40
|
|
167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, // $3E50
|
|
167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, // $3E60
|
|
167, 167, 167, 167, 167, 167, 167, 167, -1, -1, -1, -1, -1, -1, -1, -1, // $3E70
|
|
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, // $3E80
|
|
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, // $3E90
|
|
47, 47, 47, 47, 47, 47, 47, 47, 111, 111, 111, 111, 111, 111, 111, 111, // $3EA0
|
|
111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, // $3EB0
|
|
111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, // $3EC0
|
|
175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, // $3ED0
|
|
175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, // $3EE0
|
|
175, 175, 175, 175, 175, 175, 175, 175, -1, -1, -1, -1, -1, -1, -1, -1, // $3EF0
|
|
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, // $3F00
|
|
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, // $3F10
|
|
55, 55, 55, 55, 55, 55, 55, 55, 119, 119, 119, 119, 119, 119, 119, 119, // $3F20
|
|
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, // $3F30
|
|
119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, // $3F40
|
|
183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, // $3F50
|
|
183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, // $3F60
|
|
183, 183, 183, 183, 183, 183, 183, 183, -1, -1, -1, -1, -1, -1, -1, -1, // $3F70
|
|
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, // $3F80
|
|
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, // $3F90
|
|
63, 63, 63, 63, 63, 63, 63, 63, 127, 127, 127, 127, 127, 127, 127, 127, // $3FA0
|
|
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, // $3FB0
|
|
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, // $3FC0
|
|
191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, // $3FD0
|
|
191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, // $3FE0
|
|
191, 191, 191, 191, 191, 191, 191, 191, -1, -1, -1, -1, -1, -1, -1, -1, // $3FF0
|
|
};
|
|
#endif
|
|
|
|
#if 0
|
|
/*
|
|
* This table maps an address to a column, but it's a bit incomplete. We
|
|
* don't use it right now--I built it for an earlier version of my
|
|
* code--but I'm keeping it on the chance that I may want this somewhere
|
|
* down the road.
|
|
*/
|
|
static int cols[] = {
|
|
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, // $00
|
|
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, // $10
|
|
32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7, // $20
|
|
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, // $30
|
|
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, // $40
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, // $50
|
|
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, // $60
|
|
32, 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, -1, // $70
|
|
};
|
|
#endif
|
|
|
|
/*
|
|
* Define the colors that are indicated by a bit-pair when bit 7 of a
|
|
* data byte is low.
|
|
*/
|
|
static vm_color colors[] = {
|
|
{ 0x2f, 0xbc, 0x1a, 0x00 }, // green
|
|
{ 0xd0, 0x43, 0xe5, 0x00 }, // purple
|
|
{ 0xd0, 0x6a, 0x1a, 0x00 }, // orange
|
|
{ 0x2f, 0x95, 0xe5, 0x00 }, // blue
|
|
{ 0x00, 0x00, 0x00, 0x00 }, // black
|
|
{ 0xff, 0xff, 0xff, 0x00 }, // white
|
|
};
|
|
|
|
/*
|
|
* Draw a single row of hires graphics.
|
|
*/
|
|
void
|
|
apple2_hires_draw(apple2 *mach, int row)
|
|
{
|
|
vm_area area;
|
|
vm_8bit dots[280];
|
|
|
|
area.width = 1;
|
|
area.height = 1;
|
|
area.width = 1;
|
|
area.yoff = row;
|
|
|
|
size_t addr = addresses[row % 192];
|
|
|
|
for (int i = 0; i < 40; i++) {
|
|
vm_8bit byte = mos6502_get(mach->cpu, addr + i);
|
|
|
|
for (int pos = 0; pos < 7; pos++) {
|
|
dots[(i * 7) + pos] =
|
|
((byte & 0x80) ? 2 : 0) |
|
|
((byte >> pos) & 1);
|
|
}
|
|
}
|
|
|
|
vm_8bit prev = 0,
|
|
next = 0,
|
|
curr = 0;
|
|
|
|
for (int i = 0; i < 279; i++) {
|
|
curr = dots[i] & 1;
|
|
next = dots[i+1] & 1;
|
|
|
|
if (curr && next) {
|
|
vm_screen_set_color(mach->screen, colors[HIRES_WHITE]);
|
|
}
|
|
|
|
else if (!curr && !next) {
|
|
vm_screen_set_color(mach->screen, colors[HIRES_BLACK]);
|
|
}
|
|
|
|
// We need to emit _some_ color, but not white.
|
|
else {
|
|
int colorindex = 0;
|
|
|
|
if (curr) {
|
|
if (i % 2 == 0) {
|
|
colorindex++;
|
|
}
|
|
|
|
if (dots[i] & 2) {
|
|
colorindex += 2;
|
|
}
|
|
} else {
|
|
if ((i+1) % 2 == 0) {
|
|
colorindex++;
|
|
}
|
|
|
|
if (dots[i+1] & 2) {
|
|
colorindex += 2;
|
|
}
|
|
}
|
|
|
|
vm_screen_set_color(mach->screen, colors[colorindex]);
|
|
}
|
|
|
|
area.xoff = i;
|
|
vm_screen_draw_rect(mach->screen, &area);
|
|
|
|
prev = curr;
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Print a representation of the machine's hires graphics buffer to the
|
|
* given file stream.
|
|
*/
|
|
void
|
|
apple2_hires_dump(apple2 *mach, FILE *stream)
|
|
{
|
|
int row, col, base, bit;
|
|
char dotsym;
|
|
vm_8bit byte;
|
|
|
|
fprintf(stream, "HIRES DUMP\n\nBytes:\n");
|
|
|
|
for (row = 0; row < 192; row++) {
|
|
base = addresses[row];
|
|
|
|
fprintf(stream, "%3d [", row);
|
|
|
|
for (col = 0; col < 40; col++) {
|
|
fprintf(stream, "%02X", mos6502_get(mach->cpu, base + col));
|
|
|
|
if (col < 39) {
|
|
fprintf(stream, " ");
|
|
}
|
|
}
|
|
|
|
fprintf(stream, "]\n");
|
|
}
|
|
|
|
fprintf(stream, "\nDots:\n");
|
|
|
|
for (row = 0; row < 192; row++) {
|
|
base = addresses[row];
|
|
|
|
fprintf(stream, "%3d [", row);
|
|
|
|
for (col = 0; col < 40; col++) {
|
|
byte = mos6502_get(mach->cpu, base + col);
|
|
dotsym = (byte & 0x80) ? '#' : '%';
|
|
for (bit = 0; bit < 7; bit++) {
|
|
fprintf(stream, "%c", ((byte >> bit) & 1) ? dotsym : '_');
|
|
}
|
|
}
|
|
|
|
fprintf(stream, "]\n");
|
|
}
|
|
}
|