# Last modified on Thu Apr 1 11:13:24 PST 1993 by heydon # # Take the square root of 2 # # a~1.0 :: a * a = 2.0 -> Print(FmtReal(a)) ELSE Print("Could not solve\n") # V0 2.0 V1 1.0 V2 "Result: " V3 "\n" V4 "Could not solve\n" C1 # INCSP 2 .INCSP b2 # PUSHG V1 (1.0) .PUSHG c1 # POPL 1 (a) .POPL s1 # PUSHL 1 .PUSHL s1 # PUSHG 0 .PUSHG c0 # SOLVE 1 1 1 .SOLVE u1 u1 u1 # 2 = a * a b3 u1 u0 u0 # TJUMP OK .TJUMP s11 # PUSHG V4 .PUSHG c4 # CALLEXT Print .CALLEXT c0 # RET .RET # OK: POPL 2 (* t1 := result of Solve *) .POPL s2 # PUSHG 2 "Result: " .PUSHG c2 # CALLEXT Print .CALLEXT c0 # INCSP 1 (* space for FmtReal result *) .INCSP b1 # PUSHL 2 .PUSHL s2 # CALLEXT FmtReal .CALLEXT c2 # DECSP 1 .DECSP b1 # CALLEXT Print .CALLEXT c0 # PUSHG 3 "\n" .PUSHG c3 # CALLEXT Print .CALLEXT c0 # RET .RET END