# 20150423 - Source-Less Programming : 3

**Source:** https://refined-github-html-preview.kidonng.workers.dev/gomson/TimothyLottes.github.io/raw/refs/heads/master/20150423.html

# 20150423 - Source-Less Programming : 3

  
**Annotation Encoding**
  
Refined from last post, two 32-bit annotation words per binary image word,  
  
FEDCBA9876543210FEDCBA9876543210  
================================  
00EEEEEEDDDDDDCCCCCCBBBBBBAAAAAA - LABEL : 5 6-bit chr string ABCDE  
  
FEDCBA9876543210FEDCBA9876543210  
================================  
..............................00 - DAT : hex data  
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01 - GET : get word from address A\*4  
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02 - ABS : absolute address to A\*4  
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03 - REL : relative address to A\*4  
  
Going to switch to just 2 lines per word displayed in the editor,
Only DAT annotations show hex value, other types show LABEL of referenced address
in the place of the hex value. So no need for an extra note.
In practice will be using some amount of binary image memory to build up
a dictionary of DAT words representing all the common somewhat forth like opcodes,
then GET words in the editor to build up source.  
  
Need to redo the bootloader from floppy to harddrive usage,
and switch even the bootloader's 16-bit x86 code to 32-bit aligned
LABEL'ed stuff so the final editor can edit the bootloader.
Prior was avoiding manually assembling the 16-bit x86 code in the boot loader,
but might as well ditch NASM and use something else to bootstrap everything.