-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SEE misses out showing every byte when the name cannot be found #26
Comments
Hi RigTig,
I can see several things here:
I'd like to propose the following:
Sounds like fun :-) |
I am learning about github here, but fork is done. We'll continue our quest to further shrink STM8EF and make it even more useful in that fork. |
Great, the first step worked! It looks to me like your STM8SEF Normally merging changes between two different "baselines" in git works fine, but one has to merge changes from "upstream" first (i.e. first update your I'm also in learning mode with the GitHub workflow. Here is a generic intro: https://guides.github.com/introduction/flow/ |
Good writeup by @RigTig in this commit comment.
A (non functional) demonstration of One bug to be fixed:
|
Now you are getting ahead of me!! YooHoo!! Keep it going. I'll catch up soon. But, I can contribute something useful, relevant to 4a.
So you just pick out the ones you want and copy into your favourite serial terminal. Well, not quite. In this set, you'll notice that OVERT is one of the hidden pieces of code and you cannot use a word until it is defined. So, need to just waste a byte to define OVERT as follows (obviously before you use anything else): I'll put the python code into my barebones branch so you can see it. I actually have it installed in the folder above all of my branches. Usage is simple enough. Assuming working in barebones folder: |
Hehe the discussion is now unfolding in two "issue" threads. I wrote a similar script in AWK (not the most popular scripting language these days but still incredibly useful :-) The ultimate goal is splitting the headers from the code. But how do you feel about writing an address list to the upper 512 bytes of the 128 bytes EEPROM ;-) ? Done right the index would only depend on the order of the words in |
I haven't used awk since I first started with SGML (and then XML). It is very useful, but I've forgotten most of it. Can you please put a copy of your awk script in my BAREBONES branch (or somewhere I can see it)? |
@RigTig I worked a bit on the subject above. The attached (g)AWK file produces output like this:
BTW: encoding the ITC index table in about 250 bytes is be possible if it's expanded to RAM (based on the assumption that no core routine is longer than 255 bytes). |
The alias feature has just been added. I'd propose discussion to be continued in #27. ITC is a story in its own right. |
* 'master' of https://github.com/TG9541/stm8ef: fixes #26 support for *RigTig style* aliases closes #30 fixes #25 Z for 7-seg LED is wrong way around
SEE misses out showing every byte when the name cannot be found and then misses out on some names too.
For example:
A better SEE is:
What you get to see depends upon what word headers exist. The option flags in globconf.inc control the inclusion (or exclusion) of both complete words or just their headers. In this example, 'CD 83 4E' would have shown as '?branch' if the WORDS_LINKRUNTI option had been set to 1 when the STM8 was flashed.
The Forth code for SEE3 is
: SEE3 ( -- ; )
\ A simple decompiler.
\ Updated for byte machines.
' CR 1- BEGIN
2+ DUP @ DUP IF
>NAME THEN
?DUP IF
SPACE .ID 1+ ELSE
1- DUP C@ U. THEN
NUF? UNTIL
DROP
;
2fix: In forth.asm, replace
SEE3: CALLR DUPPCAT
with
SEE3: CALL ONEM
CALLR DUPPCAT
Note: I am working backwards through forth.asm and adding more to the list of words removed with the BAREBONES option in globconf.inc. I am choosing words that can be added back in NVM mode or just put in ram for a temporary use because they can be written in Forth code. I may find other issues as I pick my way through the word list.
The text was updated successfully, but these errors were encountered: