OpenCores
URL https://opencores.org/ocsvn/igor/igor/trunk

Subversion Repositories igor

[/] [igor/] [trunk/] [microprogram_assembler/] [mem.lisp] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 atypic
(in-package #:sexptomem)
2
 
3
(sexp-to-memory
4
 (%nil
5
  %t
6
  %if
7
  %quote
8
  %lambda
9
  %progn
10
  %cons
11
  %car
12
  %cdr
13
  %eval
14
  %apply
15
  %type
16
  %make-array
17
  %array-size
18
  %array-get
19
  %array-set
20
  %make-symbol
21
  %symbol-to-string
22
  %char-to-int
23
  %int-to-char
24
  %get-char
25
  %put-char
26
  %num-devices
27
  %device-type
28
  %set-address
29
  %get-address
30
  %error
31
  %add
32
  %sub
33
  %mul
34
  %div
35
  %bitwise-and
36
  %bitwise-or
37
  %bitwise-not
38
  %bitwise-shift
39
  %current-environment
40
  %make-eval-state
41
  %eval-partial
42
  %define
43
  %undefine
44
  %eq?
45
  %num-eq?
46
  %char-eq?
47
  %less-than?
48
  %mod
49
  %set!
50
  %set-car!
51
  %set-cdr!
52
 
53
  %phase-eval
54
  %phase-eval-args
55
  %phase-apply
56
  %phase-eval-if
57
  %phase-initial
58
  %phase-env-lookup
59
  %phase-env-lookup-local
60
  %phase-apply-function
61
  %phase-bind-args
62
  %phase-eval-progn
63
  %phase-eval-args-top
64
  %phase-eval-args-cdr
65
  %phase-eval-args-cons
66
  %phase-eval-symbol
67
  %phase-set!
68
 
69
  xxx3F
70
 
71
  %timeout
72
  %err-invalid-phase
73
  %err-unbound-symbol
74
  %err-invalid-param-list
75
  %err-too-few-args
76
  %err-too-many-args
77
  %err-invalid-state
78
  %err-invalid-arg-list
79
  %err-type-error
80
  %err-not-a-list
81
  %err-not-a-function
82
  %err-invalid-function
83
  %err-malformed-form
84
  %err-invalid-builtin
85
  %err-invalid-array-index
86
  %err-invalid-env
87
  %err-not-a-pair)
88
 :1000
89
 (%progn
90
  (%define (%quote =) (%lambda (a b) (%num-eq? a b)))
91
  (%define (%quote -) (%lambda (a b) (%sub a b)))
92
  (%define (%quote +) (%lambda (a b) (%add a b)))
93
  (%define (%quote *) (%lambda (a b) (%mul a b)))
94
 
95
;;   (%define (%quote print-string)
96
;;         (%lambda (str devnr)
97
;;                  (%progn
98
;;                   (%define (%quote iter)
99
;;                            (%lambda (n) (%if (= n (%array-size str))
100
;;                                              %nil
101
;;                                              (%progn
102
;;                                               (%put-char devnr (%array-get str n))
103
;;                                               (iter (+ n 1))))))
104
;;                   (iter 0))))
105
 
106
  (%put-char 1 #\h)
107
  (%put-char 1 #\e)
108
  (%put-char 1 #\l)
109
  (%put-char 1 #\l)
110
  (%put-char 1 #\o)
111
  (%put-char 1 #\Newline)
112
 
113
  (%define (%quote count)
114
           (%lambda (a b)
115
                    (%progn
116
                     (%define (%quote iter)
117
                              (%lambda (n)
118
                                       (%if (= n b) n (iter (+ n 1)))))
119
                     (iter a))))
120
 
121
;;  (count 0 #x1000000)
122
 
123
 
124
  (%define (%quote echo)
125
           (%lambda (devnr)
126
                    (%progn (%put-char devnr (%get-char devnr)) (echo devnr))))
127
;;  (echo 1)
128
 
129
  (%define (%quote a) (%make-array 5 2))
130
 
131
  (%array-get a 0)
132
  (%array-set a 1 (+ (%array-get a 0)
133
                     (%array-get a 1)))
134
  (%array-set a 1 (+ (%array-get a 0)
135
                     (%array-get a 1)))
136
  (%define (%quote r) %nil)
137
  (%set! (%quote r) 2)
138
  (%define
139
   (%quote fact)
140
   (%lambda (n) (%if (= n 1) 1 (* n (fact (- n 1))))))
141
  (%set! (%quote r) (fact (- 12 (* (+ 3 1) 2))))
142
  (%set! (%quote r) (%array-get a 1))
143
  (%set! (%quote r) (%cons r a))
144
  ;;(%error (%quote foo))
145
 
146
  ;;(%define (%quote foo) (%lambda (a . foo) foo))
147
  (%set! (%quote r) (foo 1 2 3))
148
 
149
  r))
150
 
151
;;  (%add 2 3)
152
;;  (%eval-partial
153
;;   (%make-eval-state (%quote (%add 11 5))
154
;;                  (%current-environment))
155
;;   0)
156
;;  (%apply
157
;;   (%lambda (p n) (%apply p (%cons p (%cons n %nil))))
158
;;   (%cons (%lambda (p n)
159
;;                (%if (%num-eq? n 1)
160
;;                     1
161
;;                     (%mul n (%apply p (%cons p (%cons (%sub n 1) %nil))))))
162
;;       (%cons 4 %nil)))
163
;;  (%apply (%lambda (a b) (%add a (%mul b 2))) (%quote (4 5))))
164
 
165
;; (sexp-to-memory
166
;;  (%if nil (%add 5 2) 3))

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.