[[COMMENT Section 2.3.2, Program D : Differentiation Routines
Author Chan Vinh VONG
Draft Version 2012 April 14th
Refined 2012 April 19th
Refined 2012 May 08th
Refined 2012 July 08th
For the test Plan: see attached diagrams, except for PWR which is
covered by the cases 1^3, 1^2, 1^X, X^3, X^2, and X^X]]
[[SET DRIVER
dRLINK IS 8*0
dLLINK IS 8*1
PAGE IS 8192
LOC Data_Segment+PAGE*0 % #2000..0000
BASE GREG @
[[Y]]
AVAIL GREG @
BASEDY GREG 0 % DY is built after Y in the same stack
LOC Data_Segment+PAGE*1 % #2000..2000
Y GREG @ % List head for Y
OCTA @ % ..2000 RLINK
OCTA 0 % ..2008 LLINK
OCTA 0 % ..2010 INFO/TYPE
DY GREG @ % List head for DY
OCTA @ % ..2018 RLINK
OCTA 0 % ..2020 LLINK
OCTA 0 % ..2028 INFO/TYPE
LOC Data_Segment+PAGE*2 % #2000..4000
ExpDYNodes GREG @
[[ExpDYNodes]]
LOC Data_Segment+PAGE*3 % #2000..6000
ExpDY GREG @
[[ExpDY]]
[[INCLUDE msg.mms]]
LOC #100
GREG @
[[INCLUDE octa2ascii.mms]]
[[INCLUDE compare.mms]]
[[INCLUDE S232PD-AGC.mms]]
[[INCLUDE S232PD-TREE.mms]]
[[INCLUDE S232PD-MULT.mms]]
[[INCLUDE S232PD-COPYRTBT.mms]]
[[INCLUDE S232PD-DIFF.mms]]
GREG @
temp IS $0
Main IS @
% Avoid synonyms
SET BASEDY,AVAIL
% Wire Y head list to the tree
[[WireY]]
PUSHJ $0,DIFF
% Check Stack
SET $1,AVAIL
SETH $2,#2000
INCL $2,[[ExpAVAIL]]
PUSHJ $0,EXP_OCTA
% Check list head DY
SET $1,DY
SET $2,ExpDY
SET $3,3
PUSHJ $0,COMPARE
% Check tree DY
SET $1,BASEDY
SET $2,ExpDYNodes
SET $3,[[Octas]]
PUSHJ $0,COMPARE
SET $255,0
TRAP
]]
[[COMMENT ===========================================================]]
[[TEST 10]]
[[COMMENT Topology: very simple. Y = 42. Can't do simpler.]]
[[SET Y
% P = (42) @ #2000..00
OCTA #2000000000002001 % RT to Y head
OCTA 0
OCTA #2A0
]]
[[SET WireY
SETH temp,#2000
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0030]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000018
OCTA #0
]]
[[SET ExpDYNodes
% dP = (0) @ #2000..18
OCTA #2000000000002019 % RT-LINK to DY head
OCTA #0
OCTA #0
]]
[[SET Octas 3]]
[[DRIVER]]
[[END 10]]
[[COMMENT ===========================================================]]
[[TEST 100]]
[[COMMENT Topology: Y = Z, DY = 0]]
[[SET Y
% P = (Z) @ #2000..00
OCTA #2000000000002001 % RT to Y head
OCTA 0
OCTA #5A1
]]
[[SET WireY
SETH temp,#2000
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0030]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000018
OCTA #0
]]
[[SET ExpDYNodes
% dP = (0) @ #2000..18
OCTA #2000000000002019 % RT-LINK to DY head
OCTA #0
OCTA #0
]]
[[SET Octas 3]]
[[DRIVER]]
[[END 100]]
[[COMMENT ===========================================================]]
[[TEST 110]]
[[COMMENT Topology: Y = X, DY = 1]]
[[SET Y
% P = (X) @ #2000..00
OCTA #2000000000002001 % RT to Y head
OCTA 0
OCTA #581
]]
[[SET WireY
SETH temp,#2000
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0030]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000018
OCTA #0
]]
[[SET ExpDYNodes
% dP = (1) @ #2000..18
OCTA #2000000000002019 % RT-LINK to DY head
OCTA #0
OCTA #10
]]
[[SET Octas 3]]
[[DRIVER]]
[[END 110]]
[[COMMENT ===========================================================]]
[[TEST 200]]
[[COMMENT Topology: Y = LN 42, DY = 0]]
[[SET Y
% U = (42) @ #2000..00
OCTA #2000000000000019 % RT to LN
OCTA 0
OCTA #2A0
% P = (LN) @ #2000..18
OCTA #2000000000002001 % RT to Y head
OCTA #2000000000000000 % link to X
OCTA #4C4E2
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0018
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0048]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000030
OCTA #0
]]
[[SET ExpDYNodes
% dP = (0) @ #2000..0030
OCTA #2000000000002019 % RT to DY head
OCTA #0
OCTA #0
]]
[[SET Octas 3]]
[[DRIVER]]
[[END 200]]
[[COMMENT ===========================================================]]
[[TEST 210]]
[[COMMENT Topology: Y = LN X, DY = 1 / X]]
[[SET Y
% U = (X) @ #2000..00
OCTA #2000000000000019 % RT to LN
OCTA 0
OCTA #581
% P = (LN) @ #2000..18
OCTA #2000000000002001 % RT to Y head
OCTA #2000000000000000 % link to X
OCTA #4C4E2
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0018
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0078]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000060
OCTA #0
]]
[[SET ExpDYNodes
% dU = (1) @ #2000..30
OCTA #2000000000000048 % R-LINK to (X)
OCTA #0
OCTA #10
% copy of U = (X) @ #2000..48
OCTA #2000000000000061 % RT-LINK to (/)
OCTA #0
OCTA #581
% dP = (/) @ #2000..60
OCTA #2000000000002019 % RT to DY head
OCTA #2000000000000030 % LLINK to (1)
OCTA #2F7
]]
[[SET Octas 9]]
[[DRIVER]]
[[END 210]]
[[COMMENT ===========================================================]]
[[TEST 300]]
[[COMMENT Topology: Y = NEG 42, DY = 0]]
[[SET Y
% U = (X) @ #2000..00
OCTA #2000000000000019 % RT to NEG
OCTA 0
OCTA #2A0
% P = (NEG) @ #2000..18
OCTA #2000000000002001 % RT to Y head
OCTA #2000000000000000 % link to X
OCTA #4E45473
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0018
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0048]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000030
OCTA #0
]]
[[SET ExpDYNodes
% dP = (0) @ #2000..30
OCTA #2000000000002019 % RT to DY head
OCTA #0
OCTA #0
]]
[[SET Octas 3]]
[[DRIVER]]
[[END 300]]
[[COMMENT ===========================================================]]
[[TEST 310]]
[[COMMENT Topology: Y = NEG X, DY = NEG 1]]
[[SET Y
% U = (X) @ #2000..00
OCTA #2000000000000019 % RT to NEG
OCTA 0
OCTA #581
% P = (NEG) @ #2000..18
OCTA #2000000000002001 % RT to Y head
OCTA #2000000000000000 % link to X
OCTA #4E45473
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0018
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0060]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000048
OCTA #0
]]
[[SET ExpDYNodes
% dU = (1) @ #2000..30
OCTA #2000000000000049 % RT to NEG
OCTA #0
OCTA #10
% dP = (NEG) @ #2000..48
OCTA #2000000000002019 % RT-LINK to list head DY
OCTA #2000000000000030 % link to 1
OCTA #4E45473
]]
[[SET Octas 6]]
[[DRIVER]]
[[END 310]]
[[COMMENT ===========================================================]]
[[TEST 400]]
[[COMMENT Topology: Y = 42 + X, DY = 1]]
[[SET Y
% V = (X) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #581
% U = (42) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #2A0
% P = ("+") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2B4
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0048]]
[[COMMENT dU has been GC'd]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000060
OCTA #0
]]
[[SET ExpDYNodes
% dU = (0) garbaged
OCTA #2000000000000078 % points to next free block
OCTA #0
OCTA #0
% dV = (1)
OCTA #2000000000002019 % RTLINK to list head DY
OCTA #0
OCTA #10
]]
[[SET Octas 6]]
[[DRIVER]]
[[END 400]]
[[COMMENT ===========================================================]]
[[TEST 410]]
[[COMMENT Topology: Y = X + 42, DY = 1]]
[[SET Y
% V = (42) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #2A0
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("+") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2B4
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0060]]
[[COMMENT dV has been GC'd]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000048
OCTA #0
]]
[[SET ExpDYNodes
% dU = (1)
OCTA #2000000000002019 % RTLINK to list head DY
OCTA #0
OCTA #10
% dV = (0) garbaged
OCTA #2000000000000078 % points to next free block
OCTA #0
OCTA #0
]]
[[SET Octas 6]]
[[DRIVER]]
[[END 410]]
[[COMMENT ===========================================================]]
[[TEST 420]]
[[COMMENT Topology: Y = 10 + 42, DY = 0]]
[[SET Y
% V = (42) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #2A0
% U = (10) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #A0
% P = ("+") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2B4
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0048]]
[[COMMENT dU has been GC'd first]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000060
OCTA #0
]]
[[SET ExpDYNodes
% dU = (0) garbaged
OCTA #2000000000000078 % points to next free block
OCTA #0
OCTA #0
% dV = (0)
OCTA #2000000000002019 % RTLINK to list head DY
OCTA #0
OCTA #0
]]
[[SET Octas 6]]
[[DRIVER]]
[[END 420]]
[[COMMENT ===========================================================]]
[[TEST 430]]
[[COMMENT Topology: Y = X + X, DY = 1 + 1]]
[[SET Y
% V = (X) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #581
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("+") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2B4
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0090]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000078
OCTA #0
]]
[[SET ExpDYNodes
% dU = (1) @ #2000..48
OCTA #2000000000000060
OCTA #0
OCTA #10
% dV = (1) @ #2000..60
OCTA #2000000000000079 % RTLINK to dY
OCTA #0
OCTA #10
% dY = ("+") @ #2000..78
OCTA #2000000000002019 % RTLINK to list head DY
OCTA #2000000000000048
OCTA #2B4
]]
[[SET Octas 9]]
[[DRIVER]]
[[END 430]]
[[COMMENT ===========================================================]]
[[TEST 500]]
[[COMMENT Topology: Y = 1 - X, DY = 1]]
[[SET Y
% V = (X) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #581
% U = (1) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #10
% P = ("-") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2D5
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0078]]
[[COMMENT dU has been GC'd]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000048
OCTA #0
]]
[[SET ExpDYNodes
% dY = ("NEG") @ #2000..48 garbaged and reallocated
OCTA #2000000000002019 % points to next free block
OCTA #2000000000000060
OCTA #4E45473
% dV = (1) @ #2000..60
OCTA #2000000000000049 % RTLINK to dY
OCTA #0
OCTA #10
% free block @ #2000..78
OCTA #0
OCTA #0
OCTA #0
]]
[[SET Octas 9]]
[[DRIVER]]
[[END 500]]
[[COMMENT ===========================================================]]
[[TEST 510]]
[[COMMENT Topology: Y = X - 1, DY = 1]]
[[SET Y
% V = (1) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #10
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("-") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2D5
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0060]]
[[COMMENT dV has been GC'd]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000048
OCTA #0
]]
[[SET ExpDYNodes
% dU = (1) @ #2000..48
OCTA #2000000000002019
OCTA #0
OCTA #10
% dV = (0) @ #2000..60
OCTA #2000000000000078 % points to next free block
OCTA #0
OCTA #0
% free block @ #2000..78
OCTA #0 % points to next free block
OCTA #0
OCTA #0
]]
[[SET Octas 9]]
[[DRIVER]]
[[END 510]]
[[COMMENT ===========================================================]]
[[TEST 520]]
[[COMMENT Topology: Y = 1 - 1, DY = 0]]
[[SET Y
% V = (1) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #10
% U = (1) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #10
% P = ("-") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2D5
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0060]]
[[COMMENT dV has been GC'd first]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000048
OCTA #0
]]
[[SET ExpDYNodes
% dU = (0) @ #2000..48
OCTA #2000000000002019
OCTA #0
OCTA #0
% dV = (0) @ #2000..60 garbaged
OCTA #2000000000000078 % points to next free block
OCTA #0
OCTA #0
% free block @ #2000..78
OCTA #0
OCTA #0
OCTA #0
]]
[[SET Octas 9]]
[[DRIVER]]
[[END 520]]
[[COMMENT ===========================================================]]
[[TEST 530]]
[[COMMENT Topology: Y = X - X, DY = 1 - 1]]
[[SET Y
% V = (X) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #581
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("-") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2D5
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0090]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000078
OCTA #0
]]
[[SET ExpDYNodes
% dU = (1) @ #2000..48
OCTA #2000000000000060
OCTA #0
OCTA #10
% dV = (1) @ #2000..60
OCTA #2000000000000079 % RTLINK to dY
OCTA #0
OCTA #10
% dY = ("+") @ #2000..78
OCTA #2000000000002019 % RTLINK to list head DY
OCTA #2000000000000048
OCTA #2D5
]]
[[SET Octas 9]]
[[DRIVER]]
[[END 530]]
[[COMMENT ===========================================================]]
[[TEST 600]]
[[COMMENT Topology: Y = 1 * X, DY = 1]]
[[SET Y
% V = (X) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #581
% U = (1) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #10
% P = ("*") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2A6
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0048]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000060
OCTA #0
]]
[[SET ExpDYNodes
% dU = (0) @ #2000..48 dU garbaged by ADD
OCTA #2000000000000078 % points to next free block
OCTA #0
OCTA #0
% dV = (1) @ #2000..60
OCTA #2000000000002019 % RTLINK to list head DY
OCTA #0
OCTA #10
% free block @ #2000..78 copy of U garbaged by MULT
OCTA #2000000000000090 % points to next free block
OCTA #0
OCTA #10
]]
[[SET Octas 9]]
[[DRIVER]]
[[END 600]]
[[COMMENT ===========================================================]]
[[TEST 610]]
[[COMMENT Topology: Y = X * 1, DY = 1]]
[[SET Y
% V = (1) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #10
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("*") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2A6
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0060]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000078
OCTA #0
]]
[[SET ExpDYNodes
% free block @ #2000..48
OCTA #2000000000000090 % next free block
OCTA #0
OCTA #10
% free block @ #2000..60 dV garbaged by ADD
OCTA #2000000000000048 % next free block
OCTA #0
OCTA #0
% dY = (1) @ #2000..78
OCTA #2000000000002019
OCTA #0
OCTA #10
]]
[[SET Octas 9]]
[[DRIVER]]
[[END 610]]
[[COMMENT ===========================================================]]
[[TEST 620]]
[[COMMENT Topology: Y = 1 * 1, DY = 0]]
[[SET Y
% V = (1) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #10
% U = (1) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #10
% P = ("*") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2A6
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0048]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000060
OCTA #0
]]
[[SET ExpDYNodes
% dU = (0) @ #2000..48
OCTA #2000000000000078
OCTA #0
OCTA #0
% dV = (0) @ #2000..60
OCTA #2000000000002019 % RTLINK to list head DY
OCTA #0
OCTA #00
% free block @ #2000..78
OCTA #0
OCTA #0
OCTA #0
]]
[[SET Octas 9]]
[[DRIVER]]
[[END 620]]
[[COMMENT ===========================================================]]
[[TEST 630]]
[[COMMENT Topology: Y = X * X, DY = X + X]]
[[SET Y
% V = (X) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #581
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("*") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2A6
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0090]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000060
OCTA #0
]]
[[SET ExpDYNodes
% dU = (1) @ #2000..48
OCTA #2000000000000061
OCTA #0
OCTA #581
% dV = (1) @ #2000..60
OCTA #2000000000002019 % RTLINK to dY
OCTA #2000000000000078
OCTA #2B4
% dY = ("+") @ #2000..78
OCTA #2000000000000048 % RTLINK to list head DY
OCTA #0
OCTA #581
]]
[[SET Octas 9]]
[[DRIVER]]
[[END 630]]
[[COMMENT ===========================================================]]
[[TEST 700]]
[[COMMENT Topology: Y = 1 / X, DY = -1/X^2]]
[[SET Y
% V = (X) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #581
% U = (1) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #10
% P = ("/") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2F7
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #00D8]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000048
OCTA #0
]]
[[SET ExpDYNodes
% "NEG" in "NEG(1/X^2)" @ #2000..48
OCTA #2000000000002019
OCTA #20000000000000c0
OCTA #4e45473
% "X" in "NEG(1/X^2)" @ #2000..60
OCTA #2000000000000090
OCTA #0
OCTA #581
% "1" in "NEG(1/X^2)" @ #2000..78
OCTA #20000000000000a8
OCTA #0
OCTA #10
% "2" in "NEG(1/X^2)" @ #2000..90
OCTA #20000000000000a9
OCTA #0
OCTA #20
% "^" in "NEG(1/X^2)" @ #2000..a8
OCTA #20000000000000c1
OCTA #2000000000000060
OCTA #5e8
% "/" in "NEG(1/X^2)" @ #2000..c0
OCTA #2000000000000049
OCTA #2000000000000078
OCTA #2f7
]]
[[SET Octas 18]]
[[DRIVER]]
[[END 700]]
[[COMMENT ===========================================================]]
[[TEST 710]]
[[COMMENT Topology: Y = X / 1, DY = 1/1]]
[[SET Y
% V = (1) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #10
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("/") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2F7
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0060]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000090
OCTA #0
]]
[[SET ExpDYNodes
% 1st "1" in "1/1" @ #2000..48
OCTA #2000000000000078
OCTA #0
OCTA #10
% Garbage Collected @ #2000..60
OCTA #20000000000000a8 % pointing to next free block
OCTA #0
OCTA #0
% 2nd "1" in "1/1" @ #2000..78
OCTA #2000000000000091
OCTA #0
OCTA #10
% "/" in "1/1" @ #2000..90
OCTA #2000000000002019
OCTA #2000000000000048
OCTA #2f7
]]
[[SET Octas 12]]
[[DRIVER]]
[[END 710]]
[[COMMENT ===========================================================]]
[[TEST 720]]
[[COMMENT Topology: Y = 1 / 1, DY = 0]]
[[SET Y
% V = (1) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #10
% U = (1) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #10
% P = ("/") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2F7
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0060]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000048
OCTA #0
]]
[[SET ExpDYNodes
% "0" @ #2000..48
OCTA #2000000000002019
OCTA #0
OCTA #0
% Garbage Collected @ #2000..60
OCTA #2000000000000078
OCTA #0
OCTA #0
]]
[[SET Octas 6]]
[[DRIVER]]
[[END 720]]
[[COMMENT ===========================================================]]
[[TEST 730]]
[[COMMENT Topology: Y = X / X, DY = 1/X - X/X^2]]
[[SET Y
% V = (X) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #581
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("/") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #2F7
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0120]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000108
OCTA #0
]]
[[SET ExpDYNodes
% "1" in "1/X" @ #2000..48
OCTA #2000000000000078
OCTA #0
OCTA #10
% 2nd "X" in "X/X^2" @ #2000..60
OCTA #20000000000000c0
OCTA #0
OCTA #581
% "X" in "1/X" @ #2000..78
OCTA #2000000000000091
OCTA #0
OCTA #581
% "/" in "1/X" @ #2000..90
OCTA #20000000000000f0
OCTA #2000000000000048
OCTA #2f7
% 1st "X" in "X/X^2" @ #2000..a8
OCTA #20000000000000d8
OCTA #0
OCTA #581
% "2" in "X/X^2" @ #2000..c0
OCTA #20000000000000d9
OCTA #0
OCTA #20
% "^" in "X/X^2" @ #2000..d8
OCTA #20000000000000f1
OCTA #2000000000000060
OCTA #5e8
% "/" in "X/X^2" @ #2000..f0
OCTA #2000000000000109
OCTA #20000000000000a8
OCTA #2f7
% "-" in "1/X - X/X^2" @ #2000..108
OCTA #2000000000002019
OCTA #2000000000000090
OCTA #2d5
]]
[[SET Octas 27]]
[[DRIVER]]
[[END 730]]
[[COMMENT ===========================================================]]
[[TEST 800]]
[[COMMENT Topology: Y = 1^3, DY = 0]]
[[SET Y
% V = (3) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #30
% U = (1) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #10
% P = ("^") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #5E8
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0048]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000060
OCTA #0
]]
[[SET ExpDYNodes
% Garbage Collected @ #2000..48
OCTA #2000000000000078
OCTA #0
OCTA #0
% "0" @ #2000..60
OCTA #2000000000002019
OCTA #0
OCTA #0
]]
[[SET Octas 6]]
[[DRIVER]]
[[END 800]]
[[COMMENT ===========================================================]]
[[TEST 810]]
[[COMMENT Topology: Y = 1^2, DY = 0]]
[[SET Y
% V = (2) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #20
% U = (1) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #10
% P = ("^") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #5E8
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0048]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000060
OCTA #0
]]
[[SET ExpDYNodes
% Garbage Collected @ #2000..48
OCTA #2000000000000078
OCTA #0
OCTA #0
% "0" @ #2000..60
OCTA #2000000000002019
OCTA #0
OCTA #0
]]
[[SET Octas 6]]
[[DRIVER]]
[[END 810]]
[[COMMENT ===========================================================]]
[[TEST 820]]
[[COMMENT Topology: Y = X^3, DY = 3*X^2]]
[[SET Y
% V = (3) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #30
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("^") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #5E8
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0060]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #20000000000000D8
OCTA #0
]]
[[SET ExpDYNodes
% Garbage Collected @ #2000..48
OCTA #20000000000000f0 % pointing to next free block
OCTA #0
OCTA #10
% Garbage Collected @ #2000..60
OCTA #2000000000000048 % pointing to next free block
OCTA #0
OCTA #0
% "X" in "3*X^2" @ #2000..78
OCTA #2000000000000090
OCTA #0
OCTA #581
% "2" in "3*X^2" @ #2000..90
OCTA #20000000000000a9
OCTA #0
OCTA #20
% "^" in "3*X^2" @ #2000..a8
OCTA #20000000000000d9
OCTA #2000000000000078
OCTA #5e8
% "3" in "3*X^2" @ #2000..c0
OCTA #20000000000000a8
OCTA #0
OCTA #30
% "*" in "3*X^2" @ #2000..d8
OCTA #2000000000002019
OCTA #20000000000000c0
OCTA #2a6
]]
[[SET Octas 21]]
[[DRIVER]]
[[END 820]]
[[COMMENT ===========================================================]]
[[TEST 830]]
[[COMMENT Topology: Y = X^2, DY = 2*X]]
[[SET Y
% V = (2) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #20
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("^") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #5E8
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0060]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #20000000000000A8
OCTA #0
]]
[[SET ExpDYNodes
% Garbage Collected @ #2000..48
OCTA #20000000000000c0 % pointing to next free block
OCTA #0
OCTA #10
% Garbage Collected @ #2000..60
OCTA #2000000000000048 % pointing to next free block
OCTA #0
OCTA #0
% "X" in "2*X" @ #2000..78
OCTA #20000000000000a9
OCTA #0
OCTA #581
% "2" in "2*X" @ #2000..90
OCTA #2000000000000078
OCTA #0
OCTA #20
% "*" in "2*X" @ #2000..a8
OCTA #2000000000002019
OCTA #2000000000000090
OCTA #2a6
]]
[[SET Octas 15]]
[[DRIVER]]
[[END 830]]
[[COMMENT ===========================================================]]
[[TEST 840]]
[[COMMENT Topology: Y = X^X, DY = X*X^(X-1) + LN(X)*X^X]]
[[SET Y
% V = (X) @ #2000..00
OCTA #2000000000000031 % RTLINK to P
OCTA 0
OCTA #581
% U = (X) @ #2000..18
OCTA #2000000000000000 % RLINK to V
OCTA 0
OCTA #581
% P = ("^") @ #2000..30
OCTA #2000000000002001 % RTLINK to Y head
OCTA #2000000000000018 % LLINK to U
OCTA #5E8
]]
[[SET WireY
SETH temp,#2000
INCL temp,#0030
STOU temp,Y,dLLINK
]]
[[SET ExpAVAIL #0198]]
[[SET ExpDY
OCTA #2000000000002018
OCTA #2000000000000180
OCTA #0
]]
[[SET ExpDYNodes
% 4th "X" in "X*X^(X-1) + LN(X)*X^X" @ #2000..48
OCTA #2000000000000121
OCTA #0
OCTA #581
% 5th "X" in "X*X^(X-1) + LN(X)*X^X" @ #2000..60
OCTA #2000000000000138
OCTA #0
OCTA #581
% 2nd "X" in "X*X^(X-1) + LN(X)*X^X" @ #2000..78
OCTA #20000000000000c0
OCTA #0
OCTA #581
% 3rd "X" in "X*X^(X-1) + LN(X)*X^X" @ #2000..90
OCTA #20000000000000a8
OCTA #0
OCTA #581
% "1" in "X*X^(X-1) + LN(X)*X^X" @ #2000..a8
OCTA #20000000000000c1
OCTA #0
OCTA #10
% "-" in "X*X^(X-1) + LN(X)*X^X" @ #2000..c0
OCTA #20000000000000d9
OCTA #2000000000000090
OCTA #2d5
% 1st "^" in "X*X^(X-1) + LN(X)*X^X" @ #2000..d8
OCTA #2000000000000109
OCTA #2000000000000078
OCTA #5e8
% 1st "X" in "X*X^(X-1) + LN(X)*X^X" @ #2000..f0
OCTA #20000000000000d8
OCTA #0
OCTA #581
% 1st "*" in "X*X^(X-1) + LN(X)*X^X" @ #2000..108
OCTA #2000000000000168
OCTA #20000000000000f0
OCTA #2a6
% "LN" in "X*X^(X-1) + LN(X)*X^X" @ #2000..120
OCTA #2000000000000150
OCTA #2000000000000048
OCTA #4c4e2
% last "X" in "X*X^(X-1) + LN(X)*X^X" @ #2000..138
OCTA #2000000000000151
OCTA #0
OCTA #581
% 2nd "^" in "X*X^(X-1) + LN(X)*X^X" @ #2000..150
OCTA #2000000000000169
OCTA #2000000000000060
OCTA #5e8
% 2nd "*" in "X*X^(X-1) + LN(X)*X^X" @ #2000..168
OCTA #2000000000000181
OCTA #2000000000000120
OCTA #2a6
% "+" in "X*X^(X-1) + LN(X)*X^X" @ #2000..180
OCTA #2000000000002019
OCTA #2000000000000108
OCTA #2b4
]]
[[SET Octas 62]]
[[DRIVER]]
[[END 840]]