Los operadores AND, OR no funcionan bitwise, y me pregunto si hay una manera de hacerlo que no caigo.
Si no la hubiera, supongo que se puede hacer con un DEF FN tocho, aunque tampoco lo veo tan claro porque para eso tendría que aislar los bits para hacer un y me haría falta un SHR por lo menos (operador >> de C).
Es para valores de 8 bits.
Con DEF FN creo que la funcion or se puede hacer como indico, pero no acabo de ver una manera de aislar esos bits:
Código: Seleccionar todo
REM FUNCION BIT (devuelve el valor del bit N del valor X)
DEF FN b(X,N) = ??????
REM FUNCION OR (devuelve or bitwise)
DEF FN o(a,b) = (b(X,7) OR b(Y,7)) *128 + (b(X,6) OR b(Y,6)) *64 + ... + (b(X,0) OR b(Y,0)) *1
Otra forma sería usar C/M claro, que es lo más fácil sin duda, pero aun así me gustaría usarlo desde basic, así que tendría que ver una manera de meterlo en un REM en la primera linea, y automodificar código con POKES. Es decir, que en la primera linea hubiera esto:
result: defb 0
start: LD A, X
LD B, Y
OR B
LD (result), A
RET
Y luego para hacer un OR pokearia en las posiciones de X e Y, RANDOMIZE USR,y después "peekearia" desde :result
Un tinglao fino para una chorrada vamos

Otras ideas?
Edito: ahora que lo pienso puede que ni ese DEF FN o() funcione, porque b(X,7) OR b(Y,7) en realidad es if b(Y,7) then b(X,7), así que no es lo mismo ... uf