This is my first attempt to provide some kind of spreadsheet application for the DM42:
But don't expect to much. It's not that full featured and comfortable spreadsheet as it seems - it's more a "wrap'" around some features of the DM42.
Actually it manages 18 (3x6) variables (named "A1" to "C3") and 18 programs (labelled "A1" to "C3").
Any suggestions, improvements or ideas are highly welcome.
First you have to generate a font (variable FNT) with mkFNT (to be executed one time only). This is from the brilliant idea and work of Ben Smithville. Maybe the font could be less "pixelized" for a better readability.
Code: Select all
00 { 1376-Byte Prgm }
01▸LBL "mkFNT" @ Provides FNT (128x1-matrix)
02 128
03 1
04 NEWMAT
05 STO "FNT"
06 INDEX "FNT"
07 "¿¿*¿¿"
08 XEQ 99
09 ""Å¿Å""
10 XEQ 99
11 "← "
12 127
13 XTOA
14 ├"××"
15 XEQ 99
16 " @>×√"
17 XEQ 99
18 "U*U*U"
19 XEQ 99
20 "AcUIc"
21 XEQ 99
22 127
23 XTOA
24 XTOA
25 ├">Ö¿"
26 XEQ 99
27 "▒|▒|▒"
28 XEQ 99
29 "0HE@ "
30 XEQ 99
31 "PXTRQ"
32 XEQ 99
33 "→¿÷x("
34 XEQ 99
35 "QRTXP"
36 XEQ 99
37 "Å4ÖÄÅ"
38 XEQ 99
39 " p"
40 168
41 XTOA
42 ├" ?"
43 XEQ 99
44 "← ├ ←"
45 XEQ 99
46 "¿¿*Ö¿"
47 XEQ 99
48 "¿Ö*¿¿"
49 XEQ 99
50 "~ "
51 30
52 XTOA
53 ├" "
54 XEQ 99
55 "H~IA√"
56 XEQ 99
57 "÷↓[LF]↓÷"
58 XEQ 99
59 "xÄÑÄx"
60 XEQ 99
61 "|[LF]μ"}"
62 XEQ 99
63 "|°£°|"
64 XEQ 99
65 "`PXdB"
66 XEQ 99
67 ">**"÷"
68 XEQ 99
69 "~≤├IA"
70 XEQ 99
71 "`÷`÷`"
72 XEQ 99
73 "•ÑqPP"
74 XEQ 99
75 "<CBC<"
76 XEQ 99
77 "<A@A<"
78 XEQ 99
79 "U*U*U"
80 XEQ 99
81 "<<<<<"
82 XEQ 99
83 "÷÷÷÷÷"
84 XEQ 99
85 "÷÷_÷÷"
86 XEQ 99
87 "÷π÷π÷"
88 XEQ 99
89 "Å├Å├Å"
90 XEQ 99
91 "$*├*£"
92 XEQ 99
93 "#°¿db"
94 XEQ 99
95 "6IV P"
96 XEQ 99
97 "÷÷π÷÷"
98 XEQ 99
99 "÷Ö"A÷"
100 XEQ 99
101 "÷A"Ö÷"
102 XEQ 99
103 "¿*Ö*¿"
104 XEQ 99
105 "¿¿>¿¿"
106 XEQ 99
107 "÷"
108 176
109 XTOA
110 ├"p÷÷"
111 XEQ 99
112 "¿¿¿¿÷"
113 XEQ 99
114 "÷``÷÷"
115 XEQ 99
116 " ←¿▒√"
117 XEQ 99
118 ">QIE>"
119 XEQ 99
120 "÷B├@÷"
121 XEQ 99
122 "bQIIF"
123 XEQ 99
124 ""III6"
125 XEQ 99
126 "ᴇÅ£├←"
127 XEQ 99
128 "'EEE9"
129 XEQ 99
130 "<JII0"
131 XEQ 99
132 "×q≤Σ∫"
133 XEQ 99
134 "6III6"
135 XEQ 99
136 6
137 XTOA
138 ├"II)"
139 30
140 XTOA
141 XEQ 99
142 "÷66÷÷"
143 XEQ 99
144 "÷"
145 182
146 XTOA
147 ├"v÷÷"
148 XEQ 99
149 "¿Å"A÷"
150 XEQ 99
151 "ÅÅÅÅÅ"
152 XEQ 99
153 "A"Å¿÷"
154 XEQ 99
155 "√×Q≤▸"
156 XEQ 99
157 ">A]U↑"
158 XEQ 99
159 "~≤≤≤~"
160 XEQ 99
161 127
162 XTOA
163 ├"III6"
164 XEQ 99
165 ">AAA""
166 XEQ 99
167 127
168 XTOA
169 ├"AA"Ö"
170 XEQ 99
171 127
172 XTOA
173 ├"IIIA"
174 XEQ 99
175 127
176 XTOA
177 ├"≤≤≤×"
178 XEQ 99
179 ">AAQr"
180 XEQ 99
181 127
182 XTOA
183 ├"¿¿¿"
184 127
185 XTOA
186 XEQ 99
187 "÷A├A÷"
188 XEQ 99
189 "0@@@?"
190 XEQ 99
191 127
192 XTOA
193 ├"¿Å"A"
194 XEQ 99
195 127
196 XTOA
197 ├"@@@@"
198 XEQ 99
199 127
200 XTOA
201 ├"√≠√├"
202 XEQ 99
203 127
204 XTOA
205 ├"▒¿←├"
206 XEQ 99
207 ">AAA>"
208 XEQ 99
209 127
210 XTOA
211 ├"≤≤≤▸"
212 XEQ 99
213 ">AQ!↑"
214 XEQ 99
215 127
216 XTOA
217 ├"≤Æ)F"
218 XEQ 99
219 "&III2"
220 XEQ 99
221 "××├××"
222 XEQ 99
223 "?@@@?"
224 XEQ 99
225 "πᴇ`ᴇπ"
226 XEQ 99
227 127
228 XTOA
229 ├" ᴇ ├"
230 XEQ 99
231 "cÅ¿Åc"
232 XEQ 99
233 "∫▒x▒∫"
234 XEQ 99
235 "aQIEC"
236 XEQ 99
237 "÷├AA÷"
238 XEQ 99
239 "√▒¿← "
240 XEQ 99
241 "÷AA├÷"
242 XEQ 99
243 "▒√├√▒"
244 XEQ 99
245 128
246 XTOA
247 XTOA
248 XTOA
249 XTOA
250 XTOA
251 XEQ 99
252 "÷∫▒÷÷"
253 XEQ 99
254 " TTTx"
255 XEQ 99
256 127
257 XTOA
258 ├"DDD8"
259 XEQ 99
260 "8DDDD"
261 XEQ 99
262 "8DDD├"
263 XEQ 99
264 "8TTTX"
265 XEQ 99
266 "÷¿~≤√"
267 XEQ 99
268 "ᴇ"
269 164
270 XTOA
271 XTOA
272 XTOA
273 ├"x"
274 XEQ 99
275 127
276 XTOA
277 ├"▒▒▒x"
278 XEQ 99
279 "÷D}@÷"
280 XEQ 99
281 "÷@"
282 128
283 XTOA
284 132
285 XTOA
286 ├"}"
287 XEQ 99
288 127
289 XTOA
290 ├"←(D÷"
291 XEQ 99
292 "÷A├@÷"
293 XEQ 99
294 "|▒8▒|"
295 XEQ 99
296 "|▒▒▒x"
297 XEQ 99
298 "8DDD8"
299 XEQ 99
300 252
301 XTOA
302 ├"$$$ᴇ"
303 XEQ 99
304 "ᴇ$$$"
305 252
306 XTOA
307 XEQ 99
308 "|¿▒▒▒"
309 XEQ 99
310 "HTTT$"
311 XEQ 99
312 "÷▒?D "
313 XEQ 99
314 "<@@@|"
315 XEQ 99
316 "Ö @ Ö"
317 XEQ 99
318 "<@0@<"
319 XEQ 99
320 "D(←(D"
321 XEQ 99
322 "Ö |"
323 XEQ 99
324 "DdTLD"
325 XEQ 99
326 "¿6AA÷"
327 XEQ 99
328 "÷÷├÷÷"
329 XEQ 99
330 "÷AA6¿"
331 XEQ 99
332 "¿▒¿←¿"
333 XEQ 99
334 127
335 XTOA
336 ├"¿¿¿¿"
337▸LBL 99 @ Store Alpha and increment index
338 ASTO ST X
339 STOEL
340 I+
341 CLA
342 RTN
343 END
Code: Select all
00 { 64-Byte Prgm }
01▸LBL "MENU"
02 "PRINT"
03 KEY 1 XEQ "PRINT"
04 " "
05 KEY 2 XEQ 02
06 " "
07 KEY 3 XEQ 03
08 " "
09 KEY 4 XEQ 04
10 "CLR"
11 KEY 5 XEQ "CLR"
12 "CALC"
13 KEY 6 XEQ "CALC"
14 MENU
15 END
Code: Select all
00 { 81-Byte Prgm }
01▸LBL "CLR"
02 " "
03 ASTO "A1"
04 ASTO "B1"
05 ASTO "C1"
06 ASTO "A2"
07 ASTO "B2"
08 ASTO "C2"
09 ASTO "A3"
10 ASTO "B3"
11 ASTO "C3"
12 ASTO "A4"
13 ASTO "B4"
14 ASTO "C4"
15 ASTO "A5"
16 ASTO "B5"
17 ASTO "C5"
18 ASTO "A6"
19 ASTO "B6"
20 ASTO "C6"
21 END
Code: Select all
00 { 252-Byte Prgm }
01▸LBL "CALC"
02 CLX
03 STO "e" @ Sum of least squares
04 XEQ 01
05 RCL "e"
06 STO "e1"
07 XEQ "A1" @ Call all programs
08 XEQ "B1"
09 XEQ "C1"
10 XEQ "A2"
11 XEQ "B2"
12 XEQ "C2"
13 XEQ "A3"
14 XEQ "B3"
15 XEQ "C3"
16 XEQ "A4"
17 XEQ "B4"
18 XEQ "C4"
19 XEQ "A5"
20 XEQ "B5"
21 XEQ "C5"
22 XEQ "A6"
23 XEQ "B6"
24 XEQ "C6"
25 CLX
26 STO "e"
27 XEQ 01
28 RCL "e1" @ Difference of least squares
29 RCL "e"
30 -
31 RTN
32▸LBL 01 @ Calculate least squares
33 RCL "A1"
34 XEQ 02
35 RCL "B1"
36 XEQ 02
37 RCL "C1"
38 XEQ 02
39 RCL "A2"
40 XEQ 02
41 RCL "B2"
42 XEQ 02
43 RCL "C2"
44 XEQ 02
45 RCL "A3"
46 XEQ 02
47 RCL "B3"
48 XEQ 02
49 RCL "C3"
50 XEQ 02
51 RCL "A4"
52 XEQ 02
53 RCL "B4"
54 XEQ 02
55 RCL "C4"
56 XEQ 02
57 RCL "A5"
58 XEQ 02
59 RCL "B5"
60 XEQ 02
61 RCL "C5"
62 XEQ 02
63 RCL "A6"
64 XEQ 02
65 RCL "B6"
66 XEQ 02
67 RCL "C6"
68 XEQ 02
69 RTN
70▸LBL 02
71 REAL?
72 GTO 03
73 GTO 04
74▸LBL 03
75 X↑2
76 STO+ "e"
77▸LBL 04
78 RTN
79 END
Code: Select all
00 { 244-Byte Prgm }
01▸LBL "PRINT"
02 CLLCD
03 RCL "A1"
04 3
05 0
06 XEQ 98
07 RCL "B1"
08 3
09 66
10 XEQ 98
11 RCL "C1"
12 3
13 132
14 XEQ 98
15 RTN
16▸LBL 98 @ Print Z at (X,Y)
17 CLA
18 STO "cx" @ Cell coordinates
19 R↓
20 STO "cy"
21 R↓
22 STO "n" @ Number
23 STO 14
24 RCL "cx"
25 STO 10 @ 10:x
26 CLX
27 STO 11 @ 11: index to ATOX
28 STO 12 @ 12:exit program if 1
29 STO 13 @ 13:counter for printed characters
30▸LBL 14
31 1
32 STO+ 11
33 RCL 14
34 CLA
35 ARCL ST X @ X to alpha
36 RCL 11
37 STO 12 @ 12 index
38▸LBL 12
39 ATOX @ shift to appropriate character
40 DSE 12
41 GTO 12
42 ALENG @ end of string?
43 X≠0?
44 GTO 11
45 1 @ set exit flag
46 STO 12
47 R↓
48▸LBL 11
49 R↓ @ ASCII code of character
50 1
51 + @ Index of character (ASCII +1)
52 3 @ y @ print char Y (index) at pos Y,X
53 RCL 10
54 6 @ x-feed
55 +
56 STO 10
57 XEQ 99 @ print char
58 1 @ counter++
59 STO+ 13
60▸LBL 10
61 RCL 13 @ exit? (no space)
62 11 @ max digits
63 X≤Y?
64 GTO 09
65 RCL 12 @ exit? (no char left)
66 X≠0?
67 GTO 09
68 GTO 14 @ goto next char
69▸LBL 09 @ restore stack and exit
70 RTN
71▸LBL 99 @ Print character (FNT index in Z) at Y,X
72 STO "x" @ x
73 R↓
74 STO "y" @ 02:y
75 R↓
76 INDEX "FNT"
77 1
78 STOIJ
79 RCLEL
80 STO 05 @ 05:char
81 3
82 STO- "x"
83 0
84 STO 06 @ 06:steps for AROT
85 4ᴇ-3
86 STO 07 @ 07:loop index
87▸LBL 03
88 CLA
89 ARCL 05
90 RCL 06
91 AROT
92 1
93 STO+ 06
94 ATOX @ left byte of char
95 STO 00 @ 00:byte
96 1 @ x-feed
97 STO+ "x"
@ print byte (Z) at X,Y
98 7ᴇ-3
99 STO 04 @ 04:counter
100 2
101 1/X
102 STO 03 @ 03:power of 2
103▸LBL 01
104 2
105 STO× 03
106 RCL 03
107 RCL 00
108 AND
109 X=0?
110 GTO 02 @ no print if pixel=0
111 RCL "y"
112 RCL "x"
113 "∫" @ 1x2 pixel
114 AGRAPH
115▸LBL 02
116 2 @ y-feed
117 STO+ "y"
118 ISG 04
119 GTO 01
120 16 @ reset y (8x2 pixel)
121 STO- "y"
122 ISG 07
123 GTO 03
124 RTN
125 END
Code: Select all
00 { 314-Byte Prgm }
01▸LBL "A1"
02 "n"
03 ASTO "A1"
04 RTN
05▸LBL "B1"
06 "n↑2"
07 ASTO "B1"
08 RTN
09▸LBL "C1"
10 "√n"
11 ASTO "C1"
12 RTN
13▸LBL "A2"
14 1
15 STO "A2"
16 RTN
17▸LBL "B2"
18 RCL "A2"
19 X↑2
20 STO "B2"
21 RTN
22▸LBL "C2"
23 RCL "A2"
24 SQRT
25 STO "C2"
26 RTN
27▸LBL "A3"
28 RCL "A2"
29 1
30 +
31 STO "A3"
32 RTN
33▸LBL "B3"
34 RCL "A3"
35 X↑2
36 STO "B3"
37 RTN
38▸LBL "C3"
39 RCL "A3"
40 SQRT
41 STO "C3"
42 RTN
43▸LBL "A4"
44 RCL "A3"
45 1
46 +
47 STO "A4"
48 RTN
49▸LBL "B4"
50 RCL "A4"
51 X↑2
52 STO "B4"
53 RTN
54▸LBL "C4"
55 RCL "A4"
56 SQRT
57 STO "C4"
58 RTN
59▸LBL "A5"
60 RCL "A4"
61 1
62 +
63 STO "A5"
64 RTN
65▸LBL "B5"
66 RCL "A5"
67 X↑2
68 STO "B5"
69 RTN
70▸LBL "C5"
71 RCL "A5"
72 SQRT
73 STO "C5"
74 RTN
75▸LBL "A6"
76 "Total"
77 ASTO "A6"
78 RTN
79▸LBL "B6"
80 RCL "B2"
81 RCL "B3"
82 +
83 RCL "B4"
84 +
85 RCL "B5"
86 +
87 STO "B6"
88 RTN
89▸LBL "C6"
90 RCL "C2"
91 RCL "C3"
92 +
93 RCL "C4"
94 +
95 RCL "C5"
96 +
97 STO "C6"
98 RTN
Last the all in one file:
Regards
deetee