(loader '((title |ratio.lo|)))
(if (not (>= (version) 15.2)) (progn (error 'load 'erricf 'ratio)))
(add-feature 'ratio)
(if (not (featurep 'genr)) (progn (loadmodule 'genr)))
(setq #:backup:majuscules #:system:read-case-flag #:system:read-case-flag ())
(setq #:sys-package:colon 'r)
(setq #:sys-package:colon 'n)
(loader'((entry #:n:prof subr2)
(bffix a1 101)
(mov a2 a1)
(return)
101
(plus '1 a2)
(mov (cdr a1) a1)
(bra #:n:prof)
))
(loader'((entry #:n:=0 subr1)
(push a1)
(bffix a1 101)
(mov '0 a2)
(adjstk '1)
(jmp eq)
101
(mov (cdr a1) a1)
(call #:n:=0)
(btnil a1 103)
(mov (& 0) a1)
(mov (car a1) a1)
(adjstk '1)
(bra #:n:=0)
103
(adjstk '1)
(return)
))
(loader'((entry #:n:c->c subr3)
(push a3)
(push a2)
(push a1)
(cabne a2 a3 101)
(adjstk '3)
(return)
101
(mov a2 a3)
(mov '-1 a2)
(mov '0 a1)
(call #:n:c->c)
(mov (& 0) a2)
(jcall cons)
(mov (& 1) a4)
(plus '1 a4)
(mov (& 2) a3)
(mov a4 a2)
(adjstk '3)
(bra #:n:c->c)
))
(defvar #:ex:regret 0)
(setq #:ex:regret 0)
(loader'((entry #:n:overflow subr2)
(push a2)
(push a1)
(cabne '0 (cvalq #:ex:regret) 101)
(adjstk '2)
(return)
101
(mov '0 a2)
(mov '0 a1)
(jcall ex+)
(mov (& 1) a3)
(mov '-1 a2)
(call #:n:c->c)
(mov (& 0) a2)
(adjstk '2)
(jmp cons)
))
(loader'((entry #:n:underflow subr1)
(push a1)
(bfcons a1 101)
(mov (car a1) a1)
(call #:n:=0)
(btnil a1 101)
(mov (& 0) a1)
(mov (cdr a1) a1)
(adjstk '1)
(bra #:n:underflow)
101
(mov (& 0) a1)
(adjstk '1)
(return)
))
(loader'((entry #:n:<?> subr2)
(push a2)
(push a1)
(bffix a1 101)
(bffix a2 103)
(adjstk '2)
(jmp ex?)
103
(mov '-1 a1)
(adjstk '2)
(return)
101
(bffix a2 105)
(mov '1 a1)
(adjstk '2)
(return)
105
(mov (car a2) a2)
(mov (car a1) a1)
(call #:n:<?>)
(mov '0 a2)
(jcall neqn)
(bfnil a1 107)
(mov (& 0) a1)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (cdr a1) a1)
(adjstk '2)
(bra #:n:<?>)
107
(adjstk '2)
(return)
))
(loader'((entry #:n:+ subr2)
(push a2)
(push a1)
(mov '-1 a2)
(call #:n:prof)
(push a1)
(mov '-1 a2)
(mov (& 2) a1)
(call #:n:prof)
(push a1)
(cnble a1 (& 1) 101)
(push (@ 103))
(push (& 4))
(push (& 4))
(push a1)
(push (& 5))
(mov '4 a4)
(bra #:n:cc+c)
103
(eval ())
(mov (& 0) a2)
(adjstk '4)
(bra #:n:overflow)
101
(push (@ 104))
(push (& 3))
(push (& 5))
(push (& 4))
(push a1)
(mov '4 a4)
(bra #:n:cc+c)
104
(eval ())
(mov (& 1) a2)
(adjstk '4)
(bra #:n:overflow)
))
(loader'((entry #:n:cc+c nsubr)
(cabne (& 1) (& 0) 101)
(mov (& 2) a2)
(mov (& 3) a1)
(adjstk '4)
(bra #:n:c+c)
101
(push (@ 103))
(mov (& 4) a4)
(push (cdr a4))
(push (& 4))
(mov (& 4) a4)
(diff '1 a4)
(push a4)
(push (& 4))
(mov '4 a4)
(bra #:n:cc+c)
103
(eval ())
(push a1)
(mov (& 4) a1)
(mov (car a1) a1)
(call #:n:c+rr)
(mov a1 a2)
(pop a1)
(adjstk '4)
(jmp xcons)
))
(loader'((entry #:n:c+c subr2)
(push a2)
(push a1)
(bffix a1 101)
(adjstk '2)
(jmp ex+)
101
(mov (cdr a2) a2)
(mov (cdr a1) a1)
(call #:n:c+c)
(push a1)
(mov (& 1) a1)
(mov (& 2) a2)
(mov (car a2) a2)
(mov (car a1) a1)
(call #:n:c+c)
(mov a1 a2)
(pop a1)
(adjstk '2)
(jmp xcons)
))
(loader'((entry #:n:c+rr subr1)
(push a1)
(cabne (cvalq #:ex:regret) '0 101)
(adjstk '1)
(return)
101
(bffix a1 103)
(mov '0 a2)
(adjstk '1)
(jmp ex+)
103
(mov (cdr a1) a1)
(call #:n:c+rr)
(push a1)
(mov (& 1) a1)
(mov (car a1) a1)
(call #:n:c+rr)
(mov a1 a2)
(pop a1)
(adjstk '1)
(jmp xcons)
))
(loader'((entry #:n:- subr2)
(push a2)
(push a1)
(mov '1 (cvalq #:ex:regret))
(push (@ 101))
(push a1)
(push a2)
(mov '-1 a2)
(call #:n:prof)
(push a1)
(mov '-1 a2)
(mov (& 5) a1)
(call #:n:prof)
(push a1)
(mov '4 a4)
(bra #:n:cc-c)
101
(eval ())
(call #:n:underflow)
(mov a1 (& 0))
(mov '0 (cvalq #:ex:regret))
(adjstk '2)
(return)
))
(loader'((entry #:n:cc-c nsubr)
(cabne (& 1) (& 0) 101)
(mov (& 2) a2)
(mov (& 3) a1)
(adjstk '4)
(bra #:n:c-c)
101
(push (@ 103))
(mov (& 4) a4)
(push (cdr a4))
(push (& 4))
(mov (& 4) a4)
(diff '1 a4)
(push a4)
(push (& 4))
(mov '4 a4)
(bra #:n:cc-c)
103
(eval ())
(push a1)
(mov (& 4) a1)
(mov (car a1) a1)
(call #:n:c-rr)
(mov a1 a2)
(pop a1)
(adjstk '4)
(jmp xcons)
))
(loader'((entry #:n:c-c subr2)
(push a2)
(push a1)
(bffix a1 101)
(push a1)
(mov a2 a1)
(jcall ex-)
(mov a1 a2)
(pop a1)
(adjstk '2)
(jmp ex+)
101
(mov (cdr a2) a2)
(mov (cdr a1) a1)
(call #:n:c-c)
(push a1)
(mov (& 1) a1)
(mov (& 2) a2)
(mov (car a2) a2)
(mov (car a1) a1)
(call #:n:c-c)
(mov a1 a2)
(pop a1)
(adjstk '2)
(jmp xcons)
))
(loader'((entry #:n:c-rr subr1)
(push a1)
(cabne (cvalq #:ex:regret) '1 101)
(adjstk '1)
(return)
101
(bffix a1 103)
(mov '-1 a2)
(adjstk '1)
(jmp ex+)
103
(mov (cdr a1) a1)
(call #:n:c-rr)
(push a1)
(mov (& 1) a1)
(mov (car a1) a1)
(call #:n:c-rr)
(mov a1 a2)
(pop a1)
(adjstk '1)
(jmp xcons)
))
(loader'((entry #:n:* subr2)
(push a2)
(push a1)
(bffix a1 101)
(cabne a1 '0 104)
(mov '0 a1)
(adjstk '2)
(return)
104
(cabne a1 '1 105)
(mov a2 a1)
(adjstk '2)
(return)
105
(push a2)
(mov a1 a2)
(pop a1)
(call #:n:c*b)
(push a1)
(mov '-1 a2)
(mov (& 2) a1)
(call #:n:prof)
(mov a1 a2)
(pop a1)
(adjstk '2)
(bra #:n:overflow)
101
(bffix a2 107)
(mov a2 a1)
(cabne a1 '0 110)
(mov '0 a1)
(adjstk '2)
(return)
110
(cabne a1 '1 111)
(mov (& 0) a1)
(adjstk '2)
(return)
111
(mov a1 a2)
(mov (& 0) a1)
(call #:n:c*b)
(push a1)
(mov '-1 a2)
(mov (& 1) a1)
(call #:n:prof)
(mov a1 a2)
(pop a1)
(adjstk '2)
(bra #:n:overflow)
107
(mov '0 a2)
(mov (car a1) a1)
(call #:n:prof)
(push a1)
(mov (& 2) a1)
(mov '0 a2)
(mov (car a1) a1)
(call #:n:prof)
(push nil)
(push nil)
(push a1)
(cnble a1 (& 3) 113)
(mov (& 3) a3)
(mov '-1 a2)
(mov '0 a1)
(call #:n:c->c)
(mov a1 (& 2))
(push (@ 115))
(push (& 6))
(push (& 6))
(push a1)
(push (& 4))
(push (& 8))
(mov '5 a4)
(bra #:n:cc*c+c)
115
(eval ())
(mov a1 (& 1))
(bra 114)
113
(mov a1 a3)
(mov '-1 a2)
(mov '0 a1)
(call #:n:c->c)
(mov a1 (& 2))
(push (@ 116))
(push (& 5))
(push (& 7))
(push a1)
(push (& 7))
(push (& 5))
(mov '5 a4)
(bra #:n:cc*c+c)
116
(eval ())
(mov a1 (& 1))
114
(mov (& 2) a1)
(call #:n:=0)
(btnil a1 117)
(mov (& 1) a1)
(adjstk '6)
(bra #:n:underflow)
117
(cnble (& 0) (& 3) 119)
(mov (& 0) a3)
(mov (& 3) a2)
(mov (& 2) a1)
(call #:n:c->c)
(bra 120)
119
(mov (& 3) a3)
(mov (& 0) a2)
(mov (& 2) a1)
(call #:n:c->c)
120
(mov (& 1) a2)
(adjstk '6)
(jmp cons)
))
(loader'((entry #:n:c*b subr2)
(push a2)
(push a1)
(bffix a1 101)
(mov '0 a3)
(adjstk '2)
(jmp ex*)
101
(mov (cdr a1) a1)
(call #:n:c*b)
(push a1)
(mov (& 1) a1)
(mov (& 2) a2)
(mov (car a1) a1)
(call #:n:c*b)
(mov a1 a2)
(pop a1)
(adjstk '2)
(jmp xcons)
))
(loader'((entry #:n:cc*c+c nsubr)
(cabne (& 1) (& 0) 101)
(push (@ 103))
(push (& 5))
(push (& 5))
(mov (& 4) a3)
(mov '-1 a2)
(mov '0 a1)
(call #:n:c->c)
(push a1)
(push (& 6))
(mov '4 a4)
(bra #:n:c*c+c+c)
103
(eval ())
(adjstk '5)
(return)
101
(push (@ 104))
(mov (& 5) a4)
(push (cdr a4))
(push (& 5))
(push (& 5))
(mov (& 5) a4)
(diff '1 a4)
(push a4)
(push (& 5))
(mov '5 a4)
(bra #:n:cc*c+c)
104
(eval ())
(push a1)
(push (@ 105))
(mov (& 6) a4)
(push (car a4))
(push (& 6))
(push (& 6))
(mov (& 6) a4)
(diff '1 a4)
(push a4)
(push (& 6))
(mov '5 a4)
(bra #:n:cc*c+c)
105
(eval ())
(mov a1 a2)
(pop a1)
(adjstk '5)
(jmp xcons)
))
(loader'((entry #:n:c*c+c+c nsubr)
(mov (& 3) a4)
(bffix (car a4) 101)
(mov (& 0) a3)
(mov (cdr a3) (cvalq #:ex:regret))
(mov (& 2) a2)
(mov (& 1) a3)
(mov (cdr a3) a3)
(mov (cdr a2) a2)
(mov (cdr a4) a1)
(jcall ex*)
(mov (& 1) a4)
(mov a1 (cdr a4))
(push a4)
(mov (& 4) a1)
(mov (& 3) a2)
(mov (car a4) a3)
(mov (car a2) a2)
(mov (cdr a1) a1)
(jcall ex*)
(pop a4)
(mov a1 (car a4))
(mov (& 0) a4)
(mov (cvalq #:ex:regret) (cdr a4))
(mov (car a4) (cvalq #:ex:regret))
(mov (& 3) a1)
(mov (& 2) a2)
(mov (& 1) a3)
(mov (car a3) a3)
(mov (cdr a2) a2)
(mov (car a1) a1)
(jcall ex*)
(mov (& 1) a4)
(mov a1 (car a4))
(mov (& 3) a1)
(mov (& 2) a2)
(mov (& 0) a3)
(mov (cdr a3) a3)
(mov (car a2) a2)
(mov (car a1) a1)
(jcall ex*)
(mov (& 0) a4)
(mov a1 (cdr a4))
(push a4)
(mov '0 a2)
(mov '0 a1)
(jcall ex+)
(pop a4)
(mov a1 (car a4))
(bra 102)
101
(push (@ 103))
(push (cdr a4))
(mov (& 4) a3)
(push (cdr a3))
(mov (& 4) a3)
(push (cdr a3))
(mov (& 4) a3)
(push (cdr a3))
(mov '4 a4)
(bra #:n:c*c+c+c)
103
(eval ())
(push (@ 104))
(mov (& 4) a4)
(push (cdr a4))
(mov (& 4) a4)
(push (car a4))
(mov (& 4) a4)
(push (car a4))
(mov (& 4) a4)
(push (cdr a4))
(mov '4 a4)
(bra #:n:c*c+c+c)
104
(eval ())
(push (@ 105))
(mov (& 4) a4)
(push (car a4))
(mov (& 4) a4)
(push (cdr a4))
(mov (& 4) a4)
(push (car a4))
(mov (& 4) a4)
(push (car a4))
(mov '4 a4)
(bra #:n:c*c+c+c)
105
(eval ())
(push (@ 106))
(mov (& 4) a4)
(push (car a4))
(mov (& 4) a4)
(push (car a4))
(mov (& 3) a4)
(push (cdr a4))
(push (car a4))
(mov '4 a4)
(bra #:n:c*c+c+c)
106
(eval ())
102
(mov (& 1) a1)
(adjstk '4)
(return)
))
(defvar #:ex:mod 0)
(loader'((entry #:n:quomod subr2)
(push a2)
(push a1)
(call #:n:<?>)
(cabne a1 '-1 102)
(mov (& 0) (cvalq #:ex:mod))
(mov '0 a1)
(adjstk '2)
(return)
102
(cabne a1 '0 103)
(mov '0 (cvalq #:ex:mod))
(mov '1 a1)
(adjstk '2)
(return)
103
(cabne a1 '1 104)
(bffix (& 1) 105)
(mov (& 1) a2)
(mov (& 0) a1)
(adjstk '2)
(bra #:n:cquob)
105
(mov '1 a2)
(mov (& 1) a1)
(call #:n:normalise)
(push a1)
(mov '-1 a2)
(mov (& 2) a1)
(call #:n:prof)
(push nil)
(push nil)
(push a1)
(mov (& 3) a2)
(mov (& 5) a1)
(call #:n:*)
(mov a1 (& 5))
(mov (& 3) a2)
(mov (& 4) a1)
(call #:n:*)
(mov a1 (& 4))
(mov (& 0) a3)
(mov '-1 a2)
(mov '0 a1)
(call #:n:c->c)
(mov a1 (& 2))
(push (@ 107))
(push a1)
(push (& 6))
(push (& 8))
(mov '-1 a2)
(mov (& 8) a1)
(call #:n:prof)
(push a1)
(push (& 5))
(mov '5 a4)
(bra #:n:ccdivc)
107
(eval ())
(mov a1 (& 1))
(mov (& 2) a1)
(call #:n:underflow)
(mov (& 3) a2)
(call #:n:quomod)
(call #:n:underflow)
(mov a1 (cvalq #:ex:mod))
(mov (& 1) a1)
(adjstk '6)
(bra #:n:underflow)
104
(mov nil a1)
(adjstk '2)
(return)
))
(loader'((entry #:n:cquob subr2)
(push a1)
(cabne '1 a2 101)
(mov '0 (cvalq #:ex:mod))
(bra 102)
101
(call #:n:cdivb)
(call #:n:underflow)
(mov a1 (& 0))
(mov '0 a2)
(mov '0 a1)
(jcall ex+)
(mov a1 (cvalq #:ex:mod))
102
(mov (& 0) a1)
(adjstk '1)
(return)
))
(loader'((entry #:n:cdivb subr2)
(push a2)
(push a1)
(bffix a1 101)
(adjstk '2)
(jmp ex/)
101
(mov (car a1) a1)
(call #:n:cdivb)
(push a1)
(mov (& 1) a1)
(mov (& 2) a2)
(mov (cdr a1) a1)
(call #:n:cdivb)
(mov a1 a2)
(pop a1)
(adjstk '2)
(jmp cons)
))
(loader'((entry #:n:normalise subr2)
(push a2)
(push a1)
(bffix a1 101)
103
(push (@ 105))
(push (& 1))
(push '0)
(mov '2 a4)
(jmp >)
105
(eval ())
(btnil a1 104)
(mov (& 0) a4)
(lshift '1 a4)
(mov a4 (& 0))
(mov '2 a2)
(mov (& 1) a1)
(call #:n:*)
(mov a1 (& 1))
(bra 103)
104
(mov (& 1) a1)
(adjstk '2)
(return)
101
(mov (car a1) a1)
(call #:n:=0)
(btnil a1 106)
(mov (& 0) a1)
(push (cdr a1))
(mov '-1 a2)
(mov (car a1) a1)
(call #:n:prof)
(call #:n:**b)
(mov (& 2) a2)
(call #:n:*)
(mov a1 a2)
(pop a1)
(adjstk '2)
(bra #:n:normalise)
106
(mov (& 0) a1)
(mov (& 1) a2)
(mov (car a1) a1)
(adjstk '2)
(bra #:n:normalise)
))
(loader'((entry #:n:**b subr1)
(push a1)
(mov a1 a3)
(mov '-1 a2)
(mov '1 a1)
(call #:n:c->c)
(push a1)
(mov (& 1) a3)
(mov '-1 a2)
(mov '0 a1)
(call #:n:c->c)
(mov a1 a2)
(pop a1)
(adjstk '1)
(jmp cons)
))
(loader'((entry #:n:ccdivc nsubr)
(cnbge (& 1) (& 0) 101)
(push (@ 103))
(push (& 5))
(push (& 5))
(push (& 5))
(push (& 5))
(push (& 5))
(push '0)
(push '0)
(mov '7 a4)
(bra #:n:cccdivcc)
103
(eval ())
(adjstk '5)
(return)
101
(push (@ 104))
(push (& 5))
(mov (& 5) a4)
(push (car a4))
(push (& 5))
(mov (& 5) a4)
(diff '1 a4)
(push a4)
(push (& 5))
(mov '5 a4)
(bra #:n:ccdivc)
104
(eval ())
(push a1)
(push (@ 105))
(push (& 6))
(mov (& 6) a4)
(push (cdr a4))
(push (& 6))
(mov (& 6) a4)
(diff '1 a4)
(push a4)
(push (& 6))
(mov '5 a4)
(bra #:n:ccdivc)
105
(eval ())
(mov a1 a2)
(pop a1)
(adjstk '5)
(jmp cons)
))
(loader'((entry #:n:cccdivcc nsubr)
(mov (& 6) a1)
(mov (& 4) a2)
(mov (car a2) a2)
(mov (car a1) a1)
(jcall equal)
(btnil a1 101)
(mov (& 3) a1)
(call #:n:**b)
(mov a1 (& 1))
(mov '1 (cvalq #:ex:regret))
(mov (& 4) a2)
(mov (cdr a2) a2)
(mov (cdr a1) a1)
(call #:n:c-c)
(push a1)
(mov (& 5) a1)
(mov (& 7) a2)
(mov (cdr a2) a2)
(mov (cdr a1) a1)
(call #:n:c-c)
(mov a1 a2)
(pop a1)
(jcall xcons)
(mov a1 (& 0))
(mov '1 a2)
(mov (& 1) a1)
(call #:n:-)
(mov a1 (& 1))
(bra 102)
101
(cnblt (& 3) '0 103)
(push (@ 105))
(mov (& 7) a4)
(push (car a4))
(push (cdr a4))
(mov (& 7) a4)
(push (car a4))
(push (& 7))
(mov (& 7) a4)
(diff '1 a4)
(push a4)
(mov '5 a4)
(bra #:n:ccdivc)
105
(eval ())
(mov a1 (& 1))
(mov (& 3) a3)
(mov '-1 a2)
(mov '0 a1)
(call #:n:c->c)
(mov a1 (& 0))
(push (@ 106))
(push (& 2))
(mov (& 6) a4)
(push (cdr a4))
(jcall copy)
(push a1)
(push (& 4))
(mov '4 a4)
(bra #:n:c*c+c+c)
106
(eval ())
(mov (& 0) a2)
(jcall xcons)
(mov a1 (& 0))
(bra 102)
103
(mov (& 6) a4)
(mov (car a4) (cvalq #:ex:regret))
(mov (& 4) a2)
(mov (car a2) a2)
(mov (cdr a4) a1)
(jcall ex/)
(mov a1 (& 1))
(mov '0 a2)
(mov '0 a1)
(jcall ex+)
(mov (& 6) a4)
(mov a1 (car a4))
(mov (& 4) a2)
(mov '0 a3)
(mov (cdr a2) a2)
(mov (& 1) a1)
(jcall ex*)
(push a1)
(mov '0 a2)
(mov '0 a1)
(jcall ex+)
(mov a1 a2)
(pop a1)
(jcall xcons)
(mov a1 (& 0))
102
(mov (& 6) a4)
(mov (& 5) (cdr a4))
(mov '1 (cvalq #:ex:regret))
(mov (& 0) a2)
(mov a4 a1)
(call #:n:c-c)
(mov a1 (& 0))
107
(cabne '0 (cvalq #:ex:regret) 108)
(mov (& 1) a1)
(call #:n:c-rr)
(mov a1 (& 1))
(mov '0 a2)
(mov '0 a1)
(jcall ex+)
(mov (& 4) a2)
(mov (& 0) a1)
(call #:n:c+c)
(mov a1 (& 0))
(bra 107)
108
(mov '0 a2)
(mov '0 a1)
(jcall ex+)
(mov (& 0) a4)
(mov (& 6) a3)
(mov (cdr a4) (cdr a3))
(mov (car a4) (car a3))
(mov (& 1) a1)
(adjstk '7)
(return)
))
(loader'((entry #:n:prin subr1)
(push a1)
(push (@ 103))
(mov '0 a4)
(jmp obase)
103
(eval ())
(cabne '10 a1 101)
(mov '10000 a2)
(mov (& 0) a1)
(call #:n:cdivb)
(push a1)
(mov '0 a2)
(mov '0 a1)
(jcall ex+)
(mov a1 a2)
(pop a1)
(adjstk '1)
(bra #:n:prin10)
101
(push (@ 104))
(mov '0 a4)
(jmp obase)
104
(eval ())
(mov a1 a2)
(mov (& 0) a1)
(call #:n:quomod)
(push a1)
(push (@ 105))
(mov '0 a4)
(jmp obase)
105
(eval ())
(mov a1 a3)
(mov (cvalq #:ex:mod) a2)
(pop a1)
(adjstk '1)
(bra #:n:prinb)
))
(loader'((entry #:n:prinb subr3)
(push a3)
(push a2)
(cabeq a1 '0 102)
(mov a3 a2)
(call #:n:quomod)
(mov (& 1) a3)
(mov (cvalq #:ex:mod) a2)
(call #:n:prinb)
102
(push (@ 103))
(push (& 1))
(mov '1 a4)
(jmp prin)
103
(eval ())
(adjstk '2)
(return)
))
(loader'((entry #:n:prin10 subr2)
(push a2)
(cabne a1 '0 101)
(push (@ 103))
(push a2)
(mov '1 a4)
(jmp prin)
103
(eval ())
(adjstk '1)
(return)
101
(mov '10000 a2)
(call #:n:cdivb)
(call #:n:underflow)
(push a1)
(mov '0 a2)
(mov '0 a1)
(jcall ex+)
(mov a1 a2)
(pop a1)
(call #:n:prin10)
(cnble (& 0) '999 104)
(push (@ 106))
(push (& 1))
(mov '1 a4)
(jmp prin)
106
(eval ())
(adjstk '1)
(return)
104
(cnble (& 0) '99 107)
(push (@ 109))
(push '0)
(mov '1 a4)
(jmp prin)
109
(eval ())
(push (@ 110))
(push (& 1))
(mov '1 a4)
(jmp prin)
110
(eval ())
(adjstk '1)
(return)
107
(cnble (& 0) '9 111)
(push (@ 113))
(push '0)
(mov '1 a4)
(jmp prin)
113
(eval ())
(push (@ 114))
(push '0)
(mov '1 a4)
(jmp prin)
114
(eval ())
(push (@ 115))
(push (& 1))
(mov '1 a4)
(jmp prin)
115
(eval ())
(adjstk '1)
(return)
111
(push (@ 116))
(push '0)
(mov '1 a4)
(jmp prin)
116
(eval ())
(push (@ 117))
(push '0)
(mov '1 a4)
(jmp prin)
117
(eval ())
(push (@ 118))
(push '0)
(mov '1 a4)
(jmp prin)
118
(eval ())
(push (@ 119))
(push (& 1))
(mov '1 a4)
(jmp prin)
119
(eval ())
(adjstk '1)
(return)
))
(defvar #:n:b0 (power 2 16))
(defvar #:n:b0/2 (power 2 15))
(loader'((entry #:n:b subr1)
(bffix a1 101)
(mov (cvalq #:n:b0) a1)
(return)
101
(mov (cdr a1) a1)
(call #:n:b)
(mov '2 a2)
(jmp power)
))
(loader'((entry #:n:float subr1)
(push a1)
(bffix a1 101)
(push (@ 105))
(push a1)
(push '0)
(mov '2 a4)
(jmp <)
105
(eval ())
(btnil a1 103)
(push (@ 106))
(push (@ 107))
(mov '2 a2)
(mov (& 2) a1)
(jcall ex/)
(jcall float)
(push a1)
(push '2)
(mov '2 a4)
(jmp *)
107
(eval ())
(push a1)
(mov '0 a2)
(mov '0 a1)
(jcall ex+)
(push a1)
(mov '2 a4)
(jmp +)
106
(eval ())
(adjstk '1)
(return)
103
(mov (& 0) a1)
(adjstk '1)
(jmp float)
101
(push (@ 108))
(push (@ 109))
(mov (car a1) a1)
(call #:n:float)
(push a1)
(mov (& 3) a1)
(mov (cdr a1) a1)
(call #:n:b)
(push a1)
(mov '2 a4)
(jmp *)
109
(eval ())
(push a1)
(mov (& 2) a1)
(mov (cdr a1) a1)
(call #:n:float)
(push a1)
(mov '2 a4)
(jmp +)
108
(eval ())
(adjstk '1)
(return)
))
(setq #:sys-package:colon '#:r:q)
(setq #:system:bignum-type '#:r:q:n)
(loader'((entry nx subr1)
(bfcons a1 101)
(jmp tconsmk)
101
(cnbge a1 '0 29999)
(mov a1 a2)
(mov '0 a1)
(jmp tcons)
29999
(return)
))
(loader'((entry zx subr1)
(bfcons a1 101)
(mov a1 a2)
(mov '#:r:q:z a1)
(jmp tcons)
101
(cnblt a1 '0 103)
(mov '0 a4)
(diff a1 a4)
(mov a4 a1)
(return)
103
(mov a1 a2)
(mov '0 a1)
(jcall cons)
(mov a1 a2)
(mov '#:r:q:z a1)
(jmp tcons)
))
(loader'((entry qx subr2)
(cabne a2 '1 101)
(return)
101
(jcall cons)
(mov a1 a2)
(mov '#:r:q:/ a1)
(jmp tcons)
))
(loader'((fentry numerator subr1)
(entry numerator subr1)
(push a1)
(jcall type-of)
(cabne '#:r:q:/ a1 101)
(mov (& 0) a1)
(mov (cdr a1) a1)
(mov (car a1) a1)
(adjstk '1)
(return)
101
(mov (& 0) a1)
(jcall numberp)
(btnil a1 103)
(mov (& 0) a1)
(adjstk '1)
(return)
103
(push (@ 105))
(push 'numerator)
(push (& 2))
(mov '2 a4)
(jmp list)
105
(eval ())
(mov a1 a3)
(mov 'errnna a2)
(mov 'numerator a1)
(adjstk '1)
(jmp #:r:error)
))
(loader'((fentry denominator subr1)
(entry denominator subr1)
(push a1)
(jcall type-of)
(cabne '#:r:q:/ a1 101)
(mov (& 0) a1)
(mov (cdr a1) a1)
(mov (cdr a1) a1)
(adjstk '1)
(return)
101
(mov (& 0) a1)
(jcall numberp)
(btnil a1 103)
(mov '1 a1)
(adjstk '1)
(return)
103
(push (@ 105))
(push 'denominator)
(push (& 2))
(mov '2 a4)
(jmp list)
105
(eval ())
(mov a1 a3)
(mov 'errnna a2)
(mov 'denominator a1)
(adjstk '1)
(jmp #:r:error)
))
(loader'((fentry #:r:q:rationalp subr1)
(entry #:r:q:rationalp subr1)
(return)
))
(loader'((fentry #:r:q:n:integerp subr1)
(entry #:r:q:n:integerp subr1)
(return)
))
(loader'((fentry #:r:q:z:integerp subr1)
(entry #:r:q:z:integerp subr1)
(return)
))
(loader'((fentry #:r:q:/:integerp subr1)
(entry #:r:q:/:integerp subr1)
(push a1)
(mov (cdr a1) a4)
(mov (cdr a1) a3)
(push (car a4))
(push (cdr a3))
(push nil)
(push (cvalq gcd))
(mov (& 1) (cvalq gcd))
(push '1)
(push '(gcd))
(push 'lambda)
(push llink)
(push dlink)
(push cbindn)
(stack dlink)
(mov (& 8) a2)
(mov (& 9) a1)
(jcall pgcd)
(mov a1 (cvalq gcd))
(cabne '0 a1 101)
(cabeq '0 (& 9) 102)
(mov (& 10) a4)
(push (cdr a4))
(mov (& 10) a1)
(jcall abs)
(mov a1 a2)
(mov (& 10) a1)
(jcall quotient)
(pop a4)
(mov a1 (car a4))
(bra 102)
101
(cabeq '1 a1 102)
(mov (& 10) a4)
(push (cdr a4))
(mov a1 a2)
(mov (& 10) a1)
(jcall quotient)
(mov a1 (& 10))
(pop a4)
(mov a1 (car a4))
(mov (& 10) a4)
(push (cdr a4))
(mov (cvalq gcd) a2)
(mov (& 9) a1)
(jcall quotient)
(mov a1 (& 9))
(pop a4)
(mov a1 (cdr a4))
102
(mov '1 a2)
(mov (& 8) a1)
(jcall eq)
(btnil a1 107)
(mov (& 9) a1)
107
(mov (& 1) dlink)
(mov (& 6) (cvalq gcd))
(adjstk '11)
(return)
))
(loader'((fentry #:r:q:n:abs subr1)
(entry #:r:q:n:abs subr1)
(return)
))
(loader'((fentry #:r:q:z:abs subr1)
(entry #:r:q:z:abs subr1)
(mov (cdr a1) a1)
(bra nx)
))
(loader'((fentry #:r:q:/:abs subr1)
(entry #:r:q:/:abs subr1)
(push a1)
(push (@ 103))
(mov (cdr a1) a4)
(push (car a4))
(push '0)
(mov '2 a4)
(jmp <)
103
(eval ())
(btnil a1 101)
(mov (& 0) a1)
(mov (cdr a1) a1)
(mov (car a1) a1)
(jcall abs)
(mov (& 0) a2)
(mov (cdr a2) a2)
(mov (cdr a2) a2)
(adjstk '1)
(bra qx)
101
(mov (& 0) a1)
(adjstk '1)
(return)
))
(loader'((fentry #:r:q:truncate subr1)
(entry #:r:q:truncate subr1)
(return)
))
(loader'((fentry #:r:q:/:truncate subr1)
(entry #:r:q:/:truncate subr1)
(push a1)
(jcall #:r:q:/:integerp)
(bfnil a1 101)
(mov (& 0) a1)
(mov (cdr a1) a1)
(mov (& 0) a2)
(mov (cdr a2) a2)
(mov (cdr a2) a2)
(mov (car a1) a1)
(jcall quomod)
(mov a1 (& 0))
(push (@ 104))
(push a1)
(push '0)
(mov '2 a4)
(jmp <)
104
(eval ())
(btnil a1 102)
(push (@ 105))
(push '1)
(push (& 2))
(mov '2 a4)
(jmp +)
105
(eval ())
(adjstk '1)
(return)
102
(mov (& 0) a1)
(adjstk '1)
(return)
101
(adjstk '1)
(return)
))
(loader'((fentry #:r:q:n:float subr1)
(entry #:r:q:n:float subr1)
(bra #:n:float)
))
(loader'((fentry #:r:q:z:float subr1)
(entry #:r:q:z:float subr1)
(mov (cdr a1) a1)
(call #:n:float)
(jmp 0-)
))
(loader'((fentry #:r:q:/:float subr1)
(entry #:r:q:/:float subr1)
(push a1)
(mov (cdr a1) a4)
(cabeq '0 (cdr a4) 101)
(mov (cdr a1) a1)
(mov (car a1) a1)
(jcall float)
(push a1)
(mov (& 1) a1)
(mov (cdr a1) a1)
(mov (cdr a1) a1)
(jcall float)
(pop a4)
(fquo a1 a4)
(mov a4 a1)
(adjstk '1)
(return)
101
(push (@ 103))
(push 'float)
(push a1)
(mov '2 a4)
(jmp list)
103
(eval ())
(mov a1 a3)
(mov 'rdiv0 a2)
(mov 'float a1)
(adjstk '1)
(jmp #:r:error)
))
(loader'((fentry #:r:q:z:0- subr1)
(entry #:r:q:z:0- subr1)
(mov (cdr a1) a1)
(jmp tconsmk)
))
(loader'((fentry #:r:q:n:0- subr1)
(entry #:r:q:n:0- subr1)
(mov a1 a2)
(mov '#:r:q:z a1)
(jmp tcons)
))
(loader'((fentry #:r:q:/:0- subr1)
(entry #:r:q:/:0- subr1)
(push a1)
(mov (cdr a1) a1)
(mov (car a1) a1)
(jcall 0-)
(mov (& 0) a2)
(mov (cdr a2) a2)
(mov (cdr a2) a2)
(adjstk '1)
(bra qx)
))
(loader'((fentry #:r:q:n:1/ subr1)
(entry #:r:q:n:1/ subr1)
(mov a1 a2)
(mov '1 a1)
(bra qx)
))
(loader'((fentry #:r:q:z:1/ subr1)
(entry #:r:q:z:1/ subr1)
(mov (cdr a1) a1)
(call nx)
(mov a1 a2)
(mov '-1 a1)
(bra qx)
))
(loader'((fentry #:r:q:/:1/ subr1)
(entry #:r:q:/:1/ subr1)
(push a1)
(push (@ 103))
(mov (cdr a1) a4)
(push (car a4))
(push '0)
(mov '2 a4)
(jmp <)
103
(eval ())
(btnil a1 101)
(mov (& 0) a1)
(mov (cdr a1) a1)
(mov (cdr a1) a1)
(jcall 0-)
(push a1)
(mov (& 1) a1)
(mov (cdr a1) a1)
(mov (car a1) a1)
(jcall abs)
(mov a1 a2)
(pop a1)
(adjstk '1)
(bra qx)
101
(mov (& 0) a1)
(mov (cdr a1) a1)
(mov (& 0) a2)
(mov (cdr a2) a2)
(mov (car a2) a2)
(mov (cdr a1) a1)
(adjstk '1)
(bra qx)
))
(loader'((fentry #:r:q:n:<?> subr2)
(entry #:r:q:n:<?> subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 'fix 102)
(mov '1 a1)
(adjstk '2)
(return)
102
(cabne a1 '#:r:q:n 103)
(mov (& 1) a2)
(mov (& 0) a1)
(adjstk '2)
(bra #:n:<?>)
103
(cabne a1 '#:r:q:z 104)
(mov '1 a1)
(adjstk '2)
(return)
104
(cabne a1 '#:r:q:/ 105)
(mov (& 0) a2)
(mov (& 1) a1)
(call #:r:q:q?z)
(adjstk '2)
(jmp 0-)
105
(mov (& 0) a2)
(mov (& 1) a1)
(jcall <?>)
(adjstk '2)
(jmp 0-)
))
(loader'((fentry #:r:q:z:<?> subr2)
(entry #:r:q:z:<?> subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 'fix 102)
(mov '-1 a1)
(adjstk '2)
(return)
102
(cabne a1 '#:r:q:n 103)
(mov '-1 a1)
(adjstk '2)
(return)
103
(cabne a1 '#:r:q:z 104)
(mov (& 1) a1)
(mov (& 0) a2)
(mov (cdr a2) a2)
(mov (cdr a1) a1)
(adjstk '2)
(bra #:n:<?>)
104
(cabne a1 '#:r:q:/ 105)
(mov (& 0) a2)
(mov (& 1) a1)
(call #:r:q:q?z)
(adjstk '2)
(jmp 0-)
105
(mov (& 0) a2)
(mov (& 1) a1)
(jcall <?>)
(adjstk '2)
(jmp 0-)
))
(loader'((fentry #:r:q:/:<?> subr2)
(entry #:r:q:/:<?> subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 '#:r:q:/ 102)
(push (@ 103))
(mov (& 1) a4)
(mov (cdr a4) a4)
(push (car a4))
(mov (& 3) a4)
(mov (cdr a4) a4)
(push (cdr a4))
(mov '2 a4)
(jmp *)
103
(eval ())
(push a1)
(push (@ 104))
(mov (& 3) a4)
(mov (cdr a4) a4)
(push (car a4))
(mov (& 3) a4)
(mov (cdr a4) a4)
(push (cdr a4))
(mov '2 a4)
(jmp *)
104
(eval ())
(mov a1 a2)
(pop a1)
(adjstk '2)
(jmp <?>)
102
(mov (& 1) a1)
(jcall integerp)
(btnil a1 106)
(mov (& 1) a2)
(mov (& 0) a1)
(adjstk '2)
(bra #:r:q:q?z)
106
(mov (& 0) a2)
(mov (& 1) a1)
(jcall <?>)
(adjstk '2)
(jmp 0-)
))
(loader'((entry #:r:q:q?z subr2)
(push a1)
(mov (cdr a1) a1)
(push (car a1))
(push (@ 101))
(push a2)
(mov (& 3) a4)
(mov (cdr a4) a4)
(push (cdr a4))
(mov '2 a4)
(jmp *)
101
(eval ())
(mov a1 a2)
(pop a1)
(adjstk '1)
(jmp <?>)
))
(loader'((fentry #:r:q:n:+ subr2)
(entry #:r:q:n:+ subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 'fix 102)
(cnblt (& 1) '0 103)
(mov (& 1) a2)
(mov (& 0) a1)
(call #:n:+)
(adjstk '2)
(jmp tconsmk)
103
(mov (& 1) a1)
(jcall abs)
(mov a1 a2)
(mov (& 0) a1)
(call #:n:-)
(adjstk '2)
(bra nx)
102
(cabne a1 '#:r:q:n 105)
(mov (& 1) a2)
(mov (& 0) a1)
(call #:n:+)
(adjstk '2)
(jmp tconsmk)
105
(cabne a1 '#:r:q:z 106)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (& 0) a1)
(adjstk '2)
(bra #:r:q:c-c)
106
(cabne a1 '#:r:q:/ 107)
(mov (& 0) a2)
(mov (& 1) a1)
(adjstk '2)
(bra #:r:q:q+z)
107
(push (@ 109))
(push (& 2))
(push (& 2))
(mov '2 a4)
(jmp +)
109
(eval ())
(adjstk '2)
(return)
))
(loader'((fentry #:r:q:z:+ subr2)
(entry #:r:q:z:+ subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 'fix 102)
(cnblt (& 1) '0 103)
(mov (& 0) a1)
(mov (& 1) a2)
(mov (cdr a1) a1)
(call #:n:-)
(adjstk '2)
(bra zx)
103
(mov (& 0) a1)
(push (cdr a1))
(mov (& 2) a1)
(jcall abs)
(mov a1 a2)
(pop a1)
(call #:n:+)
(mov a1 a2)
(mov '#:r:q:z a1)
(adjstk '2)
(jmp tcons)
102
(cabne a1 '#:r:q:n 105)
(mov (& 0) a2)
(mov (cdr a2) a2)
(mov (& 1) a1)
(adjstk '2)
(bra #:r:q:c-c)
105
(cabne a1 '#:r:q:z 106)
(mov (& 0) a1)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (cdr a1) a1)
(call #:n:+)
(mov a1 a2)
(mov '#:r:q:z a1)
(adjstk '2)
(jmp tcons)
106
(cabne a1 '#:r:q:/ 107)
(mov (& 0) a2)
(mov (& 1) a1)
(adjstk '2)
(bra #:r:q:q+z)
107
(push (@ 109))
(push (& 2))
(push (& 2))
(mov '2 a4)
(jmp +)
109
(eval ())
(adjstk '2)
(return)
))
(loader'((entry #:r:q:c-c subr2)
(push a2)
(push a1)
(call #:n:<?>)
(cabne a1 '1 102)
(mov (& 1) a2)
(mov (& 0) a1)
(call #:n:-)
(adjstk '2)
(bra nx)
102
(cabne a1 '0 103)
(mov '0 a1)
(adjstk '2)
(return)
103
(cabne a1 '-1 104)
(mov (& 0) a2)
(mov (& 1) a1)
(call #:n:-)
(adjstk '2)
(bra zx)
104
(mov nil a1)
(adjstk '2)
(return)
))
(loader'((fentry #:r:q:/:+ subr2)
(entry #:r:q:/:+ subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 '#:r:q:/ 102)
(mov (& 0) a4)
(mov (cdr a4) a4)
(mov (& 1) a3)
(mov (cdr a3) a3)
(cabne (cdr a4) (cdr a3) 103)
(push (@ 105))
(mov (& 1) a2)
(mov (cdr a2) a2)
(push (car a2))
(mov (& 3) a2)
(mov (cdr a2) a2)
(push (car a2))
(mov '2 a4)
(jmp +)
105
(eval ())
(mov (& 0) a2)
(mov (cdr a2) a2)
(mov (cdr a2) a2)
(adjstk '2)
(bra qx)
103
(push (@ 106))
(push (@ 107))
(mov (& 2) a2)
(mov (cdr a2) a2)
(push (car a2))
(mov (& 4) a2)
(mov (cdr a2) a2)
(push (cdr a2))
(mov '2 a4)
(jmp *)
107
(eval ())
(push a1)
(push (@ 108))
(mov (& 3) a4)
(mov (cdr a4) a4)
(push (cdr a4))
(mov (& 5) a4)
(mov (cdr a4) a4)
(push (car a4))
(mov '2 a4)
(jmp *)
108
(eval ())
(push a1)
(mov '2 a4)
(jmp +)
106
(eval ())
(push a1)
(push (@ 109))
(mov (& 2) a4)
(mov (cdr a4) a4)
(push (cdr a4))
(mov (& 4) a4)
(mov (cdr a4) a4)
(push (cdr a4))
(mov '2 a4)
(jmp *)
109
(eval ())
(mov a1 a2)
(pop a1)
(adjstk '2)
(bra qx)
102
(mov (& 1) a1)
(jcall integerp)
(btnil a1 111)
(mov (& 1) a2)
(mov (& 0) a1)
(adjstk '2)
(bra #:r:q:q+z)
111
(push (@ 113))
(push (& 2))
(push (& 2))
(mov '2 a4)
(jmp +)
113
(eval ())
(adjstk '2)
(return)
))
(loader'((entry #:r:q:q+z subr2)
(push a1)
(push (@ 101))
(mov (cdr a1) a4)
(push (car a4))
(push (@ 102))
(mov (cdr a1) a3)
(push (cdr a3))
(push a2)
(mov '2 a4)
(jmp *)
102
(eval ())
(push a1)
(mov '2 a4)
(jmp +)
101
(eval ())
(mov (& 0) a2)
(mov (cdr a2) a2)
(mov (cdr a2) a2)
(adjstk '1)
(bra qx)
))
(loader'((fentry #:r:q:n:* subr2)
(entry #:r:q:n:* subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 'fix 102)
(cnblt (& 1) '0 103)
(mov (& 1) a2)
(mov (& 0) a1)
(call #:n:*)
(adjstk '2)
(bra nx)
103
(mov (& 1) a1)
(jcall abs)
(mov a1 a2)
(mov (& 0) a1)
(call #:n:*)
(mov a1 a2)
(mov '#:r:q:z a1)
(adjstk '2)
(jmp tcons)
102
(cabne a1 '#:r:q:n 105)
(mov (& 1) a2)
(mov (& 0) a1)
(call #:n:*)
(adjstk '2)
(jmp tconsmk)
105
(cabne a1 '#:r:q:z 106)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (& 0) a1)
(call #:n:*)
(mov a1 a2)
(mov '#:r:q:z a1)
(adjstk '2)
(jmp tcons)
106
(cabne a1 '#:r:q:/ 107)
(mov (& 0) a2)
(mov (& 1) a1)
(adjstk '2)
(bra #:r:q:q*z)
107
(push (@ 109))
(push (& 2))
(push (& 2))
(mov '2 a4)
(jmp *)
109
(eval ())
(adjstk '2)
(return)
))
(loader'((fentry #:r:q:z:* subr2)
(entry #:r:q:z:* subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 'fix 102)
(cnblt (& 1) '0 103)
(mov (& 0) a1)
(mov (& 1) a2)
(mov (cdr a1) a1)
(call #:n:*)
(adjstk '2)
(bra zx)
103
(mov (& 0) a1)
(push (cdr a1))
(mov (& 2) a1)
(jcall abs)
(mov a1 a2)
(pop a1)
(call #:n:*)
(adjstk '2)
(jmp tconsmk)
102
(cabne a1 '#:r:q:n 105)
(mov (& 0) a1)
(mov (& 1) a2)
(mov (cdr a1) a1)
(call #:n:*)
(mov a1 a2)
(mov '#:r:q:z a1)
(adjstk '2)
(jmp tcons)
105
(cabne a1 '#:r:q:z 106)
(mov (& 0) a1)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (cdr a1) a1)
(call #:n:*)
(adjstk '2)
(jmp tconsmk)
106
(cabne a1 '#:r:q:/ 107)
(mov (& 0) a2)
(mov (& 1) a1)
(adjstk '2)
(bra #:r:q:q*z)
107
(push (@ 109))
(push (& 2))
(push (& 2))
(mov '2 a4)
(jmp *)
109
(eval ())
(adjstk '2)
(return)
))
(loader'((fentry #:r:q:/:* subr2)
(entry #:r:q:/:* subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 '#:r:q:/ 102)
(push (@ 103))
(mov (& 1) a4)
(mov (cdr a4) a4)
(push (car a4))
(mov (& 3) a4)
(mov (cdr a4) a4)
(push (car a4))
(mov '2 a4)
(jmp *)
103
(eval ())
(push a1)
(push (@ 104))
(mov (& 2) a4)
(mov (cdr a4) a4)
(push (cdr a4))
(mov (& 4) a4)
(mov (cdr a4) a4)
(push (cdr a4))
(mov '2 a4)
(jmp *)
104
(eval ())
(mov a1 a2)
(pop a1)
(adjstk '2)
(bra qx)
102
(mov (& 1) a1)
(jcall integerp)
(btnil a1 106)
(mov (& 1) a2)
(mov (& 0) a1)
(adjstk '2)
(bra #:r:q:q*z)
106
(push (@ 108))
(push (& 2))
(push (& 2))
(mov '2 a4)
(jmp *)
108
(eval ())
(adjstk '2)
(return)
))
(loader'((entry #:r:q:q*z subr2)
(push a1)
(push (@ 101))
(mov (cdr a1) a4)
(push (car a4))
(push a2)
(mov '2 a4)
(jmp *)
101
(eval ())
(mov (& 0) a2)
(mov (cdr a2) a2)
(mov (cdr a2) a2)
(adjstk '1)
(bra qx)
))
(loader'((fentry #:r:q:n:quomod subr2)
(entry #:r:q:n:quomod subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 'fix 102)
(mov '0 a2)
(mov (& 1) a1)
(jcall <?>)
(cabne a1 '1 104)
(mov (& 1) a2)
(mov (& 0) a1)
(adjstk '2)
(bra cquoc)
104
(cabne a1 '0 105)
(push (@ 106))
(push 'quomod)
(push (& 2))
(push (& 4))
(mov '3 a4)
(jmp list)
106
(eval ())
(mov a1 a3)
(mov 'rdiv0 a2)
(mov 'quomod a1)
(adjstk '2)
(jmp #:r:error)
105
(cabne a1 '-1 107)
(mov (& 1) a1)
(jcall abs)
(mov a1 a2)
(mov (& 0) a1)
(adjstk '2)
(bra cquo-c)
107
(mov nil a1)
(adjstk '2)
(return)
102
(cabne a1 '#:r:q:n 108)
(mov (& 1) a2)
(mov (& 0) a1)
(adjstk '2)
(bra cquoc)
108
(cabne a1 '#:r:q:z 109)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (& 0) a1)
(adjstk '2)
(bra cquo-c)
109
(cabne a1 '#:r:q:/ 110)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (cdr a2) a2)
(mov (& 0) a1)
(jcall #:r:q:n:*)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (car a2) a2)
(adjstk '2)
(jmp quomod)
110
(mov (& 1) a1)
(jcall 1/)
(mov a1 a2)
(mov (& 0) a1)
(jcall #:r:q:n:*)
(adjstk '2)
(jmp truncate)
))
(loader'((fentry #:r:q:z:quomod subr2)
(entry #:r:q:z:quomod subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall type-of)
(cabne a1 'fix 102)
(mov '0 a2)
(mov (& 1) a1)
(jcall <?>)
(cabne a1 '1 104)
(mov (& 0) a1)
(mov (& 1) a2)
(mov (cdr a1) a1)
(adjstk '2)
(bra -cquoc)
104
(cabne a1 '0 105)
(push (@ 106))
(push 'quomod)
(push (& 2))
(push (& 4))
(mov '3 a4)
(jmp list)
106
(eval ())
(mov a1 a3)
(mov 'rdiv0 a2)
(mov 'quomod a1)
(adjstk '2)
(jmp #:r:error)
105
(cabne a1 '-1 107)
(mov (& 0) a1)
(push (cdr a1))
(mov (& 2) a1)
(jcall abs)
(mov a1 a2)
(pop a1)
(adjstk '2)
(bra -cquo-c)
107
(mov nil a1)
(adjstk '2)
(return)
102
(cabne a1 '#:r:q:n 108)
(mov (& 0) a1)
(mov (& 1) a2)
(mov (cdr a1) a1)
(adjstk '2)
(bra -cquoc)
108
(cabne a1 '#:r:q:z 109)
(mov (& 0) a1)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (cdr a1) a1)
(adjstk '2)
(bra -cquo-c)
109
(cabne a1 '#:r:q:/ 110)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (cdr a2) a2)
(mov (& 0) a1)
(jcall #:r:q:z:*)
(mov (& 1) a2)
(mov (cdr a2) a2)
(mov (car a2) a2)
(adjstk '2)
(jmp quomod)
110
(mov (& 1) a1)
(jcall 1/)
(mov a1 a2)
(mov (& 0) a1)
(jcall #:r:q:z:*)
(adjstk '2)
(jmp truncate)
))
(loader'((entry cquoc subr2)
(push a1)
(call #:n:quomod)
(call nx)
(mov a1 (& 0))
(mov (cvalq #:ex:mod) a1)
(call nx)
(mov a1 (cvalq #:ex:mod))
(mov (& 0) a1)
(adjstk '1)
(return)
))
(loader'((entry -cquoc subr2)
(push a2)
(push a1)
(cabne a2 '1 101)
(mov '0 (cvalq #:ex:mod))
(call zx)
(mov a1 (& 0))
(bra 102)
101
(call #:n:quomod)
(call zx)
(mov a1 (& 0))
(cabeq '0 (cvalq #:ex:mod) 102)
(push (@ 105))
(push a1)
(push '1)
(mov '2 a4)
(jmp -)
105
(eval ())
(mov a1 (& 0))
(mov (cvalq #:ex:mod) a2)
(mov (& 1) a1)
(call #:n:-)
(call nx)
(mov a1 (cvalq #:ex:mod))
102
(mov (& 0) a1)
(adjstk '2)
(return)
))
(loader'((entry cquo-c subr2)
(call cquoc)
(jmp 0-)
))
(loader'((entry -cquo-c subr2)
(push a2)
(push a1)
(call #:n:quomod)
(call nx)
(mov a1 (& 0))
(cabeq '0 (cvalq #:ex:mod) 102)
(push (@ 103))
(push a1)
(push '1)
(mov '2 a4)
(jmp +)
103
(eval ())
(mov a1 (& 0))
(mov (cvalq #:ex:mod) a2)
(mov (& 1) a1)
(call #:n:-)
(call nx)
(mov a1 (cvalq #:ex:mod))
102
(mov (& 0) a1)
(adjstk '2)
(return)
))
(setq #:sys-package:colon 'fix)
(loader'((fentry #:fix:+ subr2)
(entry #:fix:+ subr2)
(push a2)
(bffix a2 101)
(cnblt a1 '0 103)
(cnblt a2 '0 105)
(call #:n:+)
(adjstk '1)
(bra nx)
105
(push (@ 107))
(push a1)
(mov a2 a1)
(jcall abs)
(push a1)
(mov '2 a4)
(jmp -)
107
(eval ())
(adjstk '1)
(return)
103
(cnblt a2 '0 108)
(push (@ 110))
(push a2)
(jcall abs)
(push a1)
(mov '2 a4)
(jmp -)
110
(eval ())
(adjstk '1)
(return)
108
(jcall abs)
(push a1)
(mov (& 1) a1)
(jcall abs)
(mov a1 a2)
(pop a1)
(call #:n:+)
(adjstk '1)
(bra zx)
101
(push (@ 111))
(push a2)
(push a1)
(mov '2 a4)
(jmp +)
111
(eval ())
(adjstk '1)
(return)
))
(loader'((fentry #:fix:- subr2)
(entry #:fix:- subr2)
(push a1)
(push (@ 101))
(mov a2 a1)
(jcall 0-)
(push a1)
(push (& 2))
(mov '2 a4)
(jmp +)
101
(eval ())
(adjstk '1)
(return)
))
(loader'((fentry #:fix:* subr2)
(entry #:fix:* subr2)
(push a2)
(push a1)
(bffix a2 101)
(cnblt a1 '0 103)
(cnblt a2 '0 105)
(call #:n:*)
(adjstk '2)
(bra nx)
105
(push a1)
(mov a2 a1)
(jcall abs)
(mov a1 a2)
(pop a1)
(call #:n:*)
(adjstk '2)
(bra zx)
103
(cnblt a2 '0 107)
(jcall abs)
(mov (& 1) a2)
(call #:n:*)
(adjstk '2)
(bra zx)
107
(jcall abs)
(push a1)
(mov (& 2) a1)
(jcall abs)
(mov a1 a2)
(pop a1)
(call #:n:*)
(adjstk '2)
(bra nx)
101
(cabne a1 '0 110)
(mov a2 a1)
(jcall denominator)
(cabne '0 a1 111)
(push (@ 113))
(push (& 2))
(push (& 2))
(mov '2 a4)
(jmp *)
113
(eval ())
(adjstk '2)
(return)
111
(mov '0 a1)
(adjstk '2)
(return)
110
(cabne a1 '1 114)
(mov a2 a1)
(adjstk '2)
(return)
114
(push (@ 116))
(push a2)
(push a1)
(mov '2 a4)
(jmp *)
116
(eval ())
(adjstk '2)
(return)
))
(loader'((fentry #:fix:1/ subr1)
(entry #:fix:1/ subr1)
(cnblt a1 '0 101)
(mov a1 a2)
(mov '1 a1)
(bra qx)
101
(jcall 0-)
(mov a1 a2)
(mov '-1 a1)
(bra qx)
))
(loader'((fentry #:fix:/ subr2)
(entry #:fix:/ subr2)
(push a1)
(push (@ 101))
(mov a2 a1)
(jcall 1/)
(push a1)
(push (& 2))
(mov '2 a4)
(jmp *)
101
(eval ())
(adjstk '1)
(return)
))
(loader'((fentry #:fix:quomod subr2)
(entry #:fix:quomod subr2)
(push a2)
(push a1)
(mov '0 a2)
(jcall <?>)
(cabne a1 '1 102)
(mov (& 1) a1)
(jcall type-of)
(cabne a1 '#:r:q:n 104)
(mov (& 0) (cvalq #:ex:mod))
(mov '0 a1)
(adjstk '2)
(return)
104
(cabne a1 '#:r:q:z 105)
(mov (& 0) (cvalq #:ex:mod))
(mov '0 a1)
(adjstk '2)
(return)
105
(cabne a1 'fix 106)
(cabne (& 1) '0 107)
(push (@ 109))
(push 'quomod)
(push (& 2))
(push (& 4))
(mov '3 a4)
(jmp list)
109
(eval ())
(mov a1 a3)
(mov 'rdiv0 a2)
(mov 'quomod a1)
(adjstk '2)
(jmp #:r:error)
107
(mov (& 1) a2)
(mov (& 0) a1)
(adjstk '2)
(jmp quomod)
106
(mov (& 1) a2)
(mov (& 0) a1)
(adjstk '2)
(jmp #:r:quomod)
102
(cabne a1 '0 111)
(cabne (& 1) '0 112)
(push (@ 114))
(push 'quomod)
(push (& 2))
(push (& 4))
(mov '3 a4)
(jmp list)
114
(eval ())
(mov a1 a3)
(mov 'rdiv0 a2)
(mov 'quomod a1)
(adjstk '2)
(jmp #:r:error)
112
(mov '0 (cvalq #:ex:mod))
(mov '0 a1)
(adjstk '2)
(return)
111
(cabne a1 '-1 115)
(mov '0 a4)
(diff (& 0) a4)
(mov (& 1) a2)
(mov a4 a1)
(jcall #:fix:quomod)
(push a1)
(cabne (cvalq #:ex:mod) '0 116)
(push (@ 118))
(push a1)
(mov '1 a4)
(jmp -)
118
(eval ())
(adjstk '3)
(return)
116
(push (@ 121))
(push (& 3))
(push '0)
(mov '2 a4)
(jmp >)
121
(eval ())
(btnil a1 119)
(push (@ 122))
(push (& 3))
(push (cvalq #:ex:mod))
(mov '2 a4)
(jmp -)
122
(eval ())
(mov a1 (cvalq #:ex:mod))
(push (@ 123))
(push '-1)
(push (& 2))
(mov '2 a4)
(jmp -)
123
(eval ())
(adjstk '3)
(return)
119
(push (@ 124))
(push (cvalq #:ex:mod))
(push (& 4))
(mov '2 a4)
(jmp -)
124
(eval ())
(mov a1 (cvalq #:ex:mod))
(push (@ 125))
(push '1)
(push (& 2))
(mov '2 a4)
(jmp -)
125
(eval ())
(adjstk '3)
(return)
115
(mov nil a1)
(adjstk '2)
(return)
))
(setq #:sys-package:colon 'float)
(defvar #:float:b 32760)
(defvar #:float:fb (float #:float:b))
(defvar #:float:-fb (- #:float:fb))
(loader'((fentry #:float:quomod subr2)
(entry #:float:quomod subr2)
(push a2)
(push a1)
(mov a2 a1)
(jcall float)
(mov a1 (& 1))
(mov (& 0) a4)
(fquo a1 a4)
(mov a4 a1)
(jcall #:float:truncate)
(push a1)
(jcall float)
(mov (& 1) a4)
(ftimes a1 a4)
(mov (& 1) a3)
(fdiff a4 a3)
(mov a3 (cvalq #:ex:mod))
(mov (& 0) a1)
(adjstk '3)
(return)
))
(loader'((fentry #:float:truncate subr1)
(entry #:float:truncate subr1)
(push a1)
(push (@ 103))
(push a1)
(push '0)
(mov '2 a4)
(jmp <)
103
(eval ())
(btnil a1 101)
(push (@ 104))
(push (@ 105))
(push (& 2))
(mov '1 a4)
(jmp -)
105
(eval ())
(jcall #:float:truncate)
(push a1)
(mov '1 a4)
(jmp -)
104
(eval ())
(adjstk '1)
(return)
101
(mov (& 0) a1)
(adjstk '1)
(bra ftrunc)
))
(loader'((entry ftrunc subr1)
(push a1)
(push (@ 103))
(push (cvalq #:float:-fb))
(push a1)
(push (cvalq #:float:fb))
(mov '3 a4)
(jmp <)
103
(eval ())
(btnil a1 101)
(mov (& 0) a1)
(adjstk '1)
(jmp fix)
101
(mov (& 0) a4)
(fquo (cvalq #:float:fb) a4)
(mov a4 a1)
(call ftrunc)
(push a1)
(push (@ 104))
(push (& 2))
(push (@ 105))
(push a1)
(push (cvalq #:float:fb))
(mov '2 a4)
(jmp *)
105
(eval ())
(push a1)
(mov '2 a4)
(jmp -)
104
(eval ())
(push a1)
(push (@ 106))
(push (@ 107))
(push (& 3))
(push (cvalq #:float:b))
(mov '2 a4)
(jmp *)
107
(eval ())
(push a1)
(mov (& 2) a1)
(call ftrunc)
(push a1)
(mov '2 a4)
(jmp +)
106
(eval ())
(adjstk '3)
(return)
))
(setq #:sys-package:colon '#:r:q)
(loader'((fentry #:r:q:n:prin subr1)
(entry #:r:q:n:prin subr1)
(push a1)
(call #:n:prin)
(mov (& 0) a1)
(adjstk '1)
(return)
))
(loader'((fentry #:r:q:z:prin subr1)
(entry #:r:q:z:prin subr1)
(push a1)
(push (@ 101))
(push '45)
(mov '1 a4)
(jmp princn)
101
(eval ())
(mov (& 0) a1)
(mov (cdr a1) a1)
(call #:n:prin)
(mov (& 0) a1)
(adjstk '1)
(return)
))
(loader'((fentry #:r:q:/:prin subr1)
(entry #:r:q:/:prin subr1)
(push (cvalq q))
(mov a1 (cvalq q))
(push '1)
(push '(q))
(push (@ #:r:q:/:prin))
(push llink)
(mov nil llink)
(push dlink)
(push cbindn)
(stack dlink)
(push (@ 103))
(push '0)
(mov (cdr a1) a4)
(push (cdr a4))
(mov '2 a4)
(jmp =)
103
(eval ())
(btnil a1 101)
(push (@ 104))
(push '"1/0")
(mov '1 a4)
(jmp prin)
104
(eval ())
(bra 102)
101
(mov (cvalq q) a1)
(jcall integerp)
(btnil a1 105)
(push (@ 107))
(mov (cvalq q) a4)
(mov (cdr a4) a4)
(push (car a4))
(mov '1 a4)
(jmp prin)
107
(eval ())
(bra 102)
105
(push (@ 108))
(mov '0 a4)
(jmp precision)
108
(eval ())
(mov (cvalq q) a4)
(mov (cdr a4) a4)
(mov (cvalq q) a3)
(mov (cdr a3) a3)
(push (car a4))
(push (cdr a3))
(push a1)
(jcall type-of)
(cabne a1 'fix 110)
(push (@ 111))
(push (& 3))
(push (& 3))
(push (@ 114))
(push '0)
(push (& 5))
(mov '2 a4)
(jmp =)
114
(eval ())
(btnil a1 112)
(mov '1 a4)
(bra 113)
112
(mov (& 3) a4)
113
(push a4)
(mov (& 4) a1)
(jcall abs)
(push a1)
(mov '4 a4)
(bra ecrit-fc)
111
(eval ())
(bra 109)
110
(cabne a1 'float 115)
(push (@ 118))
(mov (& 1) a1)
(jcall fix)
(mov a1 (& 1))
(push a1)
(push '0)
(mov '2 a4)
(jmp >)
118
(eval ())
(btnil a1 116)
(push (@ 119))
(push (& 3))
(push (& 3))
(push (@ 120))
(mov '0 a4)
(jmp obase)
120
(eval ())
(push a1)
(push (& 4))
(mov '4 a4)
(bra ecrit-10)
119
(eval ())
(bra 109)
116
(push (@ 121))
(push (& 3))
(push (& 3))
(push '0)
(push (@ 122))
(push (& 5))
(mov '1 a4)
(jmp -)
122
(eval ())
(push a1)
(mov '4 a4)
(bra ecrit-fc)
121
(eval ())
(bra 109)
115
(push (@ 124))
(mov (cvalq q) a4)
(mov (cdr a4) a4)
(push (car a4))
(mov '1 a4)
(jmp prin)
124
(eval ())
(push (@ 125))
(push '47)
(mov '1 a4)
(jmp princn)
125
(eval ())
(push (@ 126))
(mov (cvalq q) a4)
(mov (cdr a4) a4)
(push (cdr a4))
(mov '1 a4)
(jmp prin)
126
(eval ())
109
(adjstk '3)
102
(mov (& 1) dlink)
(mov (& 2) llink)
(mov (& 6) (cvalq q))
(adjstk '7)
(return)
))
(loader'((entry division- subr2)
(push a2)
(push a1)
(push (@ 103))
(push a1)
(push a2)
(mov '2 a4)
(jmp <)
103
(eval ())
(btnil a1 101)
(mov (& 0) (cvalq #:ex:mod))
(mov '0 (& 0))
(bra 102)
101
(push (@ 104))
(push (& 1))
(push (& 3))
(mov '2 a4)
(jmp -)
104
(eval ())
(mov a1 (cvalq #:ex:mod))
(mov '1 (& 0))
102
(mov (& 0) a1)
(adjstk '2)
(return)
))
(loader'((entry ecrit-fc nsubr)
(push (@ 101))
(push '"/")
(mov '1 a4)
(jmp prin)
101
(eval ())
102
(push (@ 104))
(push (& 1))
(push '0)
(mov '2 a4)
(jmp >)
104
(eval ())
(btnil a1 103)
(push (@ 105))
(mov '0 a2)
(mov (& 2) a1)
(jcall <?>)
(cabne a1 '1 107)
(mov (& 3) a2)
(mov (& 4) a1)
(jcall quomod)
(mov a1 a4)
(bra 106)
107
(cabne a1 '0 108)
(mov (& 3) a2)
(mov (& 4) a1)
(call division-)
(mov a1 a4)
(bra 106)
108
(cabne a1 '-1 109)
(mov (& 3) a2)
(mov (& 4) a1)
(jcall round)
(mov a1 a4)
(bra 106)
109
(mov nil a4)
106
(push a4)
(mov '1 a4)
(jmp prin)
105
(eval ())
(mov (& 2) (& 3))
(mov (cvalq #:ex:mod) (& 2))
(cabne (& 2) '0 110)
(mov '0 (& 0))
(bra 102)
110
(push (@ 114))
(push '0)
(push (& 3))
(mov '2 a4)
(jmp =)
114
(eval ())
(bfnil a1 113)
(push (@ 115))
(push '" ")
(mov '1 a4)
(jmp prin)
115
(eval ())
113
(push (@ 116))
(push (& 1))
(push '1)
(mov '2 a4)
(jmp -)
116
(eval ())
(mov a1 (& 0))
(bra 102)
103
(push (@ 119))
(push '0)
(push (& 4))
(mov '2 a4)
(jmp =)
119
(eval ())
(bfnil a1 118)
(push (@ 122))
(push '0)
(push (& 3))
(mov '2 a4)
(jmp =)
122
(eval ())
(btnil a1 121)
(push (@ 123))
(push '" ")
(mov '1 a4)
(jmp prin)
123
(eval ())
121
(push (@ 126))
(push '0)
(push (& 4))
(push '100)
(mov '3 a4)
(jmp <)
126
(eval ())
(btnil a1 118)
(push (@ 129))
(push (& 4))
(push '0)
(mov '2 a4)
(jmp >)
129
(eval ())
(btnil a1 127)
(push (@ 130))
(push (& 4))
(push (& 4))
(push (@ 131))
(mov '0 a4)
(jmp obase)
131
(eval ())
(push a1)
(push '1)
(mov '4 a4)
(bra ecrit-10)
130
(eval ())
(bra 118)
127
(push (@ 132))
(mov (cvalq q) a4)
(mov (cdr a4) a4)
(push (car a4))
(mov '1 a4)
(jmp prin)
132
(eval ())
(push (@ 133))
(push '47)
(mov '1 a4)
(jmp princn)
133
(eval ())
(push (@ 134))
(mov (cvalq q) a4)
(mov (cdr a4) a4)
(push (cdr a4))
(mov '1 a4)
(jmp prin)
134
(eval ())
118
(push (@ 135))
(push '"/")
(mov '1 a4)
(jmp prin)
135
(eval ())
(adjstk '4)
(return)
))
(loader'((entry ecrit-10 nsubr)
(push (@ 103))
(push (& 4))
(push '0)
(mov '2 a4)
(jmp <)
103
(eval ())
(btnil a1 102)
(push (@ 104))
(push '"-")
(mov '1 a4)
(jmp prin)
104
(eval ())
(push (@ 105))
(push (& 4))
(mov '1 a4)
(jmp -)
105
(eval ())
(mov a1 (& 3))
102
(push (@ 106))
(mov (& 3) a2)
(mov (& 4) a1)
(jcall quomod)
(push a1)
(mov '1 a4)
(jmp prin)
106
(eval ())
(mov (cvalq #:ex:mod) (& 3))
(mov (& 1) a2)
(mov (& 2) a1)
(jcall pgcd)
(mov a1 (cvalq gcd))
(push (@ 109))
(push '1)
(push a1)
(mov '2 a4)
(jmp =)
109
(eval ())
(bfnil a1 111)
(push (@ 110))
(push '".")
(mov '1 a4)
(jmp prin)
110
(eval ())
111
(push (@ 113))
(push (cvalq gcd))
(push '1)
(mov '2 a4)
(jmp >)
113
(eval ())
(btnil a1 112)
(mov (cvalq gcd) a2)
(mov (& 2) a1)
(jcall quotient)
(mov a1 (& 2))
(push (@ 114))
(push (& 1))
(push '1)
(mov '2 a4)
(jmp -)
114
(eval ())
(mov a1 (& 0))
(push (@ 115))
(push (@ 116))
(mov (cvalq gcd) a2)
(mov (& 3) a1)
(jcall quotient)
(push a1)
(push (& 6))
(mov '2 a4)
(jmp *)
116
(eval ())
(mov (& 3) a2)
(jcall quomod)
(push a1)
(mov '1 a4)
(jmp prin)
115
(eval ())
(mov (cvalq #:ex:mod) (& 3))
(mov (& 1) a2)
(mov (& 2) a1)
(jcall pgcd)
(mov a1 (cvalq gcd))
(bra 111)
112
(push (@ 119))
(push '0)
(push (& 5))
(mov '2 a4)
(jmp =)
119
(eval ())
(bfnil a1 117)
(push (@ 120))
(push '",")
(push (@ 121))
(push (& 4))
(push (& 7))
(mov '2 a4)
(jmp *)
121
(eval ())
(mov (& 4) a2)
(jcall quotient)
(push a1)
(mov '2 a4)
(jmp prin)
120
(eval ())
(mov (& 3) (cvalq gcd))
(mov (cvalq #:ex:mod) (& 3))
(push (@ 122))
(push (& 1))
(push '1)
(mov '2 a4)
(jmp -)
122
(eval ())
(mov a1 (& 0))
123
(push (@ 125))
(push (cvalq gcd))
(push (& 5))
(mov '2 a4)
(jmp =)
125
(eval ())
(bfnil a1 124)
(push (@ 126))
(push (@ 127))
(push (& 3))
(push (& 6))
(mov '2 a4)
(jmp *)
127
(eval ())
(mov (& 3) a2)
(jcall quomod)
(push a1)
(mov '1 a4)
(jmp prin)
126
(eval ())
(mov (cvalq #:ex:mod) (& 3))
(push (@ 130))
(mov (& 1) a1)
(jcall 1-)
(mov a1 (& 1))
(push a1)
(push '1)
(mov '2 a4)
(jmp <)
130
(eval ())
(btnil a1 123)
(push (@ 131))
(push '".")
(mov '1 a4)
(jmp prin)
131
(eval ())
(mov (cvalq gcd) (& 3))
(bra 123)
124
(adjstk '4)
(return)
117
(mov nil a1)
(adjstk '4)
(return)
))
(loader'((fentry pgcd subr2)
(entry pgcd subr2)
(cabne a2 '0 101)
(jmp abs)
101
(push a2)
(jcall modulo)
(mov a1 a2)
(pop a1)
(jmp pgcd)
))
(loader'((fentry gcd nsubr)
(entry gcd nsubr)
(jcall #:llcp:nlist)
(push a1)
(push '0)
(push nil)
(push (cvalq pgcd))
(mov (& 2) (cvalq pgcd))
(push '1)
(push '(pgcd))
(push 'lambda)
(push llink)
(push dlink)
(push cbindn)
(stack dlink)
101
(btnil (& 9) 102)
(mov (& 9) a4)
(mov (cdr a4) (& 9))
(mov (car a4) (& 7))
(mov (& 7) a1)
(jcall integerp)
(bfnil a1 103)
(push (@ 105))
(push 'gcd)
(push (& 9))
(push (& 12))
(mov '3 a4)
(jmp list)
105
(eval ())
(mov a1 a3)
(mov 'rnotz a2)
(mov 'gcd a1)
(jcall #:r:error)
(bra 101)
103
(mov (& 7) a2)
(mov (cvalq pgcd) a1)
(jcall pgcd)
(mov a1 (cvalq pgcd))
(bra 101)
102
(mov (cvalq pgcd) a1)
(mov (& 1) dlink)
(mov (& 6) (cvalq pgcd))
(adjstk '10)
(return)
))
(setq #:sys-package:colon 'n)
(loader'((fentry fib subr1)
(entry fib subr1)
(push a1)
(push '0)
(push '1)
(push (cvalq fn+1))
(mov (& 1) (cvalq fn+1))
(push (cvalq fn))
(mov (& 3) (cvalq fn))
(push '2)
(push '(fn+1 fn))
(push 'lambda)
(push llink)
(push dlink)
(push cbindn)
(stack dlink)
(jcall integerp)
(btnil a1 103)
(push (@ 104))
(push (& 11))
(push '0)
(mov '2 a4)
(jmp >=)
104
(eval ())
(bfnil a1 102)
103
(push (@ 105))
(push 'fib)
(push (& 12))
(mov '2 a4)
(jmp list)
105
(eval ())
(mov a1 a3)
(mov 'rnotz a2)
(mov 'fib a1)
(jcall #:r:error)
102
(mov (& 10) a1)
(call #:n:fib)
(mov (cvalq fn) a1)
(call nx)
(mov (& 1) dlink)
(mov (& 6) (cvalq fn))
(mov (& 7) (cvalq fn+1))
(adjstk '11)
(return)
))
(loader'((entry #:n:fib subr1)
(push a1)
(push (@ 103))
(push a1)
(push '24)
(mov '2 a4)
(jmp <)
103
(eval ())
(btnil a1 101)
(mov (& 0) a4)
(bra 105)
104
(push a4)
(mov (cvalq fn+1) a2)
(mov (cvalq fn) a1)
(call #:n:+)
(mov (cvalq fn+1) (cvalq fn))
(mov a1 (cvalq fn+1))
(pop a4)
105
(sobgez a4 104)
(mov 't a1)
(adjstk '1)
(return)
101
(mov (& 0) a4)
(quo '2 a4)
(mov a4 a1)
(call #:n:fib)
(mov (cvalq fn) a2)
(mov (cvalq fn) a1)
(call #:n:*)
(push a1)
(mov (cvalq fn+1) a2)
(mov (cvalq fn+1) a1)
(call #:n:*)
(mov a1 a2)
(pop a1)
(call #:n:+)
(push a1)
(mov '2 a2)
(mov (cvalq fn+1) a1)
(call #:n:c*b)
(mov (cvalq fn) a2)
(call #:n:-)
(mov a1 a2)
(mov (cvalq fn) a1)
(call #:n:*)
(mov a1 (cvalq fn))
(pop a4)
(mov a4 (cvalq fn+1))
(mov (& 0) a1)
(jcall oddp)
(btnil a1 106)
(mov (cvalq fn+1) a2)
(mov (cvalq fn) a1)
(call #:n:+)
(mov (cvalq fn+1) (cvalq fn))
(mov a1 (cvalq fn+1))
(adjstk '1)
(return)
106
(mov nil a1)
(adjstk '1)
(return)
))
(loader'((fentry fact subr1)
(entry fact subr1)
(push a1)
(jcall integerp)
(btnil a1 103)
(push (@ 104))
(push (& 1))
(push '0)
(mov '2 a4)
(jmp >=)
104
(eval ())
(bfnil a1 102)
103
(push (@ 105))
(push 'fact)
(push (& 2))
(mov '2 a4)
(jmp list)
105
(eval ())
(mov a1 a3)
(mov 'rnotz a2)
(mov 'fact a1)
(jcall #:r:error)
102
(mov (& 0) a3)
(mov '1 a2)
(mov '1 a1)
(call #:n:fact)
(adjstk '1)
(bra nx)
))
(loader'((entry #:n:fact subr3)
(push a3)
(push a2)
(push a1)
(push (@ 103))
(push (@ 104))
(push a3)
(push a1)
(mov '2 a4)
(jmp -)
104
(eval ())
(push a1)
(push (@ 105))
(push '10)
(push (& 5))
(mov '2 a4)
(jmp *)
105
(eval ())
(push a1)
(mov '2 a4)
(jmp <)
103
(eval ())
(btnil a1 101)
(push '1)
(push (& 1))
(push (@ 108))
(push (& 4))
(push '0)
(mov '2 a4)
(jmp >)
108
(eval ())
(btnil a1 106)
109
(push (@ 111))
(push (& 1))
(push (& 6))
(mov '2 a4)
(jmp <=)
111
(eval ())
(btnil a1 107)
(mov (& 0) a2)
(mov (& 1) a1)
(call #:n:*)
(mov a1 (& 1))
(push (@ 112))
(push (& 1))
(push (& 5))
(mov '2 a4)
(jmp +)
112
(eval ())
(mov a1 (& 0))
(bra 109)
106
(push (@ 115))
(push (& 4))
(push '0)
(mov '2 a4)
(jmp <)
115
(eval ())
(btnil a1 113)
116
(push (@ 118))
(push (& 1))
(push (& 6))
(mov '2 a4)
(jmp >=)
118
(eval ())
(btnil a1 107)
(mov (& 0) a2)
(mov (& 1) a1)
(call #:n:*)
(mov a1 (& 1))
(push (@ 119))
(push (& 1))
(push (& 5))
(mov '2 a4)
(jmp +)
119
(eval ())
(mov a1 (& 0))
(bra 116)
113
(mov '0 a3)
(mov '"increment nul" a2)
(mov 'for a1)
(jcall error)
107
(adjstk '1)
(mov (& 0) a1)
(adjstk '4)
(return)
101
(push (@ 120))
(push '2)
(push (& 3))
(mov '2 a4)
(jmp *)
120
(eval ())
(mov (& 2) a3)
(mov a1 a2)
(mov (& 0) a1)
(call #:n:fact)
(push a1)
(push (@ 121))
(push (& 2))
(push (& 4))
(mov '2 a4)
(jmp +)
121
(eval ())
(push a1)
(push (@ 122))
(push '2)
(push (& 5))
(mov '2 a4)
(jmp *)
122
(eval ())
(mov (& 4) a3)
(mov a1 a2)
(pop a1)
(call #:n:fact)
(mov a1 a2)
(pop a1)
(adjstk '3)
(bra #:n:*)
))
(setq #:sys-package:colon '#:r:q)
(loader'((fentry even? subr1)
(entry even? subr1)
(push a1)
(jcall type-of)
(cabne a1 'fix 102)
(mov (& 0) a1)
(adjstk '1)
(jmp evenp)
102
(cabne a1 'cons 103)
(mov (& 0) a1)
(mov (cdr a1) a1)
(adjstk '1)
(jmp even?)
103
(cabne a1 '#:r:q:n 104)
(mov (& 0) a1)
(mov (cdr a1) a1)
(adjstk '1)
(jmp even?)
104
(cabne a1 '#:r:q:z 105)
(mov (& 0) a1)
(mov (cdr a1) a1)
(adjstk '1)
(jmp even?)
105
(mov (& 0) a1)
(jcall integerp)
(btnil a1 107)
(mov (& 0) a1)
(jcall numerator)
(adjstk '1)
(jmp even?)
107
(push (@ 109))
(push 'even?)
(push (& 2))
(mov '2 a4)
(jmp list)
109
(eval ())
(mov a1 a3)
(mov 'rnotz a2)
(mov 'even? a1)
(adjstk '1)
(jmp #:r:error)
))
(setq #:system:read-case-flag #:backup:majuscules)
(loader '((end)))