Hi, I am currently analyzing a reverse delay program (found here, thanks forum user igorp:
http://www.spinsemi.com/forum/viewtopic ... 0&start=30), and the question came up of how to translate hex values given as opcode arguments to more human readable decimal integers / floating points. I am specifically looking at the section here:
Code: Select all
;{ REVERSE read
or 0xFFFE00
rdax ad_reg , 1
skp gez , ok1
ldax ad_fbk
wrax ad_reg , 1
ok1:
and 0x7FFFFF
wrax ad_reg , -1 ; +1 = орган, -1 = обратка (+1 = octave up , -1 = reverse read)
wrax addr_ptr, 0 ; посчитать кроссфэйд . Если адрес 32767-256 или 0..256 - убавлять громкость.
; здесь отмасштабировать память
rmpa 1
mulx f5
wrax out_bwd , 0
;}
The 'or' opcode here is clearly being used to insert a specific value into the accumulator, and I it looks like the 'and' opcode is being used to invert the sign of the accumulator (force it to positive?). I've looked in the FV-1 datasheet / programming guide for how to read the hex values and can't find anything on the subject. What do the values 0xFFFE00 and 0x7FFFFF correspond to, and what is the general rule for how hex values are read by the accumulator?