> I spent a couple days doing the math for one of those, also <tabvalue
> followed by another <tabvalue. =A0It required using substitutions like
> qM*qMod =3D 2 instead of 1. =A0Eventually I realized that the separation
> between those scans was 1 :-)
Hehe, that sounds very familiar!
I was also playing around with this:
dat 0 , 110
tab1 dat 0 , 120
dat 0 , 130
dat 0 , 140
tab2 dat 0 , 150
tab3 dat 0 , 160
dat 0 , 210
tab4 dat 0 , 220
dat 0 , 230
dat 0 , 240
tab5 dat 0 , 250
tab6 dat 0 , 260
qscan jmp dec , <ind
jmp dec
jmp dec , >ind
djn.b dec , {dec
jmp dec , {dec
jmp dec , }dec
jmp dec-1 , {ind
jmp dec-1
jmp dec-1 , }ind
djn.b dec-1 , {dec
jmp dec-1 , {dec
jmp dec-1 , }dec
mov.x *1 , *1
dec mul.b @[EMAIL PROTECTED]
, 1
jmp #0 , #10
dat tab5 , tab2
ind dat tab4 , tab1
dat tab6 , tab3
end qscan
With only one more line before the decoder, and a bit larger
indirection-table (that is switchable/mirrored) it should be possible
to have 12*4 =3D 48 dense scanned locations.
Also possible is making the tables itself switchable:
dat 210 , 110
tab1 dat 220 , 120
dat 230 , 130
dat 240 , 140
tab2 dat 250 , 150
tab3 dat 260 , 160
qscan jmp dec , <ind
jmp dec
jmp dec , >ind
djn.b dec , {dec
jmp dec , {dec
jmp dec , }dec
jmp dec-1 , {ind
jmp dec-1
jmp dec-1 , }ind
djn.b dec-1 , {decm
jmp dec-1 , {decm
jmp dec-1 , }decm
decm mul.ab @[EMAIL PROTECTED]
1
mov.i -1 , 1
dec mul.b @[EMAIL PROTECTED]
, 1
jmp #0 , #10
dat 0 , tab2
ind dat 0 , tab1
dat 0 , tab3
end qscan
This costs somewhat less space, the indirection isn't changed and the
q3/q4 decoder/attack could be used. But you loose the a-fields of the
tables.
The problem now is actually adding scans to the frame :-) Too late in
the evening for that...
Roy


|