VTT assembly code

Jens Kutilek
Posts: 379
Looking at the sample font included with VTT, I come across some code that is not immediately obvious to me, and I couldn't find documentation for it anywhere.
I know you can turn pre-push optimization on/off with
What does this similar begin/end command pair do that is used in all the template function definitions?
Then there seems to be something like variable jump markers, but the syntax is not entirely clear to me.
I know you can turn pre-push optimization on/off with
#PUSHOFF /* ... */ #PUSHON
What does this similar begin/end command pair do that is used in all the template function definitions?
FDEF[], 153 #BEGIN /* ... */ #END ENDF[]
Then there seems to be something like variable jump markers, but the syntax is not entirely clear to me.
FDEF[], 153 #BEGIN #PUSHOFF DUP[] #PUSH, 2 RS[] EQ[] #PUSH, 1 SWAP[] #PUSH, BEcln SWAP[] JROT[], (BEcln=#LEndClear) POP[] /* ... */ #LEndClear: SWAP[] POP[] #LEndFn: #END #PUSHON ENDF[]As I understand it, the JROT instruction should jump to the calculated instruction stream position of #LEndClear if the first stack element is True. But why is the "BEcln" value pushed _and_ used as an argument to JROT? Why the extra "variable" BEcln? Couldn't be #LEndClear be used for both?
Tagged:
0
Categories
- All Categories
- 46 Introductions
- 3.9K Typeface Design
- 481 Type Design Critiques
- 558 Type Design Software
- 1.1K Type Design Technique & Theory
- 648 Type Business
- 841 Font Technology
- 29 Punchcutting
- 515 Typography
- 119 Type Education
- 320 Type History
- 76 Type Resources
- 110 Lettering and Calligraphy
- 31 Lettering Critiques
- 79 Lettering Technique & Theory
- 540 Announcements
- 88 Events
- 112 Job Postings
- 168 Type Releases
- 171 Miscellaneous News
- 275 About TypeDrawers
- 53 TypeDrawers Announcements
- 120 Suggestions and Bug Reports