diff --git a/bopti-on-fx-9860G.md b/bopti-on-fx-9860G.md index bb55836..ec09ba1 100644 --- a/bopti-on-fx-9860G.md +++ b/bopti-on-fx-9860G.md @@ -47,8 +47,8 @@ colors: Each profile has a fixed number of *layers* with a predefined meaning. During rendering, all of the layers are blit in order to produce the image. The number -of layers in a profile is always minimal: it is $`\lceil 1 + \log n \rceil`$ -where $`n`$ is the number of colors in that profile. +of layers in a profile is always minimal: it is `⌊ 1 + log n ⌋` where `n` is +the number of colors in that profile. On fx-9860G, the vram is either monochrome or 4-color gray, so pixel colors can only take 2 or 4 different values. This makes logical operations a privileged @@ -94,8 +94,8 @@ Here is the relationship between color profiles and their layers: ## Logical operations on pixels As a reference, here are the logical operations used to blit layers on past and -present versions of bopti. The $`x`$ parameter is a boolean; the transformation -must happen iff $`x=1`$. The significance of $`x`$ appears when extending the +present versions of bopti. The `x` parameter is a boolean; the transformation +must happen iff `x=1`. The significance of `x` appears when extending the logical operations to a longword: it allows controlling 32 pixels individually while still using only a couple logical instructions. @@ -135,7 +135,7 @@ darken (light, dark, x) = ((light ^ x) | (dark & x), dark | (light & x)) ``` These functions are obtained by looking intensely at a truth table, then adding -a linear number of $`x`$'s to neutralize some operands when $`x=0`$. +a linear number of `x`'s to neutralize some operands when `x=0`. ## Assembler-driven rendering