Wednesday, February 17, 2016

More tables for ESC processing

For processing ESC 0 ($30) to ESC Z ($5A) there's a jump table at $140C.



So basically get the next char, put it into A.

If A is between $30 and $5A then jump to $13c2.



At $13c2, subtract $30 multiply by 2 and use that as the index into the jump table at $140c.



I made a crap bash script to generate the characters from $30 to $5a, directed it to a file and loaded it at $ff00 so I could open up another memory dump window and line it up all neatly for the screenshot.




Howabout that ubuntu high contrast screen theme. Pretty garish, but it makes for a little cleaner screenshot.

ok so let's look at the processing for ESC 0:





so for ESC 0 jump to $1743 which puts 27 into A and stores that in $982C. $982C holds the current line spacing in 1/216 in. 27/216 is 1/8th inch.



for ESC 1 jump to $1745 which puts 21 into A and stores that in $982C. 21/216 = 7/72 inch (why? for 7 bit systems)
for ESC 2 jump to $1747 which puts 36 into A and stores that in $982C. 36/216 = 1/6 inch

ESC 3 is kind of interesting where you set n/216 line spacing, jump to $174A, grab the next character and put that into $982C.


Fun fun fun!



No comments:

Post a Comment