Introducción a la carga de datas.
1.1 Carga de sprites con instrucciones basic.
1.1.1 Definiendo sprites de 8×8 pixeles.
1.1.2 Definiendo sprites de 16×16 pixeles.
1.2 Carga de sprites con pokes.
1.3 Carga de sprites desde archivo.bin en disco.
1.3.1 Utilizando código basic.
1.3.2 Utilizando decimales y hexadecimales.
2.1 carga de datas decimales y hexadecimales.
2.2 Carga de datas con archivo.bin en disco.
3.1 Carga de mapas con cadenas de texto.
3.2 Carga de datas con decimales y hexadecimales.
3.3 Carga de datas desde archivo.bin en disco.
Introducción a la carga de datas
-Un byte es un valor ente 0 y 255, son conjuntos de 8 bits, y es la unidad básica de almacenamiento del MSX, se suele representar en el sistema hexadecimal hexadecimal ya que es más fácil de manejar por los programas.
-Las datas se pueden leer de 2 formas:
1.Como enteros hexadecimales o decimales o valores separados por comas
2.Como strings
-Aunque los datas se suelen utilizar para más cosas como el manejo de cadenas de caracteres, lo más habitual es utilizarla para:
1. Carga de sprites de 8 y 16 pixeles
2. De tiles
3. De mapas.
-Por favor mira el artículo http://msx.tipolisto.es/spritesbasic/#5 para entender como se estructura la memoria RAM del MSX.
Se pueden escribir de 3 formas:
1, Utilizando las funciones basic: sprite$(numero_sprite)=”string_que_define_el_Sprite”
2.Accediendo directamente a la VRAM con vpoke registro, entero_que_define_el_byte
3.Solas para ser manejadas con copys (mapas)
1.Carga de sprites
Los sprites son 2 bloques de código:
En el primer bloque se define si el pixel que se visualiza es el del fondo o el del frente.
En el segundo bloque se definen los colores de cada.
La definición de los sprites varía según el tipo de modo de pantalla utilizado con screen modo,tamaño_sprites,sonido_teclas
La instrucción que define si son de 8×8 pixeles o 16×16 pixeles es screen modo_video, tamaño sprites, sonido_teclas
Los sprites puedes ser cargados con vpokes o utilizando sprite$, putsprite y colorsprite.
1.1 Carga de sprites con instrucciones basic
Los datas se meten en una variable de tipo string, con lo cual el string
1.1.1 Definiendo sprites de 8×8 pixeles
Screen 2
9000 FOR I=0 TO 17:SP$=""
9020 FOR J=1 TO 8:READ A$
9030 SP$=SP$+CHR$(VAL("&H"+A$))
9040 NEXT J
9050 SPRITE$(I)=SP$
9060 NEXT I
9110 DATA 03,C3,D8,3C,BD,DB,E7,7E
9120 DATA C0,C3,1B,3C,BD,DB,E7,7E
9130 DATA 76,E6,D8,BC,BC,D8,E3,73
Screen 5
1.1.2 Definiendo sprites de 16×16 pixeles
Los datas se meten en una variable de tipo string
Screen 2
1 ‘Rutina cargar sprites con datas basic’
10000 restore
1 ‘ Patrones:’
1 ‘Vamos a cargar 4 sprites’
10010 for i=0 to 3:sp$=»»
10020 for j=1 to 32
10030 read a$
1 ‘Val transforma en entero los 3 primeros caracteres numéricos’
1 ‘Sistema hexadecimal
10040 sp$=sp$+chr$(val(«&H»+a$))
1 ‘Sistema decimal’
1 ‘10040 sp$=sp$+chr$(val(a$))
10050 next J
10060 sprite$(i)=sp$
10070 next I
1 ‘Color patrones’
10080 for i=0 to 3:a$=»»
10090 for j=0 to (16)-1
10100 read a$
10110 sp$=sp$+chr$(val(«&H»+a$))
1 ‘10110 sp$=sp$+chr$(val(a$))
10120 next j
10130 color sprite$(i)=sp$
10140 next i
1 ‘Es importante quitar el valor del color en put sprite’
1 ‘put sprite pp,(px,py),,ps
1 ‘10200 REM kikefu
1 ‘10210 REM SPRITE DATA
1 ‘10220 DATA 15,15,63,23,16,55,55,7
1 ‘10230 DATA 7,0,15,23,2,2,2,3
1 ‘10240 DATA 192,192,240,192,64,112,240,32
1 ‘10250 DATA 192,0,224,208,64,64,96,112
1 ‘10260 DATA 15,15,63,23,16,23,23,7
1 ‘10270 DATA 7,0,3,5,4,9,13,0
1 ‘10280 DATA 192,192,240,192,64,112,240,32
1 ‘10290 DATA 192,0,224,224,64,192,0,128
1 ‘10300 DATA 3,3,15,3,2,14,15,4
1 ‘10310 DATA 3,0,7,11,2,2,6,14
1 ‘10320 DATA 240,240,252,232,8,236,236,224
1 ‘10330 DATA 224,0,240,232,64,64,64,192
1 ‘10340 DATA 3,3,15,3,2,14,15,4
1 ‘10350 DATA 3,0,7,7,2,3,0,1
1 ‘10360 DATA 240,240,252,232,8,232,232,224
1 ‘10370 DATA 224,0,192,160,32,144,176,0
1 ‘
1 ‘10740 REM COLOR MODE2 DATA
1 ‘10750 DATA 6,6,6,9,9,9,9,9
1 ‘10760 DATA 9,10,5,5,5,5,4,4
1 ‘10770 DATA 6,6,6,9,9,9,9,9
1 ‘10780 DATA 9,9,5,5,5,5,4,4
1 ‘10790 DATA 6,6,6,9,9,9,9,9
1 ‘10800 DATA 9,10,5,5,5,5,4,4
1 ‘10810 DATA 6,6,6,9,9,9,9,9
1 ‘10820 DATA 9,10,5,5,5,5,4,4
10200 REM kikefu
10210 REM SPRITE DATA
10220 DATA 0F,0F,3F,17,10,37,37,07
10230 DATA 07,00,0F,17,02,02,02,03
10240 DATA C0,C0,F0,C0,40,70,F0,20
10250 DATA C0,00,E0,D0,40,40,60,70
10260 DATA 0F,0F,3F,17,10,17,17,07
10270 DATA 07,00,03,05,04,09,0D,00
10280 DATA C0,C0,F0,C0,40,70,F0,20
10290 DATA C0,00,E0,E0,40,C0,00,80
10300 DATA 03,03,0F,03,02,0E,0F,04
10310 DATA 03,00,07,0B,02,02,06,0E
10320 DATA F0,F0,FC,E8,08,EC,EC,E0
10330 DATA E0,00,F0,E8,40,40,40,C0
10340 DATA 03,03,0F,03,02,0E,0F,04
10350 DATA 03,00,07,07,02,03,00,01
10360 DATA F0,F0,FC,E8,08,E8,E8,E0
10370 DATA E0,00,C0,A0,20,90,B0,00
10740 REM COLOR MODE2 DATA
10750 DATA 06,06,06,09,09,09,09,09
10760 DATA 09,0A,05,05,05,05,04,04
10770 DATA 06,06,06,09,09,09,09,09
10780 DATA 09,09,05,05,05,05,04,04
10790 DATA 06,06,06,09,09,09,09,09
10800 DATA 09,0A,05,05,05,05,04,04
10810 DATA 06,06,06,09,09,09,09,09
10820 DATA 09,0A,05,05,05,05,04,04
10990 return
1.2 Carga de sprites con pokes
1.3 Carga de sprites desde archivo.bin en disco
1.3.1 Utilizando código basic
1 ‘Base(28) tabla de atributos de sprties=30208 / &h7600
1 ‘Base(29) tabla de patrones de Sprite=30720 / &h7800
1.3.2 Utilizando decimales y hexadecimales
Screen 2
bload»spritedef.bin»,s, 30720
Screen 5
bload»spritedef.bin»,s, 30720
1 ‘ en hexadecimal
1 ‘bload»spritedef.bin»,s, &h7800
bload”spritecol.bin”, s,29696
1 ‘ en hexadecimal
1 ‘bload”spritecol.bin”, s,&n7600
2.Carga de tiles
2.1 carga de datas decimales y hexadecimales
Screen 2
1 ‘En screen 2’
1′ Hay que recordar la estructura de la VRAM, en la VRAM están los datos que se reprentan en pantalla
1 ‘Nuestro tileset son 24 tiles o de 0 hasta el 23’
1 ‘Definiremos a partir de la posición 0 de la VRAM 18 tiles de 8 bytes’
10000 FOR I=0 TO (26*8)-1
10020 READ A$
10030 VPOKE I,VAL(«&H»+A$)
10040 VPOKE 2048+I,VAL(«&H»+A$)
10050 VPOKE 4096+I,VAL(«&H»+A$)
10060 NEXT I
10100 DATA FF,66,66,00,00,66,66,00
10101 DATA FF,66,66,00,00,66,66,00
10102 DATA FF,99,99,FF,FF,99,99,FF
10103 DATA FF,FF,FF,FF,FF,FF,FF,FF
10104 DATA 7E,7E,7E,7E,7E,7E,7E,7E
10105 DATA 00,7E,7E,7E,7E,7E,7E,7E
10106 DATA 7E,7E,7E,7E,7E,7E,7E,00
10107 DATA 00,FF,FF,FF,FF,FF,FF,00
10108 DATA 00,FE,FE,FE,FE,FE,FE,00
10109 DATA 00,7F,7F,7F,7F,7F,7F,00
10110 DATA 7F,7F,7F,7F,7F,7F,7F,00
10111 DATA FE,FE,FE,FE,FE,FE,FE,00
10112 DATA 00,FE,FE,FE,FE,FE,FE,FE
10113 DATA 00,7F,7F,7F,7F,7F,7F,7F
10114 DATA 00,F7,F7,F7,00,7F,7F,7F
10115 DATA 00,F7,F7,F7,00,7F,7F,7F
10116 DATA 00,F7,F7,F7,00,7F,7F,7F
10117 DATA FF,18,18,7E,7E,18,18,00
10118 DATA 00,7E,7E,7E,7E,7E,7E,7E
10119 DATA 5E,5E,7E,7E,7E,7E,7E,00
10120 DATA 18,3C,C3,81,1C,C3,3C,18
10121 DATA 14,3F,54,3E,15,15,7E,14
10122 DATA FF,A5,FF,A5,A5,FF,A5,FF
10123 DATA FF,5A,00,5A,5A,00,5A,00
10124 DATA FF,C3,BD,5A,66,3C,81,D5
10125 DATA 7E,BD,DB,E7,E7,DB,BD,7E
1 ‘Definición de colores, los colores se definen a partir de la dirección 8192/&h2000’
1 ‘Como la memoria se divide en 3 bancos, la parte de arriba en medio y la de abajo hay que ponerlos en 3 partes’
10500 FOR I=0 TO (26*8)-1
10520 READ A$
10530 VPOKE 8192+I,VAL(«&H»+A$): ‘&h2000’
10540 VPOKE 10240+I,VAL(«&H»+A$): ‘&h2800’
10550 VPOKE 12288+I,VAL(«&H»+A$): ‘ &h3000’
10560 NEXT I
10600 DATA E1,FE,FE,FE,FE,FE,FE,FE
10601 DATA A1,EA,EA,EA,EA,EA,EA,EA
10602 DATA F1,FE,FE,FE,FE,FE,FE,FE
10603 DATA A1,A1,A1,A1,A1,A1,A1,A1
10604 DATA A1,A1,A1,A1,A1,A1,A1,A1
10605 DATA A1,E1,A1,A1,A1,A1,A1,A1
10606 DATA A1,A1,A1,A1,A1,A1,E1,E1
10607 DATA E1,E1,A1,A1,A1,A1,E1,E1
10608 DATA E1,E1,A1,A1,A1,A1,E1,E1
10609 DATA E1,E1,A1,A1,A1,A1,E1,E1
10610 DATA A1,A1,A1,A1,A1,A1,E1,E1
10611 DATA A1,A1,A1,A1,A1,A1,E1,E1
10612 DATA E1,E1,A1,A1,A1,A1,A1,A1
10613 DATA A1,E1,A1,A1,A1,A1,A1,A1
10614 DATA A1,81,81,81,81,81,81,81
10615 DATA 81,51,51,51,51,51,51,51
10616 DATA 51,31,31,31,31,31,31,31
10617 DATA F1,BF,BF,BF,BF,BF,BF,BF
10618 DATA 11,91,71,71,71,71,91,91
10619 DATA 91,91,91,91,91,91,91,91
10620 DATA 7F,7F,75,75,85,75,7F,7F
10621 DATA A1,A1,A1,A1,A1,A1,A1,A1
10622 DATA D1,D9,D9,D9,D9,D9,D9,D9
10623 DATA 61,D6,D6,D6,D6,D6,D6,D6
10624 DATA A1,A6,A6,A6,A6,A6,A6,A6
10625 DATA A6,A6,A6,A6,A6,A6,A6,A6
10690 return
2.2 Carga de datas con archivo.bin en disco
Screen 5
Esto cargará en la page 1
bload»tileset.S05″,s,32768
3.Carga de mapas
3.1 Carga de mapas con cadenas de texto
Screen 2
Dirección: 6144 / h1800 -> 6911 / h1aff
1 ‘Render map, pintar mapa
1 ‘la pantalla en screen 2:
1 ‘El mapa se encuentra en la dirección 6144 / &h1800 – 6912 /1b00’
1 ‘Eliminamos los enemigos si quedan’
11000 gosub 6600
11010 md=6144
1 ‘Lectora de mapa con un dígito’
1 ‘11020 for f=0 to 19
1 ‘ 11030 READ D$
1 ‘ 11040 for c=0 to 19
1 ‘ 11050 tn$=mid$(D$,c+1,1)
1 ‘ 11060 tn=val(tn$)
1 ‘ 11070 VPOKE md+c,tn
1 ‘ 11160 next c
1 ‘ 11170 md=md+32
1 ‘11180 next f
1 ‘Lectura de mapa con 2 dígitos’
1 ‘El mapa lo he dibujado con tilemap con 20×20 tiles de 8 pixeles’
11020 for f=0 to 19
11030 READ mp$
1 ‘ ahora leemos las columnas c
11040 for c=0 to 39 step 2
11050 tn$=mid$(mp$,c+1,2)
11060 tn=val(«&h»+tn$)
11070 VPOKE md,tn:md=md+1
11160 next c
1 ‘Bajamos la fila’
11170 md=md+12
11180 next f
11190 return
1 ‘————————————————————————————–‘
1 ‘————————————-Mundo 1——————————————‘
1 ‘————————————————————————————–‘
1 ‘level 0’
12000 data 000e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e00
12010 data 0e1404000d07070708000000090307070707080e
12020 data 0e0004000415000000000016000400000000000e
12030 data 0e00040004000d0707030800000a0707070c000e
12040 data 0e0004000400040000040000000000120004000e
12050 data 0e000a070b000a0707030707070c00130004000e
12060 data 0e0000000000000000040000000400000004000e
12070 data 0e0707070707070c00040000000400000004000e
12080 data 0e00000000000004000a070707030707070b000e
12090 data 0e0015000016000400000000000000000000000e
12100 data 0e00000000000004000d0707070707070708000e
12110 data 0e000d070800000400040000000000000000000e
12120 data 0e00040000000004000a070707070c000907070e
12130 data 0e0004000d07070b00000000180004000000000e
12140 data 0e000400041400000009070c000004000000000e
12150 data 0e0004000a07070c0000000400000a07070c000e
12160 data 0e0004000000000400000004000000000004000e
12170 data 0e000a07070707030707070b001600000004000e
12180 data 0e0000000000000000000000000000000004140e
12190 data 000e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e00
3.2 Carga de datas con decimales y hexadecimales
Screen 2
11400 for i=6144 to 6912-1
11410 read d
11420 vpoke i,d
11430 next i
11440 return
11500 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11510 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11520 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11530 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11540 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11550 data 0,0,0,0,0,0,0,0,0,0,0,0,0,213,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11560 data 0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11570 data 0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11580 data 0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11590 data 0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0
11600 data 0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0
11610 data 133,134,135,136,137,138,133,133,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,217,217,217,217,217,217,217,217,217
11620 data 217,217,217,217,217,217,217,217,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,217,217,217,217,217,217,217,217,217
11630 data 217,217,217,217,217,217,217,217,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11640 data 0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11650 data 0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11660 data 0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11670 data 0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,0,0,0,0,41,42,0,0,0,0,0,0,0,0,0,0,0
11680 data 0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,0,0,0,0,43,44,0,0,0,0,0,0,0,0,0,0,0
11690 data 220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220
11700 data 220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220
11710 data 220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220
11720 data 220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220
11730 data 220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220
screen 5
1 ‘Cargamos screen en page 2
20300 restore 21000
1 ‘md=mapa dirección, la dirección d001 se la he puesto yo en el archivo binario cuando lo creé’
1 ‘El archivo tan solo contiene los datos de la definición de los mapas’
20304 ‘bload «world0.bin»,r:md=&hd001
1 ‘ahora leemos las filas o la posición x
20310 for f=0 to 22
1 ‘ahora leemos las columnas c o la posicion y
20320 for c=0 to 31
1 ‘20330 m(f,c)=peek(md):md=md+1
20321 read tn
20325 ‘tn=peek(md):md=md+1
20380 if tn >=0 and tn <32 then copy (tn*8,0*8)-((tn*8)+8,(0*8)+8),1 to (c*8,f*8),2,tpset
20390 if tn >=32 and tn <64 then copy ((tn-32)*8,1*8)-(((tn-32)*8)+8,(1*8)+8),1 to (c*8,f*8),2,tpset
20400 if tn >=64 and tn <96 then copy ((tn-64)*8,2*8)-(((tn-64)*8)+8,(2*8)+8),1 to (c*8,f*8),2,tpset
20410 if tn>=96 and tn <128 then copy ((tn-96)*8,3*8)-(((tn-96)*8)+8,(3*8)+8),1 to (c*8,f*8),2,tpset
20420 if tn>=128 and tn <160 then copy ((tn-128)*8,4*8)-(((tn-128)*8)+8,(4*8)+8),1 to (c*8,f*8),2,tpset
20430 if tn>=160 and tn <192 then copy ((tn-160)*8,5*8)-(((tn-160)*8)+8,(5*8)+8),1 to (c*8,f*8),2,tpset
20440 if tn>=192 and tn <224 then copy ((tn-192)*8,6*8)-(((tn-192)*8)+8,(6*8)+8),1 to (c*8,f*8),2,tpset
20450 if tn>=224 and tn <256 then copy ((tn-224)*8,7*8)-(((tn-224)*8)+8,(7*8)+8),1 to (c*8,f*8),2,tpset
20460 next c
20470 next f
20490 return
1 ‘Mapa 0’
21000 data -1,-1,-1,5,6,-1,-1,8,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
21010 data -1,-1,-1,37,38,-1,-1,40,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,38,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,100,101
21020 data -1,-1,-1,37,38,3,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,4,37,38,-1,-1,-1,-1,0,1,-1,-1,-1,-1,132,133
21030 data -1,-1,-1,37,38,35,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,36,37,38,-1,-1,-1,-1,32,33,-1,-1,-1,-1,164,165
21040 data 224,224,225,225,225,192,193,225,225,225,225,225,225,225,225,225,225,225,225,225,192,193,225,225,225,225,225,225,225,225,225,225
21050 data -1,-1,-1,-1,-1,192,193,5,6,-1,-1,-1,8,9,-1,-1,-1,-1,-1,-1,192,193,-1,-1,5,6,-1,-1,-1,-1,-1,-1
21060 data -1,-1,-1,-1,-1,192,193,37,38,-1,-1,-1,40,41,-1,-1,-1,-1,-1,-1,192,193,-1,-1,37,38,-1,-1,-1,-1,-1,-1
21070 data -1,-1,-1,-1,-1,192,193,37,38,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,192,193,-1,-1,37,38,-1,-1,-1,-1,-1,-1
21080 data -1,3,4,-1,-1,192,193,37,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,192,193,-1,-1,37,38,-1,-1,-1,-1,3,4
21090 data -1,35,36,-1,-1,192,193,37,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,192,193,-1,-1,37,38,-1,-1,-1,-1,35,36
21100 data 224,224,224,224,224,224,224,224,224,224,192,193,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,225
21110 data -1,-1,-1,-1,5,6,-1,-1,-1,-1,192,193,-1,-1,-1,-1,-1,-1,5,6,-1,-1,8,9,-1,-1,-1,-1,-1,-1,-1,-1
21120 data -1,-1,-1,-1,37,38,-1,-1,-1,-1,192,193,-1,-1,-1,39,-1,-1,37,38,-1,-1,40,41,-1,-1,-1,-1,-1,-1,-1,-1
21130 data -1,-1,-1,-1,37,38,-1,-1,-1,-1,192,193,-1,-1,-1,-1,-1,-1,37,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
21140 data -1,3,4,-1,37,38,-1,-1,-1,-1,192,193,-1,-1,-1,-1,-1,-1,37,38,-1,-1,-1,-1,-1,-1,-1,0,1,-1,-1,-1
21150 data -1,35,36,-1,37,38,-1,-1,-1,-1,192,193,-1,-1,-1,-1,-1,-1,37,38,-1,-1,-1,-1,-1,-1,-1,32,33,-1,-1,-1
21160 data 224,224,224,224,224,224,192,193,224,224,224,224,224,224,224,224,224,224,225,224,224,192,193,224,224,224,224,225,224,224,224,225
21170 data -1,-1,-1,-1,-1,-1,192,193,-1,-1,-1,-1,-1,5,6,-1,-1,8,9,-1,-1,192,193,-1,-1,-1,-1,5,6,-1,-1,-1
21180 data -1,-1,39,-1,-1,-1,192,193,-1,-1,-1,-1,-1,37,38,-1,-1,40,41,-1,-1,192,193,-1,-1,-1,39,37,38,-1,-1,-1
21190 data -1,-1,-1,-1,-1,-1,192,193,-1,-1,-1,-1,-1,37,38,-1,-1,-1,-1,-1,-1,192,193,-1,-1,-1,-1,37,38,-1,-1,-1
21200 data -1,-1,-1,-1,-1,-1,192,193,-1,-1,-1,0,1,37,38,-1,-1,-1,-1,-1,-1,192,193,-1,-1,-1,-1,37,38,-1,3,4
21210 data -1,-1,-1,-1,-1,-1,192,193,-1,-1,-1,32,33,37,38,-1,-1,-1,-1,-1,-1,192,193,-1,-1,-1,-1,37,38,-1,35,36
21220 data 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,225