> > ...
> > ptr1 dat 0,step
>
> OK, just so we are talking about the same code, here is what it looks
> like to me:
Yes!! :)
But there is just a little bug now, you jump to qPtr instead of the
qDec (the decoder)...!! But thats easily fixed. I also added a couple
of more scans (12) to show its so easy to extend it, without adding
something to the decoder, and it still goes the same speed. A good
thing indeed is to put all the direct jumps to qDec on top, the slower
scans to the bottom, got me some extra points.
pGo jmp #0,0
for 30
dat 0,0
rof
qM equ 6600
qN equ 2275
qStep equ 111
qGo
sne qPtr+qM*(qN+0)+qStep*0 ,qPtr+qM*(qN+0)+qStep*1
seq qPtr+qM*(qN+0)+qStep*2 ,qPtr+qM*(qN+0)+qStep*3
jmp qDec
sne qPtr+(qM-2)*(qN-1)+qStep*0 ,qPtr+
(qM-2)*(qN-1)+qStep*1
seq qPtr+(qM-2)*(qN-1)+qStep*2 ,qPtr+
(qM-2)*(qN-1)+qStep*3
jmp 9 ,{qDec
sne qPtr+(qM-1)*(qN-2)+qStep*0 ,qPtr+
(qM-1)*(qN-2)+qStep*1
seq qPtr+(qM-1)*(qN-2)+qStep*2 ,qPtr+
(qM-1)*(qN-2)+qStep*3
jmp 6 ,<qDec
sne qPtr+(qM-2)*(qN-2)+qStep*0 ,qPtr+
(qM-2)*(qN-2)+qStep*1
seq qPtr+(qM-2)*(qN-2)+qStep*2 ,qPtr+
(qM-2)*(qN-2)+qStep*3
djn.f 3 ,qDec
sne qPtr+(qM-1)*(qN-1)+qStep*0 ,qPtr+
(qM-1)*(qN-1)+qStep*1
seq qPtr+(qM-1)*(qN-1)+qStep*2 ,qPtr+
(qM-1)*(qN-1)+qStep*3
djn.f qDec ,qDec
sne qPtr+qM*(qN+2)+qStep*0 ,qPtr+qM*(qN+2)+qStep*1
seq qPtr+qM*(qN+2)+qStep*2 ,qPtr+qM*(qN+2)+qStep*3
jmp 3 ,>qDec
sne qPtr+qM*(qN+1)+qStep*0 ,qPtr+qM*(qN+1)+qStep*1
seq qPtr+qM*(qN+1)+qStep*2 ,qPtr+qM*(qN+1)+qStep*3
jmp qDec ,>qDec
sne qPtr+qM*(qN-2)+qStep*0 ,qPtr+qM*(qN-2)+qStep*1
seq qPtr+qM*(qN-2)+qStep*2 ,qPtr+qM*(qN-2)+qStep*3
jmp 3 ,<qDec
sne qPtr+qM*(qN-1)+qStep*0 ,qPtr+qM*(qN-1)+qStep*1
seq qPtr+qM*(qN-1)+qStep*2 ,qPtr+qM*(qN-1)+qStep*3
jmp qDec ,<qDec
sne qPtr+qN*(qM+2)+qStep*0 ,qPtr+qN*(qM+2)+qStep*1
seq qPtr+qN*(qM+2)+qStep*2 ,qPtr+qN*(qM+2)+qStep*3
jmp 3 ,}qDec
sne qPtr+qN*(qM+1)+qStep*0 ,qPtr+qN*(qM+1)+qStep*1
seq qPtr+qN*(qM+1)+qStep*2 ,qPtr+qN*(qM+1)+qStep*3
jmp qDec ,}qDec
sne qPtr+qN*(qM-2)+qStep*0 ,qPtr+qN*(qM-2)+qStep*1
seq qPtr+qN*(qM-2)+qStep*2 ,qPtr+qN*(qM-2)+qStep*3
jmp 3 ,{qDec
sne qPtr+qN*(qM-1)+qStep*0 ,qPtr+qN*(qM-1)+qStep*1
seq qPtr+qN*(qM-1)+qStep*2 ,qPtr+qN*(qM-1)+qStep*3
jmp qDec ,{qDec
jmp pGo
null dat 0,0
qSteps dat qStep*2 ,qStep*2 ;break
qDec mul.x #qM ,#qN
add.f qDec ,qPtr ;
sne *qPtr ,@[EMAIL PROTECTED]
; 3 more lines than q4
add.f qSteps ,qPtr ;
sne null ,@[EMAIL PROTECTED]
mov.x qPtr ,qPtr
qPtr mov 0 ,{qStep
mov null ,>qPtr
jmn.f qPtr ,>qPtr
jmp pGo
end qGo
btw. Now that I see your bombing engine at work, I like it :)
> Even more dense code might look like:
> =A0 =A0seq =A0A,B
> =A0 =A0jmn.f dec,C
>
> Three scans in two lines, but I don't see how it can be made to work.
>
I think thats impossible. The problem is the first scan, you can't
really change the flow it follows.. But who knows, maybe some clever
redirection will make it possible!
Roy


|