Open GoogleCodeExporter opened 8 years ago
Posted on parallax forum by
forum user: frida
Location Denmark
Posts 3
Original comment by prof.bra...@gmail.com
on 2 Jun 2013 at 6:27
marco says:
Looks like the dictionary has been generated for the before code. As it is just
a dump it doesn't get updated automatically for your after changes. That said,
the nop - if used - should appear before a__maskin but an updated dictionary
would be the right solution.
Original comment by prof.bra...@gmail.com
on 2 Jun 2013 at 3:34
Thank you, you are right. I have looked at the code and it makes sense. I will
incorporate into PropForth6.
The noop is necessary in your code because changes in the assembler kernel
requires that the PropForth image needs to be updated to reflect the changes.
This involves a rebuild from StartKernel forward. Mostly automated, but a
little tricky. Will try to improve this process in 6.
Original comment by salsa...@gmail.com
on 2 Jun 2013 at 3:56
While you're at it, get rid of fMask too. I don't know how important kernel
size is but its single use can easily be rewritten with either a cmp wc or a
testn wz.
Original comment by marko.lu...@kyi.biglobe.ne.jp
on 3 Jun 2013 at 12:07
[deleted comment]
[deleted comment]
Further loop improvement. Currently IP is only incremented when it's not a
FORTH word. Subsequently tregfive is loaded with IP and then incremented then
IP reused. IOW IP can always be incremented.
a_next
a_debugonoff
if_never jmpret a_dum_ret, # a_dum
rdword tregone,IP
add IP, #2
testn tregone, #$1FF wz
if_z jmp tregone
mov tregfive, IP
mov IP, tregone
call #a_rsPush
jmp #a_next
Original comment by marko.lu...@kyi.biglobe.ne.jp
on 3 Jun 2013 at 12:52
Agreed, will update 6, and make sure regression tests pass. (do not see why
they would not)
Thank you.
Original comment by salsa...@gmail.com
on 3 Jun 2013 at 2:53
If I understand it correctly, the IP must not be updated if it is a Forth word,
but it is the content of IP, which is updated.
frida
Original comment by PoulB...@gmail.com
on 4 Jun 2013 at 9:04
Yes, the operation is as follows.
The IP is pointing to the next word to be executed. After the word is fetched,
the IP is incremented to point to the next word. If it is an assembler word, we
simply jump to the address. If it is a forth word, we push the IP onto the
return stack, and start fetching the contents of the word.
Original comment by salsa...@gmail.com
on 5 Jun 2013 at 12:05
Original issue reported on code.google.com by
prof.bra...@gmail.com
on 2 Jun 2013 at 6:26