Antes de llamar a chequeo, el registro hl es igual a DA2C + 30*N depende del nº de pokemon que sea.
Al entrar a chequeo ese valor se guarda en la pila mediante push hl
En cada loop la instruccion ldi incrementa el valor de hl (ademas de guardar el contenido de la direccion a la que apunta en a)
Por cada move que se chequee, hl se ve incrementado una vez. Si el move en el que se da la coincidencia es el segundo, se chequean dos moves hasta dar con ella (1ro y 2do) por lo que hl se habra convertido en hl+2. En el caso de pkmn numero 0, hl tendria DA2E.
En el momento de la coincidencia se salta a @positivo; lo primero que hacemos ahí es cargar 0 en a (xor a) y guardar 0 en scriptvar.
La instruccion pop bc recupera el valor que se guardo en la pila debido al push hl, y lo recupera en bc. En el caso de que sea el pkmn numero 0 por ejemplo, bc ahora seria DA2C, y por tanto c seria 2C.
Como a es igual a 0 le sumamos l y le restamos c, y en nuestro ejemplo nos da 0+2E-2C = 2