Welcome to Stratos!
int cargar(int direccion) { // se extrae el primer BCD de 1 byte, pero porqué el and y el shiftR ? bcd1 = (direccion & 65280) >> 8; // porqué un and con 65280 ??? bcd2 = (direccion & 255); // no entiendo porqué return int2bcd(op(bcd2int(bcd1), bcd2int(bcd2))); }int bcd2int(int bcd) { d1 = (bcd & 240) >> 4; // porqué el and con 240 ? d2 = bcd & 15; // porqué con 15 ? return (d1 * 10) + d2;}void cargarROM64K() { for(int i=0; i<256*256; i++) mem[i] = cargar(i);}
Estaban en decimal porque las variables eran int...otra cosa para bajar puntaje...