Copy-Paste from another topic:
SYS operand must be in 28-284, but some SYS function have definied smaller cycle operand.at67 wrote: ↑04 Apr 2023, 17:27 That looks to me like sync issues, meaning you've broken the firmware's video timing. I'd check all your SYS calls, make sure all the args/regs are correct and that you are calling the correct cycle count.
e.g. in your assembler do you do something like this for the cycle operand to the SYS opcode?Full explanation is here: https://github.com/kervinck/gigatron-ro ... ctions.txtCode: Select all
if((operand & 0x0001) || operand < 28 || operand > 284) { fprintf(stderr, "Assembler::sysHelper() : '%s:%d' : SYS operand '%d' must be an even constant in [28, 284]\n", filename.c_str(), lineNumber, operand); return uint8_t(operand); } return uint8_t((270 - operand / 2) & 0x00FF);
Ex:
SYS_Out - 22
SYS_LSRW8 - 24
SYS_LSLW8 - 24
Where is the mistake?