freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ft-devel] RoyalT instruchtion set


From: Alexei Podtelezhnikov
Subject: [ft-devel] RoyalT instruchtion set
Date: Mon, 8 Aug 2016 11:37:04 -0400

Hi guys,

So apparently RoyalT has many more undocumented instructions beyond GETDATA: SGEP0, SGEP1, SGEP2, SGEPS, SHE, ADJUST
Below is the related strings dump. How can we live without richard's secret instruction ADJUST?

Alexei

%SVTCA
>set vectors to coordinate axis
&SPVTCA
 (set projection vector to coordinate axis
&SFVTCA
 %set freedom vector to coordinate axis
%SPVTL
=set projection vector to line
%SFVTL
:set freedom vector to line
%SPVFS
 "write projection vector from stack
%SFVFS
?write freedom vector from stack
5get projection vector
2get freedom vector
&SFVTPV
 'set freedom vector to projection vector
%ISECT
)intersect
%PPPPP
$SRP0
5set reference point 0
$SRP1
5set reference point 1
$SRP2
5set reference point 2
%SGEP0
-set element 0
%SGEP1
-set element 1
%SGEP2
-set element 2
%SGEPS
,set elementS
%SLOOP
1set loop variable
-round to grid
$RTHG
2round to half grid
4set minimum distance
$ELSE
/else for the IF
$JMPR
-jump relative
&SCVTCI
6set width table cut in
%SSWCI
7set single width cut in
0set single width
)duplicate
=pop top element off the stack
%CLEAR
2clear entire stack
$SWAP
5swap two top elements
%DEPTH
%depth
&CINDEX
:copy value to top of stack
&MINDEX
:move value to top of stack
(ALIGNPTS
4align relative point
2read advance width
-untouch point
(LOOPCALL
9call function inside loop
$CALL
7call function by number
$FDEF
3function definition
$ENDF
7end function definition
$MDAP
:move direct absolute point
<interpolate untouched points
+shift point
-shift contour
-shift element
%SHPIX
  shift by fractional pixel amount
1interpolate point
%MSIRP
 "move stack indirect relative point
'ALIGNRP
$RTDG
4round to double grid
$MIAP
<move indirect absolute point
&NPUSHB
,push n bytes
&NPUSHW
,push n words
+write store
*read store
%WCVTP
=write CVT from outline domain
$RCVT
8read control value table
/read coordinate
$SCFS
.set coordinate
0measure distance
%MPPEM
5measure pixels per em
1measure pointsize
&FLIPON
7set autoflip boolean on
'FLIPOFF
8set autoflip boolean off
%DEBUG
%debug
)less than
$LTEQ
2less than or equal
,greater than
$GTEQ
5greater than or equal
%equal
)not equal
$EVEN
$even
&end if
'DELTAP1
5delta point exception
.set delta base
/set delta shift
(subtract
&divide
(multiply
.absolute value
&negate
%FLOOR
%floor
'CEILING
'ceiling
%ROUND
%round
&NROUND
&nround
%WCVTF
>write CVT from original domain
'DELTAP2
:delta point exception + 16
'DELTAP3
:delta point exception + 32
'DELTAC1
3delta cvt exception
'DELTAC2
8delta cvt exception + 16
'DELTAC3
8delta cvt exception + 32
&SROUND
+super round
(S45ROUND
.super round 45
$JROT
5jump relative on TRUE
$JROF
6jump relative on FALSE
$ROFF
8set state to no rounding
$RUTG
0round up to grid
$RDTG
2round down to grid
%SANGW
0set angle weight
,adjust angle
&FLIPPT
+flip on/off
(FLIPRGON
.flip on low hi
)FLIPRGOFF
/flip off low hi
(SCANCTRL
2set scan converter
&SDPVTL
>set double proj vector to line
'GETINFO
-get misc info
$IDEF
-define opCode
$ROLL
(SCANTYPE
>change scan converter settings
)INSTRCTRL
;change interpreter settings
&ADJUST
<richard's secret instruction
,GETVARIATION
9get variation coordinates
'GETDATA
?get various bits of information
%PUSHB
*push bytes
%PUSHW
*push words
$MDRP
:move direct relative point
$MIRP
<move indirect relative point
&OFFSET
:component is offset by x,y
'SOFFSET
  component is offset by x,y : 2x2
'GOOMMMM
&ANCHOR
?component matches anchor points
'SANCHOR
 %component matches anchor points : 2x2
'GPPMMMM
'OVERLAP
 "set overlapping components to TRUE
'METRICS
 "use metrics of following component



reply via email to

[Prev in Thread] Current Thread [Next in Thread]