~scott91e1


#50 Are "double quote" style strings possible? 3 months ago

Comment by ~scott91e1 on ~crc_/retroforth

Thanks, thats a nice example of how to enhance the interpret function.

The upper layer removes multiple spaces so that is going to produce incorrect results for some strings :(

This could be worked around by moving the line parsing into retro and re-jigging the interpreter process more.

I am also plotting to support """ triple quote strings which would need state kept over multiple lines.

Is supporting double quote strings in retrocore something you would consider for 2021.4?

#50 Are "double quote" style strings possible? 3 months ago

Ticket created by ~scott91e1 on ~crc_/retroforth

I currently have the parser to find them and convent them to ' and _ style strings. Would it be hard to have retro perform this? Adding support for JSON style \ escape sequences would also be a nice to have.

#43 Moving the string buffers to the start of free memory. 4 months ago

Comment by ~scott91e1 on ~crc_/retroforth

Thanks for confirming that this change should not have any additional consequences, aside from changing how the memory is used. The memory model I am working on is dict based and assumes 0 values. This lets me have much larger buffers, lower in memory without overhead if they are not used.

I am also moving to a memory based i/o system where 0-4999 represents a 50x100 screen and 5000-9999 is the color/background for the screen area. The VM also supports access controls on memory locations. This will let me mark 10000 as halt-on-access so run away writing to the screen does not override the code area. I am actually thinking of making the screen 49x99 and marking the memory locations as no-access to catch run-away code even earlier.

To make this more efficient retro-embedimage.py is being enhanced with run length encoding so runs of zero bytes can be represented as [10000] to represent the 10000 0 cells at the start of memory. The Retro class can then look at these blocks of zeros and decide how they should be handled, in the case of the assume 0 dict system is simply do nothing.

Using this model there is no real upper limit so will probably set the Heap to 100000 and grow from there. The memory object then cares how many non-zero values have been set, rather than limiting memory to a fixed range. To support this I think muri will be have 2 new operators to allocate n cells of 0 and allocate 0 cells until a specific address is reached.

#43 Moving the string buffers to the start of free memory. 5 months ago

Ticket created by ~scott91e1 on ~crc_/retroforth

I am interested to move the string buffers to the start of the free memory space. These buffers use EOM to align themselfs to the end of the memory space. Is this as simple as setting EOM to 1536 + size of eval buffer + size of temporary strings? Are there other things to consider when moving these areas and having Heap grow above them?

#37 language: enhance the ' instruction operator 5 months ago

Comment by ~scott91e1 on ~crc_/retroforth

PS. Is the new code missing a --reveal-- or I am missing something about how {{ }} works?

#37 language: enhance the ' instruction operator 5 months ago

Comment by ~scott91e1 on ~crc_/retroforth

Thanks for the additional comments. Seasons greetings BTW.

Any thoughts on why :quad is significantly more complex than :tri to implement?

Also; do you think this beefed up version is worthy of inclusion in 2021.1?

#27 examples: take part in https://adventofcode.com 5 months ago

Comment by ~scott91e1 on ~crc_/retroforth

Any chance you could commit your solutions to the repo of solutions to showcase the language?

https://github.com/kodsnack/advent_of_code_2020

#37 language: enhance the ' instruction operator 5 months ago

Comment by ~scott91e1 on ~crc_/retroforth

Thanks, that's what I was looking for. Its going to allow easier access to some VM specific op codes.

One question; could you provide some comments on the last 2 lines? Especially what #1793 is doing there...

#1793 &i store
&assemble &i n:inc store

#37 language: enhance the ' instruction operator 5 months ago

Ticket created by ~scott91e1 on ~crc_/retroforth

The current implementation maps the 2 letter lower case mnemonics into a byte and packs 4 together to build an instruction. Would be handy to allow 2 character upper hex numbers into the byte. This will allow for special vm opcodes to be activated in a consistent manner. Since its using upper-case and numbers it should not interfere with the current and future control of the core vm instructions.

#23 handover: "pip install retroforth" 5 months ago

Comment by ~scott91e1 on ~crc_/retroforth

Ah; it seems I need your pypi.org username, not email to invite you.