Skip to content

Files

Latest commit

ea203d2 · Sep 1, 2024

History

History
 
 

tools

List of tools for Tali Forth 2
Scot W. Stevenson <[email protected]>
First version: 24. Nov 2017
This version: 16. Apr 2018

Large parts of the Tali 2 code skeleton were generated by Python tools. Also,
we use these programs to automatically create some of the documentation. All
tools require at least Python 3.5 - they will not run with Python 2.

    generate_headers.py     - Create skeleton header.asm from wordsource.json
    generate_wordlist.py    - Create documentation table doc/WORDLIST.md
    generate_words.py       - Create skeleton of native_words.asm
    text_to_json.py         - Convert wordsource.txt to wordsource.json

In horrible ASCII graphics, the whole workflow looks something like this:


        wordsource.txt
               |
               | <-- text_to_json.py
               v
        wordsource.json
               |
        +------+------+
        |             |
        |             | <-- generate_headers.py
        |             v
        |     headers.asm
        |
        | <-- generate_words.py
        v
   native_words.asm (later refactored as words/*.asm)
        |
        | <-- generate_wordlist.py
        V
    WORDLIST.md


All assembler files need a certain amount of modification by hand, just because
it would have been more work to catch all the special cases in code:

In headers.asm:
        - nt_abort_quote, "abort"" becomes "abort", $22
        - nt_backslash, "\" becomes $5c
        - nt_dot_quote, "."" becomes ".", $22
        - nt_s_quote, "s"" becomes "s", $22

In wordsource.json:
        - Add number_sign, number_sign_greater, and number_sign_s

For safety, generate_wordlist.py will only print to the standard output. To
actually change the code, redirect this to a file and save it as WORDLIST.md
in the docs folder.