1
0
mirror of https://github.com/PDP-10/its.git synced 2026-04-28 12:57:56 +00:00

VERSA: Fix XGP baseline adjustment.

This is used by TJ6 for superscripts and subscripts. It worked fine for
positive offsets, but "addi a,(x)" didn't do the right thing when the
offset x was negative (because it double-indirects).

The XGP documentation says that the baseline adjustment sticks until the
font is changed. Looking at SYSEN2; XGP 31 (and SAIL's XGPSER), it is
also reset at the start of each line. TJ6 relies on this behaviour.

Since VERSA scans each line twice (once to compute the line height, once
to draw the characters), and baseline adjustment directives will be
interpreted on both passes, we need to reset the adjustment at the start
of both passes.
This commit is contained in:
Adam Sampson
2018-05-26 21:36:14 +01:00
committed by Adam Sampson
parent 47407aa6d9
commit 71aada08fc

View File

@@ -4519,11 +4519,13 @@ doline: setzm outena ;disable output
setzm count ;count of saved characters setzm count ;count of saved characters
move x,lftmar ;underline from left margin by default move x,lftmar ;underline from left margin by default
movem x,stubit movem x,stubit
setzm basel
move x,[440700,,rescan] move x,[440700,,rescan]
movem x,ptr movem x,ptr
call dolin1 call dolin1
setom outena setom outena
setzm seper setzm seper
setzm basel
move x,[440700,,rescan] move x,[440700,,rescan]
movem x,ptr movem x,ptr
call dolin1 call dolin1
@@ -4702,7 +4704,7 @@ bsladr: skipa a,basel
bsladj: setzi a, ;relative to 0 (absolute) bsladj: setzi a, ;relative to 0 (absolute)
call xarg1s call xarg1s
return return
addi a,(x) add a,x
movem a,basel movem a,basel
aos (p) aos (p)
return return