include "hdr1.html"; ?>
Line | Address | Object Code | Label | F1 | N1 | B | F2 | N2 | Comments | Check |
---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | ; tape1.d/expr.t2 | ||||||||
2 | 0 | ;---------------- | ||||||||
3 | 0 | IntExprn:: | ; | |||||||
4 | 0 | =1574+ | ||||||||
5 | 1574+ | GetIntExp1: | ; | |||||||
6 | 1574+ | 1662171 | .1574P: | lnk | W1145 | ; | ||||
7 | 1575 | GetIntExp: | ; | |||||||
8 | 1575 | 0600600 | .1575: | lod | token | ; | ||||
9 | 1575+ | 0404303 | sto | W2243 | ; | |||||
10 | 1576 | call | ; | @1576 | ||||||
10+1 | 1576 | 7305105001222 | lnk | gettoken.lnk | : | jmp | gettoken.ent | |||
11 | 1577 | 0040600 | o02 | token | ; | |||||
12 | 1577+ | 1023225 | jn | L1685 | ; | |||||
13 | 1578 | call | ; | @1578 | ||||||
13+1 | 1578 | 7310751003034 | lnk | L1564.lnk | : | jmp | L1564.ent | |||
14 | 1579 | GetIntExp2.ent: | ; | |||||||
15 | 1579 | 0602172 | lod | Link15c | ; | |||||
16 | 1579+ | 1045507 | jz | L2887 | ; | |||||
17 | 1580 | 1105535 | jmp | L2909P | ; | @1580 | ||||
18 | 1580+ | ; | ||||||||
19 | 1580+ | 0000000 | o00 | 0 | ||||||
20 | 1581 | ;-------------------------------------------------------------------- | ||||||||
21 | 1581 | L1581: | ; | |||||||
22 | 1581 | 0062222 | .1581: | and | K8191 | ;=8191 | ||||
23 | 1581+ | 0401430 | sto | W792 | ; | |||||
24 | 1582 | 0042166 | o02 | W1142 | ; | @1582 | ||||
25 | 1582+ | 0102225 | add | Bbit | ;=<000/000> | |||||
26 | 1583 | call | ; | |||||||
26+1 | 1583 | 7307175001630 | lnk | GenSetBase.lnk | : | jmp | GenSetBase.ent | |||
27 | 1584 | 1003174 | jmp | .1660 | ; | @1584 | ||||
28 | 1584+ | ; | ||||||||
29 | 1584+ | 0000000 | o00 | 0 | ||||||
30 | 1585 | ;-------------------------------------------------------------------- | ||||||||
31 | 1585 | L1585: | ; | |||||||
32 | 1585 | 0402163 | .1585: | sto | W1139 | ; | ||||
33 | 1585+ | 1003063 | jmp | .1587 | ; | |||||
34 | 1586 | ; | ||||||||
35 | 1586 | L1586: | ; | |||||||
36 | 1586 | 0602202 | .1586: | lod | arrbit | ; | @1586 | |||
37 | 1586+ | 0502163 | ads | W1139 | ; | |||||
38 | 1587 | .1587: | ; | |||||||
39 | 1587 | call | ;save stkp, call gettoken | |||||||
39+1 | 1587 | 7305105010635 | lnk | L4509.lnk | : | jmp | L4509.ent | |||
40 | 1588 | call | ;get id | @1588 | ||||||
40+1 | 1588 | 7310725002361 | lnk | declid.lnk | : | jmp | declid.ent | |||
41 | 1589 | 0600600 | lod | token | ; | |||||
42 | 1589+ | 0122204 | sub | K47a | ;=47 [(] | |||||
43 | 1590 | 1043067 | jz | .1591 | ; | @1590 | ||||
44 | 1590+ | 1003102 | jmp | _err13 | ; | |||||
45 | 1591 | ; | ||||||||
46 | 1591 | 0602175 | .1591: | lod | bit39 | ; | @1591 | |||
47 | 1591+ | 0402166 | sto | W1142 | ; | |||||
48 | 1592 | 0542167 | cls | W1143 | ; | @1592 | ||||
49 | 1592+ | 0602175 | lod | bit39 | ; | |||||
50 | 1593 | call | ; | |||||||
50+1 | 1593 | 7312031002407 | lnk | addtodic.lnk | : | jmp | addtodic.ent | |||
51 | 1594 | 0602160 | lod | dicpt | ; | @1594 | ||||
52 | 1594+ | 1003246 | jmp | .1702 | ; | |||||
53 | 1595 | ; | ||||||||
54 | 1595 | .1595: | call | ;get bound expression | @1595 | |||||
54+1 | 1595 | 7310725003026 | lnk | getboundexp.lnk | : | jmp | getboundexp.ent | |||
55 | 1596 | 0600600 | lod | token | ; | |||||
56 | 1596+ | 0122201 | sub | K42 | ;=42, check for colon | |||||
57 | 1597 | 1043076 | jz | .1598 | ;syntax OK | |||||
58 | 1597+ | 1003102 | jmp | _err13 | ;report syntax error | |||||
59 | 1598 | ; | ||||||||
60 | 1598 | .1598: | call | ;get second bound expression | @1598 | |||||
60+1 | 1598 | 7310725003026 | lnk | getboundexp.lnk | : | jmp | getboundexp.ent | |||
61 | 1599 | 0442167 | inc | W1143 | ;bump subscript counter | |||||
62 | 1599+ | 0040600 | o02 | token | ;token+1 | |||||
63 | 1600 | 0122201 | sub | K42 | ;=42 -> [,] | @1600 | ||||
64 | 1600+ | 1043073 | jz | .1595 | ;more to come | |||||
65 | 1601 | 0122210 | sub | K7a | ;=7 ->[)] | |||||
66 | 1601+ | 1043103 | jz | .1603 | ;end of bound list | |||||
67 | 1602 | _err13: | ; | |||||||
68 | 1602 | 1661044 | lnk | errlnk | ;error 13: in array declaration: | @1602 | ||||
69 | 1602+ | ; no comma or ( after identifier, or | ||||||||
70 | 1602+ | ; no colon between bounds, or | ||||||||
71 | 1602+ | ; no comma or ) after bounds | ||||||||
72 | 1602+ | 1002262 | jmp | Error2 | ;call error rtne | |||||
73 | 1603 | .1603: | ; | |||||||
74 | 1603 | call | ; | |||||||
74+1 | 1603 | 7305105003251 | lnk | L1705.lnk | : | jmp | L1705.ent | |||
75 | 1604 | 0602162 | lod | typeinfo | ; | @1604 | ||||
76 | 1604+ | 1143133 | jz | .1627P | ; | |||||
77 | 1605 | 0603541 | lod | GPs+60 | ;=04000024000007 | |||||
78 | 1605+ | nop | ; | |||||||
78+1 | 1605+ | 1003106 | jmp | .1 | ||||||
78+2 | 1606 | .1: | ; | |||||||
79 | 1606 | .1606: | call | ; | @1606 | |||||
79+1 | 1606 | 7320121004033 | lnk | gencode.lnk | : | jmp | gencode.ent | |||
80 | 1607 | 0602164 | lod | idcount | ;number of ids in list | |||||
81 | 1607+ | 0402161 | sto | wsptr | ; | |||||
82 | 1608 | call | ; | @1608 | ||||||
82+1 | 1608 | 7307175001705 | lnk | L965.lnk | : | jmp | L965.ent | |||
83 | 1609 | 0602174 | lod | W1148 | ; | |||||
84 | 1609+ | 0502161 | ads | wsptr | ; | |||||
85 | 1610 | 0401422 | sto | GenAdr | ; | @1610 | ||||
86 | 1610+ | 0602167 | lod | W1143 | ; | |||||
87 | 1611 | 1320015 | sll | 13 | ; | |||||
88 | 1611+ | 0402167 | sto | W1143 | ; | |||||
89 | 1612 | 0102226 | add | K6 | ;=6 | @1612 | ||||
90 | 1612+ | 0000000 | o00 | 0 | ; | |||||
91 | 1613 | call | ; | |||||||
91+1 | 1613 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
92 | 1614 | 0602170 | lod | idpt1 | ; | @1614 | ||||
93 | 1614+ | 0402172 | sto | Link15c | ; | |||||
94 | 1615 | .1615: | ; | |||||||
95 | 1615 | 0010752600000 | o00 | Link15c | / | lod | 0 | ; | ||
96 | 1616 | 0401422 | sto | GenAdr | ; | @1616 | ||||
97 | 1616+ | 0062215 | and | realbit | ; | |||||
98 | 1617 | 1220020 | srl | 16 | ; | |||||
99 | 1617+ | 0102226 | add | K6 | ;=6 | |||||
100 | 1618 | call | ; | @1618 | ||||||
100+1 | 1618 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
101 | 1619 | 0040000 | o02 | 0 | ;=1 | |||||
102 | 1619+ | 0562172 | o27 | Link15c | ; | |||||
103 | 1620 | 0602172 | lod | Link15c | ; | @1620 | ||||
104 | 1620+ | 0162160 | bus | dicpt | ; | |||||
105 | 1621 | 1023117 | jn | .1615 | ; | |||||
106 | 1621+ | 0602167 | lod | W1143 | ; | |||||
107 | 1622 | 0102161 | add | wsptr | ; | @1622 | ||||
108 | 1622+ | 0102163 | add | W1139 | ; | |||||
109 | 1623 | 0102177 | add | MaxInt | ; | |||||
110 | 1623+ | 0000000 | o00 | 0 | ; | |||||
111 | 1624 | 0010742400001 | o00 | idpt1 | / | sto | 1 | ; | @1624 | |
112 | 1625 | 0602170 | .1625: | lod | idpt1 | ; | ||||
113 | 1625+ | 1103241 | jmp | .1697P | ; | |||||
114 | 1626 | ; | ||||||||
115 | 1626 | .1626: | ; | |||||||
116 | 1626 | 0122201 | sub | K42 | ;=42 | @1626 | ||||
117 | 1626+ | 1043063 | jz | .1587 | ; | |||||
118 | 1627 | 1002331 | jmp | declaration.done | ; | |||||
119 | 1627+ | ; | ||||||||
120 | 1627+ | 0040000 | .1627P: | o02 | 0 | ;=1 | ||||
121 | 1628 | 0202166 | exa | W1142 | ; | @1628 | ||||
122 | 1628+ | 1143216 | jz | .1678P | ; | |||||
123 | 1629 | call | ; | |||||||
123+1 | 1629 | 7307175001622 | lnk | SetCodePtr.lnk | : | jmp | SetCodePtr.ent | |||
124 | 1630 | 0602143 | lod | W1123 | ; | @1630 | ||||
125 | 1630+ | 0202145 | exa | ObjPC | ; | |||||
126 | 1631 | 0402173 | sto | W1147 | ; | |||||
127 | 1631+ | 1003221 | jmp | .1681 | ; | |||||
128 | 1632 | ; | ||||||||
129 | 1632 | .1632: | call | ; | @1632 | |||||
129+1 | 1632 | 7307175001705 | lnk | L965.lnk | : | jmp | L965.ent | |||
130 | 1633 | 0602170 | lod | idpt1 | ; | |||||
131 | 1633+ | 0402172 | sto | Link15c | ; | |||||
132 | 1634 | .1634: | ; | |||||||
133 | 1634 | 0010752600000 | o00 | Link15c | / | lod | 0 | ; | @1634 | |
134 | 1635 | 0402171 | sto | W1145 | ; | |||||
135 | 1635+ | 0062222 | and | K8191 | ;=8191 | |||||
136 | 1636 | 0202171 | exa | W1145 | ; | @1636 | ||||
137 | 1636+ | 0062213 | and | boolbit | ; | |||||
138 | 1637 | 1043146 | jz | .1638 | ; | |||||
139 | 1637+ | 0622171 | lcs | W1145 | ; | |||||
140 | 1638 | 0010752577777 | .1638: | o00 | Link15c | / | lod | -1 | ; | @1638 |
141 | 1639 | 0402165 | sto | Link15b | ; | |||||
142 | 1639+ | 0062222 | and | K8191 | ;=8191 | |||||
143 | 1640 | 0202165 | exa | Link15b | ; | @1640 | ||||
144 | 1640+ | 0062213 | and | boolbit | ; | |||||
145 | 1641 | .1641: | ; | |||||||
146 | 1641 | 1043152 | jz | .1642 | ; | |||||
147 | 1641+ | 0622165 | lcs | Link15b | ; | |||||
148 | 1642 | .1642: | ; | |||||||
149 | 1642 | 0042165 | o02 | Link15b | ; | @1642 | ||||
150 | 1642+ | 0122171 | sub | W1145 | ; | |||||
151 | 1643 | 0402165 | sto | Link15b | ; | |||||
152 | 1643+ | 1123214 | jn | .1676P | ; | |||||
153 | 1644 | 1242166 | mul | W1142 | ; | @1644 | ||||
154 | 1644+ | 1360000 | ara | 0 | ; | |||||
155 | 1645 | 0402166 | sto | W1142 | ; | |||||
156 | 1645+ | 0602171 | lod | W1145 | ; | |||||
157 | 1646 | call | ; | @1646 | ||||||
157+1 | 1646 | 7307365001676 | lnk | L958.lnk | : | jmp | L958.ent | |||
158 | 1647 | 0602165 | lod | Link15b | ; | |||||
159 | 1647+ | 0000000 | o00 | 0 | ; | |||||
160 | 1648 | call | ; | @1648 | ||||||
160+1 | 1648 | 7307365001676 | lnk | L958.lnk | : | jmp | L958.ent | |||
161 | 1649 | 0602205 | lod | K2a | ; | |||||
162 | 1649+ | 0562172 | o27 | Link15c | ; | |||||
163 | 1650 | 0602172 | lod | Link15c | ; | @1650 | ||||
164 | 1650+ | 0162160 | bus | dicpt | ; | |||||
165 | 1651 | 1023142 | jn | .1634 | ; | |||||
166 | 1651+ | 0602167 | lod | W1143 | ; | |||||
167 | 1652 | 1320001 | sll | 1 | ; | @1652 | ||||
168 | 1652+ | 0102164 | add | idcount | ;number of ids in list | |||||
169 | 1653 | 0102207 | add | K1c | ;=1 | |||||
170 | 1653+ | 0702143 | las | W1123 | ; | |||||
171 | 1654 | 0402165 | sto | Link15b | ; | @1654 | ||||
172 | 1654+ | 0602167 | lod | W1143 | ; | |||||
173 | 1655 | 1320015 | sll | 13 | ; | |||||
174 | 1655+ | 0102143 | add | W1123 | ; | |||||
175 | 1656 | 0102163 | add | W1139 | ; | @1656 | ||||
176 | 1656+ | 0102177 | add | MaxInt | ; | |||||
177 | 1657 | 0010742400001 | o00 | idpt1 | / | sto | 1 | ; | ||
178 | 1658 | 0602152 | lod | W1130 | ; | @1658 | ||||
179 | 1658+ | 1003055 | jmp | .1581 | ; | |||||
180 | 1659 | ; | ||||||||
181 | 1659 | ; no apparent reference to here !!!!!!!!!!! | ||||||||
182 | 1659 | ; | ||||||||
183 | 1659 | 0602156 | lod | frameptr | ; | @1659 | ||||
184 | 1659+ | 1103423 | jmp | lookupid.1811P | ;branch into lookup identifier | |||||
185 | 1660 | ; | ||||||||
186 | 1660 | .1660: | ; | |||||||
187 | 1660 | 0602164 | lod | idcount | ;number of ids in list | @1660 | ||||
188 | 1660+ | 0422172 | stn | Link15c | ; | |||||
189 | 1661 | 0442172 | inc | Link15c | ; | |||||
190 | 1661+ | 0140000 | .1661P: | cla | 0 | ; | ||||
191 | 1662 | call | ; | @1662 | ||||||
191+1 | 1662 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
192 | 1663 | 0042143 | o02 | W1123 | ; | |||||
193 | 1663+ | 0401422 | sto | GenAdr | ; | |||||
194 | 1664 | 0602226 | lod | K6 | ;=6 | @1664 | ||||
195 | 1664+ | 0000000 | o00 | 0 | ; | |||||
196 | 1665 | call | ; | |||||||
196+1 | 1665 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
197 | 1666 | 0602165 | lod | Link15b | ; | @1666 | ||||
198 | 1666+ | 0000000 | o00 | 0 | ; | |||||
199 | 1667 | call | ; | |||||||
199+1 | 1667 | 7307445001761 | lnk | NopRef.lnk | : | jmp | NopRef.ent | |||
200 | 1668 | 0602143 | lod | W1123 | ; | @1668 | ||||
201 | 1668+ | 0000000 | o00 | 0 | ; | |||||
202 | 1669 | call | ; | |||||||
202+1 | 1669 | 7307445001761 | lnk | NopRef.lnk | : | jmp | NopRef.ent | |||
203 | 1670 | 0602227 | lod | K26 | ;=26 | @1670 | ||||
204 | 1670+ | 0000000 | o00 | 0 | ; | |||||
205 | 1671 | call | ; | |||||||
205+1 | 1671 | 7306371001526 | lnk | putOpcd.lnk | : | jmp | putOpcd.ent | |||
206 | 1672 | 0042166 | o02 | W1142 | ; | @1672 | ||||
207 | 1672+ | 0502143 | ads | W1123 | ; | |||||
208 | 1673 | 0642172 | lis | Link15c | ; | |||||
209 | 1673+ | 1123175 | jn | .1661P | ; | |||||
210 | 1674 | call | ; | @1674 | ||||||
210+1 | 1674 | 7307175001622 | lnk | SetCodePtr.lnk | : | jmp | SetCodePtr.ent | |||
211 | 1675 | 0602173 | lod | W1147 | ; | |||||
212 | 1675+ | 0402145 | sto | ObjPC | ; | |||||
213 | 1676 | 1003131 | jmp | .1625 | ; | @1676 | ||||
214 | 1676+ | ; | ||||||||
215 | 1676+ | .1676P: | ; | |||||||
216 | 1676+ | 0042211 | o02 | K4 | ;=4+1=>5 | |||||
217 | 1677 | 1661044 | _err14: | lnk | errlnk | ;error 14: negative own array size | ||||
218 | 1677+ | 1001070 | jmp | Error | ;call error routine | |||||
219 | 1678 | 0000000 | o00 | 0 | ; | @1678 | ||||
220 | 1678+ | .1678P: | ; | |||||||
221 | 1678+ | 0042205 | o02 | K2a | ;=2+1=>3 | |||||
222 | 1679 | 1661044 | _err15: | lnk | errlnk | ;error 15: own array with variable bounds | ||||
223 | 1679+ | 1001051 | jmp | Error1 | ;goto error rtne | |||||
224 | 1680 | 1003131 | jmp | .1625 | ; | @1680 | ||||
225 | 1680+ | ; | ||||||||
226 | 1680+ | 0000000 | o00 | 0 | ||||||
227 | 1681 | ; | ||||||||
228 | 1681 | 0602152 | .1681: | lod | W1130 | ; | ||||
229 | 1681+ | 0062212 | and | B19.28 | ;=00001777000000 | |||||
230 | 1682 | 0401422 | sto | GenAdr | ; | @1682 | ||||
231 | 1682+ | 0602226 | lod | K6 | ;=6 | |||||
232 | 1683 | call | ; | |||||||
232+1 | 1683 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
233 | 1684 | 0602167 | lod | W1143 | ; | @1684 | ||||
234 | 1684+ | 1003140 | jmp | .1632 | ; | |||||
235 | 1685 | ; | ||||||||
236 | 1685 | L1685: | ; | |||||||
237 | 1685 | 0600576 | .1685: | lod | ident | ;save id info | ||||
238 | 1685+ | 0402172 | sto | Link15c | ; | |||||
239 | 1686 | call | ;see what comes next | @1686 | ||||||
239+1 | 1686 | 7305105001222 | lnk | gettoken.lnk | : | jmp | gettoken.ent | |||
240 | 1687 | 0040600 | o02 | token | ;token+1 | |||||
241 | 1687+ | 0122201 | sub | K42 | ;=42 [,]+1 | |||||
242 | 1688 | 1043243 | jz | .1699 | ; | @1688 | ||||
243 | 1688+ | 0122207 | sub | K1c | ;=1 => [:]+1 | |||||
244 | 1689 | 1043243 | jz | .1699 | ; | |||||
245 | 1689+ | 0122226 | sub | K6 | ;=6 => [)]+1 | |||||
246 | 1690 | 1043243 | jz | .1699 | ; | @1690 | ||||
247 | 1690+ | 0602171 | lod | W1145 | ; | |||||
248 | 1691 | 1043234 | jz | .1692 | ; | |||||
249 | 1691+ | 0622172 | lcs | Link15c | ; | |||||
250 | 1692 | .1692: | ; | |||||||
251 | 1692 | 0040000 | o02 | 0 | ; | @1692 | ||||
252 | 1692+ | 0202172 | exa | Link15c | ; | |||||
253 | 1693 | call | ; | |||||||
253+1 | 1693 | 7312031002407 | lnk | addtodic.lnk | : | jmp | addtodic.ent | |||
254 | 1694 | 0042160 | o02 | dicpt | ; | @1694 | ||||
255 | 1694+ | 0402173 | sto | W1147 | ; | |||||
256 | 1695 | 0102214 | add | intbit | ; | |||||
257 | 1695+ | 0404303 | sto | W2243 | ; | |||||
258 | 1696 | 0602156 | lod | frameptr | ; | @1696 | ||||
259 | 1696+ | 0202160 | exa | dicpt | ; | |||||
260 | 1697 | 1103035 | jmp | L1565P | ; | |||||
261 | 1697+ | ; | ||||||||
262 | 1697+ | 0402160 | .1697P: | sto | dicpt | ; | ||||
263 | 1698 | 0040600 | o02 | token | ; | @1698 | ||||
264 | 1698+ | 1003132 | jmp | .1626 | ; | |||||
265 | 1699 | ; | ||||||||
266 | 1699 | 0742171 | .1699: | lzs | W1145 | ; | ||||
267 | 1699+ | 1143244 | jz | .1700P | ; | |||||
268 | 1700 | 0602213 | lod | boolbit | ; | @1700 | ||||
269 | 1700+ | .1700P: | ; | |||||||
270 | 1700+ | 0102225 | add | Bbit | ;=<000/000> | |||||
271 | 1701 | 0102172 | add | Link15c | ; | |||||
272 | 1701+ | 1103043 | jmp | L1571P | ; | |||||
273 | 1702 | ; | ||||||||
274 | 1702 | .1702: | ; | |||||||
275 | 1702 | 0402170 | sto | idpt1 | ; | @1702 | ||||
276 | 1702+ | 0602162 | lod | typeinfo | ; | |||||
277 | 1703 | 1043073 | jz | .1595 | ; | |||||
278 | 1703+ | 0602161 | lod | wsptr | ; | |||||
279 | 1704 | 0402174 | sto | W1148 | ; | @1704 | ||||
280 | 1704+ | 1003073 | jmp | .1595 | ; | |||||
281 | 1705 | ; | ||||||||
282 | 1705 | L1705:: | ; | |||||||
283 | 1705 | ; | ||||||||
284 | 1705 | .ent: | ; | |||||||
285 | 1705 | 0602167 | lod | W1143 | ; | |||||
286 | 1705+ | 0124314 | sub | K32a | ; | |||||
287 | 1706 | 1021222 | jn | gettoken.ent | ; | @1706 | ||||
288 | 1706+ | 0602210 | lod | K7a | ; | |||||
289 | 1707 | 1661044 | _err16: | lnk | errlnk | ;error 16: array with >16 dims | ||||
290 | 1707+ | 1001070 | jmp | Error | ;call error routine | |||||
291 | 1708 | ;-------------------------------------------------------------------- | ||||||||
292 | 1708 | IntExprn:: | ; | |||||||
293 | 1708 | ; get integer expression, checking for simplest case etc. | ||||||||
294 | 1708 | ; only used for subscripts so we can optimise slightly | ||||||||
295 | 1708 | ; | ||||||||
296 | 1708 | =2886 | ||||||||
297 | 2886 | .ent: | ; | |||||||
298 | 2886 | call | ; | @2886 | ||||||
298+1 | 2886 | 7322411004503 | lnk | advance.lnk | : | jmp | advance.ent | |||
299 | 2887 | L2887: | ; | |||||||
300 | 2887 | .2887: | ; | |||||||
301 | 2887 | 0605436 | lod | Variable.lnk | ; | |||||
302 | 2887+ | 0000000 | o00 | 0 | ; | |||||
303 | 2888 | call | ; | @2888 | ||||||
303+1 | 2888 | 7323731005012 | lnk | push.lnk | : | jmp | push.ent | |||
304 | 2889 | 0604340 | lod | K2b | ;=2 | |||||
305 | 2889+ | 0404300 | sto | W2240 | ; | |||||
306 | 2890 | call | ;check for simple variable or constant | @2890 | ||||||
306+1 | 2890 | 7323761005054 | lnk | SimpleTerm.lnk | : | jmp | SimpleTerm.ent | |||
307 | 2891 | 1025525 | jn | .2901 | ;no, need more complex approach | |||||
308 | 2891+ | 0603427 | lod | idptr | ; | |||||
309 | 2892 | 0064324 | and | T_Mask | ;=00700000000000 mask type bits | @2892 | ||||
310 | 2892+ | 0124320 | sub | IntBit | ;=00200000000000 (integer) | |||||
311 | 2893 | 1145516 | jz | .2894P | ;value is integer | |||||
312 | 2893+ | 1005525 | jmp | .2901 | ;need conversion ? | |||||
313 | 2894 | ; | ||||||||
314 | 2894 | 0000000 | o00 | 0 | ; | @2894 | ||||
315 | 2894+ | ; | ||||||||
316 | 2894+ | 0603427 | .2894P: | lod | idptr | ; | ||||
317 | 2895 | call | ; | |||||||
317+1 | 2895 | 7323731005012 | lnk | push.lnk | : | jmp | push.ent | |||
318 | 2896 | call | ;get next token | @2896 | ||||||
318+1 | 2896 | 7322411004503 | lnk | advance.lnk | : | jmp | advance.ent | |||
319 | 2897 | call | ;see if arithmetic operator | |||||||
319+1 | 2897 | 7323761005070 | lnk | TestArithOp.lnk | : | jmp | TestArithOp.ent | |||
320 | 2898 | 1025073 | jn | Pop1 | ;no, return via stack, simplest case | @2898 | ||||
321 | 2898+ | 0040000 | o02 | 0 | ;=1 | |||||
322 | 2899 | 2710646600000 | o27 | stkp | / | lod | 0 | ; pop item from stack | ||
323 | 2900 | 0404303 | sto | W2243 | ; | @2900 | ||||
324 | 2900+ | 0444300 | inc | W2240 | ; | |||||
325 | 2901 | .2901: | ; | |||||||
326 | 2901 | call | ; | |||||||
326+1 | 2901 | 7323131004627 | lnk | expression.lnk | : | jmp | expression.ent | |||
327 | 2902 | 0010646577777 | o00 | stkp | / | lod | -1 | ; | @2902 | |
328 | 2903 | 0404306 | sto | W2246 | ; | |||||
329 | 2903+ | 0124320 | sub | IntBit | ; | |||||
330 | 2904 | 1045534 | jz | .2908 | ; | @2904 | ||||
331 | 2904+ | 0604341 | lod | K3a | ;=3 | |||||
332 | 2905 | call | ; | |||||||
332+1 | 2905 | 7320121004032 | lnk | gencode1.lnk | : | jmp | gencode1.ent | |||
333 | 2906 | 0604320 | lod | IntBit | ; | @2906 | ||||
334 | 2906+ | 0000000 | o00 | 0 | ; | |||||
335 | 2907 | 0010646377777 | o00 | stkp | / | sto | -1 | ; | ||
336 | 2908 | .2908: | ; | |||||||
337 | 2908 | call | ; | @2908 | ||||||
337+1 | 2908 | 7323761005021 | lnk | SaveTemp.lnk | : | jmp | SaveTemp.ent | |||
338 | 2909 | 1005073 | jmp | Pop1 | ;return via stack | |||||
339 | 2909+ | ; | ||||||||
340 | 2909+ | L2909P: | ; | |||||||
341 | 2909+ | .2909P: | ; | |||||||
342 | 2909+ | 0605436 | lod | Variable.lnk | ; | |||||
343 | 2910 | .2910: | ; | |||||||
344 | 2910 | call | ; | @2910 | ||||||
344+1 | 2910 | 7323731005012 | lnk | push.lnk | : | jmp | push.ent | |||
345 | 2911 | 0604341 | lod | K3a | ;=3 | |||||
346 | 2911+ | 0404300 | sto | W2240 | ; | |||||
347 | 2912 | 1005525 | jmp | .2901 | ; | @2912 | ||||
348 | 2912+ | ; | ||||||||
349 | 2912+ | 0000000 | o00 | 0 | ||||||
350 | 2913 | ; | ||||||||
351 | 2913 | ;-------------------------------------------------------------------- |