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

Subversion Repositories c16

[/] [c16/] [trunk/] [test.asm] - Blame information for rev 26

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 jsauermann
IN_RX_DATA              = 0x00          ;
2
IN_STATUS               = 0x01          ;
3
IN_TEMPERAT             = 0x02          ;
4
IN_DIP_SWITCH           = 0x03          ;
5
IN_CLK_CTR_LOW          = 0x05          ;
6
IN_CLK_CTR_HIGH         = 0x06          ;
7
 
8
MEMTOP  =0x2000
9
 
10
OUT_TX_DATA             = 0x00          ;
11
OUT_LEDS                = 0x02          ;
12
OUT_INT_MASK            = 0x03          ;
13
OUT_RESET_TIMER         = 0x04          ;
14
OUT_START_CLK_CTR       = 0x05          ;
15
OUT_STOP_CLK_CTR        = 0x06          ;
16
;---------------------------------------;
17
        MOVE    #MEMTOP, RR             ;
18
        MOVE    RR, SP                  ;
19
        EI                              ;
20
        JMP     Cmain                   ;
21
        JMP     Cinterrupt              ;
22
;---------------------------------------;
23
mult_div:                               ;
24
        MD_STP                          ; 1
25
        MD_STP                          ; 2
26
        MD_STP                          ; 3
27
        MD_STP                          ; 4
28
        MD_STP                          ; 5
29
        MD_STP                          ; 6
30
        MD_STP                          ; 7
31
        MD_STP                          ; 8
32
        MD_STP                          ; 9
33
        MD_STP                          ; 10
34
        MD_STP                          ; 11
35
        MD_STP                          ; 12
36
        MD_STP                          ; 13
37
        MD_STP                          ; 14
38
        MD_STP                          ; 15
39
        MD_STP                          ; 16
40
        RET                             ;
41
;---------------------------------------;
42
;;; { 0 Declaration
43
;;;   { 1 TypeSpecifier (all)
44
;;;     spec = unsigned char (22000)
45
;;;   } 1 TypeSpecifier (all)
46
Cserial_in_buffer:                      ;
47
        .BYTE   0                        ; VOID [0]
48
        .BYTE   0                        ; VOID [1]
49
        .BYTE   0                        ; VOID [2]
50
        .BYTE   0                        ; VOID [3]
51
        .BYTE   0                        ; VOID [4]
52
        .BYTE   0                        ; VOID [5]
53
        .BYTE   0                        ; VOID [6]
54
        .BYTE   0                        ; VOID [7]
55
        .BYTE   0                        ; VOID [8]
56
        .BYTE   0                        ; VOID [9]
57
        .BYTE   0                        ; VOID [10]
58
        .BYTE   0                        ; VOID [11]
59
        .BYTE   0                        ; VOID [12]
60
        .BYTE   0                        ; VOID [13]
61
        .BYTE   0                        ; VOID [14]
62
        .BYTE   0                        ; VOID [15]
63
;;; } 0 Declaration
64
;;; ------------------------------------;
65
;;; { 0 Declaration
66
;;;   { 1 TypeSpecifier (all)
67
;;;     spec = unsigned char (22000)
68
;;;   } 1 TypeSpecifier (all)
69
Cserial_in_get:                 ;
70
        .BYTE   0
71
;;; } 0 Declaration
72
;;; ------------------------------------;
73
;;; { 0 Declaration
74
;;;   { 1 TypeSpecifier (all)
75
;;;     spec = unsigned char (22000)
76
;;;   } 1 TypeSpecifier (all)
77
Cserial_in_put:                 ;
78
        .BYTE   0
79
;;; } 0 Declaration
80
;;; ------------------------------------;
81
;;; { 0 Declaration
82
;;;   { 1 TypeSpecifier (all)
83
;;;     spec = unsigned char (22000)
84
;;;   } 1 TypeSpecifier (all)
85
Cserial_in_length:                      ;
86
        .BYTE   0
87
;;; } 0 Declaration
88
;;; ------------------------------------;
89
;;; { 0 Declaration
90
;;;   { 1 TypeSpecifier (all)
91
;;;     spec = unsigned char (22000)
92
;;;   } 1 TypeSpecifier (all)
93
Cserial_in_overflow:                    ;
94
        .BYTE   0
95
;;; } 0 Declaration
96
;;; ------------------------------------;
97
;;; { 0 FunctionDefinition
98
;;;   { 1 TypeName
99
;;;     { 2 TypeSpecifier (all)
100
;;;       spec = void (10000)
101
;;;     } 2 TypeSpecifier (all)
102
;;;     { 2 List
103
;;;       { 3 DeclItem
104
;;;         what = DECL_NAME
105
;;;         name = rx_interrupt
106
;;;       } 3 DeclItem
107
;;;     } 2 List
108
;;;   } 1 TypeName
109
;;;   { 1 List
110
;;;     { 2 DeclItem
111
;;;       what = DECL_NAME
112
;;;       name = rx_interrupt
113
;;;     } 2 DeclItem
114
;;;     { 2 DeclItem
115
;;;       what = DECL_FUN
116
;;;     } 2 DeclItem
117
;;;   } 1 List
118
Crx_interrupt:
119 7 jsauermann
;;;   { 1 CompoundStatement
120
;;;     { 2 InitDeclarator
121
;;;       { 3 List
122
;;;         { 4 DeclItem
123
;;;           what = DECL_NAME
124
;;;           name = c
125
;;;         } 4 DeclItem
126
;;;       } 3 List
127
;;;       { 3 Initializer (skalar)
128 2 jsauermann
        IN   (IN_RX_DATA), RU
129
;--     push_rr (8 bit)
130
        MOVE    R, -(SP)
131 7 jsauermann
;;;       } 3 Initializer (skalar)
132
;;;     } 2 InitDeclarator
133 2 jsauermann
;;;     { 2 List
134
;;;       { 3 IfElseStatement
135
;;;         { 4 Expr l < r
136
;;;           { 5 TypeName (internal)
137
;;;             { 6 TypeSpecifier (all)
138
;;;               spec = unsigned int (82000)
139
;;;             } 6 TypeSpecifier (all)
140
;;;           } 5 TypeName (internal)
141
;;;           { 5 Expression (variable name)
142
;;;             expr_type = "identifier" (serial_in_length)
143
;--     load_rr_var serial_in_length, (8 bit)
144
        MOVE    (Cserial_in_length), RU
145
;;;           } 5 Expression (variable name)
146
;--     l < r
147
        SLO     RR, #0x0010
148
;;;         } 4 Expr l < r
149
;--     branch_false
150
        JMP     RRZ, L2_else_1
151
;;;         { 4 CompoundStatement
152
;;;           { 5 List
153
;;;             { 6 ExpressionStatement
154
;;;               { 7 Expr l = r
155
;;;                 { 8 TypeName
156
;;;                   { 9 TypeSpecifier (all)
157
;;;                     spec = unsigned char (22000)
158
;;;                   } 9 TypeSpecifier (all)
159
;;;                   { 9 List
160
;;;                     { 10 DeclItem
161
;;;                       what = DECL_NAME
162
;;;                       name = serial_in_buffer
163
;;;                     } 10 DeclItem
164
;;;                   } 9 List
165
;;;                 } 8 TypeName
166
;;;                 { 8 Expression (variable name)
167
;;;                   expr_type = "identifier" (c)
168
;--     load_rr_var c = -1(FP), SP at -1 (8 bit)
169
        MOVE    0(SP), RS
170
;;;                 } 8 Expression (variable name)
171
;--     push_rr (8 bit)
172
        MOVE    R, -(SP)
173
;;;                 { 8 Expr l[r]
174
;;;                   { 9 Expression (variable name)
175
;;;                     expr_type = "identifier" (serial_in_put)
176
;--     load_rr_var serial_in_put, (8 bit)
177
        MOVE    (Cserial_in_put), RU
178
;;;                   } 9 Expression (variable name)
179
;--     scale_rr *1
180
;--     add_address serial_in_buffer
181
        ADD     RR, #Cserial_in_buffer
182
;;;                 } 8 Expr l[r]
183
;--     move_rr_to_ll
184
        MOVE    RR, LL
185
;--     pop_rr (8 bit)
186
        MOVE    (SP)+, RU
187
;--     assign (8 bit)
188
        MOVE    R, (LL)
189
;;;               } 7 Expr l = r
190
;;;             } 6 ExpressionStatement
191
;;;             { 6 ExpressionStatement
192
;;;               { 7 Expr l = r
193
;;;                 { 8 TypeName
194
;;;                   { 9 TypeSpecifier (all)
195
;;;                     spec = unsigned char (22000)
196
;;;                   } 9 TypeSpecifier (all)
197
;;;                   { 9 List
198
;;;                     { 10 DeclItem
199
;;;                       what = DECL_NAME
200
;;;                       name = serial_in_put
201
;;;                     } 10 DeclItem
202
;;;                   } 9 List
203
;;;                 } 8 TypeName
204
;;;                 { 8 Expr l & r
205
;;;                   { 9 TypeName (internal)
206
;;;                     { 10 TypeSpecifier (all)
207
;;;                       spec = unsigned int (82000)
208
;;;                     } 10 TypeSpecifier (all)
209
;;;                   } 9 TypeName (internal)
210
;;;                   { 9 Expr ++r
211
;;;                     { 10 Expression (variable name)
212
;;;                       expr_type = "identifier" (serial_in_put)
213
;--     load_rr_var serial_in_put, (8 bit)
214
        MOVE    (Cserial_in_put), RU
215
;;;                     } 10 Expression (variable name)
216
;--     ++
217
        ADD     RR, #0x0001
218
;--     store_rr_var serial_in_put
219
        MOVE    R, (Cserial_in_put)
220
;;;                   } 9 Expr ++r
221
;--     l & r
222
        AND     RR, #0x000F
223
;;;                 } 8 Expr l & r
224
;--     store_rr_var serial_in_put
225
        MOVE    R, (Cserial_in_put)
226
;;;               } 7 Expr l = r
227
;;;             } 6 ExpressionStatement
228
;;;             { 6 ExpressionStatement
229
;;;               { 7 Expr ++r
230
;;;                 { 8 Expression (variable name)
231
;;;                   expr_type = "identifier" (serial_in_length)
232
;--     load_rr_var serial_in_length, (8 bit)
233
        MOVE    (Cserial_in_length), RU
234
;;;                 } 8 Expression (variable name)
235
;--     ++
236
        ADD     RR, #0x0001
237
;--     store_rr_var serial_in_length
238
        MOVE    R, (Cserial_in_length)
239
;;;               } 7 Expr ++r
240
;;;             } 6 ExpressionStatement
241
;;;           } 5 List
242 7 jsauermann
;--     pop 0 bytes
243 2 jsauermann
;;;         } 4 CompoundStatement
244
;--     branch
245
        JMP     L2_endif_1
246
L2_else_1:
247
;;;         { 4 CompoundStatement
248
;;;           { 5 List
249
;;;             { 6 ExpressionStatement
250
;;;               { 7 Expr l = r
251
;;;                 { 8 TypeName
252
;;;                   { 9 TypeSpecifier (all)
253
;;;                     spec = unsigned char (22000)
254
;;;                   } 9 TypeSpecifier (all)
255
;;;                   { 9 List
256
;;;                     { 10 DeclItem
257
;;;                       what = DECL_NAME
258
;;;                       name = serial_in_overflow
259
;;;                     } 10 DeclItem
260
;;;                   } 9 List
261
;;;                 } 8 TypeName
262
;;;                 { 8 NumericExpression (constant 255 = 0xFF)
263
;--     load_rr_constant
264
        MOVE    #0x00FF, RR
265
;;;                 } 8 NumericExpression (constant 255 = 0xFF)
266
;--     store_rr_var serial_in_overflow
267
        MOVE    R, (Cserial_in_overflow)
268
;;;               } 7 Expr l = r
269
;;;             } 6 ExpressionStatement
270
;;;           } 5 List
271 7 jsauermann
;--     pop 0 bytes
272 2 jsauermann
;;;         } 4 CompoundStatement
273
L2_endif_1:
274
;;;       } 3 IfElseStatement
275
;;;     } 2 List
276 7 jsauermann
;--     pop 1 bytes
277
        ADD     SP, #1
278 2 jsauermann
;;;   } 1 CompoundStatement
279
;--     ret
280
        RET
281
;;; ------------------------------------;
282 7 jsauermann
;;;   { 1 Declaration
283
;;;     { 2 TypeSpecifier (all)
284
;;;       spec = unsigned char (22000)
285
;;;     } 2 TypeSpecifier (all)
286 2 jsauermann
Cserial_out_buffer:                     ;
287
        .BYTE   0                        ; VOID [0]
288
        .BYTE   0                        ; VOID [1]
289
        .BYTE   0                        ; VOID [2]
290
        .BYTE   0                        ; VOID [3]
291
        .BYTE   0                        ; VOID [4]
292
        .BYTE   0                        ; VOID [5]
293
        .BYTE   0                        ; VOID [6]
294
        .BYTE   0                        ; VOID [7]
295
        .BYTE   0                        ; VOID [8]
296
        .BYTE   0                        ; VOID [9]
297
        .BYTE   0                        ; VOID [10]
298
        .BYTE   0                        ; VOID [11]
299
        .BYTE   0                        ; VOID [12]
300
        .BYTE   0                        ; VOID [13]
301
        .BYTE   0                        ; VOID [14]
302
        .BYTE   0                        ; VOID [15]
303 7 jsauermann
;;;   } 1 Declaration
304 2 jsauermann
;;; ------------------------------------;
305 7 jsauermann
;;;   { 1 Declaration
306
;;;     { 2 TypeSpecifier (all)
307
;;;       spec = unsigned char (22000)
308
;;;     } 2 TypeSpecifier (all)
309 2 jsauermann
Cserial_out_get:                        ;
310
        .BYTE   0
311 7 jsauermann
;;;   } 1 Declaration
312 2 jsauermann
;;; ------------------------------------;
313 7 jsauermann
;;;   { 1 Declaration
314
;;;     { 2 TypeSpecifier (all)
315
;;;       spec = unsigned char (22000)
316
;;;     } 2 TypeSpecifier (all)
317 2 jsauermann
Cserial_out_put:                        ;
318
        .BYTE   0
319 7 jsauermann
;;;   } 1 Declaration
320 2 jsauermann
;;; ------------------------------------;
321 7 jsauermann
;;;   { 1 Declaration
322
;;;     { 2 TypeSpecifier (all)
323
;;;       spec = unsigned char (22000)
324
;;;     } 2 TypeSpecifier (all)
325 2 jsauermann
Cserial_out_length:                     ;
326
        .BYTE   0
327 7 jsauermann
;;;   } 1 Declaration
328 2 jsauermann
;;; ------------------------------------;
329 7 jsauermann
;;;   { 1 FunctionDefinition
330
;;;     { 2 TypeName
331
;;;       { 3 TypeSpecifier (all)
332
;;;         spec = void (10000)
333
;;;       } 3 TypeSpecifier (all)
334
;;;       { 3 List
335
;;;         { 4 DeclItem
336
;;;           what = DECL_NAME
337
;;;           name = tx_interrupt
338
;;;         } 4 DeclItem
339
;;;       } 3 List
340
;;;     } 2 TypeName
341 2 jsauermann
;;;     { 2 List
342
;;;       { 3 DeclItem
343
;;;         what = DECL_NAME
344
;;;         name = tx_interrupt
345
;;;       } 3 DeclItem
346 7 jsauermann
;;;       { 3 DeclItem
347
;;;         what = DECL_FUN
348
;;;       } 3 DeclItem
349 2 jsauermann
;;;     } 2 List
350
Ctx_interrupt:
351 7 jsauermann
;;;     { 2 CompoundStatement
352
;;;       { 3 List
353
;;;         { 4 IfElseStatement
354
;;;           { 5 Expression (variable name)
355
;;;             expr_type = "identifier" (serial_out_length)
356 2 jsauermann
;--     load_rr_var serial_out_length, (8 bit)
357
        MOVE    (Cserial_out_length), RU
358 7 jsauermann
;;;           } 5 Expression (variable name)
359 2 jsauermann
;--     branch_false
360
        JMP     RRZ, L3_else_2
361 7 jsauermann
;;;           { 5 CompoundStatement
362
;;;             { 6 List
363
;;;               { 7 ExpressionStatement
364 2 jsauermann
;;;                 { 8 Expr l[r]
365 7 jsauermann
;;;                   { 9 TypeName
366
;;;                     { 10 TypeSpecifier (all)
367
;;;                       spec = unsigned char (22000)
368
;;;                     } 10 TypeSpecifier (all)
369
;;;                     { 10 List
370
;;;                       { 11 DeclItem
371
;;;                         what = DECL_NAME
372
;;;                         name = serial_out_buffer
373
;;;                       } 11 DeclItem
374
;;;                     } 10 List
375
;;;                   } 9 TypeName
376
;;;                   { 9 Expr l[r]
377
;;;                     { 10 Expression (variable name)
378
;;;                       expr_type = "identifier" (serial_out_get)
379 2 jsauermann
;--     load_rr_var serial_out_get, (8 bit)
380
        MOVE    (Cserial_out_get), RU
381 7 jsauermann
;;;                     } 10 Expression (variable name)
382 2 jsauermann
;--     scale_rr *1
383
;--     add_address serial_out_buffer
384
        ADD     RR, #Cserial_out_buffer
385 7 jsauermann
;;;                   } 9 Expr l[r]
386 2 jsauermann
;--     content
387
        MOVE    (RR), RU
388 7 jsauermann
;;;                 } 8 Expr l[r]
389
;;;               } 7 ExpressionStatement
390
;;;               { 7 ExpressionStatement
391 2 jsauermann
        OUT  R, (OUT_TX_DATA)
392 7 jsauermann
;;;               } 7 ExpressionStatement
393
;;;               { 7 ExpressionStatement
394
;;;                 { 8 Expr l = r
395
;;;                   { 9 TypeName
396 2 jsauermann
;;;                     { 10 TypeSpecifier (all)
397 7 jsauermann
;;;                       spec = unsigned char (22000)
398 2 jsauermann
;;;                     } 10 TypeSpecifier (all)
399 7 jsauermann
;;;                     { 10 List
400
;;;                       { 11 DeclItem
401
;;;                         what = DECL_NAME
402
;;;                         name = serial_out_get
403
;;;                       } 11 DeclItem
404
;;;                     } 10 List
405
;;;                   } 9 TypeName
406
;;;                   { 9 Expr l & r
407
;;;                     { 10 TypeName (internal)
408
;;;                       { 11 TypeSpecifier (all)
409
;;;                         spec = unsigned int (82000)
410
;;;                       } 11 TypeSpecifier (all)
411
;;;                     } 10 TypeName (internal)
412
;;;                     { 10 Expr ++r
413
;;;                       { 11 Expression (variable name)
414
;;;                         expr_type = "identifier" (serial_out_get)
415 2 jsauermann
;--     load_rr_var serial_out_get, (8 bit)
416
        MOVE    (Cserial_out_get), RU
417 7 jsauermann
;;;                       } 11 Expression (variable name)
418 2 jsauermann
;--     ++
419
        ADD     RR, #0x0001
420
;--     store_rr_var serial_out_get
421
        MOVE    R, (Cserial_out_get)
422 7 jsauermann
;;;                     } 10 Expr ++r
423 2 jsauermann
;--     l & r
424
        AND     RR, #0x000F
425 7 jsauermann
;;;                   } 9 Expr l & r
426 2 jsauermann
;--     store_rr_var serial_out_get
427
        MOVE    R, (Cserial_out_get)
428 7 jsauermann
;;;                 } 8 Expr l = r
429
;;;               } 7 ExpressionStatement
430
;;;               { 7 ExpressionStatement
431
;;;                 { 8 Expr --r
432
;;;                   { 9 Expression (variable name)
433
;;;                     expr_type = "identifier" (serial_out_length)
434 2 jsauermann
;--     load_rr_var serial_out_length, (8 bit)
435
        MOVE    (Cserial_out_length), RU
436 7 jsauermann
;;;                   } 9 Expression (variable name)
437 2 jsauermann
;--     --
438
        SUB     RR, #0x0001
439
;--     store_rr_var serial_out_length
440
        MOVE    R, (Cserial_out_length)
441 7 jsauermann
;;;                 } 8 Expr --r
442
;;;               } 7 ExpressionStatement
443
;;;             } 6 List
444
;--     pop 0 bytes
445
;;;           } 5 CompoundStatement
446 2 jsauermann
;--     branch
447
        JMP     L3_endif_2
448
L3_else_2:
449 7 jsauermann
;;;           { 5 CompoundStatement
450
;;;             { 6 List
451
;;;               { 7 ExpressionStatement
452 2 jsauermann
        MOVE #0x05, RR
453 7 jsauermann
;;;               } 7 ExpressionStatement
454
;;;               { 7 ExpressionStatement
455 2 jsauermann
        OUT  R, (OUT_INT_MASK)
456 7 jsauermann
;;;               } 7 ExpressionStatement
457
;;;             } 6 List
458
;--     pop 0 bytes
459
;;;           } 5 CompoundStatement
460 2 jsauermann
L3_endif_2:
461 7 jsauermann
;;;         } 4 IfElseStatement
462
;;;       } 3 List
463
;--     pop 0 bytes
464
;;;     } 2 CompoundStatement
465 2 jsauermann
;--     ret
466
        RET
467
;;; ------------------------------------;
468 7 jsauermann
;;;     { 2 Declaration
469
;;;       { 3 TypeSpecifier (all)
470
;;;         spec = unsigned int (82000)
471
;;;       } 3 TypeSpecifier (all)
472 2 jsauermann
Cmilliseconds:                  ;
473
        .WORD   0
474 7 jsauermann
;;;     } 2 Declaration
475 2 jsauermann
;;; ------------------------------------;
476 7 jsauermann
;;;     { 2 Declaration
477
;;;       { 3 TypeSpecifier (all)
478
;;;         spec = unsigned int (82000)
479
;;;       } 3 TypeSpecifier (all)
480 2 jsauermann
Cseconds_low:                   ;
481
        .WORD   0
482 7 jsauermann
;;;     } 2 Declaration
483 2 jsauermann
;;; ------------------------------------;
484 7 jsauermann
;;;     { 2 Declaration
485
;;;       { 3 TypeSpecifier (all)
486
;;;         spec = unsigned int (82000)
487
;;;       } 3 TypeSpecifier (all)
488 2 jsauermann
Cseconds_mid:                   ;
489
        .WORD   0
490 7 jsauermann
;;;     } 2 Declaration
491 2 jsauermann
;;; ------------------------------------;
492 7 jsauermann
;;;     { 2 Declaration
493
;;;       { 3 TypeSpecifier (all)
494
;;;         spec = unsigned int (82000)
495
;;;       } 3 TypeSpecifier (all)
496 2 jsauermann
Cseconds_high:                  ;
497
        .WORD   0
498 7 jsauermann
;;;     } 2 Declaration
499 2 jsauermann
;;; ------------------------------------;
500 7 jsauermann
;;;     { 2 Declaration
501
;;;       { 3 TypeSpecifier (all)
502
;;;         spec = unsigned char (22000)
503
;;;       } 3 TypeSpecifier (all)
504 2 jsauermann
Cseconds_changed:                       ;
505
        .BYTE   0
506 7 jsauermann
;;;     } 2 Declaration
507 2 jsauermann
;;; ------------------------------------;
508 7 jsauermann
;;;     { 2 FunctionDefinition
509
;;;       { 3 TypeName
510
;;;         { 4 TypeSpecifier (all)
511
;;;           spec = void (10000)
512
;;;         } 4 TypeSpecifier (all)
513
;;;         { 4 List
514
;;;           { 5 DeclItem
515
;;;             what = DECL_NAME
516
;;;             name = timer_interrupt
517
;;;           } 5 DeclItem
518
;;;         } 4 List
519
;;;       } 3 TypeName
520
;;;       { 3 List
521
;;;         { 4 DeclItem
522
;;;           what = DECL_NAME
523
;;;           name = timer_interrupt
524
;;;         } 4 DeclItem
525
;;;         { 4 DeclItem
526
;;;           what = DECL_FUN
527
;;;         } 4 DeclItem
528
;;;       } 3 List
529 2 jsauermann
Ctimer_interrupt:
530 7 jsauermann
;;;       { 3 CompoundStatement
531
;;;         { 4 List
532
;;;           { 5 ExpressionStatement
533 2 jsauermann
        OUT  R, (OUT_RESET_TIMER)
534 7 jsauermann
;;;           } 5 ExpressionStatement
535
;;;           { 5 IfElseStatement
536
;;;             { 6 Expr l == r
537
;;;               { 7 TypeName (internal)
538
;;;                 { 8 TypeSpecifier (all)
539
;;;                   spec = unsigned int (82000)
540
;;;                 } 8 TypeSpecifier (all)
541
;;;               } 7 TypeName (internal)
542
;;;               { 7 Expr ++r
543
;;;                 { 8 Expression (variable name)
544
;;;                   expr_type = "identifier" (milliseconds)
545 2 jsauermann
;--     load_rr_var milliseconds, (16 bit)
546
        MOVE    (Cmilliseconds), RR
547 7 jsauermann
;;;                 } 8 Expression (variable name)
548 2 jsauermann
;--     ++
549
        ADD     RR, #0x0001
550
;--     store_rr_var milliseconds
551
        MOVE    RR, (Cmilliseconds)
552 7 jsauermann
;;;               } 7 Expr ++r
553 2 jsauermann
;--     l == r
554
        SEQ     RR, #0x03E8
555 7 jsauermann
;;;             } 6 Expr l == r
556 2 jsauermann
;--     branch_false
557
        JMP     RRZ, L4_endif_3
558 7 jsauermann
;;;             { 6 CompoundStatement
559
;;;               { 7 List
560
;;;                 { 8 ExpressionStatement
561
;;;                   { 9 Expr l = r
562
;;;                     { 10 TypeName
563
;;;                       { 11 TypeSpecifier (all)
564
;;;                         spec = unsigned int (82000)
565
;;;                       } 11 TypeSpecifier (all)
566
;;;                       { 11 List
567
;;;                         { 12 DeclItem
568
;;;                           what = DECL_NAME
569
;;;                           name = milliseconds
570
;;;                         } 12 DeclItem
571
;;;                       } 11 List
572
;;;                     } 10 TypeName
573
;;;                     { 10 NumericExpression (constant 0 = 0x0)
574 2 jsauermann
;--     load_rr_constant
575
        MOVE    #0x0000, RR
576 7 jsauermann
;;;                     } 10 NumericExpression (constant 0 = 0x0)
577 2 jsauermann
;--     store_rr_var milliseconds
578
        MOVE    RR, (Cmilliseconds)
579 7 jsauermann
;;;                   } 9 Expr l = r
580
;;;                 } 8 ExpressionStatement
581
;;;                 { 8 ExpressionStatement
582
;;;                   { 9 Expr l = r
583
;;;                     { 10 TypeName
584
;;;                       { 11 TypeSpecifier (all)
585
;;;                         spec = unsigned char (22000)
586
;;;                       } 11 TypeSpecifier (all)
587
;;;                       { 11 List
588
;;;                         { 12 DeclItem
589
;;;                           what = DECL_NAME
590
;;;                           name = seconds_changed
591
;;;                         } 12 DeclItem
592
;;;                       } 11 List
593
;;;                     } 10 TypeName
594
;;;                     { 10 NumericExpression (constant 255 = 0xFF)
595 2 jsauermann
;--     load_rr_constant
596
        MOVE    #0x00FF, RR
597 7 jsauermann
;;;                     } 10 NumericExpression (constant 255 = 0xFF)
598 2 jsauermann
;--     store_rr_var seconds_changed
599
        MOVE    R, (Cseconds_changed)
600 7 jsauermann
;;;                   } 9 Expr l = r
601
;;;                 } 8 ExpressionStatement
602
;;;                 { 8 IfElseStatement
603
;;;                   { 9 Expr l == r
604
;;;                     { 10 TypeName (internal)
605
;;;                       { 11 TypeSpecifier (all)
606
;;;                         spec = unsigned int (82000)
607
;;;                       } 11 TypeSpecifier (all)
608
;;;                     } 10 TypeName (internal)
609
;;;                     { 10 Expr ++r
610
;;;                       { 11 Expression (variable name)
611
;;;                         expr_type = "identifier" (seconds_low)
612 2 jsauermann
;--     load_rr_var seconds_low, (16 bit)
613
        MOVE    (Cseconds_low), RR
614 7 jsauermann
;;;                       } 11 Expression (variable name)
615 2 jsauermann
;--     ++
616
        ADD     RR, #0x0001
617
;--     store_rr_var seconds_low
618
        MOVE    RR, (Cseconds_low)
619 7 jsauermann
;;;                     } 10 Expr ++r
620 2 jsauermann
;--     l == r
621
        SEQ     RR, #0x0000
622 7 jsauermann
;;;                   } 9 Expr l == r
623 2 jsauermann
;--     branch_false
624
        JMP     RRZ, L4_endif_4
625 7 jsauermann
;;;                   { 9 CompoundStatement
626
;;;                     { 10 List
627
;;;                       { 11 IfElseStatement
628
;;;                         { 12 Expr l == r
629
;;;                           { 13 TypeName (internal)
630
;;;                             { 14 TypeSpecifier (all)
631
;;;                               spec = unsigned int (82000)
632
;;;                             } 14 TypeSpecifier (all)
633
;;;                           } 13 TypeName (internal)
634
;;;                           { 13 Expr ++r
635
;;;                             { 14 Expression (variable name)
636
;;;                               expr_type = "identifier" (seconds_mid)
637 2 jsauermann
;--     load_rr_var seconds_mid, (16 bit)
638
        MOVE    (Cseconds_mid), RR
639 7 jsauermann
;;;                             } 14 Expression (variable name)
640 2 jsauermann
;--     ++
641
        ADD     RR, #0x0001
642
;--     store_rr_var seconds_mid
643
        MOVE    RR, (Cseconds_mid)
644 7 jsauermann
;;;                           } 13 Expr ++r
645 2 jsauermann
;--     l == r
646
        SEQ     RR, #0x0000
647 7 jsauermann
;;;                         } 12 Expr l == r
648 2 jsauermann
;--     branch_false
649
        JMP     RRZ, L4_endif_5
650 7 jsauermann
;;;                         { 12 ExpressionStatement
651
;;;                           { 13 Expr ++r
652
;;;                             { 14 Expression (variable name)
653
;;;                               expr_type = "identifier" (seconds_high)
654 2 jsauermann
;--     load_rr_var seconds_high, (16 bit)
655
        MOVE    (Cseconds_high), RR
656 7 jsauermann
;;;                             } 14 Expression (variable name)
657 2 jsauermann
;--     ++
658
        ADD     RR, #0x0001
659
;--     store_rr_var seconds_high
660
        MOVE    RR, (Cseconds_high)
661 7 jsauermann
;;;                           } 13 Expr ++r
662
;;;                         } 12 ExpressionStatement
663 2 jsauermann
L4_endif_5:
664 7 jsauermann
;;;                       } 11 IfElseStatement
665
;;;                     } 10 List
666
;--     pop 0 bytes
667
;;;                   } 9 CompoundStatement
668 2 jsauermann
L4_endif_4:
669 7 jsauermann
;;;                 } 8 IfElseStatement
670
;;;               } 7 List
671
;--     pop 0 bytes
672
;;;             } 6 CompoundStatement
673 2 jsauermann
L4_endif_3:
674 7 jsauermann
;;;           } 5 IfElseStatement
675
;;;         } 4 List
676
;--     pop 0 bytes
677
;;;       } 3 CompoundStatement
678 2 jsauermann
;--     ret
679
        RET
680
;;; ------------------------------------;
681 7 jsauermann
;;;       { 3 FunctionDefinition
682
;;;         { 4 TypeName
683
;;;           { 5 TypeSpecifier (all)
684
;;;             spec = void (10000)
685
;;;           } 5 TypeSpecifier (all)
686
;;;           { 5 List
687
;;;             { 6 DeclItem
688
;;;               what = DECL_NAME
689
;;;               name = interrupt
690
;;;             } 6 DeclItem
691
;;;           } 5 List
692
;;;         } 4 TypeName
693
;;;         { 4 List
694
;;;           { 5 DeclItem
695
;;;             what = DECL_NAME
696
;;;             name = interrupt
697
;;;           } 5 DeclItem
698
;;;           { 5 DeclItem
699
;;;             what = DECL_FUN
700
;;;           } 5 DeclItem
701
;;;         } 4 List
702 2 jsauermann
Cinterrupt:
703 7 jsauermann
;;;         { 4 CompoundStatement
704
;;;           { 5 List
705
;;;             { 6 ExpressionStatement
706 2 jsauermann
        MOVE RR, -(SP)
707 7 jsauermann
;;;             } 6 ExpressionStatement
708
;;;             { 6 ExpressionStatement
709 2 jsauermann
        MOVE LL, RR
710 7 jsauermann
;;;             } 6 ExpressionStatement
711
;;;             { 6 ExpressionStatement
712 2 jsauermann
        MOVE RR, -(SP)
713 7 jsauermann
;;;             } 6 ExpressionStatement
714
;;;             { 6 IfElseStatement
715
;;;               { 7 Expr l & r
716
;;;                 { 8 TypeName (internal)
717
;;;                   { 9 TypeSpecifier (all)
718
;;;                     spec = int (80000)
719
;;;                   } 9 TypeSpecifier (all)
720
;;;                 } 8 TypeName (internal)
721 2 jsauermann
        IN   (IN_STATUS), RU
722
;--     l & r
723
        AND     RR, #0x0010
724 7 jsauermann
;;;               } 7 Expr l & r
725 2 jsauermann
;--     branch_false
726
        JMP     RRZ, L5_endif_6
727 7 jsauermann
;;;               { 7 ExpressionStatement
728
;;;                 { 8 Expr l(r)
729
;;;                   { 9 TypeName
730
;;;                     { 10 TypeSpecifier (all)
731
;;;                       spec = void (10000)
732
;;;                     } 10 TypeSpecifier (all)
733
;;;                     { 10 List
734
;;;                       { 11 DeclItem
735
;;;                         what = DECL_NAME
736
;;;                         name = rx_interrupt
737
;;;                       } 11 DeclItem
738
;;;                     } 10 List
739
;;;                   } 9 TypeName
740 2 jsauermann
;--     push 0 bytes
741
;--     call
742
        CALL    Crx_interrupt
743
;--     pop 0 bytes
744 7 jsauermann
;;;                 } 8 Expr l(r)
745
;;;               } 7 ExpressionStatement
746 2 jsauermann
L5_endif_6:
747 7 jsauermann
;;;             } 6 IfElseStatement
748
;;;             { 6 IfElseStatement
749
;;;               { 7 Expr l & r
750
;;;                 { 8 TypeName (internal)
751
;;;                   { 9 TypeSpecifier (all)
752
;;;                     spec = int (80000)
753
;;;                   } 9 TypeSpecifier (all)
754
;;;                 } 8 TypeName (internal)
755 2 jsauermann
        IN   (IN_STATUS), RU
756
;--     l & r
757
        AND     RR, #0x0020
758 7 jsauermann
;;;               } 7 Expr l & r
759 2 jsauermann
;--     branch_false
760
        JMP     RRZ, L5_endif_7
761 7 jsauermann
;;;               { 7 ExpressionStatement
762
;;;                 { 8 Expr l(r)
763
;;;                   { 9 TypeName
764
;;;                     { 10 TypeSpecifier (all)
765
;;;                       spec = void (10000)
766
;;;                     } 10 TypeSpecifier (all)
767
;;;                     { 10 List
768
;;;                       { 11 DeclItem
769
;;;                         what = DECL_NAME
770
;;;                         name = tx_interrupt
771
;;;                       } 11 DeclItem
772
;;;                     } 10 List
773
;;;                   } 9 TypeName
774 2 jsauermann
;--     push 0 bytes
775
;--     call
776
        CALL    Ctx_interrupt
777
;--     pop 0 bytes
778 7 jsauermann
;;;                 } 8 Expr l(r)
779
;;;               } 7 ExpressionStatement
780 2 jsauermann
L5_endif_7:
781 7 jsauermann
;;;             } 6 IfElseStatement
782
;;;             { 6 IfElseStatement
783
;;;               { 7 Expr l & r
784
;;;                 { 8 TypeName (internal)
785
;;;                   { 9 TypeSpecifier (all)
786
;;;                     spec = int (80000)
787
;;;                   } 9 TypeSpecifier (all)
788
;;;                 } 8 TypeName (internal)
789 2 jsauermann
        IN   (IN_STATUS), RU
790
;--     l & r
791
        AND     RR, #0x0040
792 7 jsauermann
;;;               } 7 Expr l & r
793 2 jsauermann
;--     branch_false
794
        JMP     RRZ, L5_endif_8
795 7 jsauermann
;;;               { 7 ExpressionStatement
796
;;;                 { 8 Expr l(r)
797
;;;                   { 9 TypeName
798
;;;                     { 10 TypeSpecifier (all)
799
;;;                       spec = void (10000)
800
;;;                     } 10 TypeSpecifier (all)
801
;;;                     { 10 List
802
;;;                       { 11 DeclItem
803
;;;                         what = DECL_NAME
804
;;;                         name = timer_interrupt
805
;;;                       } 11 DeclItem
806
;;;                     } 10 List
807
;;;                   } 9 TypeName
808 2 jsauermann
;--     push 0 bytes
809
;--     call
810
        CALL    Ctimer_interrupt
811
;--     pop 0 bytes
812 7 jsauermann
;;;                 } 8 Expr l(r)
813
;;;               } 7 ExpressionStatement
814 2 jsauermann
L5_endif_8:
815 7 jsauermann
;;;             } 6 IfElseStatement
816
;;;             { 6 ExpressionStatement
817 2 jsauermann
        MOVE (SP)+, RR
818 7 jsauermann
;;;             } 6 ExpressionStatement
819
;;;             { 6 ExpressionStatement
820 2 jsauermann
        MOVE RR, LL
821 7 jsauermann
;;;             } 6 ExpressionStatement
822
;;;             { 6 ExpressionStatement
823 2 jsauermann
        MOVE (SP)+, RR
824 7 jsauermann
;;;             } 6 ExpressionStatement
825
;;;             { 6 ExpressionStatement
826 2 jsauermann
        RETI
827 7 jsauermann
;;;             } 6 ExpressionStatement
828
;;;           } 5 List
829
;--     pop 0 bytes
830
;;;         } 4 CompoundStatement
831 2 jsauermann
;--     ret
832
        RET
833
;;; ------------------------------------;
834 7 jsauermann
;;;         { 4 FunctionDefinition
835 2 jsauermann
;;;           { 5 TypeName
836
;;;             { 6 TypeSpecifier (all)
837 7 jsauermann
;;;               spec = int (80000)
838 2 jsauermann
;;;             } 6 TypeSpecifier (all)
839
;;;             { 6 List
840
;;;               { 7 DeclItem
841
;;;                 what = DECL_NAME
842 7 jsauermann
;;;                 name = strlen
843 2 jsauermann
;;;               } 7 DeclItem
844
;;;             } 6 List
845
;;;           } 5 TypeName
846 7 jsauermann
;;;           { 5 List
847
;;;             { 6 DeclItem
848
;;;               what = DECL_NAME
849
;;;               name = strlen
850
;;;             } 6 DeclItem
851
;;;             { 6 DeclItem
852
;;;               what = DECL_FUN
853
;;;               { 7 List
854
;;;                 { 8 ParameterDeclaration
855
;;;                   isEllipsis = false
856
;;;                   { 9 TypeName
857
;;;                     { 10 TypeSpecifier (all)
858
;;;                       spec = const char (20100)
859
;;;                     } 10 TypeSpecifier (all)
860
;;;                     { 10 List
861
;;;                       { 11 DeclItem
862
;;;                         what = DECL_POINTER
863
;;;                         { 12 List
864
;;;                           { 13 Ptr
865
;;;                           } 13 Ptr
866
;;;                         } 12 List
867
;;;                       } 11 DeclItem
868
;;;                       { 11 DeclItem
869
;;;                         what = DECL_NAME
870
;;;                         name = buffer
871
;;;                       } 11 DeclItem
872
;;;                     } 10 List
873
;;;                   } 9 TypeName
874
;;;                 } 8 ParameterDeclaration
875
;;;               } 7 List
876
;;;             } 6 DeclItem
877
;;;           } 5 List
878 2 jsauermann
Cstrlen:
879 7 jsauermann
;;;           { 5 CompoundStatement
880
;;;             { 6 InitDeclarator
881
;;;               { 7 List
882
;;;                 { 8 DeclItem
883
;;;                   what = DECL_POINTER
884
;;;                   { 9 List
885
;;;                     { 10 Ptr
886
;;;                     } 10 Ptr
887
;;;                   } 9 List
888
;;;                 } 8 DeclItem
889
;;;                 { 8 DeclItem
890
;;;                   what = DECL_NAME
891
;;;                   name = from
892
;;;                 } 8 DeclItem
893
;;;               } 7 List
894
;;;               { 7 Initializer (skalar)
895
;;;                 { 8 Expression (variable name)
896
;;;                   expr_type = "identifier" (buffer)
897 2 jsauermann
;--     load_rr_var buffer = 2(FP), SP at 0 (16 bit)
898
        MOVE    2(SP), RR
899 7 jsauermann
;;;                 } 8 Expression (variable name)
900 2 jsauermann
;--     push_rr (16 bit)
901
        MOVE    RR, -(SP)
902 7 jsauermann
;;;               } 7 Initializer (skalar)
903
;;;             } 6 InitDeclarator
904
;;;             { 6 List
905
;;;               { 7 while Statement
906 2 jsauermann
;--     branch
907
        JMP     L6_cont_9
908
L6_loop_9:
909 7 jsauermann
;;;                 { 8 ExpressionStatement
910
;;;                   { 9 Expr l - r
911
;;;                     { 10 Expr ++r
912
;;;                       { 11 Expression (variable name)
913
;;;                         expr_type = "identifier" (buffer)
914 2 jsauermann
;--     load_rr_var buffer = 2(FP), SP at -2 (16 bit)
915
        MOVE    4(SP), RR
916 7 jsauermann
;;;                       } 11 Expression (variable name)
917 2 jsauermann
;--     ++
918
        ADD     RR, #0x0001
919
;--     store_rr_var buffer = 2(FP), SP at -2
920
        MOVE    RR, 4(SP)
921 7 jsauermann
;;;                     } 10 Expr ++r
922 2 jsauermann
;--     l - r
923
        SUB     RR, #0x0001
924 7 jsauermann
;;;                   } 9 Expr l - r
925
;;;                 } 8 ExpressionStatement
926 2 jsauermann
L6_cont_9:
927 7 jsauermann
;;;                 { 8 Expr * r
928
;;;                   { 9 Expression (variable name)
929
;;;                     expr_type = "identifier" (buffer)
930 2 jsauermann
;--     load_rr_var buffer = 2(FP), SP at -2 (16 bit)
931
        MOVE    4(SP), RR
932 7 jsauermann
;;;                   } 9 Expression (variable name)
933 2 jsauermann
;--     content
934
        MOVE    (RR), RS
935 7 jsauermann
;;;                 } 8 Expr * r
936 2 jsauermann
;--     branch_true
937
        JMP     RRNZ, L6_loop_9
938
L6_brk_10:
939 7 jsauermann
;;;               } 7 while Statement
940
;;;               { 7 return Statement
941
;;;                 { 8 Expr l - r
942
;;;                   { 9 Expression (variable name)
943
;;;                     expr_type = "identifier" (buffer)
944 2 jsauermann
;--     load_rr_var buffer = 2(FP), SP at -2 (16 bit)
945
        MOVE    4(SP), RR
946 7 jsauermann
;;;                   } 9 Expression (variable name)
947 2 jsauermann
;--     move_rr_to_ll
948
        MOVE    RR, LL
949 7 jsauermann
;;;                   { 9 Expression (variable name)
950
;;;                     expr_type = "identifier" (from)
951 2 jsauermann
;--     load_rr_var from = -2(FP), SP at -2 (16 bit)
952
        MOVE    0(SP), RR
953 7 jsauermann
;;;                   } 9 Expression (variable name)
954 2 jsauermann
;--     scale_rr *1
955
;--     l - r
956
        SUB     LL, RR
957
;--     scale *1
958 7 jsauermann
;;;                 } 8 Expr l - r
959 2 jsauermann
;--     ret
960 7 jsauermann
        ADD     SP, #2
961
        RET
962
;;;               } 7 return Statement
963
;;;             } 6 List
964 2 jsauermann
;--     pop 2 bytes
965
        ADD     SP, #2
966 7 jsauermann
;;;           } 5 CompoundStatement
967
;--     ret
968 2 jsauermann
        RET
969
;;; ------------------------------------;
970 7 jsauermann
;;;           { 5 FunctionDefinition
971
;;;             { 6 TypeName
972
;;;               { 7 TypeSpecifier (all)
973
;;;                 spec = int (80000)
974
;;;               } 7 TypeSpecifier (all)
975
;;;               { 7 List
976
;;;                 { 8 DeclItem
977
;;;                   what = DECL_NAME
978
;;;                   name = putchr
979
;;;                 } 8 DeclItem
980
;;;               } 7 List
981
;;;             } 6 TypeName
982 2 jsauermann
;;;             { 6 List
983
;;;               { 7 DeclItem
984
;;;                 what = DECL_NAME
985 7 jsauermann
;;;                 name = putchr
986 2 jsauermann
;;;               } 7 DeclItem
987 7 jsauermann
;;;               { 7 DeclItem
988
;;;                 what = DECL_FUN
989
;;;                 { 8 List
990
;;;                   { 9 ParameterDeclaration
991
;;;                     isEllipsis = false
992
;;;                     { 10 TypeName
993
;;;                       { 11 TypeSpecifier (all)
994
;;;                         spec = char (20000)
995
;;;                       } 11 TypeSpecifier (all)
996
;;;                       { 11 List
997
;;;                         { 12 DeclItem
998
;;;                           what = DECL_NAME
999
;;;                           name = c
1000
;;;                         } 12 DeclItem
1001
;;;                       } 11 List
1002
;;;                     } 10 TypeName
1003
;;;                   } 9 ParameterDeclaration
1004
;;;                 } 8 List
1005
;;;               } 7 DeclItem
1006 2 jsauermann
;;;             } 6 List
1007
Cputchr:
1008 7 jsauermann
;;;             { 6 CompoundStatement
1009
;;;               { 7 List
1010
;;;                 { 8 while Statement
1011 2 jsauermann
L7_loop_11:
1012 7 jsauermann
;;;                   { 9 ExpressionStatement
1013
;;;                   } 9 ExpressionStatement
1014 2 jsauermann
L7_cont_11:
1015 7 jsauermann
;;;                   { 9 Expr l == r
1016
;;;                     { 10 TypeName (internal)
1017
;;;                       { 11 TypeSpecifier (all)
1018
;;;                         spec = unsigned int (82000)
1019
;;;                       } 11 TypeSpecifier (all)
1020
;;;                     } 10 TypeName (internal)
1021
;;;                     { 10 Expression (variable name)
1022
;;;                       expr_type = "identifier" (serial_out_length)
1023 2 jsauermann
;--     load_rr_var serial_out_length, (8 bit)
1024
        MOVE    (Cserial_out_length), RU
1025 7 jsauermann
;;;                     } 10 Expression (variable name)
1026 2 jsauermann
;--     l == r
1027
        SEQ     RR, #0x0010
1028 7 jsauermann
;;;                   } 9 Expr l == r
1029 2 jsauermann
;--     branch_true
1030
        JMP     RRNZ, L7_loop_11
1031
L7_brk_12:
1032 7 jsauermann
;;;                 } 8 while Statement
1033
;;;                 { 8 ExpressionStatement
1034
;;;                   { 9 Expr l = r
1035
;;;                     { 10 TypeName
1036
;;;                       { 11 TypeSpecifier (all)
1037
;;;                         spec = unsigned char (22000)
1038
;;;                       } 11 TypeSpecifier (all)
1039
;;;                       { 11 List
1040
;;;                         { 12 DeclItem
1041
;;;                           what = DECL_NAME
1042
;;;                           name = serial_out_buffer
1043
;;;                         } 12 DeclItem
1044
;;;                       } 11 List
1045
;;;                     } 10 TypeName
1046
;;;                     { 10 Expression (variable name)
1047
;;;                       expr_type = "identifier" (c)
1048 2 jsauermann
;--     load_rr_var c = 2(FP), SP at 0 (8 bit)
1049
        MOVE    2(SP), RS
1050 7 jsauermann
;;;                     } 10 Expression (variable name)
1051 2 jsauermann
;--     push_rr (8 bit)
1052
        MOVE    R, -(SP)
1053 7 jsauermann
;;;                     { 10 Expr l[r]
1054
;;;                       { 11 Expression (variable name)
1055
;;;                         expr_type = "identifier" (serial_out_put)
1056 2 jsauermann
;--     load_rr_var serial_out_put, (8 bit)
1057
        MOVE    (Cserial_out_put), RU
1058 7 jsauermann
;;;                       } 11 Expression (variable name)
1059 2 jsauermann
;--     scale_rr *1
1060
;--     add_address serial_out_buffer
1061
        ADD     RR, #Cserial_out_buffer
1062 7 jsauermann
;;;                     } 10 Expr l[r]
1063 2 jsauermann
;--     move_rr_to_ll
1064
        MOVE    RR, LL
1065
;--     pop_rr (8 bit)
1066
        MOVE    (SP)+, RU
1067
;--     assign (8 bit)
1068
        MOVE    R, (LL)
1069 7 jsauermann
;;;                   } 9 Expr l = r
1070
;;;                 } 8 ExpressionStatement
1071
;;;                 { 8 ExpressionStatement
1072
;;;                   { 9 Expr l = r
1073
;;;                     { 10 TypeName
1074
;;;                       { 11 TypeSpecifier (all)
1075
;;;                         spec = unsigned char (22000)
1076
;;;                       } 11 TypeSpecifier (all)
1077
;;;                       { 11 List
1078
;;;                         { 12 DeclItem
1079
;;;                           what = DECL_NAME
1080
;;;                           name = serial_out_put
1081
;;;                         } 12 DeclItem
1082
;;;                       } 11 List
1083
;;;                     } 10 TypeName
1084
;;;                     { 10 Expr l & r
1085
;;;                       { 11 TypeName (internal)
1086
;;;                         { 12 TypeSpecifier (all)
1087
;;;                           spec = unsigned int (82000)
1088
;;;                         } 12 TypeSpecifier (all)
1089
;;;                       } 11 TypeName (internal)
1090
;;;                       { 11 Expr ++r
1091
;;;                         { 12 Expression (variable name)
1092
;;;                           expr_type = "identifier" (serial_out_put)
1093 2 jsauermann
;--     load_rr_var serial_out_put, (8 bit)
1094
        MOVE    (Cserial_out_put), RU
1095 7 jsauermann
;;;                         } 12 Expression (variable name)
1096 2 jsauermann
;--     ++
1097
        ADD     RR, #0x0001
1098
;--     store_rr_var serial_out_put
1099
        MOVE    R, (Cserial_out_put)
1100 7 jsauermann
;;;                       } 11 Expr ++r
1101 2 jsauermann
;--     l & r
1102
        AND     RR, #0x000F
1103 7 jsauermann
;;;                     } 10 Expr l & r
1104 2 jsauermann
;--     store_rr_var serial_out_put
1105
        MOVE    R, (Cserial_out_put)
1106 7 jsauermann
;;;                   } 9 Expr l = r
1107
;;;                 } 8 ExpressionStatement
1108
;;;                 { 8 ExpressionStatement
1109 2 jsauermann
        DI
1110 7 jsauermann
;;;                 } 8 ExpressionStatement
1111
;;;                 { 8 ExpressionStatement
1112
;;;                   { 9 Expr ++r
1113
;;;                     { 10 Expression (variable name)
1114
;;;                       expr_type = "identifier" (serial_out_length)
1115 2 jsauermann
;--     load_rr_var serial_out_length, (8 bit)
1116
        MOVE    (Cserial_out_length), RU
1117 7 jsauermann
;;;                     } 10 Expression (variable name)
1118 2 jsauermann
;--     ++
1119
        ADD     RR, #0x0001
1120
;--     store_rr_var serial_out_length
1121
        MOVE    R, (Cserial_out_length)
1122 7 jsauermann
;;;                   } 9 Expr ++r
1123
;;;                 } 8 ExpressionStatement
1124
;;;                 { 8 ExpressionStatement
1125 2 jsauermann
        EI
1126 7 jsauermann
;;;                 } 8 ExpressionStatement
1127
;;;                 { 8 ExpressionStatement
1128 2 jsauermann
        MOVE #0x07, RR
1129 7 jsauermann
;;;                 } 8 ExpressionStatement
1130
;;;                 { 8 ExpressionStatement
1131 2 jsauermann
        OUT  R, (OUT_INT_MASK)
1132 7 jsauermann
;;;                 } 8 ExpressionStatement
1133
;;;                 { 8 ExpressionStatement
1134
;;;                   { 9 NumericExpression (constant 1 = 0x1)
1135 2 jsauermann
;--     load_rr_constant
1136
        MOVE    #0x0001, RR
1137 7 jsauermann
;;;                   } 9 NumericExpression (constant 1 = 0x1)
1138
;;;                 } 8 ExpressionStatement
1139
;;;               } 7 List
1140
;--     pop 0 bytes
1141
;;;             } 6 CompoundStatement
1142 2 jsauermann
;--     ret
1143
        RET
1144
;;; ------------------------------------;
1145 7 jsauermann
;;;             { 6 FunctionDefinition
1146 2 jsauermann
;;;               { 7 TypeName
1147
;;;                 { 8 TypeSpecifier (all)
1148 7 jsauermann
;;;                   spec = void (10000)
1149 2 jsauermann
;;;                 } 8 TypeSpecifier (all)
1150
;;;                 { 8 List
1151
;;;                   { 9 DeclItem
1152
;;;                     what = DECL_NAME
1153 7 jsauermann
;;;                     name = print_string
1154 2 jsauermann
;;;                   } 9 DeclItem
1155
;;;                 } 8 List
1156
;;;               } 7 TypeName
1157 7 jsauermann
;;;               { 7 List
1158
;;;                 { 8 DeclItem
1159
;;;                   what = DECL_NAME
1160
;;;                   name = print_string
1161
;;;                 } 8 DeclItem
1162
;;;                 { 8 DeclItem
1163
;;;                   what = DECL_FUN
1164
;;;                   { 9 List
1165
;;;                     { 10 ParameterDeclaration
1166
;;;                       isEllipsis = false
1167
;;;                       { 11 TypeName
1168
;;;                         { 12 TypeSpecifier (all)
1169
;;;                           spec = const char (20100)
1170
;;;                         } 12 TypeSpecifier (all)
1171
;;;                         { 12 List
1172
;;;                           { 13 DeclItem
1173
;;;                             what = DECL_POINTER
1174
;;;                             { 14 List
1175
;;;                               { 15 Ptr
1176
;;;                               } 15 Ptr
1177
;;;                             } 14 List
1178
;;;                           } 13 DeclItem
1179
;;;                           { 13 DeclItem
1180
;;;                             what = DECL_NAME
1181
;;;                             name = buffer
1182
;;;                           } 13 DeclItem
1183
;;;                         } 12 List
1184
;;;                       } 11 TypeName
1185
;;;                     } 10 ParameterDeclaration
1186
;;;                   } 9 List
1187
;;;                 } 8 DeclItem
1188
;;;               } 7 List
1189
Cprint_string:
1190
;;;               { 7 CompoundStatement
1191
;;;                 { 8 List
1192
;;;                   { 9 while Statement
1193
;--     branch
1194
        JMP     L8_cont_13
1195
L8_loop_13:
1196
;;;                     { 10 ExpressionStatement
1197
;;;                       { 11 Expr l(r)
1198
;;;                         { 12 TypeName
1199
;;;                           { 13 TypeSpecifier (all)
1200
;;;                             spec = int (80000)
1201
;;;                           } 13 TypeSpecifier (all)
1202
;;;                           { 13 List
1203
;;;                             { 14 DeclItem
1204
;;;                               what = DECL_NAME
1205
;;;                               name = putchr
1206
;;;                             } 14 DeclItem
1207
;;;                           } 13 List
1208
;;;                         } 12 TypeName
1209
;;;                         { 12 ParameterDeclaration
1210
;;;                           isEllipsis = false
1211
;;;                           { 13 TypeName
1212
;;;                             { 14 TypeSpecifier (all)
1213
;;;                               spec = char (20000)
1214
;;;                             } 14 TypeSpecifier (all)
1215
;;;                             { 14 List
1216
;;;                               { 15 DeclItem
1217
;;;                                 what = DECL_NAME
1218
;;;                                 name = c
1219
;;;                               } 15 DeclItem
1220
;;;                             } 14 List
1221
;;;                           } 13 TypeName
1222
;;;                         } 12 ParameterDeclaration
1223
;;;                         { 12 Expr * r
1224
;;;                           { 13 Expr l - r
1225
;;;                             { 14 Expr ++r
1226
;;;                               { 15 Expression (variable name)
1227
;;;                                 expr_type = "identifier" (buffer)
1228 2 jsauermann
;--     load_rr_var buffer = 2(FP), SP at 0 (16 bit)
1229
        MOVE    2(SP), RR
1230 7 jsauermann
;;;                               } 15 Expression (variable name)
1231 2 jsauermann
;--     ++
1232
        ADD     RR, #0x0001
1233
;--     store_rr_var buffer = 2(FP), SP at 0
1234
        MOVE    RR, 2(SP)
1235 7 jsauermann
;;;                             } 14 Expr ++r
1236 2 jsauermann
;--     l - r
1237
        SUB     RR, #0x0001
1238 7 jsauermann
;;;                           } 13 Expr l - r
1239 2 jsauermann
;--     content
1240
        MOVE    (RR), RS
1241 7 jsauermann
;;;                         } 12 Expr * r
1242 2 jsauermann
;--     push_rr (8 bit)
1243
        MOVE    R, -(SP)
1244
;--     push 2 bytes
1245
;--     call
1246
        CALL    Cputchr
1247
;--     pop 1 bytes
1248
        ADD     SP, #1
1249 7 jsauermann
;;;                       } 11 Expr l(r)
1250
;;;                     } 10 ExpressionStatement
1251 2 jsauermann
L8_cont_13:
1252 7 jsauermann
;;;                     { 10 Expr * r
1253
;;;                       { 11 Expression (variable name)
1254
;;;                         expr_type = "identifier" (buffer)
1255 2 jsauermann
;--     load_rr_var buffer = 2(FP), SP at 0 (16 bit)
1256
        MOVE    2(SP), RR
1257 7 jsauermann
;;;                       } 11 Expression (variable name)
1258 2 jsauermann
;--     content
1259
        MOVE    (RR), RS
1260 7 jsauermann
;;;                     } 10 Expr * r
1261 2 jsauermann
;--     branch_true
1262
        JMP     RRNZ, L8_loop_13
1263
L8_brk_14:
1264 7 jsauermann
;;;                   } 9 while Statement
1265
;;;                 } 8 List
1266
;--     pop 0 bytes
1267
;;;               } 7 CompoundStatement
1268 2 jsauermann
;--     ret
1269
        RET
1270
;;; ------------------------------------;
1271 7 jsauermann
;;;               { 7 FunctionDefinition
1272
;;;                 { 8 TypeName
1273
;;;                   { 9 TypeSpecifier (all)
1274
;;;                     spec = void (10000)
1275
;;;                   } 9 TypeSpecifier (all)
1276
;;;                   { 9 List
1277
;;;                     { 10 DeclItem
1278
;;;                       what = DECL_NAME
1279
;;;                       name = print_hex
1280
;;;                     } 10 DeclItem
1281
;;;                   } 9 List
1282
;;;                 } 8 TypeName
1283
;;;                 { 8 List
1284
;;;                   { 9 DeclItem
1285
;;;                     what = DECL_NAME
1286
;;;                     name = print_hex
1287
;;;                   } 9 DeclItem
1288
;;;                   { 9 DeclItem
1289
;;;                     what = DECL_FUN
1290
;;;                     { 10 List
1291
;;;                       { 11 ParameterDeclaration
1292
;;;                         isEllipsis = false
1293
;;;                         { 12 TypeName
1294
;;;                           { 13 TypeSpecifier (all)
1295
;;;                             spec = char (20000)
1296
;;;                           } 13 TypeSpecifier (all)
1297
;;;                           { 13 List
1298
;;;                             { 14 DeclItem
1299
;;;                               what = DECL_POINTER
1300
;;;                               { 15 List
1301
;;;                                 { 16 Ptr
1302
;;;                                 } 16 Ptr
1303
;;;                               } 15 List
1304
;;;                             } 14 DeclItem
1305
;;;                             { 14 DeclItem
1306
;;;                               what = DECL_NAME
1307
;;;                               name = dest
1308
;;;                             } 14 DeclItem
1309
;;;                           } 13 List
1310
;;;                         } 12 TypeName
1311
;;;                       } 11 ParameterDeclaration
1312
;;;                       { 11 ParameterDeclaration
1313
;;;                         isEllipsis = false
1314
;;;                         { 12 TypeName
1315
;;;                           { 13 TypeSpecifier (all)
1316
;;;                             spec = unsigned int (82000)
1317
;;;                           } 13 TypeSpecifier (all)
1318
;;;                           { 13 List
1319
;;;                             { 14 DeclItem
1320
;;;                               what = DECL_NAME
1321
;;;                               name = value
1322
;;;                             } 14 DeclItem
1323
;;;                           } 13 List
1324
;;;                         } 12 TypeName
1325
;;;                       } 11 ParameterDeclaration
1326
;;;                       { 11 ParameterDeclaration
1327
;;;                         isEllipsis = false
1328
;;;                         { 12 TypeName
1329
;;;                           { 13 TypeSpecifier (all)
1330
;;;                             spec = const char (20100)
1331
;;;                           } 13 TypeSpecifier (all)
1332
;;;                           { 13 List
1333
;;;                             { 14 DeclItem
1334
;;;                               what = DECL_POINTER
1335
;;;                               { 15 List
1336
;;;                                 { 16 Ptr
1337
;;;                                 } 16 Ptr
1338
;;;                               } 15 List
1339
;;;                             } 14 DeclItem
1340
;;;                             { 14 DeclItem
1341
;;;                               what = DECL_NAME
1342
;;;                               name = hex
1343
;;;                             } 14 DeclItem
1344
;;;                           } 13 List
1345
;;;                         } 12 TypeName
1346
;;;                       } 11 ParameterDeclaration
1347
;;;                     } 10 List
1348
;;;                   } 9 DeclItem
1349
;;;                 } 8 List
1350 2 jsauermann
Cprint_hex:
1351 7 jsauermann
;;;                 { 8 CompoundStatement
1352
;;;                   { 9 List
1353
;;;                     { 10 IfElseStatement
1354
;;;                       { 11 Expr l >= r
1355
;;;                         { 12 TypeName (internal)
1356
;;;                           { 13 TypeSpecifier (all)
1357
;;;                             spec = unsigned int (82000)
1358
;;;                           } 13 TypeSpecifier (all)
1359
;;;                         } 12 TypeName (internal)
1360
;;;                         { 12 Expression (variable name)
1361
;;;                           expr_type = "identifier" (value)
1362 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
1363
        MOVE    4(SP), RR
1364 7 jsauermann
;;;                         } 12 Expression (variable name)
1365 2 jsauermann
;--     l >= r
1366
        SHS     RR, #0x1000
1367 7 jsauermann
;;;                       } 11 Expr l >= r
1368 2 jsauermann
;--     branch_false
1369
        JMP     RRZ, L9_endif_15
1370 7 jsauermann
;;;                       { 11 ExpressionStatement
1371
;;;                         { 12 Expr l = r
1372
;;;                           { 13 TypeName
1373
;;;                             { 14 TypeSpecifier (all)
1374
;;;                               spec = char (20000)
1375
;;;                             } 14 TypeSpecifier (all)
1376
;;;                             { 14 List
1377
;;;                               { 15 DeclItem
1378
;;;                                 what = DECL_NAME
1379
;;;                                 name = dest
1380
;;;                               } 15 DeclItem
1381
;;;                             } 14 List
1382
;;;                           } 13 TypeName
1383
;;;                           { 13 Expr l[r]
1384
;;;                             { 14 TypeName
1385
;;;                               { 15 TypeSpecifier (all)
1386
;;;                                 spec = const char (20100)
1387
;;;                               } 15 TypeSpecifier (all)
1388
;;;                               { 15 List
1389
;;;                                 { 16 DeclItem
1390
;;;                                   what = DECL_NAME
1391
;;;                                   name = hex
1392
;;;                                 } 16 DeclItem
1393
;;;                               } 15 List
1394
;;;                             } 14 TypeName
1395
;;;                             { 14 Expr l[r]
1396
;;;                               { 15 Expr l & r
1397
;;;                                 { 16 TypeName (internal)
1398
;;;                                   { 17 TypeSpecifier (all)
1399
;;;                                     spec = int (80000)
1400
;;;                                   } 17 TypeSpecifier (all)
1401
;;;                                 } 16 TypeName (internal)
1402
;;;                                 { 16 Expr l >> r
1403
;;;                                   { 17 TypeName (internal)
1404
;;;                                     { 18 TypeSpecifier (all)
1405
;;;                                       spec = int (80000)
1406
;;;                                     } 18 TypeSpecifier (all)
1407
;;;                                   } 17 TypeName (internal)
1408
;;;                                   { 17 Expression (variable name)
1409
;;;                                     expr_type = "identifier" (value)
1410 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
1411
        MOVE    4(SP), RR
1412 7 jsauermann
;;;                                   } 17 Expression (variable name)
1413 2 jsauermann
;--     l >> r
1414
        ASR     RR, #0x000C
1415 7 jsauermann
;;;                                 } 16 Expr l >> r
1416 2 jsauermann
;--     l & r
1417
        AND     RR, #0x000F
1418 7 jsauermann
;;;                               } 15 Expr l & r
1419 2 jsauermann
;--     scale_rr *1
1420
;--     push_rr (16 bit)
1421
        MOVE    RR, -(SP)
1422 7 jsauermann
;;;                               { 15 Expression (variable name)
1423
;;;                                 expr_type = "identifier" (hex)
1424 2 jsauermann
;--     load_rr_var hex = 6(FP), SP at -2 (16 bit)
1425
        MOVE    8(SP), RR
1426 7 jsauermann
;;;                               } 15 Expression (variable name)
1427 2 jsauermann
;--     pop_ll (16 bit)
1428
        MOVE    (SP)+, LL
1429
;--     + (element)
1430
        ADD     LL, RR
1431 7 jsauermann
;;;                             } 14 Expr l[r]
1432 2 jsauermann
;--     content
1433
        MOVE    (RR), RS
1434 7 jsauermann
;;;                           } 13 Expr l[r]
1435 2 jsauermann
;--     push_rr (8 bit)
1436
        MOVE    R, -(SP)
1437 7 jsauermann
;;;                           { 13 Expr * r
1438
;;;                             { 14 Expr l - r
1439
;;;                               { 15 Expr ++r
1440
;;;                                 { 16 Expression (variable name)
1441
;;;                                   expr_type = "identifier" (dest)
1442 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
1443
        MOVE    3(SP), RR
1444 7 jsauermann
;;;                                 } 16 Expression (variable name)
1445 2 jsauermann
;--     ++
1446
        ADD     RR, #0x0001
1447
;--     store_rr_var dest = 2(FP), SP at -1
1448
        MOVE    RR, 3(SP)
1449 7 jsauermann
;;;                               } 15 Expr ++r
1450 2 jsauermann
;--     l - r
1451
        SUB     RR, #0x0001
1452 7 jsauermann
;;;                             } 14 Expr l - r
1453
;;;                           } 13 Expr * r
1454 2 jsauermann
;--     move_rr_to_ll
1455
        MOVE    RR, LL
1456
;--     pop_rr (8 bit)
1457
        MOVE    (SP)+, RS
1458
;--     assign (8 bit)
1459
        MOVE    R, (LL)
1460 7 jsauermann
;;;                         } 12 Expr l = r
1461
;;;                       } 11 ExpressionStatement
1462 2 jsauermann
L9_endif_15:
1463 7 jsauermann
;;;                     } 10 IfElseStatement
1464
;;;                     { 10 IfElseStatement
1465
;;;                       { 11 Expr l >= r
1466
;;;                         { 12 TypeName (internal)
1467
;;;                           { 13 TypeSpecifier (all)
1468
;;;                             spec = unsigned int (82000)
1469
;;;                           } 13 TypeSpecifier (all)
1470
;;;                         } 12 TypeName (internal)
1471
;;;                         { 12 Expression (variable name)
1472
;;;                           expr_type = "identifier" (value)
1473 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
1474
        MOVE    4(SP), RR
1475 7 jsauermann
;;;                         } 12 Expression (variable name)
1476 2 jsauermann
;--     l >= r
1477
        SHS     RR, #0x0100
1478 7 jsauermann
;;;                       } 11 Expr l >= r
1479 2 jsauermann
;--     branch_false
1480
        JMP     RRZ, L9_endif_16
1481 7 jsauermann
;;;                       { 11 ExpressionStatement
1482
;;;                         { 12 Expr l = r
1483
;;;                           { 13 TypeName
1484
;;;                             { 14 TypeSpecifier (all)
1485
;;;                               spec = char (20000)
1486
;;;                             } 14 TypeSpecifier (all)
1487
;;;                             { 14 List
1488
;;;                               { 15 DeclItem
1489
;;;                                 what = DECL_NAME
1490
;;;                                 name = dest
1491
;;;                               } 15 DeclItem
1492
;;;                             } 14 List
1493
;;;                           } 13 TypeName
1494
;;;                           { 13 Expr l[r]
1495
;;;                             { 14 TypeName
1496
;;;                               { 15 TypeSpecifier (all)
1497
;;;                                 spec = const char (20100)
1498
;;;                               } 15 TypeSpecifier (all)
1499
;;;                               { 15 List
1500
;;;                                 { 16 DeclItem
1501
;;;                                   what = DECL_NAME
1502
;;;                                   name = hex
1503
;;;                                 } 16 DeclItem
1504
;;;                               } 15 List
1505
;;;                             } 14 TypeName
1506
;;;                             { 14 Expr l[r]
1507
;;;                               { 15 Expr l & r
1508
;;;                                 { 16 TypeName (internal)
1509
;;;                                   { 17 TypeSpecifier (all)
1510
;;;                                     spec = int (80000)
1511
;;;                                   } 17 TypeSpecifier (all)
1512
;;;                                 } 16 TypeName (internal)
1513
;;;                                 { 16 Expr l >> r
1514
;;;                                   { 17 TypeName (internal)
1515
;;;                                     { 18 TypeSpecifier (all)
1516
;;;                                       spec = int (80000)
1517
;;;                                     } 18 TypeSpecifier (all)
1518
;;;                                   } 17 TypeName (internal)
1519
;;;                                   { 17 Expression (variable name)
1520
;;;                                     expr_type = "identifier" (value)
1521 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
1522
        MOVE    4(SP), RR
1523 7 jsauermann
;;;                                   } 17 Expression (variable name)
1524 2 jsauermann
;--     l >> r
1525
        ASR     RR, #0x0008
1526 7 jsauermann
;;;                                 } 16 Expr l >> r
1527 2 jsauermann
;--     l & r
1528
        AND     RR, #0x000F
1529 7 jsauermann
;;;                               } 15 Expr l & r
1530 2 jsauermann
;--     scale_rr *1
1531
;--     push_rr (16 bit)
1532
        MOVE    RR, -(SP)
1533 7 jsauermann
;;;                               { 15 Expression (variable name)
1534
;;;                                 expr_type = "identifier" (hex)
1535 2 jsauermann
;--     load_rr_var hex = 6(FP), SP at -2 (16 bit)
1536
        MOVE    8(SP), RR
1537 7 jsauermann
;;;                               } 15 Expression (variable name)
1538 2 jsauermann
;--     pop_ll (16 bit)
1539
        MOVE    (SP)+, LL
1540
;--     + (element)
1541
        ADD     LL, RR
1542 7 jsauermann
;;;                             } 14 Expr l[r]
1543 2 jsauermann
;--     content
1544
        MOVE    (RR), RS
1545 7 jsauermann
;;;                           } 13 Expr l[r]
1546 2 jsauermann
;--     push_rr (8 bit)
1547
        MOVE    R, -(SP)
1548 7 jsauermann
;;;                           { 13 Expr * r
1549
;;;                             { 14 Expr l - r
1550
;;;                               { 15 Expr ++r
1551
;;;                                 { 16 Expression (variable name)
1552
;;;                                   expr_type = "identifier" (dest)
1553 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
1554
        MOVE    3(SP), RR
1555 7 jsauermann
;;;                                 } 16 Expression (variable name)
1556 2 jsauermann
;--     ++
1557
        ADD     RR, #0x0001
1558
;--     store_rr_var dest = 2(FP), SP at -1
1559
        MOVE    RR, 3(SP)
1560 7 jsauermann
;;;                               } 15 Expr ++r
1561 2 jsauermann
;--     l - r
1562
        SUB     RR, #0x0001
1563 7 jsauermann
;;;                             } 14 Expr l - r
1564
;;;                           } 13 Expr * r
1565 2 jsauermann
;--     move_rr_to_ll
1566
        MOVE    RR, LL
1567
;--     pop_rr (8 bit)
1568
        MOVE    (SP)+, RS
1569
;--     assign (8 bit)
1570
        MOVE    R, (LL)
1571 7 jsauermann
;;;                         } 12 Expr l = r
1572
;;;                       } 11 ExpressionStatement
1573 2 jsauermann
L9_endif_16:
1574 7 jsauermann
;;;                     } 10 IfElseStatement
1575
;;;                     { 10 IfElseStatement
1576
;;;                       { 11 Expr l >= r
1577
;;;                         { 12 TypeName (internal)
1578
;;;                           { 13 TypeSpecifier (all)
1579
;;;                             spec = unsigned int (82000)
1580
;;;                           } 13 TypeSpecifier (all)
1581
;;;                         } 12 TypeName (internal)
1582
;;;                         { 12 Expression (variable name)
1583
;;;                           expr_type = "identifier" (value)
1584 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
1585
        MOVE    4(SP), RR
1586 7 jsauermann
;;;                         } 12 Expression (variable name)
1587 2 jsauermann
;--     l >= r
1588
        SHS     RR, #0x0010
1589 7 jsauermann
;;;                       } 11 Expr l >= r
1590 2 jsauermann
;--     branch_false
1591
        JMP     RRZ, L9_endif_17
1592 7 jsauermann
;;;                       { 11 ExpressionStatement
1593
;;;                         { 12 Expr l = r
1594
;;;                           { 13 TypeName
1595
;;;                             { 14 TypeSpecifier (all)
1596
;;;                               spec = char (20000)
1597
;;;                             } 14 TypeSpecifier (all)
1598
;;;                             { 14 List
1599
;;;                               { 15 DeclItem
1600
;;;                                 what = DECL_NAME
1601
;;;                                 name = dest
1602
;;;                               } 15 DeclItem
1603
;;;                             } 14 List
1604
;;;                           } 13 TypeName
1605
;;;                           { 13 Expr l[r]
1606
;;;                             { 14 TypeName
1607
;;;                               { 15 TypeSpecifier (all)
1608
;;;                                 spec = const char (20100)
1609
;;;                               } 15 TypeSpecifier (all)
1610
;;;                               { 15 List
1611
;;;                                 { 16 DeclItem
1612
;;;                                   what = DECL_NAME
1613
;;;                                   name = hex
1614
;;;                                 } 16 DeclItem
1615
;;;                               } 15 List
1616
;;;                             } 14 TypeName
1617
;;;                             { 14 Expr l[r]
1618
;;;                               { 15 Expr l & r
1619
;;;                                 { 16 TypeName (internal)
1620
;;;                                   { 17 TypeSpecifier (all)
1621
;;;                                     spec = int (80000)
1622
;;;                                   } 17 TypeSpecifier (all)
1623
;;;                                 } 16 TypeName (internal)
1624
;;;                                 { 16 Expr l >> r
1625
;;;                                   { 17 TypeName (internal)
1626
;;;                                     { 18 TypeSpecifier (all)
1627
;;;                                       spec = int (80000)
1628
;;;                                     } 18 TypeSpecifier (all)
1629
;;;                                   } 17 TypeName (internal)
1630
;;;                                   { 17 Expression (variable name)
1631
;;;                                     expr_type = "identifier" (value)
1632 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
1633
        MOVE    4(SP), RR
1634 7 jsauermann
;;;                                   } 17 Expression (variable name)
1635 2 jsauermann
;--     l >> r
1636
        ASR     RR, #0x0004
1637 7 jsauermann
;;;                                 } 16 Expr l >> r
1638 2 jsauermann
;--     l & r
1639
        AND     RR, #0x000F
1640 7 jsauermann
;;;                               } 15 Expr l & r
1641 2 jsauermann
;--     scale_rr *1
1642
;--     push_rr (16 bit)
1643
        MOVE    RR, -(SP)
1644 7 jsauermann
;;;                               { 15 Expression (variable name)
1645
;;;                                 expr_type = "identifier" (hex)
1646 2 jsauermann
;--     load_rr_var hex = 6(FP), SP at -2 (16 bit)
1647
        MOVE    8(SP), RR
1648 7 jsauermann
;;;                               } 15 Expression (variable name)
1649 2 jsauermann
;--     pop_ll (16 bit)
1650
        MOVE    (SP)+, LL
1651
;--     + (element)
1652
        ADD     LL, RR
1653 7 jsauermann
;;;                             } 14 Expr l[r]
1654 2 jsauermann
;--     content
1655
        MOVE    (RR), RS
1656 7 jsauermann
;;;                           } 13 Expr l[r]
1657 2 jsauermann
;--     push_rr (8 bit)
1658
        MOVE    R, -(SP)
1659 7 jsauermann
;;;                           { 13 Expr * r
1660
;;;                             { 14 Expr l - r
1661
;;;                               { 15 Expr ++r
1662
;;;                                 { 16 Expression (variable name)
1663
;;;                                   expr_type = "identifier" (dest)
1664 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
1665
        MOVE    3(SP), RR
1666 7 jsauermann
;;;                                 } 16 Expression (variable name)
1667 2 jsauermann
;--     ++
1668
        ADD     RR, #0x0001
1669
;--     store_rr_var dest = 2(FP), SP at -1
1670
        MOVE    RR, 3(SP)
1671 7 jsauermann
;;;                               } 15 Expr ++r
1672 2 jsauermann
;--     l - r
1673
        SUB     RR, #0x0001
1674 7 jsauermann
;;;                             } 14 Expr l - r
1675
;;;                           } 13 Expr * r
1676 2 jsauermann
;--     move_rr_to_ll
1677
        MOVE    RR, LL
1678
;--     pop_rr (8 bit)
1679
        MOVE    (SP)+, RS
1680
;--     assign (8 bit)
1681
        MOVE    R, (LL)
1682 7 jsauermann
;;;                         } 12 Expr l = r
1683
;;;                       } 11 ExpressionStatement
1684 2 jsauermann
L9_endif_17:
1685 7 jsauermann
;;;                     } 10 IfElseStatement
1686
;;;                     { 10 ExpressionStatement
1687
;;;                       { 11 Expr l = r
1688
;;;                         { 12 TypeName
1689
;;;                           { 13 TypeSpecifier (all)
1690
;;;                             spec = char (20000)
1691
;;;                           } 13 TypeSpecifier (all)
1692
;;;                           { 13 List
1693
;;;                             { 14 DeclItem
1694
;;;                               what = DECL_NAME
1695
;;;                               name = dest
1696
;;;                             } 14 DeclItem
1697
;;;                           } 13 List
1698
;;;                         } 12 TypeName
1699
;;;                         { 12 Expr l[r]
1700
;;;                           { 13 TypeName
1701
;;;                             { 14 TypeSpecifier (all)
1702
;;;                               spec = const char (20100)
1703
;;;                             } 14 TypeSpecifier (all)
1704
;;;                             { 14 List
1705
;;;                               { 15 DeclItem
1706
;;;                                 what = DECL_NAME
1707
;;;                                 name = hex
1708
;;;                               } 15 DeclItem
1709
;;;                             } 14 List
1710
;;;                           } 13 TypeName
1711
;;;                           { 13 Expr l[r]
1712
;;;                             { 14 Expr l & r
1713
;;;                               { 15 TypeName (internal)
1714
;;;                                 { 16 TypeSpecifier (all)
1715
;;;                                   spec = unsigned int (82000)
1716
;;;                                 } 16 TypeSpecifier (all)
1717
;;;                               } 15 TypeName (internal)
1718
;;;                               { 15 Expression (variable name)
1719
;;;                                 expr_type = "identifier" (value)
1720 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
1721
        MOVE    4(SP), RR
1722 7 jsauermann
;;;                               } 15 Expression (variable name)
1723 2 jsauermann
;--     l & r
1724
        AND     RR, #0x000F
1725 7 jsauermann
;;;                             } 14 Expr l & r
1726 2 jsauermann
;--     scale_rr *1
1727
;--     push_rr (16 bit)
1728
        MOVE    RR, -(SP)
1729 7 jsauermann
;;;                             { 14 Expression (variable name)
1730
;;;                               expr_type = "identifier" (hex)
1731 2 jsauermann
;--     load_rr_var hex = 6(FP), SP at -2 (16 bit)
1732
        MOVE    8(SP), RR
1733 7 jsauermann
;;;                             } 14 Expression (variable name)
1734 2 jsauermann
;--     pop_ll (16 bit)
1735
        MOVE    (SP)+, LL
1736
;--     + (element)
1737
        ADD     LL, RR
1738 7 jsauermann
;;;                           } 13 Expr l[r]
1739 2 jsauermann
;--     content
1740
        MOVE    (RR), RS
1741 7 jsauermann
;;;                         } 12 Expr l[r]
1742 2 jsauermann
;--     push_rr (8 bit)
1743
        MOVE    R, -(SP)
1744 7 jsauermann
;;;                         { 12 Expr * r
1745
;;;                           { 13 Expr l - r
1746
;;;                             { 14 Expr ++r
1747
;;;                               { 15 Expression (variable name)
1748
;;;                                 expr_type = "identifier" (dest)
1749 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
1750
        MOVE    3(SP), RR
1751 7 jsauermann
;;;                               } 15 Expression (variable name)
1752 2 jsauermann
;--     ++
1753
        ADD     RR, #0x0001
1754
;--     store_rr_var dest = 2(FP), SP at -1
1755
        MOVE    RR, 3(SP)
1756 7 jsauermann
;;;                             } 14 Expr ++r
1757 2 jsauermann
;--     l - r
1758
        SUB     RR, #0x0001
1759 7 jsauermann
;;;                           } 13 Expr l - r
1760
;;;                         } 12 Expr * r
1761 2 jsauermann
;--     move_rr_to_ll
1762
        MOVE    RR, LL
1763
;--     pop_rr (8 bit)
1764
        MOVE    (SP)+, RS
1765
;--     assign (8 bit)
1766
        MOVE    R, (LL)
1767 7 jsauermann
;;;                       } 11 Expr l = r
1768
;;;                     } 10 ExpressionStatement
1769
;;;                     { 10 ExpressionStatement
1770
;;;                       { 11 Expr l = r
1771
;;;                         { 12 TypeName
1772
;;;                           { 13 TypeSpecifier (all)
1773
;;;                             spec = char (20000)
1774
;;;                           } 13 TypeSpecifier (all)
1775
;;;                           { 13 List
1776
;;;                             { 14 DeclItem
1777
;;;                               what = DECL_NAME
1778
;;;                               name = dest
1779
;;;                             } 14 DeclItem
1780
;;;                           } 13 List
1781
;;;                         } 12 TypeName
1782
;;;                         { 12 NumericExpression (constant 0 = 0x0)
1783 2 jsauermann
;--     load_rr_constant
1784
        MOVE    #0x0000, RR
1785 7 jsauermann
;;;                         } 12 NumericExpression (constant 0 = 0x0)
1786 2 jsauermann
;--     push_rr (8 bit)
1787
        MOVE    R, -(SP)
1788 7 jsauermann
;;;                         { 12 Expr * r
1789
;;;                           { 13 Expression (variable name)
1790
;;;                             expr_type = "identifier" (dest)
1791 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
1792
        MOVE    3(SP), RR
1793 7 jsauermann
;;;                           } 13 Expression (variable name)
1794
;;;                         } 12 Expr * r
1795 2 jsauermann
;--     move_rr_to_ll
1796
        MOVE    RR, LL
1797
;--     pop_rr (8 bit)
1798
        MOVE    (SP)+, RS
1799
;--     assign (8 bit)
1800
        MOVE    R, (LL)
1801 7 jsauermann
;;;                       } 11 Expr l = r
1802
;;;                     } 10 ExpressionStatement
1803
;;;                   } 9 List
1804
;--     pop 0 bytes
1805
;;;                 } 8 CompoundStatement
1806 2 jsauermann
;--     ret
1807
        RET
1808
;;; ------------------------------------;
1809 7 jsauermann
;;;                 { 8 FunctionDefinition
1810
;;;                   { 9 TypeName
1811
;;;                     { 10 TypeSpecifier (all)
1812
;;;                       spec = void (10000)
1813
;;;                     } 10 TypeSpecifier (all)
1814
;;;                     { 10 List
1815
;;;                       { 11 DeclItem
1816
;;;                         what = DECL_NAME
1817
;;;                         name = print_unsigned
1818
;;;                       } 11 DeclItem
1819
;;;                     } 10 List
1820
;;;                   } 9 TypeName
1821
;;;                   { 9 List
1822
;;;                     { 10 DeclItem
1823
;;;                       what = DECL_NAME
1824
;;;                       name = print_unsigned
1825
;;;                     } 10 DeclItem
1826
;;;                     { 10 DeclItem
1827
;;;                       what = DECL_FUN
1828
;;;                       { 11 List
1829
;;;                         { 12 ParameterDeclaration
1830
;;;                           isEllipsis = false
1831
;;;                           { 13 TypeName
1832
;;;                             { 14 TypeSpecifier (all)
1833
;;;                               spec = char (20000)
1834
;;;                             } 14 TypeSpecifier (all)
1835
;;;                             { 14 List
1836
;;;                               { 15 DeclItem
1837
;;;                                 what = DECL_POINTER
1838
;;;                                 { 16 List
1839
;;;                                   { 17 Ptr
1840
;;;                                   } 17 Ptr
1841
;;;                                 } 16 List
1842
;;;                               } 15 DeclItem
1843
;;;                               { 15 DeclItem
1844
;;;                                 what = DECL_NAME
1845
;;;                                 name = dest
1846
;;;                               } 15 DeclItem
1847
;;;                             } 14 List
1848
;;;                           } 13 TypeName
1849
;;;                         } 12 ParameterDeclaration
1850
;;;                         { 12 ParameterDeclaration
1851
;;;                           isEllipsis = false
1852
;;;                           { 13 TypeName
1853
;;;                             { 14 TypeSpecifier (all)
1854
;;;                               spec = unsigned int (82000)
1855
;;;                             } 14 TypeSpecifier (all)
1856
;;;                             { 14 List
1857
;;;                               { 15 DeclItem
1858
;;;                                 what = DECL_NAME
1859
;;;                                 name = value
1860
;;;                               } 15 DeclItem
1861
;;;                             } 14 List
1862
;;;                           } 13 TypeName
1863
;;;                         } 12 ParameterDeclaration
1864
;;;                       } 11 List
1865
;;;                     } 10 DeclItem
1866
;;;                   } 9 List
1867 2 jsauermann
Cprint_unsigned:
1868 7 jsauermann
;;;                   { 9 CompoundStatement
1869
;;;                     { 10 List
1870
;;;                       { 11 IfElseStatement
1871
;;;                         { 12 Expr l >= r
1872
;;;                           { 13 TypeName (internal)
1873
;;;                             { 14 TypeSpecifier (all)
1874
;;;                               spec = unsigned int (82000)
1875
;;;                             } 14 TypeSpecifier (all)
1876
;;;                           } 13 TypeName (internal)
1877
;;;                           { 13 Expression (variable name)
1878
;;;                             expr_type = "identifier" (value)
1879 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
1880
        MOVE    4(SP), RR
1881 7 jsauermann
;;;                           } 13 Expression (variable name)
1882 2 jsauermann
;--     l >= r
1883
        SHS     RR, #0x2710
1884 7 jsauermann
;;;                         } 12 Expr l >= r
1885 2 jsauermann
;--     branch_false
1886
        JMP     RRZ, L10_endif_18
1887 7 jsauermann
;;;                         { 12 CompoundStatement
1888
;;;                           { 13 List
1889
;;;                             { 14 ExpressionStatement
1890
;;;                               { 15 Expr l = r
1891
;;;                                 { 16 TypeName
1892
;;;                                   { 17 TypeSpecifier (all)
1893
;;;                                     spec = char (20000)
1894
;;;                                   } 17 TypeSpecifier (all)
1895
;;;                                   { 17 List
1896
;;;                                     { 18 DeclItem
1897
;;;                                       what = DECL_NAME
1898
;;;                                       name = dest
1899
;;;                                     } 18 DeclItem
1900
;;;                                   } 17 List
1901
;;;                                 } 16 TypeName
1902
;;;                                 { 16 Expr l + r
1903
;;;                                   { 17 Expr l / r
1904
;;;                                     { 18 TypeName (internal)
1905
;;;                                       { 19 TypeSpecifier (all)
1906
;;;                                         spec = unsigned int (82000)
1907
;;;                                       } 19 TypeSpecifier (all)
1908
;;;                                     } 18 TypeName (internal)
1909
;;;                                     { 18 Expression (variable name)
1910
;;;                                       expr_type = "identifier" (value)
1911 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
1912
        MOVE    4(SP), RR
1913 7 jsauermann
;;;                                     } 18 Expression (variable name)
1914 2 jsauermann
;--     l / r
1915
        MOVE    RR, LL
1916
        MOVE    #0x2710, RR
1917
;--     l / r
1918
        DI
1919
        DIV_IU
1920
        CALL    mult_div
1921
        MD_FIN
1922
        EI
1923 7 jsauermann
;;;                                   } 17 Expr l / r
1924 2 jsauermann
;--     l + r
1925
        ADD     RR, #0x0030
1926 7 jsauermann
;;;                                 } 16 Expr l + r
1927 2 jsauermann
;--     push_rr (8 bit)
1928
        MOVE    R, -(SP)
1929 7 jsauermann
;;;                                 { 16 Expr * r
1930
;;;                                   { 17 Expr l - r
1931
;;;                                     { 18 Expr ++r
1932
;;;                                       { 19 Expression (variable name)
1933
;;;                                         expr_type = "identifier" (dest)
1934 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
1935
        MOVE    3(SP), RR
1936 7 jsauermann
;;;                                       } 19 Expression (variable name)
1937 2 jsauermann
;--     ++
1938
        ADD     RR, #0x0001
1939
;--     store_rr_var dest = 2(FP), SP at -1
1940
        MOVE    RR, 3(SP)
1941 7 jsauermann
;;;                                     } 18 Expr ++r
1942 2 jsauermann
;--     l - r
1943
        SUB     RR, #0x0001
1944 7 jsauermann
;;;                                   } 17 Expr l - r
1945
;;;                                 } 16 Expr * r
1946 2 jsauermann
;--     move_rr_to_ll
1947
        MOVE    RR, LL
1948
;--     pop_rr (8 bit)
1949
        MOVE    (SP)+, RS
1950
;--     assign (8 bit)
1951
        MOVE    R, (LL)
1952 7 jsauermann
;;;                               } 15 Expr l = r
1953
;;;                             } 14 ExpressionStatement
1954
;;;                             { 14 ExpressionStatement
1955
;;;                               { 15 Expr l %= r
1956
;;;                                 { 16 TypeName
1957
;;;                                   { 17 TypeSpecifier (all)
1958
;;;                                     spec = unsigned int (82000)
1959
;;;                                   } 17 TypeSpecifier (all)
1960
;;;                                   { 17 List
1961
;;;                                     { 18 DeclItem
1962
;;;                                       what = DECL_NAME
1963
;;;                                       name = value
1964
;;;                                     } 18 DeclItem
1965
;;;                                   } 17 List
1966
;;;                                 } 16 TypeName
1967
;;;                                 { 16 Expr l % r
1968
;;;                                   { 17 TypeName (internal)
1969
;;;                                     { 18 TypeSpecifier (all)
1970
;;;                                       spec = unsigned int (82000)
1971
;;;                                     } 18 TypeSpecifier (all)
1972
;;;                                   } 17 TypeName (internal)
1973
;;;                                   { 17 Expression (variable name)
1974
;;;                                     expr_type = "identifier" (value)
1975 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
1976
        MOVE    4(SP), RR
1977 7 jsauermann
;;;                                   } 17 Expression (variable name)
1978 2 jsauermann
;--     l % r
1979
        MOVE    RR, LL
1980
        MOVE    #0x2710, RR
1981
;--     l % r
1982
        DI
1983
        DIV_IU
1984
        CALL    mult_div
1985
        MOD_FIN
1986
        EI
1987 7 jsauermann
;;;                                 } 16 Expr l % r
1988 2 jsauermann
;--     store_rr_var value = 4(FP), SP at 0
1989
        MOVE    RR, 4(SP)
1990 7 jsauermann
;;;                               } 15 Expr l %= r
1991
;;;                             } 14 ExpressionStatement
1992
;;;                           } 13 List
1993
;--     pop 0 bytes
1994
;;;                         } 12 CompoundStatement
1995 2 jsauermann
L10_endif_18:
1996 7 jsauermann
;;;                       } 11 IfElseStatement
1997
;;;                       { 11 IfElseStatement
1998
;;;                         { 12 Expr l >= r
1999
;;;                           { 13 TypeName (internal)
2000
;;;                             { 14 TypeSpecifier (all)
2001
;;;                               spec = unsigned int (82000)
2002
;;;                             } 14 TypeSpecifier (all)
2003
;;;                           } 13 TypeName (internal)
2004
;;;                           { 13 Expression (variable name)
2005
;;;                             expr_type = "identifier" (value)
2006 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
2007
        MOVE    4(SP), RR
2008 7 jsauermann
;;;                           } 13 Expression (variable name)
2009 2 jsauermann
;--     l >= r
2010
        SHS     RR, #0x03E8
2011 7 jsauermann
;;;                         } 12 Expr l >= r
2012 2 jsauermann
;--     branch_false
2013
        JMP     RRZ, L10_endif_19
2014 7 jsauermann
;;;                         { 12 CompoundStatement
2015
;;;                           { 13 List
2016
;;;                             { 14 ExpressionStatement
2017
;;;                               { 15 Expr l = r
2018
;;;                                 { 16 TypeName
2019
;;;                                   { 17 TypeSpecifier (all)
2020
;;;                                     spec = char (20000)
2021
;;;                                   } 17 TypeSpecifier (all)
2022
;;;                                   { 17 List
2023
;;;                                     { 18 DeclItem
2024
;;;                                       what = DECL_NAME
2025
;;;                                       name = dest
2026
;;;                                     } 18 DeclItem
2027
;;;                                   } 17 List
2028
;;;                                 } 16 TypeName
2029
;;;                                 { 16 Expr l + r
2030
;;;                                   { 17 Expr l / r
2031
;;;                                     { 18 TypeName (internal)
2032
;;;                                       { 19 TypeSpecifier (all)
2033
;;;                                         spec = unsigned int (82000)
2034
;;;                                       } 19 TypeSpecifier (all)
2035
;;;                                     } 18 TypeName (internal)
2036
;;;                                     { 18 Expression (variable name)
2037
;;;                                       expr_type = "identifier" (value)
2038 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
2039
        MOVE    4(SP), RR
2040 7 jsauermann
;;;                                     } 18 Expression (variable name)
2041 2 jsauermann
;--     l / r
2042
        MOVE    RR, LL
2043
        MOVE    #0x03E8, RR
2044
;--     l / r
2045
        DI
2046
        DIV_IU
2047
        CALL    mult_div
2048
        MD_FIN
2049
        EI
2050 7 jsauermann
;;;                                   } 17 Expr l / r
2051 2 jsauermann
;--     l + r
2052
        ADD     RR, #0x0030
2053 7 jsauermann
;;;                                 } 16 Expr l + r
2054 2 jsauermann
;--     push_rr (8 bit)
2055
        MOVE    R, -(SP)
2056 7 jsauermann
;;;                                 { 16 Expr * r
2057
;;;                                   { 17 Expr l - r
2058
;;;                                     { 18 Expr ++r
2059
;;;                                       { 19 Expression (variable name)
2060
;;;                                         expr_type = "identifier" (dest)
2061 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
2062
        MOVE    3(SP), RR
2063 7 jsauermann
;;;                                       } 19 Expression (variable name)
2064 2 jsauermann
;--     ++
2065
        ADD     RR, #0x0001
2066
;--     store_rr_var dest = 2(FP), SP at -1
2067
        MOVE    RR, 3(SP)
2068 7 jsauermann
;;;                                     } 18 Expr ++r
2069 2 jsauermann
;--     l - r
2070
        SUB     RR, #0x0001
2071 7 jsauermann
;;;                                   } 17 Expr l - r
2072
;;;                                 } 16 Expr * r
2073 2 jsauermann
;--     move_rr_to_ll
2074
        MOVE    RR, LL
2075
;--     pop_rr (8 bit)
2076
        MOVE    (SP)+, RS
2077
;--     assign (8 bit)
2078
        MOVE    R, (LL)
2079 7 jsauermann
;;;                               } 15 Expr l = r
2080
;;;                             } 14 ExpressionStatement
2081
;;;                             { 14 ExpressionStatement
2082
;;;                               { 15 Expr l %= r
2083
;;;                                 { 16 TypeName
2084
;;;                                   { 17 TypeSpecifier (all)
2085
;;;                                     spec = unsigned int (82000)
2086
;;;                                   } 17 TypeSpecifier (all)
2087
;;;                                   { 17 List
2088
;;;                                     { 18 DeclItem
2089
;;;                                       what = DECL_NAME
2090
;;;                                       name = value
2091
;;;                                     } 18 DeclItem
2092
;;;                                   } 17 List
2093
;;;                                 } 16 TypeName
2094
;;;                                 { 16 Expr l % r
2095
;;;                                   { 17 TypeName (internal)
2096
;;;                                     { 18 TypeSpecifier (all)
2097
;;;                                       spec = unsigned int (82000)
2098
;;;                                     } 18 TypeSpecifier (all)
2099
;;;                                   } 17 TypeName (internal)
2100
;;;                                   { 17 Expression (variable name)
2101
;;;                                     expr_type = "identifier" (value)
2102 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
2103
        MOVE    4(SP), RR
2104 7 jsauermann
;;;                                   } 17 Expression (variable name)
2105 2 jsauermann
;--     l % r
2106
        MOVE    RR, LL
2107
        MOVE    #0x03E8, RR
2108
;--     l % r
2109
        DI
2110
        DIV_IU
2111
        CALL    mult_div
2112
        MOD_FIN
2113
        EI
2114 7 jsauermann
;;;                                 } 16 Expr l % r
2115 2 jsauermann
;--     store_rr_var value = 4(FP), SP at 0
2116
        MOVE    RR, 4(SP)
2117 7 jsauermann
;;;                               } 15 Expr l %= r
2118
;;;                             } 14 ExpressionStatement
2119
;;;                           } 13 List
2120
;--     pop 0 bytes
2121
;;;                         } 12 CompoundStatement
2122 2 jsauermann
L10_endif_19:
2123 7 jsauermann
;;;                       } 11 IfElseStatement
2124
;;;                       { 11 IfElseStatement
2125
;;;                         { 12 Expr l >= r
2126
;;;                           { 13 TypeName (internal)
2127
;;;                             { 14 TypeSpecifier (all)
2128
;;;                               spec = unsigned int (82000)
2129
;;;                             } 14 TypeSpecifier (all)
2130
;;;                           } 13 TypeName (internal)
2131
;;;                           { 13 Expression (variable name)
2132
;;;                             expr_type = "identifier" (value)
2133 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
2134
        MOVE    4(SP), RR
2135 7 jsauermann
;;;                           } 13 Expression (variable name)
2136 2 jsauermann
;--     l >= r
2137
        SHS     RR, #0x0064
2138 7 jsauermann
;;;                         } 12 Expr l >= r
2139 2 jsauermann
;--     branch_false
2140
        JMP     RRZ, L10_endif_20
2141 7 jsauermann
;;;                         { 12 CompoundStatement
2142
;;;                           { 13 List
2143
;;;                             { 14 ExpressionStatement
2144
;;;                               { 15 Expr l = r
2145
;;;                                 { 16 TypeName
2146
;;;                                   { 17 TypeSpecifier (all)
2147
;;;                                     spec = char (20000)
2148
;;;                                   } 17 TypeSpecifier (all)
2149
;;;                                   { 17 List
2150
;;;                                     { 18 DeclItem
2151
;;;                                       what = DECL_NAME
2152
;;;                                       name = dest
2153
;;;                                     } 18 DeclItem
2154
;;;                                   } 17 List
2155
;;;                                 } 16 TypeName
2156
;;;                                 { 16 Expr l + r
2157
;;;                                   { 17 Expr l / r
2158
;;;                                     { 18 TypeName (internal)
2159
;;;                                       { 19 TypeSpecifier (all)
2160
;;;                                         spec = unsigned int (82000)
2161
;;;                                       } 19 TypeSpecifier (all)
2162
;;;                                     } 18 TypeName (internal)
2163
;;;                                     { 18 Expression (variable name)
2164
;;;                                       expr_type = "identifier" (value)
2165 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
2166
        MOVE    4(SP), RR
2167 7 jsauermann
;;;                                     } 18 Expression (variable name)
2168 2 jsauermann
;--     l / r
2169
        MOVE    RR, LL
2170
        MOVE    #0x0064, RR
2171
;--     l / r
2172
        DI
2173
        DIV_IU
2174
        CALL    mult_div
2175
        MD_FIN
2176
        EI
2177 7 jsauermann
;;;                                   } 17 Expr l / r
2178 2 jsauermann
;--     l + r
2179
        ADD     RR, #0x0030
2180 7 jsauermann
;;;                                 } 16 Expr l + r
2181 2 jsauermann
;--     push_rr (8 bit)
2182
        MOVE    R, -(SP)
2183 7 jsauermann
;;;                                 { 16 Expr * r
2184
;;;                                   { 17 Expr l - r
2185
;;;                                     { 18 Expr ++r
2186
;;;                                       { 19 Expression (variable name)
2187
;;;                                         expr_type = "identifier" (dest)
2188 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
2189
        MOVE    3(SP), RR
2190 7 jsauermann
;;;                                       } 19 Expression (variable name)
2191 2 jsauermann
;--     ++
2192
        ADD     RR, #0x0001
2193
;--     store_rr_var dest = 2(FP), SP at -1
2194
        MOVE    RR, 3(SP)
2195 7 jsauermann
;;;                                     } 18 Expr ++r
2196 2 jsauermann
;--     l - r
2197
        SUB     RR, #0x0001
2198 7 jsauermann
;;;                                   } 17 Expr l - r
2199
;;;                                 } 16 Expr * r
2200 2 jsauermann
;--     move_rr_to_ll
2201
        MOVE    RR, LL
2202
;--     pop_rr (8 bit)
2203
        MOVE    (SP)+, RS
2204
;--     assign (8 bit)
2205
        MOVE    R, (LL)
2206 7 jsauermann
;;;                               } 15 Expr l = r
2207
;;;                             } 14 ExpressionStatement
2208
;;;                             { 14 ExpressionStatement
2209
;;;                               { 15 Expr l %= r
2210
;;;                                 { 16 TypeName
2211
;;;                                   { 17 TypeSpecifier (all)
2212
;;;                                     spec = unsigned int (82000)
2213
;;;                                   } 17 TypeSpecifier (all)
2214
;;;                                   { 17 List
2215
;;;                                     { 18 DeclItem
2216
;;;                                       what = DECL_NAME
2217
;;;                                       name = value
2218
;;;                                     } 18 DeclItem
2219
;;;                                   } 17 List
2220
;;;                                 } 16 TypeName
2221
;;;                                 { 16 Expr l % r
2222
;;;                                   { 17 TypeName (internal)
2223
;;;                                     { 18 TypeSpecifier (all)
2224
;;;                                       spec = unsigned int (82000)
2225
;;;                                     } 18 TypeSpecifier (all)
2226
;;;                                   } 17 TypeName (internal)
2227
;;;                                   { 17 Expression (variable name)
2228
;;;                                     expr_type = "identifier" (value)
2229 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
2230
        MOVE    4(SP), RR
2231 7 jsauermann
;;;                                   } 17 Expression (variable name)
2232 2 jsauermann
;--     l % r
2233
        MOVE    RR, LL
2234
        MOVE    #0x0064, RR
2235
;--     l % r
2236
        DI
2237
        DIV_IU
2238
        CALL    mult_div
2239
        MOD_FIN
2240
        EI
2241 7 jsauermann
;;;                                 } 16 Expr l % r
2242 2 jsauermann
;--     store_rr_var value = 4(FP), SP at 0
2243
        MOVE    RR, 4(SP)
2244 7 jsauermann
;;;                               } 15 Expr l %= r
2245
;;;                             } 14 ExpressionStatement
2246
;;;                           } 13 List
2247
;--     pop 0 bytes
2248
;;;                         } 12 CompoundStatement
2249 2 jsauermann
L10_endif_20:
2250 7 jsauermann
;;;                       } 11 IfElseStatement
2251
;;;                       { 11 IfElseStatement
2252
;;;                         { 12 Expr l >= r
2253
;;;                           { 13 TypeName (internal)
2254
;;;                             { 14 TypeSpecifier (all)
2255
;;;                               spec = unsigned int (82000)
2256
;;;                             } 14 TypeSpecifier (all)
2257
;;;                           } 13 TypeName (internal)
2258
;;;                           { 13 Expression (variable name)
2259
;;;                             expr_type = "identifier" (value)
2260 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
2261
        MOVE    4(SP), RR
2262 7 jsauermann
;;;                           } 13 Expression (variable name)
2263 2 jsauermann
;--     l >= r
2264
        SHS     RR, #0x000A
2265 7 jsauermann
;;;                         } 12 Expr l >= r
2266 2 jsauermann
;--     branch_false
2267
        JMP     RRZ, L10_endif_21
2268 7 jsauermann
;;;                         { 12 CompoundStatement
2269
;;;                           { 13 List
2270
;;;                             { 14 ExpressionStatement
2271
;;;                               { 15 Expr l = r
2272
;;;                                 { 16 TypeName
2273
;;;                                   { 17 TypeSpecifier (all)
2274
;;;                                     spec = char (20000)
2275
;;;                                   } 17 TypeSpecifier (all)
2276
;;;                                   { 17 List
2277
;;;                                     { 18 DeclItem
2278
;;;                                       what = DECL_NAME
2279
;;;                                       name = dest
2280
;;;                                     } 18 DeclItem
2281
;;;                                   } 17 List
2282
;;;                                 } 16 TypeName
2283
;;;                                 { 16 Expr l + r
2284
;;;                                   { 17 Expr l / r
2285
;;;                                     { 18 TypeName (internal)
2286
;;;                                       { 19 TypeSpecifier (all)
2287
;;;                                         spec = unsigned int (82000)
2288
;;;                                       } 19 TypeSpecifier (all)
2289
;;;                                     } 18 TypeName (internal)
2290
;;;                                     { 18 Expression (variable name)
2291
;;;                                       expr_type = "identifier" (value)
2292 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
2293
        MOVE    4(SP), RR
2294 7 jsauermann
;;;                                     } 18 Expression (variable name)
2295 2 jsauermann
;--     l / r
2296
        MOVE    RR, LL
2297
        MOVE    #0x000A, RR
2298
;--     l / r
2299
        DI
2300
        DIV_IU
2301
        CALL    mult_div
2302
        MD_FIN
2303
        EI
2304 7 jsauermann
;;;                                   } 17 Expr l / r
2305 2 jsauermann
;--     l + r
2306
        ADD     RR, #0x0030
2307 7 jsauermann
;;;                                 } 16 Expr l + r
2308 2 jsauermann
;--     push_rr (8 bit)
2309
        MOVE    R, -(SP)
2310 7 jsauermann
;;;                                 { 16 Expr * r
2311
;;;                                   { 17 Expr l - r
2312
;;;                                     { 18 Expr ++r
2313
;;;                                       { 19 Expression (variable name)
2314
;;;                                         expr_type = "identifier" (dest)
2315 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
2316
        MOVE    3(SP), RR
2317 7 jsauermann
;;;                                       } 19 Expression (variable name)
2318 2 jsauermann
;--     ++
2319
        ADD     RR, #0x0001
2320
;--     store_rr_var dest = 2(FP), SP at -1
2321
        MOVE    RR, 3(SP)
2322 7 jsauermann
;;;                                     } 18 Expr ++r
2323 2 jsauermann
;--     l - r
2324
        SUB     RR, #0x0001
2325 7 jsauermann
;;;                                   } 17 Expr l - r
2326
;;;                                 } 16 Expr * r
2327 2 jsauermann
;--     move_rr_to_ll
2328
        MOVE    RR, LL
2329
;--     pop_rr (8 bit)
2330
        MOVE    (SP)+, RS
2331
;--     assign (8 bit)
2332
        MOVE    R, (LL)
2333 7 jsauermann
;;;                               } 15 Expr l = r
2334
;;;                             } 14 ExpressionStatement
2335
;;;                             { 14 ExpressionStatement
2336
;;;                               { 15 Expr l %= r
2337
;;;                                 { 16 TypeName
2338
;;;                                   { 17 TypeSpecifier (all)
2339
;;;                                     spec = unsigned int (82000)
2340
;;;                                   } 17 TypeSpecifier (all)
2341
;;;                                   { 17 List
2342
;;;                                     { 18 DeclItem
2343
;;;                                       what = DECL_NAME
2344
;;;                                       name = value
2345
;;;                                     } 18 DeclItem
2346
;;;                                   } 17 List
2347
;;;                                 } 16 TypeName
2348
;;;                                 { 16 Expr l % r
2349
;;;                                   { 17 TypeName (internal)
2350
;;;                                     { 18 TypeSpecifier (all)
2351
;;;                                       spec = unsigned int (82000)
2352
;;;                                     } 18 TypeSpecifier (all)
2353
;;;                                   } 17 TypeName (internal)
2354
;;;                                   { 17 Expression (variable name)
2355
;;;                                     expr_type = "identifier" (value)
2356 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
2357
        MOVE    4(SP), RR
2358 7 jsauermann
;;;                                   } 17 Expression (variable name)
2359 2 jsauermann
;--     l % r
2360
        MOVE    RR, LL
2361
        MOVE    #0x000A, RR
2362
;--     l % r
2363
        DI
2364
        DIV_IU
2365
        CALL    mult_div
2366
        MOD_FIN
2367
        EI
2368 7 jsauermann
;;;                                 } 16 Expr l % r
2369 2 jsauermann
;--     store_rr_var value = 4(FP), SP at 0
2370
        MOVE    RR, 4(SP)
2371 7 jsauermann
;;;                               } 15 Expr l %= r
2372
;;;                             } 14 ExpressionStatement
2373
;;;                           } 13 List
2374
;--     pop 0 bytes
2375
;;;                         } 12 CompoundStatement
2376 2 jsauermann
L10_endif_21:
2377 7 jsauermann
;;;                       } 11 IfElseStatement
2378
;;;                       { 11 ExpressionStatement
2379
;;;                         { 12 Expr l = r
2380
;;;                           { 13 TypeName
2381
;;;                             { 14 TypeSpecifier (all)
2382
;;;                               spec = char (20000)
2383
;;;                             } 14 TypeSpecifier (all)
2384
;;;                             { 14 List
2385
;;;                               { 15 DeclItem
2386
;;;                                 what = DECL_NAME
2387
;;;                                 name = dest
2388
;;;                               } 15 DeclItem
2389
;;;                             } 14 List
2390
;;;                           } 13 TypeName
2391
;;;                           { 13 Expr l + r
2392
;;;                             { 14 Expression (variable name)
2393
;;;                               expr_type = "identifier" (value)
2394 2 jsauermann
;--     load_rr_var value = 4(FP), SP at 0 (16 bit)
2395
        MOVE    4(SP), RR
2396 7 jsauermann
;;;                             } 14 Expression (variable name)
2397 2 jsauermann
;--     l + r
2398
        ADD     RR, #0x0030
2399 7 jsauermann
;;;                           } 13 Expr l + r
2400 2 jsauermann
;--     push_rr (8 bit)
2401
        MOVE    R, -(SP)
2402 7 jsauermann
;;;                           { 13 Expr * r
2403
;;;                             { 14 Expr l - r
2404
;;;                               { 15 Expr ++r
2405
;;;                                 { 16 Expression (variable name)
2406
;;;                                   expr_type = "identifier" (dest)
2407 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
2408
        MOVE    3(SP), RR
2409 7 jsauermann
;;;                                 } 16 Expression (variable name)
2410 2 jsauermann
;--     ++
2411
        ADD     RR, #0x0001
2412
;--     store_rr_var dest = 2(FP), SP at -1
2413
        MOVE    RR, 3(SP)
2414 7 jsauermann
;;;                               } 15 Expr ++r
2415 2 jsauermann
;--     l - r
2416
        SUB     RR, #0x0001
2417 7 jsauermann
;;;                             } 14 Expr l - r
2418
;;;                           } 13 Expr * r
2419 2 jsauermann
;--     move_rr_to_ll
2420
        MOVE    RR, LL
2421
;--     pop_rr (8 bit)
2422
        MOVE    (SP)+, RS
2423
;--     assign (8 bit)
2424
        MOVE    R, (LL)
2425 7 jsauermann
;;;                         } 12 Expr l = r
2426
;;;                       } 11 ExpressionStatement
2427
;;;                       { 11 ExpressionStatement
2428
;;;                         { 12 Expr l = r
2429
;;;                           { 13 TypeName
2430
;;;                             { 14 TypeSpecifier (all)
2431
;;;                               spec = char (20000)
2432
;;;                             } 14 TypeSpecifier (all)
2433
;;;                             { 14 List
2434
;;;                               { 15 DeclItem
2435
;;;                                 what = DECL_NAME
2436
;;;                                 name = dest
2437
;;;                               } 15 DeclItem
2438
;;;                             } 14 List
2439
;;;                           } 13 TypeName
2440
;;;                           { 13 NumericExpression (constant 0 = 0x0)
2441 2 jsauermann
;--     load_rr_constant
2442
        MOVE    #0x0000, RR
2443 7 jsauermann
;;;                           } 13 NumericExpression (constant 0 = 0x0)
2444 2 jsauermann
;--     push_rr (8 bit)
2445
        MOVE    R, -(SP)
2446 7 jsauermann
;;;                           { 13 Expr * r
2447
;;;                             { 14 Expression (variable name)
2448
;;;                               expr_type = "identifier" (dest)
2449 2 jsauermann
;--     load_rr_var dest = 2(FP), SP at -1 (16 bit)
2450
        MOVE    3(SP), RR
2451 7 jsauermann
;;;                             } 14 Expression (variable name)
2452
;;;                           } 13 Expr * r
2453 2 jsauermann
;--     move_rr_to_ll
2454
        MOVE    RR, LL
2455
;--     pop_rr (8 bit)
2456
        MOVE    (SP)+, RS
2457
;--     assign (8 bit)
2458
        MOVE    R, (LL)
2459 7 jsauermann
;;;                         } 12 Expr l = r
2460
;;;                       } 11 ExpressionStatement
2461
;;;                     } 10 List
2462
;--     pop 0 bytes
2463
;;;                   } 9 CompoundStatement
2464 2 jsauermann
;--     ret
2465
        RET
2466
;;; ------------------------------------;
2467 7 jsauermann
;;;                   { 9 FunctionDefinition
2468
;;;                     { 10 TypeName
2469
;;;                       { 11 TypeSpecifier (all)
2470
;;;                         spec = int (80000)
2471
;;;                       } 11 TypeSpecifier (all)
2472
;;;                       { 11 List
2473
;;;                         { 12 DeclItem
2474
;;;                           what = DECL_NAME
2475
;;;                           name = print_item
2476
;;;                         } 12 DeclItem
2477
;;;                       } 11 List
2478
;;;                     } 10 TypeName
2479
;;;                     { 10 List
2480
;;;                       { 11 DeclItem
2481
;;;                         what = DECL_NAME
2482
;;;                         name = print_item
2483
;;;                       } 11 DeclItem
2484
;;;                       { 11 DeclItem
2485
;;;                         what = DECL_FUN
2486
;;;                         { 12 List
2487
;;;                           { 13 ParameterDeclaration
2488
;;;                             isEllipsis = false
2489
;;;                             { 14 TypeName
2490
;;;                               { 15 TypeSpecifier (all)
2491
;;;                                 spec = const char (20100)
2492
;;;                               } 15 TypeSpecifier (all)
2493
;;;                               { 15 List
2494
;;;                                 { 16 DeclItem
2495
;;;                                   what = DECL_POINTER
2496
;;;                                   { 17 List
2497
;;;                                     { 18 Ptr
2498
;;;                                     } 18 Ptr
2499
;;;                                   } 17 List
2500
;;;                                 } 16 DeclItem
2501
;;;                                 { 16 DeclItem
2502
;;;                                   what = DECL_NAME
2503
;;;                                   name = buffer
2504
;;;                                 } 16 DeclItem
2505
;;;                               } 15 List
2506
;;;                             } 14 TypeName
2507
;;;                           } 13 ParameterDeclaration
2508
;;;                           { 13 ParameterDeclaration
2509
;;;                             isEllipsis = false
2510
;;;                             { 14 TypeName
2511
;;;                               { 15 TypeSpecifier (all)
2512
;;;                                 spec = char (20000)
2513
;;;                               } 15 TypeSpecifier (all)
2514
;;;                               { 15 List
2515
;;;                                 { 16 DeclItem
2516
;;;                                   what = DECL_NAME
2517
;;;                                   name = flags
2518
;;;                                 } 16 DeclItem
2519
;;;                               } 15 List
2520
;;;                             } 14 TypeName
2521
;;;                           } 13 ParameterDeclaration
2522
;;;                           { 13 ParameterDeclaration
2523
;;;                             isEllipsis = false
2524
;;;                             { 14 TypeName
2525
;;;                               { 15 TypeSpecifier (all)
2526
;;;                                 spec = char (20000)
2527
;;;                               } 15 TypeSpecifier (all)
2528
;;;                               { 15 List
2529
;;;                                 { 16 DeclItem
2530
;;;                                   what = DECL_NAME
2531
;;;                                   name = sign
2532
;;;                                 } 16 DeclItem
2533
;;;                               } 15 List
2534
;;;                             } 14 TypeName
2535
;;;                           } 13 ParameterDeclaration
2536
;;;                           { 13 ParameterDeclaration
2537
;;;                             isEllipsis = false
2538
;;;                             { 14 TypeName
2539
;;;                               { 15 TypeSpecifier (all)
2540
;;;                                 spec = char (20000)
2541
;;;                               } 15 TypeSpecifier (all)
2542
;;;                               { 15 List
2543
;;;                                 { 16 DeclItem
2544
;;;                                   what = DECL_NAME
2545
;;;                                   name = pad
2546
;;;                                 } 16 DeclItem
2547
;;;                               } 15 List
2548
;;;                             } 14 TypeName
2549
;;;                           } 13 ParameterDeclaration
2550
;;;                           { 13 ParameterDeclaration
2551
;;;                             isEllipsis = false
2552
;;;                             { 14 TypeName
2553
;;;                               { 15 TypeSpecifier (all)
2554
;;;                                 spec = const char (20100)
2555
;;;                               } 15 TypeSpecifier (all)
2556
;;;                               { 15 List
2557
;;;                                 { 16 DeclItem
2558
;;;                                   what = DECL_POINTER
2559
;;;                                   { 17 List
2560
;;;                                     { 18 Ptr
2561
;;;                                     } 18 Ptr
2562
;;;                                   } 17 List
2563
;;;                                 } 16 DeclItem
2564
;;;                                 { 16 DeclItem
2565
;;;                                   what = DECL_NAME
2566
;;;                                   name = alt
2567
;;;                                 } 16 DeclItem
2568
;;;                               } 15 List
2569
;;;                             } 14 TypeName
2570
;;;                           } 13 ParameterDeclaration
2571
;;;                           { 13 ParameterDeclaration
2572
;;;                             isEllipsis = false
2573
;;;                             { 14 TypeName
2574
;;;                               { 15 TypeSpecifier (all)
2575
;;;                                 spec = int (80000)
2576
;;;                               } 15 TypeSpecifier (all)
2577
;;;                               { 15 List
2578
;;;                                 { 16 DeclItem
2579
;;;                                   what = DECL_NAME
2580
;;;                                   name = field_w
2581
;;;                                 } 16 DeclItem
2582
;;;                               } 15 List
2583
;;;                             } 14 TypeName
2584
;;;                           } 13 ParameterDeclaration
2585
;;;                           { 13 ParameterDeclaration
2586
;;;                             isEllipsis = false
2587
;;;                             { 14 TypeName
2588
;;;                               { 15 TypeSpecifier (all)
2589
;;;                                 spec = int (80000)
2590
;;;                               } 15 TypeSpecifier (all)
2591
;;;                               { 15 List
2592
;;;                                 { 16 DeclItem
2593
;;;                                   what = DECL_NAME
2594
;;;                                   name = min_w
2595
;;;                                 } 16 DeclItem
2596
;;;                               } 15 List
2597
;;;                             } 14 TypeName
2598
;;;                           } 13 ParameterDeclaration
2599
;;;                           { 13 ParameterDeclaration
2600
;;;                             isEllipsis = false
2601
;;;                             { 14 TypeName
2602
;;;                               { 15 TypeSpecifier (all)
2603
;;;                                 spec = char (20000)
2604
;;;                               } 15 TypeSpecifier (all)
2605
;;;                               { 15 List
2606
;;;                                 { 16 DeclItem
2607
;;;                                   what = DECL_NAME
2608
;;;                                   name = min_p
2609
;;;                                 } 16 DeclItem
2610
;;;                               } 15 List
2611
;;;                             } 14 TypeName
2612
;;;                           } 13 ParameterDeclaration
2613
;;;                         } 12 List
2614
;;;                       } 11 DeclItem
2615
;;;                     } 10 List
2616 2 jsauermann
Cprint_item:
2617 7 jsauermann
;;;                     { 10 CompoundStatement
2618
;;;                       { 11 InitDeclarator
2619
;;;                         { 12 List
2620
;;;                           { 13 DeclItem
2621
;;;                             what = DECL_NAME
2622
;;;                             name = filllen
2623
;;;                           } 13 DeclItem
2624
;;;                         } 12 List
2625
;;;                         { 12 Initializer (skalar)
2626 2 jsauermann
;--     push_zero 2 bytes
2627
        CLRW    -(SP)
2628 7 jsauermann
;;;                         } 12 Initializer (skalar)
2629
;;;                       } 11 InitDeclarator
2630
;;;                       { 11 InitDeclarator
2631
;;;                         { 12 List
2632
;;;                           { 13 DeclItem
2633
;;;                             what = DECL_NAME
2634
;;;                             name = signlen
2635
;;;                           } 13 DeclItem
2636
;;;                         } 12 List
2637
;;;                         { 12 Initializer (skalar)
2638 2 jsauermann
;--     push_zero 2 bytes
2639
        CLRW    -(SP)
2640 7 jsauermann
;;;                         } 12 Initializer (skalar)
2641
;;;                       } 11 InitDeclarator
2642
;;;                       { 11 InitDeclarator
2643
;;;                         { 12 List
2644
;;;                           { 13 DeclItem
2645
;;;                             what = DECL_NAME
2646
;;;                             name = altlen
2647
;;;                           } 13 DeclItem
2648
;;;                         } 12 List
2649
;;;                         { 12 Initializer (skalar)
2650 2 jsauermann
;--     push_zero 2 bytes
2651
        CLRW    -(SP)
2652 7 jsauermann
;;;                         } 12 Initializer (skalar)
2653
;;;                       } 11 InitDeclarator
2654
;;;                       { 11 InitDeclarator
2655
;;;                         { 12 List
2656
;;;                           { 13 DeclItem
2657
;;;                             what = DECL_NAME
2658
;;;                             name = padlen
2659
;;;                           } 13 DeclItem
2660
;;;                         } 12 List
2661
;;;                         { 12 Initializer (skalar)
2662 2 jsauermann
;--     push_zero 2 bytes
2663
        CLRW    -(SP)
2664 7 jsauermann
;;;                         } 12 Initializer (skalar)
2665
;;;                       } 11 InitDeclarator
2666
;;;                       { 11 InitDeclarator
2667
;;;                         { 12 List
2668
;;;                           { 13 DeclItem
2669
;;;                             what = DECL_NAME
2670
;;;                             name = buflen
2671
;;;                           } 13 DeclItem
2672
;;;                         } 12 List
2673
;;;                         { 12 Initializer (skalar)
2674
;;;                           { 13 Expr l(r)
2675
;;;                             { 14 TypeName
2676
;;;                               { 15 TypeSpecifier (all)
2677
;;;                                 spec = int (80000)
2678
;;;                               } 15 TypeSpecifier (all)
2679
;;;                               { 15 List
2680
;;;                                 { 16 DeclItem
2681
;;;                                   what = DECL_NAME
2682
;;;                                   name = strlen
2683
;;;                                 } 16 DeclItem
2684
;;;                               } 15 List
2685
;;;                             } 14 TypeName
2686
;;;                             { 14 ParameterDeclaration
2687
;;;                               isEllipsis = false
2688
;;;                               { 15 TypeName
2689
;;;                                 { 16 TypeSpecifier (all)
2690
;;;                                   spec = const char (20100)
2691
;;;                                 } 16 TypeSpecifier (all)
2692
;;;                                 { 16 List
2693
;;;                                   { 17 DeclItem
2694
;;;                                     what = DECL_POINTER
2695
;;;                                     { 18 List
2696
;;;                                       { 19 Ptr
2697
;;;                                       } 19 Ptr
2698
;;;                                     } 18 List
2699
;;;                                   } 17 DeclItem
2700
;;;                                   { 17 DeclItem
2701
;;;                                     what = DECL_NAME
2702
;;;                                     name = buffer
2703
;;;                                   } 17 DeclItem
2704
;;;                                 } 16 List
2705
;;;                               } 15 TypeName
2706
;;;                             } 14 ParameterDeclaration
2707
;;;                             { 14 Expression (variable name)
2708
;;;                               expr_type = "identifier" (buffer)
2709 2 jsauermann
;--     load_rr_var buffer = 2(FP), SP at -8 (16 bit)
2710
        MOVE    10(SP), RR
2711 7 jsauermann
;;;                             } 14 Expression (variable name)
2712 2 jsauermann
;--     push_rr (16 bit)
2713
        MOVE    RR, -(SP)
2714
;--     push 2 bytes
2715
;--     call
2716
        CALL    Cstrlen
2717
;--     pop 2 bytes
2718
        ADD     SP, #2
2719 7 jsauermann
;;;                           } 13 Expr l(r)
2720 2 jsauermann
;--     push_rr (16 bit)
2721
        MOVE    RR, -(SP)
2722 7 jsauermann
;;;                         } 12 Initializer (skalar)
2723
;;;                       } 11 InitDeclarator
2724
;;;                       { 11 InitDeclarator
2725
;;;                         { 12 List
2726
;;;                           { 13 DeclItem
2727
;;;                             what = DECL_NAME
2728
;;;                             name = len
2729
;;;                           } 13 DeclItem
2730
;;;                         } 12 List
2731 2 jsauermann
;--     push_zero 2 bytes
2732
        CLRW    -(SP)
2733 7 jsauermann
;;;                       } 11 InitDeclarator
2734
;;;                       { 11 InitDeclarator
2735
;;;                         { 12 List
2736
;;;                           { 13 DeclItem
2737
;;;                             what = DECL_NAME
2738
;;;                             name = i
2739
;;;                           } 13 DeclItem
2740
;;;                         } 12 List
2741 2 jsauermann
;--     push_zero 2 bytes
2742
        CLRW    -(SP)
2743 7 jsauermann
;;;                       } 11 InitDeclarator
2744
;;;                       { 11 List
2745
;;;                         { 12 IfElseStatement
2746
;;;                           { 13 Expr l > r
2747
;;;                             { 14 TypeName (internal)
2748
;;;                               { 15 TypeSpecifier (all)
2749
;;;                                 spec = int (80000)
2750
;;;                               } 15 TypeSpecifier (all)
2751
;;;                             } 14 TypeName (internal)
2752
;;;                             { 14 Expression (variable name)
2753
;;;                               expr_type = "identifier" (min_w)
2754 2 jsauermann
;--     load_rr_var min_w = 11(FP), SP at -14 (16 bit)
2755
        MOVE    25(SP), RR
2756 7 jsauermann
;;;                             } 14 Expression (variable name)
2757 2 jsauermann
;--     move_rr_to_ll
2758
        MOVE    RR, LL
2759 7 jsauermann
;;;                             { 14 Expression (variable name)
2760
;;;                               expr_type = "identifier" (buflen)
2761 2 jsauermann
;--     load_rr_var buflen = -10(FP), SP at -14 (16 bit)
2762
        MOVE    4(SP), RR
2763 7 jsauermann
;;;                             } 14 Expression (variable name)
2764 2 jsauermann
;--     l > r
2765
        SGT     LL, RR
2766 7 jsauermann
;;;                           } 13 Expr l > r
2767 2 jsauermann
;--     branch_false
2768
        JMP     RRZ, L11_endif_22
2769 7 jsauermann
;;;                           { 13 ExpressionStatement
2770
;;;                             { 14 Expr l = r
2771
;;;                               { 15 TypeName
2772
;;;                                 { 16 TypeSpecifier (all)
2773
;;;                                   spec = int (80000)
2774
;;;                                 } 16 TypeSpecifier (all)
2775
;;;                                 { 16 List
2776
;;;                                   { 17 DeclItem
2777
;;;                                     what = DECL_NAME
2778
;;;                                     name = padlen
2779
;;;                                   } 17 DeclItem
2780
;;;                                 } 16 List
2781
;;;                               } 15 TypeName
2782
;;;                               { 15 Expr l - r
2783
;;;                                 { 16 Expression (variable name)
2784
;;;                                   expr_type = "identifier" (min_w)
2785 2 jsauermann
;--     load_rr_var min_w = 11(FP), SP at -14 (16 bit)
2786
        MOVE    25(SP), RR
2787 7 jsauermann
;;;                                 } 16 Expression (variable name)
2788 2 jsauermann
;--     move_rr_to_ll
2789
        MOVE    RR, LL
2790 7 jsauermann
;;;                                 { 16 Expression (variable name)
2791
;;;                                   expr_type = "identifier" (buflen)
2792 2 jsauermann
;--     load_rr_var buflen = -10(FP), SP at -14 (16 bit)
2793
        MOVE    4(SP), RR
2794 7 jsauermann
;;;                                 } 16 Expression (variable name)
2795 2 jsauermann
;--     scale_rr *1
2796
;--     l - r
2797
        SUB     LL, RR
2798
;--     scale *1
2799 7 jsauermann
;;;                               } 15 Expr l - r
2800 2 jsauermann
;--     store_rr_var padlen = -8(FP), SP at -14
2801
        MOVE    RR, 6(SP)
2802 7 jsauermann
;;;                             } 14 Expr l = r
2803
;;;                           } 13 ExpressionStatement
2804 2 jsauermann
L11_endif_22:
2805 7 jsauermann
;;;                         } 12 IfElseStatement
2806
;;;                         { 12 IfElseStatement
2807
;;;                           { 13 Expression (variable name)
2808
;;;                             expr_type = "identifier" (sign)
2809 2 jsauermann
;--     load_rr_var sign = 5(FP), SP at -14 (8 bit)
2810
        MOVE    19(SP), RS
2811 7 jsauermann
;;;                           } 13 Expression (variable name)
2812 2 jsauermann
;--     branch_false
2813
        JMP     RRZ, L11_endif_23
2814 7 jsauermann
;;;                           { 13 ExpressionStatement
2815
;;;                             { 14 Expr l = r
2816
;;;                               { 15 TypeName
2817
;;;                                 { 16 TypeSpecifier (all)
2818
;;;                                   spec = int (80000)
2819
;;;                                 } 16 TypeSpecifier (all)
2820
;;;                                 { 16 List
2821
;;;                                   { 17 DeclItem
2822
;;;                                     what = DECL_NAME
2823
;;;                                     name = signlen
2824
;;;                                   } 17 DeclItem
2825
;;;                                 } 16 List
2826
;;;                               } 15 TypeName
2827
;;;                               { 15 NumericExpression (constant 1 = 0x1)
2828 2 jsauermann
;--     load_rr_constant
2829
        MOVE    #0x0001, RR
2830 7 jsauermann
;;;                               } 15 NumericExpression (constant 1 = 0x1)
2831 2 jsauermann
;--     store_rr_var signlen = -4(FP), SP at -14
2832
        MOVE    RR, 10(SP)
2833 7 jsauermann
;;;                             } 14 Expr l = r
2834
;;;                           } 13 ExpressionStatement
2835 2 jsauermann
L11_endif_23:
2836 7 jsauermann
;;;                         } 12 IfElseStatement
2837
;;;                         { 12 IfElseStatement
2838
;;;                           { 13 Expr l && r
2839
;;;                             { 14 TypeName (internal)
2840
;;;                               { 15 TypeSpecifier (all)
2841
;;;                                 spec = int (80000)
2842
;;;                               } 15 TypeSpecifier (all)
2843
;;;                             } 14 TypeName (internal)
2844
;;;                             { 14 IfElseStatement
2845
;;;                               { 15 Expression (variable name)
2846
;;;                                 expr_type = "identifier" (alt)
2847 2 jsauermann
;--     load_rr_var alt = 7(FP), SP at -14 (16 bit)
2848
        MOVE    21(SP), RR
2849 7 jsauermann
;;;                               } 15 Expression (variable name)
2850 2 jsauermann
;--     branch_false
2851
        JMP     RRZ, L11_endif_25
2852 7 jsauermann
;;;                               { 15 ExpressionStatement
2853
;;;                                 { 16 Expr l & r
2854
;;;                                   { 17 TypeName (internal)
2855
;;;                                     { 18 TypeSpecifier (all)
2856
;;;                                       spec = int (80000)
2857
;;;                                     } 18 TypeSpecifier (all)
2858
;;;                                   } 17 TypeName (internal)
2859
;;;                                   { 17 Expression (variable name)
2860
;;;                                     expr_type = "identifier" (flags)
2861 2 jsauermann
;--     load_rr_var flags = 4(FP), SP at -14 (8 bit)
2862
        MOVE    18(SP), RS
2863 7 jsauermann
;;;                                   } 17 Expression (variable name)
2864 2 jsauermann
;--     l & r
2865
        AND     RR, #0x0001
2866 7 jsauermann
;;;                                 } 16 Expr l & r
2867
;;;                               } 15 ExpressionStatement
2868 2 jsauermann
L11_endif_25:
2869 7 jsauermann
;;;                             } 14 IfElseStatement
2870
;;;                           } 13 Expr l && r
2871 2 jsauermann
;--     branch_false
2872
        JMP     RRZ, L11_endif_24
2873 7 jsauermann
;;;                           { 13 ExpressionStatement
2874
;;;                             { 14 Expr l = r
2875
;;;                               { 15 TypeName
2876
;;;                                 { 16 TypeSpecifier (all)
2877
;;;                                   spec = int (80000)
2878
;;;                                 } 16 TypeSpecifier (all)
2879
;;;                                 { 16 List
2880
;;;                                   { 17 DeclItem
2881
;;;                                     what = DECL_NAME
2882
;;;                                     name = altlen
2883
;;;                                   } 17 DeclItem
2884
;;;                                 } 16 List
2885
;;;                               } 15 TypeName
2886
;;;                               { 15 Expr l(r)
2887
;;;                                 { 16 TypeName
2888
;;;                                   { 17 TypeSpecifier (all)
2889
;;;                                     spec = int (80000)
2890
;;;                                   } 17 TypeSpecifier (all)
2891
;;;                                   { 17 List
2892
;;;                                     { 18 DeclItem
2893
;;;                                       what = DECL_NAME
2894
;;;                                       name = strlen
2895
;;;                                     } 18 DeclItem
2896
;;;                                   } 17 List
2897
;;;                                 } 16 TypeName
2898
;;;                                 { 16 ParameterDeclaration
2899
;;;                                   isEllipsis = false
2900
;;;                                   { 17 TypeName
2901
;;;                                     { 18 TypeSpecifier (all)
2902
;;;                                       spec = const char (20100)
2903
;;;                                     } 18 TypeSpecifier (all)
2904
;;;                                     { 18 List
2905
;;;                                       { 19 DeclItem
2906
;;;                                         what = DECL_POINTER
2907
;;;                                         { 20 List
2908
;;;                                           { 21 Ptr
2909
;;;                                           } 21 Ptr
2910
;;;                                         } 20 List
2911
;;;                                       } 19 DeclItem
2912
;;;                                       { 19 DeclItem
2913
;;;                                         what = DECL_NAME
2914
;;;                                         name = buffer
2915
;;;                                       } 19 DeclItem
2916
;;;                                     } 18 List
2917
;;;                                   } 17 TypeName
2918
;;;                                 } 16 ParameterDeclaration
2919
;;;                                 { 16 Expression (variable name)
2920
;;;                                   expr_type = "identifier" (alt)
2921 2 jsauermann
;--     load_rr_var alt = 7(FP), SP at -14 (16 bit)
2922
        MOVE    21(SP), RR
2923 7 jsauermann
;;;                                 } 16 Expression (variable name)
2924 2 jsauermann
;--     push_rr (16 bit)
2925
        MOVE    RR, -(SP)
2926
;--     push 2 bytes
2927
;--     call
2928
        CALL    Cstrlen
2929
;--     pop 2 bytes
2930
        ADD     SP, #2
2931 7 jsauermann
;;;                               } 15 Expr l(r)
2932 2 jsauermann
;--     store_rr_var altlen = -6(FP), SP at -14
2933
        MOVE    RR, 8(SP)
2934 7 jsauermann
;;;                             } 14 Expr l = r
2935
;;;                           } 13 ExpressionStatement
2936 2 jsauermann
L11_endif_24:
2937 7 jsauermann
;;;                         } 12 IfElseStatement
2938
;;;                         { 12 ExpressionStatement
2939
;;;                           { 13 Expr l = r
2940
;;;                             { 14 TypeName
2941
;;;                               { 15 TypeSpecifier (all)
2942
;;;                                 spec = int (80000)
2943
;;;                               } 15 TypeSpecifier (all)
2944
;;;                               { 15 List
2945
;;;                                 { 16 DeclItem
2946
;;;                                   what = DECL_NAME
2947
;;;                                   name = len
2948
;;;                                 } 16 DeclItem
2949
;;;                               } 15 List
2950
;;;                             } 14 TypeName
2951
;;;                             { 14 Expr l + r
2952
;;;                               { 15 Expr l + r
2953
;;;                                 { 16 Expr l + r
2954
;;;                                   { 17 Expression (variable name)
2955
;;;                                     expr_type = "identifier" (signlen)
2956 2 jsauermann
;--     load_rr_var signlen = -4(FP), SP at -14 (16 bit)
2957
        MOVE    10(SP), RR
2958 7 jsauermann
;;;                                   } 17 Expression (variable name)
2959 2 jsauermann
;--     move_rr_to_ll
2960
        MOVE    RR, LL
2961 7 jsauermann
;;;                                   { 17 Expression (variable name)
2962
;;;                                     expr_type = "identifier" (altlen)
2963 2 jsauermann
;--     load_rr_var altlen = -6(FP), SP at -14 (16 bit)
2964
        MOVE    8(SP), RR
2965 7 jsauermann
;;;                                   } 17 Expression (variable name)
2966 2 jsauermann
;--     scale_rr *1
2967
;--     l + r
2968
        ADD     LL, RR
2969 7 jsauermann
;;;                                 } 16 Expr l + r
2970 2 jsauermann
;--     move_rr_to_ll
2971
        MOVE    RR, LL
2972 7 jsauermann
;;;                                 { 16 Expression (variable name)
2973
;;;                                   expr_type = "identifier" (padlen)
2974 2 jsauermann
;--     load_rr_var padlen = -8(FP), SP at -14 (16 bit)
2975
        MOVE    6(SP), RR
2976 7 jsauermann
;;;                                 } 16 Expression (variable name)
2977 2 jsauermann
;--     scale_rr *1
2978
;--     l + r
2979
        ADD     LL, RR
2980 7 jsauermann
;;;                               } 15 Expr l + r
2981 2 jsauermann
;--     move_rr_to_ll
2982
        MOVE    RR, LL
2983 7 jsauermann
;;;                               { 15 Expression (variable name)
2984
;;;                                 expr_type = "identifier" (buflen)
2985 2 jsauermann
;--     load_rr_var buflen = -10(FP), SP at -14 (16 bit)
2986
        MOVE    4(SP), RR
2987 7 jsauermann
;;;                               } 15 Expression (variable name)
2988 2 jsauermann
;--     scale_rr *1
2989
;--     l + r
2990
        ADD     LL, RR
2991 7 jsauermann
;;;                             } 14 Expr l + r
2992 2 jsauermann
;--     store_rr_var len = -12(FP), SP at -14
2993
        MOVE    RR, 2(SP)
2994 7 jsauermann
;;;                           } 13 Expr l = r
2995
;;;                         } 12 ExpressionStatement
2996
;;;                         { 12 IfElseStatement
2997
;;;                           { 13 Expr l & r
2998
;;;                             { 14 TypeName (internal)
2999
;;;                               { 15 TypeSpecifier (all)
3000
;;;                                 spec = int (80000)
3001
;;;                               } 15 TypeSpecifier (all)
3002
;;;                             } 14 TypeName (internal)
3003
;;;                             { 14 Expr ~ r
3004
;;;                               { 15 Expression (variable name)
3005
;;;                                 expr_type = "identifier" (flags)
3006 2 jsauermann
;--     load_rr_var flags = 4(FP), SP at -14 (8 bit)
3007
        MOVE    18(SP), RS
3008 7 jsauermann
;;;                               } 15 Expression (variable name)
3009 2 jsauermann
;--     16 bit ~ r
3010
        NOT     RR
3011 7 jsauermann
;;;                             } 14 Expr ~ r
3012 2 jsauermann
;--     l & r
3013
        AND     RR, #0x0002
3014 7 jsauermann
;;;                           } 13 Expr l & r
3015 2 jsauermann
;--     branch_false
3016
        JMP     RRZ, L11_endif_26
3017 7 jsauermann
;;;                           { 13 CompoundStatement
3018
;;;                             { 14 List
3019
;;;                               { 15 for Statement
3020
;;;                                 { 16 ExpressionStatement
3021
;;;                                   { 17 Expr l = r
3022
;;;                                     { 18 TypeName
3023
;;;                                       { 19 TypeSpecifier (all)
3024
;;;                                         spec = int (80000)
3025
;;;                                       } 19 TypeSpecifier (all)
3026
;;;                                       { 19 List
3027
;;;                                         { 20 DeclItem
3028
;;;                                           what = DECL_NAME
3029
;;;                                           name = i
3030
;;;                                         } 20 DeclItem
3031
;;;                                       } 19 List
3032
;;;                                     } 18 TypeName
3033
;;;                                     { 18 Expression (variable name)
3034
;;;                                       expr_type = "identifier" (len)
3035 2 jsauermann
;--     load_rr_var len = -12(FP), SP at -14 (16 bit)
3036
        MOVE    2(SP), RR
3037 7 jsauermann
;;;                                     } 18 Expression (variable name)
3038 2 jsauermann
;--     store_rr_var i = -14(FP), SP at -14
3039
        MOVE    RR, 0(SP)
3040 7 jsauermann
;;;                                   } 17 Expr l = r
3041
;;;                                 } 16 ExpressionStatement
3042 2 jsauermann
;--     branch
3043
        JMP     L11_tst_27
3044
L11_loop_27:
3045 7 jsauermann
;;;                                 { 16 ExpressionStatement
3046
;;;                                   { 17 Expr l(r)
3047
;;;                                     { 18 TypeName
3048
;;;                                       { 19 TypeSpecifier (all)
3049
;;;                                         spec = int (80000)
3050
;;;                                       } 19 TypeSpecifier (all)
3051
;;;                                       { 19 List
3052
;;;                                         { 20 DeclItem
3053
;;;                                           what = DECL_NAME
3054
;;;                                           name = putchr
3055
;;;                                         } 20 DeclItem
3056
;;;                                       } 19 List
3057
;;;                                     } 18 TypeName
3058
;;;                                     { 18 ParameterDeclaration
3059
;;;                                       isEllipsis = false
3060
;;;                                       { 19 TypeName
3061
;;;                                         { 20 TypeSpecifier (all)
3062
;;;                                           spec = char (20000)
3063
;;;                                         } 20 TypeSpecifier (all)
3064
;;;                                         { 20 List
3065
;;;                                           { 21 DeclItem
3066
;;;                                             what = DECL_NAME
3067
;;;                                             name = c
3068
;;;                                           } 21 DeclItem
3069
;;;                                         } 20 List
3070
;;;                                       } 19 TypeName
3071
;;;                                     } 18 ParameterDeclaration
3072
;;;                                     { 18 Expression (variable name)
3073
;;;                                       expr_type = "identifier" (pad)
3074 2 jsauermann
;--     load_rr_var pad = 6(FP), SP at -14 (8 bit)
3075
        MOVE    20(SP), RS
3076 7 jsauermann
;;;                                     } 18 Expression (variable name)
3077 2 jsauermann
;--     push_rr (8 bit)
3078
        MOVE    R, -(SP)
3079
;--     push 2 bytes
3080
;--     call
3081
        CALL    Cputchr
3082
;--     pop 1 bytes
3083
        ADD     SP, #1
3084 7 jsauermann
;;;                                   } 17 Expr l(r)
3085
;;;                                 } 16 ExpressionStatement
3086 2 jsauermann
L11_cont_27:
3087 7 jsauermann
;;;                                 { 16 Expr l - r
3088
;;;                                   { 17 Expr ++r
3089
;;;                                     { 18 Expression (variable name)
3090
;;;                                       expr_type = "identifier" (i)
3091 2 jsauermann
;--     load_rr_var i = -14(FP), SP at -14 (16 bit)
3092
        MOVE    0(SP), RR
3093 7 jsauermann
;;;                                     } 18 Expression (variable name)
3094 2 jsauermann
;--     ++
3095
        ADD     RR, #0x0001
3096
;--     store_rr_var i = -14(FP), SP at -14
3097
        MOVE    RR, 0(SP)
3098 7 jsauermann
;;;                                   } 17 Expr ++r
3099 2 jsauermann
;--     l - r
3100
        SUB     RR, #0x0001
3101 7 jsauermann
;;;                                 } 16 Expr l - r
3102 2 jsauermann
L11_tst_27:
3103 7 jsauermann
;;;                                 { 16 Expr l < r
3104
;;;                                   { 17 TypeName (internal)
3105
;;;                                     { 18 TypeSpecifier (all)
3106
;;;                                       spec = int (80000)
3107
;;;                                     } 18 TypeSpecifier (all)
3108
;;;                                   } 17 TypeName (internal)
3109
;;;                                   { 17 Expression (variable name)
3110
;;;                                     expr_type = "identifier" (i)
3111 2 jsauermann
;--     load_rr_var i = -14(FP), SP at -14 (16 bit)
3112
        MOVE    0(SP), RR
3113 7 jsauermann
;;;                                   } 17 Expression (variable name)
3114 2 jsauermann
;--     move_rr_to_ll
3115
        MOVE    RR, LL
3116 7 jsauermann
;;;                                   { 17 Expression (variable name)
3117
;;;                                     expr_type = "identifier" (field_w)
3118 2 jsauermann
;--     load_rr_var field_w = 9(FP), SP at -14 (16 bit)
3119
        MOVE    23(SP), RR
3120 7 jsauermann
;;;                                   } 17 Expression (variable name)
3121 2 jsauermann
;--     l < r
3122
        SLT     LL, RR
3123 7 jsauermann
;;;                                 } 16 Expr l < r
3124 2 jsauermann
;--     branch_true
3125
        JMP     RRNZ, L11_loop_27
3126
L11_brk_28:
3127 7 jsauermann
;;;                               } 15 for Statement
3128
;;;                             } 14 List
3129
;--     pop 0 bytes
3130
;;;                           } 13 CompoundStatement
3131 2 jsauermann
L11_endif_26:
3132 7 jsauermann
;;;                         } 12 IfElseStatement
3133
;;;                         { 12 IfElseStatement
3134
;;;                           { 13 Expression (variable name)
3135
;;;                             expr_type = "identifier" (sign)
3136 2 jsauermann
;--     load_rr_var sign = 5(FP), SP at -14 (8 bit)
3137
        MOVE    19(SP), RS
3138 7 jsauermann
;;;                           } 13 Expression (variable name)
3139 2 jsauermann
;--     branch_false
3140
        JMP     RRZ, L11_endif_29
3141 7 jsauermann
;;;                           { 13 ExpressionStatement
3142
;;;                             { 14 Expr l(r)
3143
;;;                               { 15 TypeName
3144
;;;                                 { 16 TypeSpecifier (all)
3145
;;;                                   spec = int (80000)
3146
;;;                                 } 16 TypeSpecifier (all)
3147
;;;                                 { 16 List
3148
;;;                                   { 17 DeclItem
3149
;;;                                     what = DECL_NAME
3150
;;;                                     name = putchr
3151
;;;                                   } 17 DeclItem
3152
;;;                                 } 16 List
3153
;;;                               } 15 TypeName
3154
;;;                               { 15 ParameterDeclaration
3155
;;;                                 isEllipsis = false
3156
;;;                                 { 16 TypeName
3157
;;;                                   { 17 TypeSpecifier (all)
3158
;;;                                     spec = char (20000)
3159
;;;                                   } 17 TypeSpecifier (all)
3160
;;;                                   { 17 List
3161
;;;                                     { 18 DeclItem
3162
;;;                                       what = DECL_NAME
3163
;;;                                       name = c
3164
;;;                                     } 18 DeclItem
3165
;;;                                   } 17 List
3166
;;;                                 } 16 TypeName
3167
;;;                               } 15 ParameterDeclaration
3168
;;;                               { 15 Expression (variable name)
3169
;;;                                 expr_type = "identifier" (sign)
3170 2 jsauermann
;--     load_rr_var sign = 5(FP), SP at -14 (8 bit)
3171
        MOVE    19(SP), RS
3172 7 jsauermann
;;;                               } 15 Expression (variable name)
3173 2 jsauermann
;--     push_rr (8 bit)
3174
        MOVE    R, -(SP)
3175
;--     push 2 bytes
3176
;--     call
3177
        CALL    Cputchr
3178
;--     pop 1 bytes
3179
        ADD     SP, #1
3180 7 jsauermann
;;;                             } 14 Expr l(r)
3181
;;;                           } 13 ExpressionStatement
3182 2 jsauermann
L11_endif_29:
3183 7 jsauermann
;;;                         } 12 IfElseStatement
3184
;;;                         { 12 IfElseStatement
3185
;;;                           { 13 Expression (variable name)
3186
;;;                             expr_type = "identifier" (alt)
3187 2 jsauermann
;--     load_rr_var alt = 7(FP), SP at -14 (16 bit)
3188
        MOVE    21(SP), RR
3189 7 jsauermann
;;;                           } 13 Expression (variable name)
3190 2 jsauermann
;--     branch_false
3191
        JMP     RRZ, L11_endif_30
3192 7 jsauermann
;;;                           { 13 CompoundStatement
3193
;;;                             { 14 List
3194
;;;                               { 15 IfElseStatement
3195
;;;                                 { 16 Expr l & r
3196
;;;                                   { 17 TypeName (internal)
3197
;;;                                     { 18 TypeSpecifier (all)
3198
;;;                                       spec = int (80000)
3199
;;;                                     } 18 TypeSpecifier (all)
3200
;;;                                   } 17 TypeName (internal)
3201
;;;                                   { 17 Expression (variable name)
3202
;;;                                     expr_type = "identifier" (flags)
3203 2 jsauermann
;--     load_rr_var flags = 4(FP), SP at -14 (8 bit)
3204
        MOVE    18(SP), RS
3205 7 jsauermann
;;;                                   } 17 Expression (variable name)
3206 2 jsauermann
;--     l & r
3207
        AND     RR, #0x0001
3208 7 jsauermann
;;;                                 } 16 Expr l & r
3209 2 jsauermann
;--     branch_false
3210
        JMP     RRZ, L11_endif_31
3211 7 jsauermann
;;;                                 { 16 ExpressionStatement
3212
;;;                                   { 17 Expr l(r)
3213
;;;                                     { 18 TypeName
3214
;;;                                       { 19 TypeSpecifier (all)
3215
;;;                                         spec = void (10000)
3216
;;;                                       } 19 TypeSpecifier (all)
3217
;;;                                       { 19 List
3218
;;;                                         { 20 DeclItem
3219
;;;                                           what = DECL_NAME
3220
;;;                                           name = print_string
3221
;;;                                         } 20 DeclItem
3222
;;;                                       } 19 List
3223
;;;                                     } 18 TypeName
3224
;;;                                     { 18 ParameterDeclaration
3225
;;;                                       isEllipsis = false
3226
;;;                                       { 19 TypeName
3227
;;;                                         { 20 TypeSpecifier (all)
3228
;;;                                           spec = const char (20100)
3229
;;;                                         } 20 TypeSpecifier (all)
3230
;;;                                         { 20 List
3231
;;;                                           { 21 DeclItem
3232
;;;                                             what = DECL_POINTER
3233
;;;                                             { 22 List
3234
;;;                                               { 23 Ptr
3235
;;;                                               } 23 Ptr
3236
;;;                                             } 22 List
3237
;;;                                           } 21 DeclItem
3238
;;;                                           { 21 DeclItem
3239
;;;                                             what = DECL_NAME
3240
;;;                                             name = buffer
3241
;;;                                           } 21 DeclItem
3242
;;;                                         } 20 List
3243
;;;                                       } 19 TypeName
3244
;;;                                     } 18 ParameterDeclaration
3245
;;;                                     { 18 Expression (variable name)
3246
;;;                                       expr_type = "identifier" (alt)
3247 2 jsauermann
;--     load_rr_var alt = 7(FP), SP at -14 (16 bit)
3248
        MOVE    21(SP), RR
3249 7 jsauermann
;;;                                     } 18 Expression (variable name)
3250 2 jsauermann
;--     push_rr (16 bit)
3251
        MOVE    RR, -(SP)
3252
;--     push 0 bytes
3253
;--     call
3254
        CALL    Cprint_string
3255
;--     pop 2 bytes
3256
        ADD     SP, #2
3257 7 jsauermann
;;;                                   } 17 Expr l(r)
3258
;;;                                 } 16 ExpressionStatement
3259 2 jsauermann
L11_endif_31:
3260 7 jsauermann
;;;                               } 15 IfElseStatement
3261
;;;                             } 14 List
3262
;--     pop 0 bytes
3263
;;;                           } 13 CompoundStatement
3264 2 jsauermann
L11_endif_30:
3265 7 jsauermann
;;;                         } 12 IfElseStatement
3266
;;;                         { 12 for Statement
3267
;;;                           { 13 ExpressionStatement
3268
;;;                             { 14 Expr l = r
3269
;;;                               { 15 TypeName
3270
;;;                                 { 16 TypeSpecifier (all)
3271
;;;                                   spec = int (80000)
3272
;;;                                 } 16 TypeSpecifier (all)
3273
;;;                                 { 16 List
3274
;;;                                   { 17 DeclItem
3275
;;;                                     what = DECL_NAME
3276
;;;                                     name = i
3277
;;;                                   } 17 DeclItem
3278
;;;                                 } 16 List
3279
;;;                               } 15 TypeName
3280
;;;                               { 15 NumericExpression (constant 0 = 0x0)
3281 2 jsauermann
;--     load_rr_constant
3282
        MOVE    #0x0000, RR
3283 7 jsauermann
;;;                               } 15 NumericExpression (constant 0 = 0x0)
3284 2 jsauermann
;--     store_rr_var i = -14(FP), SP at -14
3285
        MOVE    RR, 0(SP)
3286 7 jsauermann
;;;                             } 14 Expr l = r
3287
;;;                           } 13 ExpressionStatement
3288 2 jsauermann
;--     branch
3289
        JMP     L11_tst_32
3290
L11_loop_32:
3291 7 jsauermann
;;;                           { 13 ExpressionStatement
3292
;;;                             { 14 Expr l(r)
3293
;;;                               { 15 TypeName
3294
;;;                                 { 16 TypeSpecifier (all)
3295
;;;                                   spec = int (80000)
3296
;;;                                 } 16 TypeSpecifier (all)
3297
;;;                                 { 16 List
3298
;;;                                   { 17 DeclItem
3299
;;;                                     what = DECL_NAME
3300
;;;                                     name = putchr
3301
;;;                                   } 17 DeclItem
3302
;;;                                 } 16 List
3303
;;;                               } 15 TypeName
3304
;;;                               { 15 ParameterDeclaration
3305
;;;                                 isEllipsis = false
3306
;;;                                 { 16 TypeName
3307
;;;                                   { 17 TypeSpecifier (all)
3308
;;;                                     spec = char (20000)
3309
;;;                                   } 17 TypeSpecifier (all)
3310
;;;                                   { 17 List
3311
;;;                                     { 18 DeclItem
3312
;;;                                       what = DECL_NAME
3313
;;;                                       name = c
3314
;;;                                     } 18 DeclItem
3315
;;;                                   } 17 List
3316
;;;                                 } 16 TypeName
3317
;;;                               } 15 ParameterDeclaration
3318
;;;                               { 15 Expression (variable name)
3319
;;;                                 expr_type = "identifier" (min_p)
3320 2 jsauermann
;--     load_rr_var min_p = 13(FP), SP at -14 (8 bit)
3321
        MOVE    27(SP), RS
3322 7 jsauermann
;;;                               } 15 Expression (variable name)
3323 2 jsauermann
;--     push_rr (8 bit)
3324
        MOVE    R, -(SP)
3325
;--     push 2 bytes
3326
;--     call
3327
        CALL    Cputchr
3328
;--     pop 1 bytes
3329
        ADD     SP, #1
3330 7 jsauermann
;;;                             } 14 Expr l(r)
3331
;;;                           } 13 ExpressionStatement
3332 2 jsauermann
L11_cont_32:
3333 7 jsauermann
;;;                           { 13 Expr l - r
3334
;;;                             { 14 Expr ++r
3335
;;;                               { 15 Expression (variable name)
3336
;;;                                 expr_type = "identifier" (i)
3337 2 jsauermann
;--     load_rr_var i = -14(FP), SP at -14 (16 bit)
3338
        MOVE    0(SP), RR
3339 7 jsauermann
;;;                               } 15 Expression (variable name)
3340 2 jsauermann
;--     ++
3341
        ADD     RR, #0x0001
3342
;--     store_rr_var i = -14(FP), SP at -14
3343
        MOVE    RR, 0(SP)
3344 7 jsauermann
;;;                             } 14 Expr ++r
3345 2 jsauermann
;--     l - r
3346
        SUB     RR, #0x0001
3347 7 jsauermann
;;;                           } 13 Expr l - r
3348 2 jsauermann
L11_tst_32:
3349 7 jsauermann
;;;                           { 13 Expr l < r
3350
;;;                             { 14 TypeName (internal)
3351
;;;                               { 15 TypeSpecifier (all)
3352
;;;                                 spec = int (80000)
3353
;;;                               } 15 TypeSpecifier (all)
3354
;;;                             } 14 TypeName (internal)
3355
;;;                             { 14 Expression (variable name)
3356
;;;                               expr_type = "identifier" (i)
3357 2 jsauermann
;--     load_rr_var i = -14(FP), SP at -14 (16 bit)
3358
        MOVE    0(SP), RR
3359 7 jsauermann
;;;                             } 14 Expression (variable name)
3360 2 jsauermann
;--     move_rr_to_ll
3361
        MOVE    RR, LL
3362 7 jsauermann
;;;                             { 14 Expression (variable name)
3363
;;;                               expr_type = "identifier" (padlen)
3364 2 jsauermann
;--     load_rr_var padlen = -8(FP), SP at -14 (16 bit)
3365
        MOVE    6(SP), RR
3366 7 jsauermann
;;;                             } 14 Expression (variable name)
3367 2 jsauermann
;--     l < r
3368
        SLT     LL, RR
3369 7 jsauermann
;;;                           } 13 Expr l < r
3370 2 jsauermann
;--     branch_true
3371
        JMP     RRNZ, L11_loop_32
3372
L11_brk_33:
3373 7 jsauermann
;;;                         } 12 for Statement
3374
;;;                         { 12 ExpressionStatement
3375
;;;                           { 13 Expr l(r)
3376
;;;                             { 14 TypeName
3377
;;;                               { 15 TypeSpecifier (all)
3378
;;;                                 spec = void (10000)
3379
;;;                               } 15 TypeSpecifier (all)
3380
;;;                               { 15 List
3381
;;;                                 { 16 DeclItem
3382
;;;                                   what = DECL_NAME
3383
;;;                                   name = print_string
3384
;;;                                 } 16 DeclItem
3385
;;;                               } 15 List
3386
;;;                             } 14 TypeName
3387
;;;                             { 14 ParameterDeclaration
3388
;;;                               isEllipsis = false
3389
;;;                               { 15 TypeName
3390
;;;                                 { 16 TypeSpecifier (all)
3391
;;;                                   spec = const char (20100)
3392
;;;                                 } 16 TypeSpecifier (all)
3393
;;;                                 { 16 List
3394
;;;                                   { 17 DeclItem
3395
;;;                                     what = DECL_POINTER
3396
;;;                                     { 18 List
3397
;;;                                       { 19 Ptr
3398
;;;                                       } 19 Ptr
3399
;;;                                     } 18 List
3400
;;;                                   } 17 DeclItem
3401
;;;                                   { 17 DeclItem
3402
;;;                                     what = DECL_NAME
3403
;;;                                     name = buffer
3404
;;;                                   } 17 DeclItem
3405
;;;                                 } 16 List
3406
;;;                               } 15 TypeName
3407
;;;                             } 14 ParameterDeclaration
3408
;;;                             { 14 Expression (variable name)
3409
;;;                               expr_type = "identifier" (buffer)
3410 2 jsauermann
;--     load_rr_var buffer = 2(FP), SP at -14 (16 bit)
3411
        MOVE    16(SP), RR
3412 7 jsauermann
;;;                             } 14 Expression (variable name)
3413 2 jsauermann
;--     push_rr (16 bit)
3414
        MOVE    RR, -(SP)
3415
;--     push 0 bytes
3416
;--     call
3417
        CALL    Cprint_string
3418
;--     pop 2 bytes
3419
        ADD     SP, #2
3420 7 jsauermann
;;;                           } 13 Expr l(r)
3421
;;;                         } 12 ExpressionStatement
3422
;;;                         { 12 IfElseStatement
3423
;;;                           { 13 Expr l & r
3424
;;;                             { 14 TypeName (internal)
3425
;;;                               { 15 TypeSpecifier (all)
3426
;;;                                 spec = int (80000)
3427
;;;                               } 15 TypeSpecifier (all)
3428
;;;                             } 14 TypeName (internal)
3429
;;;                             { 14 Expression (variable name)
3430
;;;                               expr_type = "identifier" (flags)
3431 2 jsauermann
;--     load_rr_var flags = 4(FP), SP at -14 (8 bit)
3432
        MOVE    18(SP), RS
3433 7 jsauermann
;;;                             } 14 Expression (variable name)
3434 2 jsauermann
;--     l & r
3435
        AND     RR, #0x0002
3436 7 jsauermann
;;;                           } 13 Expr l & r
3437 2 jsauermann
;--     branch_false
3438
        JMP     RRZ, L11_endif_34
3439 7 jsauermann
;;;                           { 13 CompoundStatement
3440
;;;                             { 14 List
3441
;;;                               { 15 for Statement
3442
;;;                                 { 16 ExpressionStatement
3443
;;;                                   { 17 Expr l = r
3444
;;;                                     { 18 TypeName
3445
;;;                                       { 19 TypeSpecifier (all)
3446
;;;                                         spec = int (80000)
3447
;;;                                       } 19 TypeSpecifier (all)
3448
;;;                                       { 19 List
3449
;;;                                         { 20 DeclItem
3450
;;;                                           what = DECL_NAME
3451
;;;                                           name = i
3452
;;;                                         } 20 DeclItem
3453
;;;                                       } 19 List
3454
;;;                                     } 18 TypeName
3455
;;;                                     { 18 Expression (variable name)
3456
;;;                                       expr_type = "identifier" (len)
3457 2 jsauermann
;--     load_rr_var len = -12(FP), SP at -14 (16 bit)
3458
        MOVE    2(SP), RR
3459 7 jsauermann
;;;                                     } 18 Expression (variable name)
3460 2 jsauermann
;--     store_rr_var i = -14(FP), SP at -14
3461
        MOVE    RR, 0(SP)
3462 7 jsauermann
;;;                                   } 17 Expr l = r
3463
;;;                                 } 16 ExpressionStatement
3464 2 jsauermann
;--     branch
3465
        JMP     L11_tst_35
3466
L11_loop_35:
3467 7 jsauermann
;;;                                 { 16 ExpressionStatement
3468
;;;                                   { 17 Expr l(r)
3469
;;;                                     { 18 TypeName
3470
;;;                                       { 19 TypeSpecifier (all)
3471
;;;                                         spec = int (80000)
3472
;;;                                       } 19 TypeSpecifier (all)
3473
;;;                                       { 19 List
3474
;;;                                         { 20 DeclItem
3475
;;;                                           what = DECL_NAME
3476
;;;                                           name = putchr
3477
;;;                                         } 20 DeclItem
3478
;;;                                       } 19 List
3479
;;;                                     } 18 TypeName
3480
;;;                                     { 18 ParameterDeclaration
3481
;;;                                       isEllipsis = false
3482
;;;                                       { 19 TypeName
3483
;;;                                         { 20 TypeSpecifier (all)
3484
;;;                                           spec = char (20000)
3485
;;;                                         } 20 TypeSpecifier (all)
3486
;;;                                         { 20 List
3487
;;;                                           { 21 DeclItem
3488
;;;                                             what = DECL_NAME
3489
;;;                                             name = c
3490
;;;                                           } 21 DeclItem
3491
;;;                                         } 20 List
3492
;;;                                       } 19 TypeName
3493
;;;                                     } 18 ParameterDeclaration
3494
;;;                                     { 18 Expression (variable name)
3495
;;;                                       expr_type = "identifier" (pad)
3496 2 jsauermann
;--     load_rr_var pad = 6(FP), SP at -14 (8 bit)
3497
        MOVE    20(SP), RS
3498 7 jsauermann
;;;                                     } 18 Expression (variable name)
3499 2 jsauermann
;--     push_rr (8 bit)
3500
        MOVE    R, -(SP)
3501
;--     push 2 bytes
3502
;--     call
3503
        CALL    Cputchr
3504
;--     pop 1 bytes
3505
        ADD     SP, #1
3506 7 jsauermann
;;;                                   } 17 Expr l(r)
3507
;;;                                 } 16 ExpressionStatement
3508 2 jsauermann
L11_cont_35:
3509 7 jsauermann
;;;                                 { 16 Expr l - r
3510
;;;                                   { 17 Expr ++r
3511
;;;                                     { 18 Expression (variable name)
3512
;;;                                       expr_type = "identifier" (i)
3513 2 jsauermann
;--     load_rr_var i = -14(FP), SP at -14 (16 bit)
3514
        MOVE    0(SP), RR
3515 7 jsauermann
;;;                                     } 18 Expression (variable name)
3516 2 jsauermann
;--     ++
3517
        ADD     RR, #0x0001
3518
;--     store_rr_var i = -14(FP), SP at -14
3519
        MOVE    RR, 0(SP)
3520 7 jsauermann
;;;                                   } 17 Expr ++r
3521 2 jsauermann
;--     l - r
3522
        SUB     RR, #0x0001
3523 7 jsauermann
;;;                                 } 16 Expr l - r
3524 2 jsauermann
L11_tst_35:
3525 7 jsauermann
;;;                                 { 16 Expr l < r
3526
;;;                                   { 17 TypeName (internal)
3527
;;;                                     { 18 TypeSpecifier (all)
3528
;;;                                       spec = int (80000)
3529
;;;                                     } 18 TypeSpecifier (all)
3530
;;;                                   } 17 TypeName (internal)
3531
;;;                                   { 17 Expression (variable name)
3532
;;;                                     expr_type = "identifier" (i)
3533 2 jsauermann
;--     load_rr_var i = -14(FP), SP at -14 (16 bit)
3534
        MOVE    0(SP), RR
3535 7 jsauermann
;;;                                   } 17 Expression (variable name)
3536 2 jsauermann
;--     move_rr_to_ll
3537
        MOVE    RR, LL
3538 7 jsauermann
;;;                                   { 17 Expression (variable name)
3539
;;;                                     expr_type = "identifier" (field_w)
3540 2 jsauermann
;--     load_rr_var field_w = 9(FP), SP at -14 (16 bit)
3541
        MOVE    23(SP), RR
3542 7 jsauermann
;;;                                   } 17 Expression (variable name)
3543 2 jsauermann
;--     l < r
3544
        SLT     LL, RR
3545 7 jsauermann
;;;                                 } 16 Expr l < r
3546 2 jsauermann
;--     branch_true
3547
        JMP     RRNZ, L11_loop_35
3548
L11_brk_36:
3549 7 jsauermann
;;;                               } 15 for Statement
3550
;;;                             } 14 List
3551
;--     pop 0 bytes
3552
;;;                           } 13 CompoundStatement
3553 2 jsauermann
L11_endif_34:
3554 7 jsauermann
;;;                         } 12 IfElseStatement
3555
;;;                         { 12 return Statement
3556
;;;                           { 13 Expression (variable name)
3557
;;;                             expr_type = "identifier" (len)
3558 2 jsauermann
;--     load_rr_var len = -12(FP), SP at -14 (16 bit)
3559
        MOVE    2(SP), RR
3560 7 jsauermann
;;;                           } 13 Expression (variable name)
3561 2 jsauermann
;--     ret
3562 7 jsauermann
        ADD     SP, #14
3563
        RET
3564
;;;                         } 12 return Statement
3565
;;;                       } 11 List
3566 2 jsauermann
;--     pop 14 bytes
3567
        ADD     SP, #14
3568 7 jsauermann
;;;                     } 10 CompoundStatement
3569
;--     ret
3570 2 jsauermann
        RET
3571
;;; ------------------------------------;
3572 7 jsauermann
;;;                     { 10 FunctionDefinition
3573
;;;                       { 11 TypeName
3574
;;;                         { 12 TypeSpecifier (all)
3575
;;;                           spec = int (80000)
3576
;;;                         } 12 TypeSpecifier (all)
3577
;;;                         { 12 List
3578
;;;                           { 13 DeclItem
3579
;;;                             what = DECL_NAME
3580
;;;                             name = printf
3581
;;;                           } 13 DeclItem
3582
;;;                         } 12 List
3583
;;;                       } 11 TypeName
3584
;;;                       { 11 List
3585
;;;                         { 12 DeclItem
3586
;;;                           what = DECL_NAME
3587
;;;                           name = printf
3588
;;;                         } 12 DeclItem
3589
;;;                         { 12 DeclItem
3590
;;;                           what = DECL_FUN
3591
;;;                           { 13 List
3592
;;;                             { 14 ParameterDeclaration
3593
;;;                               isEllipsis = true
3594
;;;                               { 15 TypeName
3595
;;;                                 { 16 TypeSpecifier (all)
3596
;;;                                   spec = const char (20100)
3597
;;;                                 } 16 TypeSpecifier (all)
3598
;;;                                 { 16 List
3599
;;;                                   { 17 DeclItem
3600
;;;                                     what = DECL_POINTER
3601
;;;                                     { 18 List
3602
;;;                                       { 19 Ptr
3603
;;;                                       } 19 Ptr
3604
;;;                                     } 18 List
3605
;;;                                   } 17 DeclItem
3606
;;;                                   { 17 DeclItem
3607
;;;                                     what = DECL_NAME
3608
;;;                                     name = format
3609
;;;                                   } 17 DeclItem
3610
;;;                                 } 16 List
3611
;;;                               } 15 TypeName
3612
;;;                             } 14 ParameterDeclaration
3613
;;;                           } 13 List
3614
;;;                         } 12 DeclItem
3615
;;;                       } 11 List
3616 2 jsauermann
Cprintf:
3617 7 jsauermann
;;;                       { 11 CompoundStatement
3618
;;;                         { 12 InitDeclarator
3619
;;;                           { 13 List
3620
;;;                             { 14 DeclItem
3621
;;;                               what = DECL_POINTER
3622
;;;                               { 15 List
3623
;;;                                 { 16 Ptr
3624
;;;                                 } 16 Ptr
3625
;;;                                 { 16 Ptr
3626
;;;                                 } 16 Ptr
3627
;;;                               } 15 List
3628
;;;                             } 14 DeclItem
3629
;;;                             { 14 DeclItem
3630
;;;                               what = DECL_NAME
3631
;;;                               name = args
3632
;;;                             } 14 DeclItem
3633
;;;                           } 13 List
3634
;;;                           { 13 Initializer (skalar)
3635
;;;                             { 14 Expr l + r
3636
;;;                               { 15 Expr & r
3637 2 jsauermann
;--     load_address format = 2(FP), SP at 0
3638
        LEA     2(SP), RR
3639 7 jsauermann
;;;                               } 15 Expr & r
3640 2 jsauermann
;--     l + r
3641
        ADD     RR, #0x0002
3642 7 jsauermann
;;;                             } 14 Expr l + r
3643 2 jsauermann
;--     push_rr (16 bit)
3644
        MOVE    RR, -(SP)
3645 7 jsauermann
;;;                           } 13 Initializer (skalar)
3646
;;;                         } 12 InitDeclarator
3647
;;;                         { 12 InitDeclarator
3648
;;;                           { 13 List
3649
;;;                             { 14 DeclItem
3650
;;;                               what = DECL_NAME
3651
;;;                               name = len
3652
;;;                             } 14 DeclItem
3653
;;;                           } 13 List
3654
;;;                           { 13 Initializer (skalar)
3655 2 jsauermann
;--     push_zero 2 bytes
3656
        CLRW    -(SP)
3657 7 jsauermann
;;;                           } 13 Initializer (skalar)
3658
;;;                         } 12 InitDeclarator
3659
;;;                         { 12 InitDeclarator
3660
;;;                           { 13 List
3661
;;;                             { 14 DeclItem
3662
;;;                               what = DECL_NAME
3663
;;;                               name = c
3664
;;;                             } 14 DeclItem
3665
;;;                           } 13 List
3666 2 jsauermann
;--     push_zero 1 bytes
3667
        CLRB    -(SP)
3668 7 jsauermann
;;;                         } 12 InitDeclarator
3669
;;;                         { 12 InitDeclarator
3670
;;;                           { 13 List
3671
;;;                             { 14 DeclItem
3672
;;;                               what = DECL_NAME
3673
;;;                               name = flags
3674
;;;                             } 14 DeclItem
3675
;;;                           } 13 List
3676 2 jsauermann
;--     push_zero 1 bytes
3677
        CLRB    -(SP)
3678 7 jsauermann
;;;                         } 12 InitDeclarator
3679
;;;                         { 12 InitDeclarator
3680
;;;                           { 13 List
3681
;;;                             { 14 DeclItem
3682
;;;                               what = DECL_NAME
3683
;;;                               name = sign
3684
;;;                             } 14 DeclItem
3685
;;;                           } 13 List
3686 2 jsauermann
;--     push_zero 1 bytes
3687
        CLRB    -(SP)
3688 7 jsauermann
;;;                         } 12 InitDeclarator
3689
;;;                         { 12 InitDeclarator
3690
;;;                           { 13 List
3691
;;;                             { 14 DeclItem
3692
;;;                               what = DECL_NAME
3693
;;;                               name = pad
3694
;;;                             } 14 DeclItem
3695
;;;                           } 13 List
3696 2 jsauermann
;--     push_zero 1 bytes
3697
        CLRB    -(SP)
3698 7 jsauermann
;;;                         } 12 InitDeclarator
3699
;;;                         { 12 InitDeclarator
3700
;;;                           { 13 List
3701
;;;                             { 14 DeclItem
3702
;;;                               what = DECL_POINTER
3703
;;;                               { 15 List
3704
;;;                                 { 16 Ptr
3705
;;;                                 } 16 Ptr
3706
;;;                               } 15 List
3707
;;;                             } 14 DeclItem
3708
;;;                             { 14 DeclItem
3709
;;;                               what = DECL_NAME
3710
;;;                               name = alt
3711
;;;                             } 14 DeclItem
3712
;;;                           } 13 List
3713 2 jsauermann
;--     push_zero 2 bytes
3714
        CLRW    -(SP)
3715 7 jsauermann
;;;                         } 12 InitDeclarator
3716
;;;                         { 12 InitDeclarator
3717
;;;                           { 13 List
3718
;;;                             { 14 DeclItem
3719
;;;                               what = DECL_NAME
3720
;;;                               name = field_w
3721
;;;                             } 14 DeclItem
3722
;;;                           } 13 List
3723 2 jsauermann
;--     push_zero 2 bytes
3724
        CLRW    -(SP)
3725 7 jsauermann
;;;                         } 12 InitDeclarator
3726
;;;                         { 12 InitDeclarator
3727
;;;                           { 13 List
3728
;;;                             { 14 DeclItem
3729
;;;                               what = DECL_NAME
3730
;;;                               name = min_w
3731
;;;                             } 14 DeclItem
3732
;;;                           } 13 List
3733 2 jsauermann
;--     push_zero 2 bytes
3734
        CLRW    -(SP)
3735 7 jsauermann
;;;                         } 12 InitDeclarator
3736
;;;                         { 12 InitDeclarator
3737
;;;                           { 13 List
3738
;;;                             { 14 DeclItem
3739
;;;                               what = DECL_POINTER
3740
;;;                               { 15 List
3741
;;;                                 { 16 Ptr
3742
;;;                                 } 16 Ptr
3743
;;;                               } 15 List
3744
;;;                             } 14 DeclItem
3745
;;;                             { 14 DeclItem
3746
;;;                               what = DECL_NAME
3747
;;;                               name = which_w
3748
;;;                             } 14 DeclItem
3749
;;;                           } 13 List
3750 2 jsauermann
;--     push_zero 2 bytes
3751
        CLRW    -(SP)
3752 7 jsauermann
;;;                         } 12 InitDeclarator
3753
;;;                         { 12 InitDeclarator
3754
;;;                           { 13 List
3755
;;;                             { 14 DeclItem
3756
;;;                               what = DECL_NAME
3757
;;;                               name = buffer
3758
;;;                             } 14 DeclItem
3759
;;;                             { 14 DeclItem
3760
;;;                               what = DECL_ARRAY
3761
;;;                             } 14 DeclItem
3762
;;;                           } 13 List
3763 2 jsauermann
;--     push_zero 12 bytes
3764
        CLRW    -(SP)
3765
        CLRW    -(SP)
3766
        CLRW    -(SP)
3767
        CLRW    -(SP)
3768
        CLRW    -(SP)
3769
        CLRW    -(SP)
3770 7 jsauermann
;;;                         } 12 InitDeclarator
3771
;;;                         { 12 List
3772
;;;                           { 13 while Statement
3773 2 jsauermann
;--     branch
3774
        JMP     L12_cont_37
3775
L12_loop_37:
3776 7 jsauermann
;;;                             { 14 CompoundStatement
3777
;;;                               { 15 List
3778
;;;                                 { 16 IfElseStatement
3779
;;;                                   { 17 Expr l != r
3780
;;;                                     { 18 TypeName (internal)
3781
;;;                                       { 19 TypeSpecifier (all)
3782
;;;                                         spec = int (80000)
3783
;;;                                       } 19 TypeSpecifier (all)
3784
;;;                                     } 18 TypeName (internal)
3785
;;;                                     { 18 Expression (variable name)
3786
;;;                                       expr_type = "identifier" (c)
3787 2 jsauermann
;--     load_rr_var c = -5(FP), SP at -28 (8 bit)
3788
        MOVE    23(SP), RS
3789 7 jsauermann
;;;                                     } 18 Expression (variable name)
3790 2 jsauermann
;--     l != r
3791
        SNE     RR, #0x0025
3792 7 jsauermann
;;;                                   } 17 Expr l != r
3793 2 jsauermann
;--     branch_false
3794
        JMP     RRZ, L12_endif_39
3795 7 jsauermann
;;;                                   { 17 CompoundStatement
3796
;;;                                     { 18 List
3797
;;;                                       { 19 ExpressionStatement
3798
;;;                                         { 20 Expr l += r
3799
;;;                                           { 21 TypeName
3800
;;;                                             { 22 TypeSpecifier (all)
3801
;;;                                               spec = int (80000)
3802
;;;                                             } 22 TypeSpecifier (all)
3803
;;;                                             { 22 List
3804
;;;                                               { 23 DeclItem
3805
;;;                                                 what = DECL_NAME
3806
;;;                                                 name = len
3807
;;;                                               } 23 DeclItem
3808
;;;                                             } 22 List
3809
;;;                                           } 21 TypeName
3810
;;;                                           { 21 Expr l + r
3811
;;;                                             { 22 Expr l(r)
3812
;;;                                               { 23 TypeName
3813
;;;                                                 { 24 TypeSpecifier (all)
3814
;;;                                                   spec = int (80000)
3815
;;;                                                 } 24 TypeSpecifier (all)
3816
;;;                                                 { 24 List
3817
;;;                                                   { 25 DeclItem
3818
;;;                                                     what = DECL_NAME
3819
;;;                                                     name = putchr
3820
;;;                                                   } 25 DeclItem
3821
;;;                                                 } 24 List
3822
;;;                                               } 23 TypeName
3823
;;;                                               { 23 ParameterDeclaration
3824
;;;                                                 isEllipsis = false
3825
;;;                                                 { 24 TypeName
3826
;;;                                                   { 25 TypeSpecifier (all)
3827
;;;                                                     spec = char (20000)
3828
;;;                                                   } 25 TypeSpecifier (all)
3829
;;;                                                   { 25 List
3830
;;;                                                     { 26 DeclItem
3831
;;;                                                       what = DECL_NAME
3832
;;;                                                       name = c
3833
;;;                                                     } 26 DeclItem
3834
;;;                                                   } 25 List
3835
;;;                                                 } 24 TypeName
3836
;;;                                               } 23 ParameterDeclaration
3837
;;;                                               { 23 Expression (variable name)
3838
;;;                                                 expr_type = "identifier" (c)
3839 2 jsauermann
;--     load_rr_var c = -5(FP), SP at -28 (8 bit)
3840
        MOVE    23(SP), RS
3841 7 jsauermann
;;;                                               } 23 Expression (variable name)
3842 2 jsauermann
;--     push_rr (8 bit)
3843
        MOVE    R, -(SP)
3844
;--     push 2 bytes
3845
;--     call
3846
        CALL    Cputchr
3847
;--     pop 1 bytes
3848
        ADD     SP, #1
3849 7 jsauermann
;;;                                             } 22 Expr l(r)
3850
;;;                                             { 22 Expression (variable name)
3851
;;;                                               expr_type = "identifier" (len)
3852 2 jsauermann
;--     load_ll_var len = -4(FP), SP at -28 (16 bit)
3853
        MOVE    24(SP), LL
3854 7 jsauermann
;;;                                             } 22 Expression (variable name)
3855 2 jsauermann
;--     scale_rr *1
3856
;--     l + r
3857
        ADD     LL, RR
3858 7 jsauermann
;;;                                           } 21 Expr l + r
3859 2 jsauermann
;--     store_rr_var len = -4(FP), SP at -28
3860
        MOVE    RR, 24(SP)
3861 7 jsauermann
;;;                                         } 20 Expr l += r
3862
;;;                                       } 19 ExpressionStatement
3863
;;;                                       { 19 break/continue Statement
3864 2 jsauermann
;--     branch
3865
        JMP     L12_cont_37
3866 7 jsauermann
;;;                                       } 19 break/continue Statement
3867
;;;                                     } 18 List
3868
;--     pop 0 bytes
3869
;;;                                   } 17 CompoundStatement
3870 2 jsauermann
L12_endif_39:
3871 7 jsauermann
;;;                                 } 16 IfElseStatement
3872
;;;                                 { 16 ExpressionStatement
3873
;;;                                   { 17 Expr l = r
3874
;;;                                     { 18 TypeName
3875
;;;                                       { 19 TypeSpecifier (all)
3876
;;;                                         spec = char (20000)
3877
;;;                                       } 19 TypeSpecifier (all)
3878
;;;                                       { 19 List
3879
;;;                                         { 20 DeclItem
3880
;;;                                           what = DECL_NAME
3881
;;;                                           name = flags
3882
;;;                                         } 20 DeclItem
3883
;;;                                       } 19 List
3884
;;;                                     } 18 TypeName
3885
;;;                                     { 18 NumericExpression (constant 0 = 0x0)
3886 2 jsauermann
;--     load_rr_constant
3887
        MOVE    #0x0000, RR
3888 7 jsauermann
;;;                                     } 18 NumericExpression (constant 0 = 0x0)
3889 2 jsauermann
;--     store_rr_var flags = -6(FP), SP at -28
3890
        MOVE    R, 22(SP)
3891 7 jsauermann
;;;                                   } 17 Expr l = r
3892
;;;                                 } 16 ExpressionStatement
3893
;;;                                 { 16 ExpressionStatement
3894
;;;                                   { 17 Expr l = r
3895
;;;                                     { 18 TypeName
3896
;;;                                       { 19 TypeSpecifier (all)
3897
;;;                                         spec = char (20000)
3898
;;;                                       } 19 TypeSpecifier (all)
3899
;;;                                       { 19 List
3900
;;;                                         { 20 DeclItem
3901
;;;                                           what = DECL_NAME
3902
;;;                                           name = sign
3903
;;;                                         } 20 DeclItem
3904
;;;                                       } 19 List
3905
;;;                                     } 18 TypeName
3906
;;;                                     { 18 NumericExpression (constant 0 = 0x0)
3907 2 jsauermann
;--     load_rr_constant
3908
        MOVE    #0x0000, RR
3909 7 jsauermann
;;;                                     } 18 NumericExpression (constant 0 = 0x0)
3910 2 jsauermann
;--     store_rr_var sign = -7(FP), SP at -28
3911
        MOVE    R, 21(SP)
3912 7 jsauermann
;;;                                   } 17 Expr l = r
3913
;;;                                 } 16 ExpressionStatement
3914
;;;                                 { 16 ExpressionStatement
3915
;;;                                   { 17 Expr l = r
3916
;;;                                     { 18 TypeName
3917
;;;                                       { 19 TypeSpecifier (all)
3918
;;;                                         spec = char (20000)
3919
;;;                                       } 19 TypeSpecifier (all)
3920
;;;                                       { 19 List
3921
;;;                                         { 20 DeclItem
3922
;;;                                           what = DECL_NAME
3923
;;;                                           name = pad
3924
;;;                                         } 20 DeclItem
3925
;;;                                       } 19 List
3926
;;;                                     } 18 TypeName
3927
;;;                                     { 18 NumericExpression (constant 32 = 0x20)
3928 2 jsauermann
;--     load_rr_constant
3929
        MOVE    #0x0020, RR
3930 7 jsauermann
;;;                                     } 18 NumericExpression (constant 32 = 0x20)
3931 2 jsauermann
;--     store_rr_var pad = -8(FP), SP at -28
3932
        MOVE    R, 20(SP)
3933 7 jsauermann
;;;                                   } 17 Expr l = r
3934
;;;                                 } 16 ExpressionStatement
3935
;;;                                 { 16 ExpressionStatement
3936
;;;                                   { 17 Expr l = r
3937
;;;                                     { 18 TypeName
3938
;;;                                       { 19 TypeSpecifier (all)
3939
;;;                                         spec = int (80000)
3940
;;;                                       } 19 TypeSpecifier (all)
3941
;;;                                       { 19 List
3942
;;;                                         { 20 DeclItem
3943
;;;                                           what = DECL_NAME
3944
;;;                                           name = field_w
3945
;;;                                         } 20 DeclItem
3946
;;;                                       } 19 List
3947
;;;                                     } 18 TypeName
3948
;;;                                     { 18 NumericExpression (constant 0 = 0x0)
3949 2 jsauermann
;--     load_rr_constant
3950
        MOVE    #0x0000, RR
3951 7 jsauermann
;;;                                     } 18 NumericExpression (constant 0 = 0x0)
3952 2 jsauermann
;--     store_rr_var field_w = -12(FP), SP at -28
3953
        MOVE    RR, 16(SP)
3954 7 jsauermann
;;;                                   } 17 Expr l = r
3955
;;;                                 } 16 ExpressionStatement
3956
;;;                                 { 16 ExpressionStatement
3957
;;;                                   { 17 Expr l = r
3958
;;;                                     { 18 TypeName
3959
;;;                                       { 19 TypeSpecifier (all)
3960
;;;                                         spec = int (80000)
3961
;;;                                       } 19 TypeSpecifier (all)
3962
;;;                                       { 19 List
3963
;;;                                         { 20 DeclItem
3964
;;;                                           what = DECL_NAME
3965
;;;                                           name = min_w
3966
;;;                                         } 20 DeclItem
3967
;;;                                       } 19 List
3968
;;;                                     } 18 TypeName
3969
;;;                                     { 18 NumericExpression (constant 0 = 0x0)
3970 2 jsauermann
;--     load_rr_constant
3971
        MOVE    #0x0000, RR
3972 7 jsauermann
;;;                                     } 18 NumericExpression (constant 0 = 0x0)
3973 2 jsauermann
;--     store_rr_var min_w = -14(FP), SP at -28
3974
        MOVE    RR, 14(SP)
3975 7 jsauermann
;;;                                   } 17 Expr l = r
3976
;;;                                 } 16 ExpressionStatement
3977
;;;                                 { 16 ExpressionStatement
3978
;;;                                   { 17 Expr l = r
3979
;;;                                     { 18 TypeName
3980
;;;                                       { 19 TypeSpecifier (all)
3981
;;;                                         spec = unsigned int (82000)
3982
;;;                                       } 19 TypeSpecifier (all)
3983
;;;                                       { 19 List
3984
;;;                                         { 20 DeclItem
3985
;;;                                           what = DECL_POINTER
3986
;;;                                           { 21 List
3987
;;;                                             { 22 Ptr
3988
;;;                                             } 22 Ptr
3989
;;;                                           } 21 List
3990
;;;                                         } 20 DeclItem
3991
;;;                                         { 20 DeclItem
3992
;;;                                           what = DECL_NAME
3993
;;;                                           name = which_w
3994
;;;                                         } 20 DeclItem
3995
;;;                                       } 19 List
3996
;;;                                     } 18 TypeName
3997
;;;                                     { 18 Expr & r
3998 2 jsauermann
;--     load_address field_w = -12(FP), SP at -28
3999
        LEA     16(SP), RR
4000 7 jsauermann
;;;                                     } 18 Expr & r
4001 2 jsauermann
;--     store_rr_var which_w = -16(FP), SP at -28
4002
        MOVE    RR, 12(SP)
4003 7 jsauermann
;;;                                   } 17 Expr l = r
4004
;;;                                 } 16 ExpressionStatement
4005
;;;                                 { 16 for Statement
4006
;;;                                   { 17 ExpressionStatement
4007
;;;                                   } 17 ExpressionStatement
4008 2 jsauermann
L12_loop_40:
4009 7 jsauermann
;;;                                   { 17 CompoundStatement
4010
;;;                                     { 18 List
4011
;;;                                       { 19 SwitchStatement
4012
;;;                                         { 20 Expr l = r
4013
;;;                                           { 21 TypeName
4014
;;;                                             { 22 TypeSpecifier (all)
4015
;;;                                               spec = char (20000)
4016
;;;                                             } 22 TypeSpecifier (all)
4017
;;;                                             { 22 List
4018
;;;                                               { 23 DeclItem
4019
;;;                                                 what = DECL_NAME
4020
;;;                                                 name = c
4021
;;;                                               } 23 DeclItem
4022
;;;                                             } 22 List
4023
;;;                                           } 21 TypeName
4024
;;;                                           { 21 Expr * r
4025
;;;                                             { 22 Expr l - r
4026
;;;                                               { 23 Expr ++r
4027
;;;                                                 { 24 Expression (variable name)
4028
;;;                                                   expr_type = "identifier" (format)
4029 2 jsauermann
;--     load_rr_var format = 2(FP), SP at -28 (16 bit)
4030
        MOVE    30(SP), RR
4031 7 jsauermann
;;;                                                 } 24 Expression (variable name)
4032 2 jsauermann
;--     ++
4033
        ADD     RR, #0x0001
4034
;--     store_rr_var format = 2(FP), SP at -28
4035
        MOVE    RR, 30(SP)
4036 7 jsauermann
;;;                                               } 23 Expr ++r
4037 2 jsauermann
;--     l - r
4038
        SUB     RR, #0x0001
4039 7 jsauermann
;;;                                             } 22 Expr l - r
4040 2 jsauermann
;--     content
4041
        MOVE    (RR), RS
4042 7 jsauermann
;;;                                           } 21 Expr * r
4043 2 jsauermann
;--     store_rr_var c = -5(FP), SP at -28
4044
        MOVE    R, 23(SP)
4045 7 jsauermann
;;;                                         } 20 Expr l = r
4046 2 jsauermann
;--     move_rr_to_ll
4047
        MOVE    RR, LL
4048
;--     branch_case (8 bit)
4049
        SEQ     LL, #0x0058
4050
        JMP     RRNZ, L12_case_42_0058
4051
;--     branch_case (8 bit)
4052
        SEQ     LL, #0x0064
4053
        JMP     RRNZ, L12_case_42_0064
4054
;--     branch_case (8 bit)
4055
        SEQ     LL, #0x0073
4056
        JMP     RRNZ, L12_case_42_0073
4057
;--     branch_case (8 bit)
4058
        SEQ     LL, #0x0075
4059
        JMP     RRNZ, L12_case_42_0075
4060
;--     branch_case (8 bit)
4061
        SEQ     LL, #0x0078
4062
        JMP     RRNZ, L12_case_42_0078
4063
;--     branch_case (8 bit)
4064
        SEQ     LL, #0x0063
4065
        JMP     RRNZ, L12_case_42_0063
4066
;--     branch_case (8 bit)
4067
        SEQ     LL, #0x0023
4068
        JMP     RRNZ, L12_case_42_0023
4069
;--     branch_case (8 bit)
4070
        SEQ     LL, #0x002D
4071
        JMP     RRNZ, L12_case_42_002D
4072
;--     branch_case (8 bit)
4073
        SEQ     LL, #0x0020
4074
        JMP     RRNZ, L12_case_42_0020
4075
;--     branch_case (8 bit)
4076
        SEQ     LL, #0x002B
4077
        JMP     RRNZ, L12_case_42_002B
4078
;--     branch_case (8 bit)
4079
        SEQ     LL, #0x002E
4080
        JMP     RRNZ, L12_case_42_002E
4081
;--     branch_case (8 bit)
4082
        SEQ     LL, #0x0030
4083
        JMP     RRNZ, L12_case_42_0030
4084
;--     branch_case (8 bit)
4085
        SEQ     LL, #0x0031
4086
        JMP     RRNZ, L12_case_42_0031
4087
;--     branch_case (8 bit)
4088
        SEQ     LL, #0x0032
4089
        JMP     RRNZ, L12_case_42_0032
4090
;--     branch_case (8 bit)
4091
        SEQ     LL, #0x0033
4092
        JMP     RRNZ, L12_case_42_0033
4093
;--     branch_case (8 bit)
4094
        SEQ     LL, #0x0034
4095
        JMP     RRNZ, L12_case_42_0034
4096
;--     branch_case (8 bit)
4097
        SEQ     LL, #0x0035
4098
        JMP     RRNZ, L12_case_42_0035
4099
;--     branch_case (8 bit)
4100
        SEQ     LL, #0x0036
4101
        JMP     RRNZ, L12_case_42_0036
4102
;--     branch_case (8 bit)
4103
        SEQ     LL, #0x0037
4104
        JMP     RRNZ, L12_case_42_0037
4105
;--     branch_case (8 bit)
4106
        SEQ     LL, #0x0038
4107
        JMP     RRNZ, L12_case_42_0038
4108
;--     branch_case (8 bit)
4109
        SEQ     LL, #0x0039
4110
        JMP     RRNZ, L12_case_42_0039
4111
;--     branch_case (8 bit)
4112
        SEQ     LL, #0x002A
4113
        JMP     RRNZ, L12_case_42_002A
4114
;--     branch_case (8 bit)
4115
        SEQ     LL, #0x0000
4116
        JMP     RRNZ, L12_case_42_0000
4117
;--     branch
4118
        JMP     L12_deflt_42
4119 7 jsauermann
;;;                                         { 20 CompoundStatement
4120
;;;                                           { 21 List
4121
;;;                                             { 22 case Statement
4122 2 jsauermann
L12_case_42_0058:
4123 7 jsauermann
;;;                                               { 23 ExpressionStatement
4124
;;;                                                 { 24 Expr l(r)
4125
;;;                                                   { 25 TypeName
4126
;;;                                                     { 26 TypeSpecifier (all)
4127
;;;                                                       spec = void (10000)
4128
;;;                                                     } 26 TypeSpecifier (all)
4129
;;;                                                     { 26 List
4130
;;;                                                       { 27 DeclItem
4131
;;;                                                         what = DECL_NAME
4132
;;;                                                         name = print_hex
4133
;;;                                                       } 27 DeclItem
4134
;;;                                                     } 26 List
4135
;;;                                                   } 25 TypeName
4136
;;;                                                   { 25 Expr (l , r)
4137
;;;                                                     { 26 ParameterDeclaration
4138
;;;                                                       isEllipsis = false
4139
;;;                                                       { 27 TypeName
4140
;;;                                                         { 28 TypeSpecifier (all)
4141
;;;                                                           spec = const char (20100)
4142
;;;                                                         } 28 TypeSpecifier (all)
4143
;;;                                                         { 28 List
4144
;;;                                                           { 29 DeclItem
4145
;;;                                                             what = DECL_POINTER
4146
;;;                                                             { 30 List
4147
;;;                                                               { 31 Ptr
4148
;;;                                                               } 31 Ptr
4149
;;;                                                             } 30 List
4150
;;;                                                           } 29 DeclItem
4151
;;;                                                           { 29 DeclItem
4152
;;;                                                             what = DECL_NAME
4153
;;;                                                             name = hex
4154
;;;                                                           } 29 DeclItem
4155
;;;                                                         } 28 List
4156
;;;                                                       } 27 TypeName
4157
;;;                                                     } 26 ParameterDeclaration
4158
;;;                                                     { 26 StringExpression
4159 2 jsauermann
;--     load_rr_string
4160
        MOVE    #Cstr_19, RR
4161 7 jsauermann
;;;                                                     } 26 StringExpression
4162 2 jsauermann
;--     push_rr (16 bit)
4163
        MOVE    RR, -(SP)
4164 7 jsauermann
;;;                                                     { 26 Expr (l , r)
4165
;;;                                                       { 27 ParameterDeclaration
4166
;;;                                                         isEllipsis = false
4167
;;;                                                         { 28 TypeName
4168
;;;                                                           { 29 TypeSpecifier (all)
4169
;;;                                                             spec = unsigned int (82000)
4170
;;;                                                           } 29 TypeSpecifier (all)
4171
;;;                                                           { 29 List
4172
;;;                                                             { 30 DeclItem
4173
;;;                                                               what = DECL_NAME
4174
;;;                                                               name = value
4175
;;;                                                             } 30 DeclItem
4176
;;;                                                           } 29 List
4177
;;;                                                         } 28 TypeName
4178
;;;                                                       } 27 ParameterDeclaration
4179
;;;                                                       { 27 Expression (cast)r
4180
;;;                                                         { 28 Expr * r
4181
;;;                                                           { 29 Expr l - r
4182
;;;                                                             { 30 Expr ++r
4183
;;;                                                               { 31 Expression (variable name)
4184
;;;                                                                 expr_type = "identifier" (args)
4185 2 jsauermann
;--     load_rr_var args = -2(FP), SP at -30 (16 bit)
4186
        MOVE    28(SP), RR
4187 7 jsauermann
;;;                                                               } 31 Expression (variable name)
4188 2 jsauermann
;--     ++
4189
        ADD     RR, #0x0002
4190
;--     store_rr_var args = -2(FP), SP at -30
4191
        MOVE    RR, 28(SP)
4192 7 jsauermann
;;;                                                             } 30 Expr ++r
4193 2 jsauermann
;--     l - r
4194
        SUB     RR, #0x0002
4195 7 jsauermann
;;;                                                           } 29 Expr l - r
4196 2 jsauermann
;--     content
4197
        MOVE    (RR), RR
4198 7 jsauermann
;;;                                                         } 28 Expr * r
4199
;;;                                                       } 27 Expression (cast)r
4200 2 jsauermann
;--     push_rr (16 bit)
4201
        MOVE    RR, -(SP)
4202 7 jsauermann
;;;                                                       { 27 ParameterDeclaration
4203
;;;                                                         isEllipsis = false
4204
;;;                                                         { 28 TypeName
4205
;;;                                                           { 29 TypeSpecifier (all)
4206
;;;                                                             spec = char (20000)
4207
;;;                                                           } 29 TypeSpecifier (all)
4208
;;;                                                           { 29 List
4209
;;;                                                             { 30 DeclItem
4210
;;;                                                               what = DECL_POINTER
4211
;;;                                                               { 31 List
4212
;;;                                                                 { 32 Ptr
4213
;;;                                                                 } 32 Ptr
4214
;;;                                                               } 31 List
4215
;;;                                                             } 30 DeclItem
4216
;;;                                                             { 30 DeclItem
4217
;;;                                                               what = DECL_NAME
4218
;;;                                                               name = dest
4219
;;;                                                             } 30 DeclItem
4220
;;;                                                           } 29 List
4221
;;;                                                         } 28 TypeName
4222
;;;                                                       } 27 ParameterDeclaration
4223 2 jsauermann
;--     load_address buffer = -28(FP), SP at -32
4224
        LEA     4(SP), RR
4225
;--     push_rr (16 bit)
4226
        MOVE    RR, -(SP)
4227 7 jsauermann
;;;                                                     } 26 Expr (l , r)
4228
;;;                                                   } 25 Expr (l , r)
4229 2 jsauermann
;--     push 0 bytes
4230
;--     call
4231
        CALL    Cprint_hex
4232
;--     pop 6 bytes
4233
        ADD     SP, #6
4234 7 jsauermann
;;;                                                 } 24 Expr l(r)
4235
;;;                                               } 23 ExpressionStatement
4236
;;;                                             } 22 case Statement
4237
;;;                                             { 22 ExpressionStatement
4238
;;;                                               { 23 Expr l += r
4239
;;;                                                 { 24 TypeName
4240
;;;                                                   { 25 TypeSpecifier (all)
4241
;;;                                                     spec = int (80000)
4242
;;;                                                   } 25 TypeSpecifier (all)
4243
;;;                                                   { 25 List
4244
;;;                                                     { 26 DeclItem
4245
;;;                                                       what = DECL_NAME
4246
;;;                                                       name = len
4247
;;;                                                     } 26 DeclItem
4248
;;;                                                   } 25 List
4249
;;;                                                 } 24 TypeName
4250
;;;                                                 { 24 Expr l + r
4251
;;;                                                   { 25 Expr l(r)
4252
;;;                                                     { 26 TypeName
4253
;;;                                                       { 27 TypeSpecifier (all)
4254
;;;                                                         spec = int (80000)
4255
;;;                                                       } 27 TypeSpecifier (all)
4256
;;;                                                       { 27 List
4257
;;;                                                         { 28 DeclItem
4258
;;;                                                           what = DECL_NAME
4259
;;;                                                           name = print_item
4260
;;;                                                         } 28 DeclItem
4261
;;;                                                       } 27 List
4262
;;;                                                     } 26 TypeName
4263
;;;                                                     { 26 Expr (l , r)
4264
;;;                                                       { 27 ParameterDeclaration
4265
;;;                                                         isEllipsis = false
4266
;;;                                                         { 28 TypeName
4267
;;;                                                           { 29 TypeSpecifier (all)
4268
;;;                                                             spec = char (20000)
4269
;;;                                                           } 29 TypeSpecifier (all)
4270
;;;                                                           { 29 List
4271
;;;                                                             { 30 DeclItem
4272
;;;                                                               what = DECL_NAME
4273
;;;                                                               name = min_p
4274
;;;                                                             } 30 DeclItem
4275
;;;                                                           } 29 List
4276
;;;                                                         } 28 TypeName
4277
;;;                                                       } 27 ParameterDeclaration
4278
;;;                                                       { 27 NumericExpression (constant 48 = 0x30)
4279 2 jsauermann
;--     load_rr_constant
4280
        MOVE    #0x0030, RR
4281 7 jsauermann
;;;                                                       } 27 NumericExpression (constant 48 = 0x30)
4282 2 jsauermann
;--     push_rr (8 bit)
4283
        MOVE    R, -(SP)
4284 7 jsauermann
;;;                                                       { 27 Expr (l , r)
4285
;;;                                                         { 28 ParameterDeclaration
4286
;;;                                                           isEllipsis = false
4287
;;;                                                           { 29 TypeName
4288
;;;                                                             { 30 TypeSpecifier (all)
4289
;;;                                                               spec = int (80000)
4290
;;;                                                             } 30 TypeSpecifier (all)
4291
;;;                                                             { 30 List
4292
;;;                                                               { 31 DeclItem
4293
;;;                                                                 what = DECL_NAME
4294
;;;                                                                 name = min_w
4295
;;;                                                               } 31 DeclItem
4296
;;;                                                             } 30 List
4297
;;;                                                           } 29 TypeName
4298
;;;                                                         } 28 ParameterDeclaration
4299
;;;                                                         { 28 Expression (variable name)
4300
;;;                                                           expr_type = "identifier" (min_w)
4301 2 jsauermann
;--     load_rr_var min_w = -14(FP), SP at -29 (16 bit)
4302
        MOVE    15(SP), RR
4303 7 jsauermann
;;;                                                         } 28 Expression (variable name)
4304 2 jsauermann
;--     push_rr (16 bit)
4305
        MOVE    RR, -(SP)
4306 7 jsauermann
;;;                                                         { 28 Expr (l , r)
4307
;;;                                                           { 29 ParameterDeclaration
4308
;;;                                                             isEllipsis = false
4309
;;;                                                             { 30 TypeName
4310
;;;                                                               { 31 TypeSpecifier (all)
4311
;;;                                                                 spec = int (80000)
4312
;;;                                                               } 31 TypeSpecifier (all)
4313
;;;                                                               { 31 List
4314
;;;                                                                 { 32 DeclItem
4315
;;;                                                                   what = DECL_NAME
4316
;;;                                                                   name = field_w
4317
;;;                                                                 } 32 DeclItem
4318
;;;                                                               } 31 List
4319
;;;                                                             } 30 TypeName
4320
;;;                                                           } 29 ParameterDeclaration
4321
;;;                                                           { 29 Expression (variable name)
4322
;;;                                                             expr_type = "identifier" (field_w)
4323 2 jsauermann
;--     load_rr_var field_w = -12(FP), SP at -31 (16 bit)
4324
        MOVE    19(SP), RR
4325 7 jsauermann
;;;                                                           } 29 Expression (variable name)
4326 2 jsauermann
;--     push_rr (16 bit)
4327
        MOVE    RR, -(SP)
4328 7 jsauermann
;;;                                                           { 29 Expr (l , r)
4329
;;;                                                             { 30 ParameterDeclaration
4330
;;;                                                               isEllipsis = false
4331
;;;                                                               { 31 TypeName
4332
;;;                                                                 { 32 TypeSpecifier (all)
4333
;;;                                                                   spec = const char (20100)
4334
;;;                                                                 } 32 TypeSpecifier (all)
4335
;;;                                                                 { 32 List
4336
;;;                                                                   { 33 DeclItem
4337
;;;                                                                     what = DECL_POINTER
4338
;;;                                                                     { 34 List
4339
;;;                                                                       { 35 Ptr
4340
;;;                                                                       } 35 Ptr
4341
;;;                                                                     } 34 List
4342
;;;                                                                   } 33 DeclItem
4343
;;;                                                                   { 33 DeclItem
4344
;;;                                                                     what = DECL_NAME
4345
;;;                                                                     name = alt
4346
;;;                                                                   } 33 DeclItem
4347
;;;                                                                 } 32 List
4348
;;;                                                               } 31 TypeName
4349
;;;                                                             } 30 ParameterDeclaration
4350
;;;                                                             { 30 StringExpression
4351 2 jsauermann
;--     load_rr_string
4352
        MOVE    #Cstr_20, RR
4353 7 jsauermann
;;;                                                             } 30 StringExpression
4354 2 jsauermann
;--     push_rr (16 bit)
4355
        MOVE    RR, -(SP)
4356 7 jsauermann
;;;                                                             { 30 Expr (l , r)
4357
;;;                                                               { 31 ParameterDeclaration
4358
;;;                                                                 isEllipsis = false
4359
;;;                                                                 { 32 TypeName
4360
;;;                                                                   { 33 TypeSpecifier (all)
4361
;;;                                                                     spec = char (20000)
4362
;;;                                                                   } 33 TypeSpecifier (all)
4363
;;;                                                                   { 33 List
4364
;;;                                                                     { 34 DeclItem
4365
;;;                                                                       what = DECL_NAME
4366
;;;                                                                       name = pad
4367
;;;                                                                     } 34 DeclItem
4368
;;;                                                                   } 33 List
4369
;;;                                                                 } 32 TypeName
4370
;;;                                                               } 31 ParameterDeclaration
4371
;;;                                                               { 31 Expression (variable name)
4372
;;;                                                                 expr_type = "identifier" (pad)
4373 2 jsauermann
;--     load_rr_var pad = -8(FP), SP at -35 (8 bit)
4374
        MOVE    27(SP), RS
4375 7 jsauermann
;;;                                                               } 31 Expression (variable name)
4376 2 jsauermann
;--     push_rr (8 bit)
4377
        MOVE    R, -(SP)
4378 7 jsauermann
;;;                                                               { 31 Expr (l , r)
4379
;;;                                                                 { 32 ParameterDeclaration
4380
;;;                                                                   isEllipsis = false
4381
;;;                                                                   { 33 TypeName
4382
;;;                                                                     { 34 TypeSpecifier (all)
4383
;;;                                                                       spec = char (20000)
4384
;;;                                                                     } 34 TypeSpecifier (all)
4385
;;;                                                                     { 34 List
4386
;;;                                                                       { 35 DeclItem
4387
;;;                                                                         what = DECL_NAME
4388
;;;                                                                         name = sign
4389
;;;                                                                       } 35 DeclItem
4390
;;;                                                                     } 34 List
4391
;;;                                                                   } 33 TypeName
4392
;;;                                                                 } 32 ParameterDeclaration
4393
;;;                                                                 { 32 Expression (variable name)
4394
;;;                                                                   expr_type = "identifier" (sign)
4395 2 jsauermann
;--     load_rr_var sign = -7(FP), SP at -36 (8 bit)
4396
        MOVE    29(SP), RS
4397 7 jsauermann
;;;                                                                 } 32 Expression (variable name)
4398 2 jsauermann
;--     push_rr (8 bit)
4399
        MOVE    R, -(SP)
4400 7 jsauermann
;;;                                                                 { 32 Expr (l , r)
4401
;;;                                                                   { 33 ParameterDeclaration
4402
;;;                                                                     isEllipsis = false
4403
;;;                                                                     { 34 TypeName
4404
;;;                                                                       { 35 TypeSpecifier (all)
4405
;;;                                                                         spec = char (20000)
4406
;;;                                                                       } 35 TypeSpecifier (all)
4407
;;;                                                                       { 35 List
4408
;;;                                                                         { 36 DeclItem
4409
;;;                                                                           what = DECL_NAME
4410
;;;                                                                           name = flags
4411
;;;                                                                         } 36 DeclItem
4412
;;;                                                                       } 35 List
4413
;;;                                                                     } 34 TypeName
4414
;;;                                                                   } 33 ParameterDeclaration
4415
;;;                                                                   { 33 Expression (variable name)
4416
;;;                                                                     expr_type = "identifier" (flags)
4417 2 jsauermann
;--     load_rr_var flags = -6(FP), SP at -37 (8 bit)
4418
        MOVE    31(SP), RS
4419 7 jsauermann
;;;                                                                   } 33 Expression (variable name)
4420 2 jsauermann
;--     push_rr (8 bit)
4421
        MOVE    R, -(SP)
4422 7 jsauermann
;;;                                                                   { 33 ParameterDeclaration
4423
;;;                                                                     isEllipsis = false
4424
;;;                                                                     { 34 TypeName
4425
;;;                                                                       { 35 TypeSpecifier (all)
4426
;;;                                                                         spec = const char (20100)
4427
;;;                                                                       } 35 TypeSpecifier (all)
4428
;;;                                                                       { 35 List
4429
;;;                                                                         { 36 DeclItem
4430
;;;                                                                           what = DECL_POINTER
4431
;;;                                                                           { 37 List
4432
;;;                                                                             { 38 Ptr
4433
;;;                                                                             } 38 Ptr
4434
;;;                                                                           } 37 List
4435
;;;                                                                         } 36 DeclItem
4436
;;;                                                                         { 36 DeclItem
4437
;;;                                                                           what = DECL_NAME
4438
;;;                                                                           name = buffer
4439
;;;                                                                         } 36 DeclItem
4440
;;;                                                                       } 35 List
4441
;;;                                                                     } 34 TypeName
4442
;;;                                                                   } 33 ParameterDeclaration
4443 2 jsauermann
;--     load_address buffer = -28(FP), SP at -38
4444
        LEA     10(SP), RR
4445
;--     push_rr (16 bit)
4446
        MOVE    RR, -(SP)
4447 7 jsauermann
;;;                                                                 } 32 Expr (l , r)
4448
;;;                                                               } 31 Expr (l , r)
4449
;;;                                                             } 30 Expr (l , r)
4450
;;;                                                           } 29 Expr (l , r)
4451
;;;                                                         } 28 Expr (l , r)
4452
;;;                                                       } 27 Expr (l , r)
4453
;;;                                                     } 26 Expr (l , r)
4454 2 jsauermann
;--     push 2 bytes
4455
;--     call
4456
        CALL    Cprint_item
4457
;--     pop 12 bytes
4458
        ADD     SP, #12
4459 7 jsauermann
;;;                                                   } 25 Expr l(r)
4460
;;;                                                   { 25 Expression (variable name)
4461
;;;                                                     expr_type = "identifier" (len)
4462 2 jsauermann
;--     load_ll_var len = -4(FP), SP at -28 (16 bit)
4463
        MOVE    24(SP), LL
4464 7 jsauermann
;;;                                                   } 25 Expression (variable name)
4465 2 jsauermann
;--     scale_rr *1
4466
;--     l + r
4467
        ADD     LL, RR
4468 7 jsauermann
;;;                                                 } 24 Expr l + r
4469 2 jsauermann
;--     store_rr_var len = -4(FP), SP at -28
4470
        MOVE    RR, 24(SP)
4471 7 jsauermann
;;;                                               } 23 Expr l += r
4472
;;;                                             } 22 ExpressionStatement
4473
;;;                                             { 22 break/continue Statement
4474 2 jsauermann
;--     branch
4475
        JMP     L12_brk_42
4476 7 jsauermann
;;;                                             } 22 break/continue Statement
4477
;;;                                             { 22 case Statement
4478 2 jsauermann
L12_case_42_0064:
4479 7 jsauermann
;;;                                               { 23 IfElseStatement
4480
;;;                                                 { 24 Expr l < r
4481
;;;                                                   { 25 TypeName (internal)
4482
;;;                                                     { 26 TypeSpecifier (all)
4483
;;;                                                       spec = int (80000)
4484
;;;                                                     } 26 TypeSpecifier (all)
4485
;;;                                                   } 25 TypeName (internal)
4486
;;;                                                   { 25 Expression (cast)r
4487
;;;                                                     { 26 Expr * r
4488
;;;                                                       { 27 Expression (variable name)
4489
;;;                                                         expr_type = "identifier" (args)
4490 2 jsauermann
;--     load_rr_var args = -2(FP), SP at -28 (16 bit)
4491
        MOVE    26(SP), RR
4492 7 jsauermann
;;;                                                       } 27 Expression (variable name)
4493 2 jsauermann
;--     content
4494
        MOVE    (RR), RR
4495 7 jsauermann
;;;                                                     } 26 Expr * r
4496
;;;                                                   } 25 Expression (cast)r
4497 2 jsauermann
;--     l < r
4498
        SLT     RR, #0x0000
4499 7 jsauermann
;;;                                                 } 24 Expr l < r
4500 2 jsauermann
;--     branch_false
4501
        JMP     RRZ, L12_endif_43
4502 7 jsauermann
;;;                                                 { 24 CompoundStatement
4503
;;;                                                   { 25 List
4504
;;;                                                     { 26 ExpressionStatement
4505
;;;                                                       { 27 Expr l = r
4506
;;;                                                         { 28 TypeName
4507
;;;                                                           { 29 TypeSpecifier (all)
4508
;;;                                                             spec = char (20000)
4509
;;;                                                           } 29 TypeSpecifier (all)
4510
;;;                                                           { 29 List
4511
;;;                                                             { 30 DeclItem
4512
;;;                                                               what = DECL_NAME
4513
;;;                                                               name = sign
4514
;;;                                                             } 30 DeclItem
4515
;;;                                                           } 29 List
4516
;;;                                                         } 28 TypeName
4517
;;;                                                         { 28 NumericExpression (constant 45 = 0x2D)
4518 2 jsauermann
;--     load_rr_constant
4519
        MOVE    #0x002D, RR
4520 7 jsauermann
;;;                                                         } 28 NumericExpression (constant 45 = 0x2D)
4521 2 jsauermann
;--     store_rr_var sign = -7(FP), SP at -28
4522
        MOVE    R, 21(SP)
4523 7 jsauermann
;;;                                                       } 27 Expr l = r
4524
;;;                                                     } 26 ExpressionStatement
4525
;;;                                                     { 26 ExpressionStatement
4526
;;;                                                       { 27 Expr l = r
4527
;;;                                                         { 28 TypeName
4528
;;;                                                           { 29 TypeSpecifier (all)
4529
;;;                                                             spec = const char (20100)
4530
;;;                                                           } 29 TypeSpecifier (all)
4531
;;;                                                           { 29 List
4532
;;;                                                             { 30 DeclItem
4533
;;;                                                               what = DECL_POINTER
4534
;;;                                                               { 31 List
4535
;;;                                                                 { 32 Ptr
4536
;;;                                                                 } 32 Ptr
4537
;;;                                                               } 31 List
4538
;;;                                                             } 30 DeclItem
4539
;;;                                                             { 30 DeclItem
4540
;;;                                                               what = DECL_NAME
4541
;;;                                                               name = args
4542
;;;                                                             } 30 DeclItem
4543
;;;                                                           } 29 List
4544
;;;                                                         } 28 TypeName
4545
;;;                                                         { 28 Expression (cast)r
4546
;;;                                                           { 29 Expr - r
4547
;;;                                                             { 30 Expression (cast)r
4548
;;;                                                               { 31 Expr * r
4549
;;;                                                                 { 32 Expression (variable name)
4550
;;;                                                                   expr_type = "identifier" (args)
4551 2 jsauermann
;--     load_rr_var args = -2(FP), SP at -28 (16 bit)
4552
        MOVE    26(SP), RR
4553 7 jsauermann
;;;                                                                 } 32 Expression (variable name)
4554 2 jsauermann
;--     content
4555
        MOVE    (RR), RR
4556 7 jsauermann
;;;                                                               } 31 Expr * r
4557
;;;                                                             } 30 Expression (cast)r
4558 2 jsauermann
;--     16 bit - r
4559
        NEG     RR
4560 7 jsauermann
;;;                                                           } 29 Expr - r
4561
;;;                                                         } 28 Expression (cast)r
4562 2 jsauermann
;--     push_rr (16 bit)
4563
        MOVE    RR, -(SP)
4564 7 jsauermann
;;;                                                         { 28 Expr * r
4565
;;;                                                           { 29 Expression (variable name)
4566
;;;                                                             expr_type = "identifier" (args)
4567 2 jsauermann
;--     load_rr_var args = -2(FP), SP at -30 (16 bit)
4568
        MOVE    28(SP), RR
4569 7 jsauermann
;;;                                                           } 29 Expression (variable name)
4570
;;;                                                         } 28 Expr * r
4571 2 jsauermann
;--     move_rr_to_ll
4572
        MOVE    RR, LL
4573
;--     pop_rr (16 bit)
4574
        MOVE    (SP)+, RR
4575
;--     assign (16 bit)
4576
        MOVE    RR, (LL)
4577 7 jsauermann
;;;                                                       } 27 Expr l = r
4578
;;;                                                     } 26 ExpressionStatement
4579
;;;                                                   } 25 List
4580
;--     pop 0 bytes
4581
;;;                                                 } 24 CompoundStatement
4582 2 jsauermann
L12_endif_43:
4583 7 jsauermann
;;;                                               } 23 IfElseStatement
4584
;;;                                             } 22 case Statement
4585
;;;                                             { 22 ExpressionStatement
4586
;;;                                               { 23 Expr l(r)
4587
;;;                                                 { 24 TypeName
4588
;;;                                                   { 25 TypeSpecifier (all)
4589
;;;                                                     spec = void (10000)
4590
;;;                                                   } 25 TypeSpecifier (all)
4591
;;;                                                   { 25 List
4592
;;;                                                     { 26 DeclItem
4593
;;;                                                       what = DECL_NAME
4594
;;;                                                       name = print_unsigned
4595
;;;                                                     } 26 DeclItem
4596
;;;                                                   } 25 List
4597
;;;                                                 } 24 TypeName
4598
;;;                                                 { 24 Expr (l , r)
4599
;;;                                                   { 25 ParameterDeclaration
4600
;;;                                                     isEllipsis = false
4601
;;;                                                     { 26 TypeName
4602
;;;                                                       { 27 TypeSpecifier (all)
4603
;;;                                                         spec = unsigned int (82000)
4604
;;;                                                       } 27 TypeSpecifier (all)
4605
;;;                                                       { 27 List
4606
;;;                                                         { 28 DeclItem
4607
;;;                                                           what = DECL_NAME
4608
;;;                                                           name = value
4609
;;;                                                         } 28 DeclItem
4610
;;;                                                       } 27 List
4611
;;;                                                     } 26 TypeName
4612
;;;                                                   } 25 ParameterDeclaration
4613
;;;                                                   { 25 Expression (cast)r
4614
;;;                                                     { 26 Expr * r
4615
;;;                                                       { 27 Expr l - r
4616
;;;                                                         { 28 Expr ++r
4617
;;;                                                           { 29 Expression (variable name)
4618
;;;                                                             expr_type = "identifier" (args)
4619 2 jsauermann
;--     load_rr_var args = -2(FP), SP at -28 (16 bit)
4620
        MOVE    26(SP), RR
4621 7 jsauermann
;;;                                                           } 29 Expression (variable name)
4622 2 jsauermann
;--     ++
4623
        ADD     RR, #0x0002
4624
;--     store_rr_var args = -2(FP), SP at -28
4625
        MOVE    RR, 26(SP)
4626 7 jsauermann
;;;                                                         } 28 Expr ++r
4627 2 jsauermann
;--     l - r
4628
        SUB     RR, #0x0002
4629 7 jsauermann
;;;                                                       } 27 Expr l - r
4630 2 jsauermann
;--     content
4631
        MOVE    (RR), RR
4632 7 jsauermann
;;;                                                     } 26 Expr * r
4633
;;;                                                   } 25 Expression (cast)r
4634 2 jsauermann
;--     push_rr (16 bit)
4635
        MOVE    RR, -(SP)
4636 7 jsauermann
;;;                                                   { 25 ParameterDeclaration
4637
;;;                                                     isEllipsis = false
4638
;;;                                                     { 26 TypeName
4639
;;;                                                       { 27 TypeSpecifier (all)
4640
;;;                                                         spec = char (20000)
4641
;;;                                                       } 27 TypeSpecifier (all)
4642
;;;                                                       { 27 List
4643
;;;                                                         { 28 DeclItem
4644
;;;                                                           what = DECL_POINTER
4645
;;;                                                           { 29 List
4646
;;;                                                             { 30 Ptr
4647
;;;                                                             } 30 Ptr
4648
;;;                                                           } 29 List
4649
;;;                                                         } 28 DeclItem
4650
;;;                                                         { 28 DeclItem
4651
;;;                                                           what = DECL_NAME
4652
;;;                                                           name = dest
4653
;;;                                                         } 28 DeclItem
4654
;;;                                                       } 27 List
4655
;;;                                                     } 26 TypeName
4656
;;;                                                   } 25 ParameterDeclaration
4657 2 jsauermann
;--     load_address buffer = -28(FP), SP at -30
4658
        LEA     2(SP), RR
4659
;--     push_rr (16 bit)
4660
        MOVE    RR, -(SP)
4661 7 jsauermann
;;;                                                 } 24 Expr (l , r)
4662 2 jsauermann
;--     push 0 bytes
4663
;--     call
4664
        CALL    Cprint_unsigned
4665
;--     pop 4 bytes
4666
        ADD     SP, #4
4667 7 jsauermann
;;;                                               } 23 Expr l(r)
4668
;;;                                             } 22 ExpressionStatement
4669
;;;                                             { 22 ExpressionStatement
4670
;;;                                               { 23 Expr l += r
4671
;;;                                                 { 24 TypeName
4672
;;;                                                   { 25 TypeSpecifier (all)
4673
;;;                                                     spec = int (80000)
4674
;;;                                                   } 25 TypeSpecifier (all)
4675
;;;                                                   { 25 List
4676
;;;                                                     { 26 DeclItem
4677
;;;                                                       what = DECL_NAME
4678
;;;                                                       name = len
4679
;;;                                                     } 26 DeclItem
4680
;;;                                                   } 25 List
4681
;;;                                                 } 24 TypeName
4682
;;;                                                 { 24 Expr l + r
4683
;;;                                                   { 25 Expr l(r)
4684
;;;                                                     { 26 TypeName
4685
;;;                                                       { 27 TypeSpecifier (all)
4686
;;;                                                         spec = int (80000)
4687
;;;                                                       } 27 TypeSpecifier (all)
4688
;;;                                                       { 27 List
4689
;;;                                                         { 28 DeclItem
4690
;;;                                                           what = DECL_NAME
4691
;;;                                                           name = print_item
4692
;;;                                                         } 28 DeclItem
4693
;;;                                                       } 27 List
4694
;;;                                                     } 26 TypeName
4695
;;;                                                     { 26 Expr (l , r)
4696
;;;                                                       { 27 ParameterDeclaration
4697
;;;                                                         isEllipsis = false
4698
;;;                                                         { 28 TypeName
4699
;;;                                                           { 29 TypeSpecifier (all)
4700
;;;                                                             spec = char (20000)
4701
;;;                                                           } 29 TypeSpecifier (all)
4702
;;;                                                           { 29 List
4703
;;;                                                             { 30 DeclItem
4704
;;;                                                               what = DECL_NAME
4705
;;;                                                               name = min_p
4706
;;;                                                             } 30 DeclItem
4707
;;;                                                           } 29 List
4708
;;;                                                         } 28 TypeName
4709
;;;                                                       } 27 ParameterDeclaration
4710
;;;                                                       { 27 NumericExpression (constant 48 = 0x30)
4711 2 jsauermann
;--     load_rr_constant
4712
        MOVE    #0x0030, RR
4713 7 jsauermann
;;;                                                       } 27 NumericExpression (constant 48 = 0x30)
4714 2 jsauermann
;--     push_rr (8 bit)
4715
        MOVE    R, -(SP)
4716 7 jsauermann
;;;                                                       { 27 Expr (l , r)
4717
;;;                                                         { 28 ParameterDeclaration
4718
;;;                                                           isEllipsis = false
4719
;;;                                                           { 29 TypeName
4720
;;;                                                             { 30 TypeSpecifier (all)
4721
;;;                                                               spec = int (80000)
4722
;;;                                                             } 30 TypeSpecifier (all)
4723
;;;                                                             { 30 List
4724
;;;                                                               { 31 DeclItem
4725
;;;                                                                 what = DECL_NAME
4726
;;;                                                                 name = min_w
4727
;;;                                                               } 31 DeclItem
4728
;;;                                                             } 30 List
4729
;;;                                                           } 29 TypeName
4730
;;;                                                         } 28 ParameterDeclaration
4731
;;;                                                         { 28 Expression (variable name)
4732
;;;                                                           expr_type = "identifier" (min_w)
4733 2 jsauermann
;--     load_rr_var min_w = -14(FP), SP at -29 (16 bit)
4734
        MOVE    15(SP), RR
4735 7 jsauermann
;;;                                                         } 28 Expression (variable name)
4736 2 jsauermann
;--     push_rr (16 bit)
4737
        MOVE    RR, -(SP)
4738 7 jsauermann
;;;                                                         { 28 Expr (l , r)
4739
;;;                                                           { 29 ParameterDeclaration
4740
;;;                                                             isEllipsis = false
4741
;;;                                                             { 30 TypeName
4742
;;;                                                               { 31 TypeSpecifier (all)
4743
;;;                                                                 spec = int (80000)
4744
;;;                                                               } 31 TypeSpecifier (all)
4745
;;;                                                               { 31 List
4746
;;;                                                                 { 32 DeclItem
4747
;;;                                                                   what = DECL_NAME
4748
;;;                                                                   name = field_w
4749
;;;                                                                 } 32 DeclItem
4750
;;;                                                               } 31 List
4751
;;;                                                             } 30 TypeName
4752
;;;                                                           } 29 ParameterDeclaration
4753
;;;                                                           { 29 Expression (variable name)
4754
;;;                                                             expr_type = "identifier" (field_w)
4755 2 jsauermann
;--     load_rr_var field_w = -12(FP), SP at -31 (16 bit)
4756
        MOVE    19(SP), RR
4757 7 jsauermann
;;;                                                           } 29 Expression (variable name)
4758 2 jsauermann
;--     push_rr (16 bit)
4759
        MOVE    RR, -(SP)
4760 7 jsauermann
;;;                                                           { 29 Expr (l , r)
4761
;;;                                                             { 30 ParameterDeclaration
4762
;;;                                                               isEllipsis = false
4763
;;;                                                               { 31 TypeName
4764
;;;                                                                 { 32 TypeSpecifier (all)
4765
;;;                                                                   spec = const char (20100)
4766
;;;                                                                 } 32 TypeSpecifier (all)
4767
;;;                                                                 { 32 List
4768
;;;                                                                   { 33 DeclItem
4769
;;;                                                                     what = DECL_POINTER
4770
;;;                                                                     { 34 List
4771
;;;                                                                       { 35 Ptr
4772
;;;                                                                       } 35 Ptr
4773
;;;                                                                     } 34 List
4774
;;;                                                                   } 33 DeclItem
4775
;;;                                                                   { 33 DeclItem
4776
;;;                                                                     what = DECL_NAME
4777
;;;                                                                     name = alt
4778
;;;                                                                   } 33 DeclItem
4779
;;;                                                                 } 32 List
4780
;;;                                                               } 31 TypeName
4781
;;;                                                             } 30 ParameterDeclaration
4782
;;;                                                             { 30 StringExpression
4783 2 jsauermann
;--     load_rr_string
4784
        MOVE    #Cstr_21, RR
4785 7 jsauermann
;;;                                                             } 30 StringExpression
4786 2 jsauermann
;--     push_rr (16 bit)
4787
        MOVE    RR, -(SP)
4788 7 jsauermann
;;;                                                             { 30 Expr (l , r)
4789
;;;                                                               { 31 ParameterDeclaration
4790
;;;                                                                 isEllipsis = false
4791
;;;                                                                 { 32 TypeName
4792
;;;                                                                   { 33 TypeSpecifier (all)
4793
;;;                                                                     spec = char (20000)
4794
;;;                                                                   } 33 TypeSpecifier (all)
4795
;;;                                                                   { 33 List
4796
;;;                                                                     { 34 DeclItem
4797
;;;                                                                       what = DECL_NAME
4798
;;;                                                                       name = pad
4799
;;;                                                                     } 34 DeclItem
4800
;;;                                                                   } 33 List
4801
;;;                                                                 } 32 TypeName
4802
;;;                                                               } 31 ParameterDeclaration
4803
;;;                                                               { 31 Expression (variable name)
4804
;;;                                                                 expr_type = "identifier" (pad)
4805 2 jsauermann
;--     load_rr_var pad = -8(FP), SP at -35 (8 bit)
4806
        MOVE    27(SP), RS
4807 7 jsauermann
;;;                                                               } 31 Expression (variable name)
4808 2 jsauermann
;--     push_rr (8 bit)
4809
        MOVE    R, -(SP)
4810 7 jsauermann
;;;                                                               { 31 Expr (l , r)
4811
;;;                                                                 { 32 ParameterDeclaration
4812
;;;                                                                   isEllipsis = false
4813
;;;                                                                   { 33 TypeName
4814
;;;                                                                     { 34 TypeSpecifier (all)
4815
;;;                                                                       spec = char (20000)
4816
;;;                                                                     } 34 TypeSpecifier (all)
4817
;;;                                                                     { 34 List
4818
;;;                                                                       { 35 DeclItem
4819
;;;                                                                         what = DECL_NAME
4820
;;;                                                                         name = sign
4821
;;;                                                                       } 35 DeclItem
4822
;;;                                                                     } 34 List
4823
;;;                                                                   } 33 TypeName
4824
;;;                                                                 } 32 ParameterDeclaration
4825
;;;                                                                 { 32 Expression (variable name)
4826
;;;                                                                   expr_type = "identifier" (sign)
4827 2 jsauermann
;--     load_rr_var sign = -7(FP), SP at -36 (8 bit)
4828
        MOVE    29(SP), RS
4829 7 jsauermann
;;;                                                                 } 32 Expression (variable name)
4830 2 jsauermann
;--     push_rr (8 bit)
4831
        MOVE    R, -(SP)
4832 7 jsauermann
;;;                                                                 { 32 Expr (l , r)
4833
;;;                                                                   { 33 ParameterDeclaration
4834
;;;                                                                     isEllipsis = false
4835
;;;                                                                     { 34 TypeName
4836
;;;                                                                       { 35 TypeSpecifier (all)
4837
;;;                                                                         spec = char (20000)
4838
;;;                                                                       } 35 TypeSpecifier (all)
4839
;;;                                                                       { 35 List
4840
;;;                                                                         { 36 DeclItem
4841
;;;                                                                           what = DECL_NAME
4842
;;;                                                                           name = flags
4843
;;;                                                                         } 36 DeclItem
4844
;;;                                                                       } 35 List
4845
;;;                                                                     } 34 TypeName
4846
;;;                                                                   } 33 ParameterDeclaration
4847
;;;                                                                   { 33 Expression (variable name)
4848
;;;                                                                     expr_type = "identifier" (flags)
4849 2 jsauermann
;--     load_rr_var flags = -6(FP), SP at -37 (8 bit)
4850
        MOVE    31(SP), RS
4851 7 jsauermann
;;;                                                                   } 33 Expression (variable name)
4852 2 jsauermann
;--     push_rr (8 bit)
4853
        MOVE    R, -(SP)
4854 7 jsauermann
;;;                                                                   { 33 ParameterDeclaration
4855
;;;                                                                     isEllipsis = false
4856
;;;                                                                     { 34 TypeName
4857
;;;                                                                       { 35 TypeSpecifier (all)
4858
;;;                                                                         spec = const char (20100)
4859
;;;                                                                       } 35 TypeSpecifier (all)
4860
;;;                                                                       { 35 List
4861
;;;                                                                         { 36 DeclItem
4862
;;;                                                                           what = DECL_POINTER
4863
;;;                                                                           { 37 List
4864
;;;                                                                             { 38 Ptr
4865
;;;                                                                             } 38 Ptr
4866
;;;                                                                           } 37 List
4867
;;;                                                                         } 36 DeclItem
4868
;;;                                                                         { 36 DeclItem
4869
;;;                                                                           what = DECL_NAME
4870
;;;                                                                           name = buffer
4871
;;;                                                                         } 36 DeclItem
4872
;;;                                                                       } 35 List
4873
;;;                                                                     } 34 TypeName
4874
;;;                                                                   } 33 ParameterDeclaration
4875 2 jsauermann
;--     load_address buffer = -28(FP), SP at -38
4876
        LEA     10(SP), RR
4877
;--     push_rr (16 bit)
4878
        MOVE    RR, -(SP)
4879 7 jsauermann
;;;                                                                 } 32 Expr (l , r)
4880
;;;                                                               } 31 Expr (l , r)
4881
;;;                                                             } 30 Expr (l , r)
4882
;;;                                                           } 29 Expr (l , r)
4883
;;;                                                         } 28 Expr (l , r)
4884
;;;                                                       } 27 Expr (l , r)
4885
;;;                                                     } 26 Expr (l , r)
4886 2 jsauermann
;--     push 2 bytes
4887
;--     call
4888
        CALL    Cprint_item
4889
;--     pop 12 bytes
4890
        ADD     SP, #12
4891 7 jsauermann
;;;                                                   } 25 Expr l(r)
4892
;;;                                                   { 25 Expression (variable name)
4893
;;;                                                     expr_type = "identifier" (len)
4894 2 jsauermann
;--     load_ll_var len = -4(FP), SP at -28 (16 bit)
4895
        MOVE    24(SP), LL
4896 7 jsauermann
;;;                                                   } 25 Expression (variable name)
4897 2 jsauermann
;--     scale_rr *1
4898
;--     l + r
4899
        ADD     LL, RR
4900 7 jsauermann
;;;                                                 } 24 Expr l + r
4901 2 jsauermann
;--     store_rr_var len = -4(FP), SP at -28
4902
        MOVE    RR, 24(SP)
4903 7 jsauermann
;;;                                               } 23 Expr l += r
4904
;;;                                             } 22 ExpressionStatement
4905
;;;                                             { 22 break/continue Statement
4906 2 jsauermann
;--     branch
4907
        JMP     L12_brk_42
4908 7 jsauermann
;;;                                             } 22 break/continue Statement
4909
;;;                                             { 22 case Statement
4910 2 jsauermann
L12_case_42_0073:
4911 7 jsauermann
;;;                                               { 23 ExpressionStatement
4912
;;;                                                 { 24 Expr l += r
4913
;;;                                                   { 25 TypeName
4914
;;;                                                     { 26 TypeSpecifier (all)
4915
;;;                                                       spec = int (80000)
4916
;;;                                                     } 26 TypeSpecifier (all)
4917
;;;                                                     { 26 List
4918
;;;                                                       { 27 DeclItem
4919
;;;                                                         what = DECL_NAME
4920
;;;                                                         name = len
4921
;;;                                                       } 27 DeclItem
4922
;;;                                                     } 26 List
4923
;;;                                                   } 25 TypeName
4924
;;;                                                   { 25 Expr l + r
4925
;;;                                                     { 26 Expr l(r)
4926
;;;                                                       { 27 TypeName
4927
;;;                                                         { 28 TypeSpecifier (all)
4928
;;;                                                           spec = int (80000)
4929
;;;                                                         } 28 TypeSpecifier (all)
4930
;;;                                                         { 28 List
4931
;;;                                                           { 29 DeclItem
4932
;;;                                                             what = DECL_NAME
4933
;;;                                                             name = print_item
4934
;;;                                                           } 29 DeclItem
4935
;;;                                                         } 28 List
4936
;;;                                                       } 27 TypeName
4937
;;;                                                       { 27 Expr (l , r)
4938
;;;                                                         { 28 ParameterDeclaration
4939
;;;                                                           isEllipsis = false
4940
;;;                                                           { 29 TypeName
4941
;;;                                                             { 30 TypeSpecifier (all)
4942
;;;                                                               spec = char (20000)
4943
;;;                                                             } 30 TypeSpecifier (all)
4944
;;;                                                             { 30 List
4945
;;;                                                               { 31 DeclItem
4946
;;;                                                                 what = DECL_NAME
4947
;;;                                                                 name = min_p
4948
;;;                                                               } 31 DeclItem
4949
;;;                                                             } 30 List
4950
;;;                                                           } 29 TypeName
4951
;;;                                                         } 28 ParameterDeclaration
4952
;;;                                                         { 28 NumericExpression (constant 32 = 0x20)
4953 2 jsauermann
;--     load_rr_constant
4954
        MOVE    #0x0020, RR
4955 7 jsauermann
;;;                                                         } 28 NumericExpression (constant 32 = 0x20)
4956 2 jsauermann
;--     push_rr (8 bit)
4957
        MOVE    R, -(SP)
4958 7 jsauermann
;;;                                                         { 28 Expr (l , r)
4959
;;;                                                           { 29 ParameterDeclaration
4960
;;;                                                             isEllipsis = false
4961
;;;                                                             { 30 TypeName
4962
;;;                                                               { 31 TypeSpecifier (all)
4963
;;;                                                                 spec = int (80000)
4964
;;;                                                               } 31 TypeSpecifier (all)
4965
;;;                                                               { 31 List
4966
;;;                                                                 { 32 DeclItem
4967
;;;                                                                   what = DECL_NAME
4968
;;;                                                                   name = min_w
4969
;;;                                                                 } 32 DeclItem
4970
;;;                                                               } 31 List
4971
;;;                                                             } 30 TypeName
4972
;;;                                                           } 29 ParameterDeclaration
4973
;;;                                                           { 29 Expression (variable name)
4974
;;;                                                             expr_type = "identifier" (min_w)
4975 2 jsauermann
;--     load_rr_var min_w = -14(FP), SP at -29 (16 bit)
4976
        MOVE    15(SP), RR
4977 7 jsauermann
;;;                                                           } 29 Expression (variable name)
4978 2 jsauermann
;--     push_rr (16 bit)
4979
        MOVE    RR, -(SP)
4980 7 jsauermann
;;;                                                           { 29 Expr (l , r)
4981
;;;                                                             { 30 ParameterDeclaration
4982
;;;                                                               isEllipsis = false
4983
;;;                                                               { 31 TypeName
4984
;;;                                                                 { 32 TypeSpecifier (all)
4985
;;;                                                                   spec = int (80000)
4986
;;;                                                                 } 32 TypeSpecifier (all)
4987
;;;                                                                 { 32 List
4988
;;;                                                                   { 33 DeclItem
4989
;;;                                                                     what = DECL_NAME
4990
;;;                                                                     name = field_w
4991
;;;                                                                   } 33 DeclItem
4992
;;;                                                                 } 32 List
4993
;;;                                                               } 31 TypeName
4994
;;;                                                             } 30 ParameterDeclaration
4995
;;;                                                             { 30 Expression (variable name)
4996
;;;                                                               expr_type = "identifier" (field_w)
4997 2 jsauermann
;--     load_rr_var field_w = -12(FP), SP at -31 (16 bit)
4998
        MOVE    19(SP), RR
4999 7 jsauermann
;;;                                                             } 30 Expression (variable name)
5000 2 jsauermann
;--     push_rr (16 bit)
5001
        MOVE    RR, -(SP)
5002 7 jsauermann
;;;                                                             { 30 Expr (l , r)
5003
;;;                                                               { 31 ParameterDeclaration
5004
;;;                                                                 isEllipsis = false
5005
;;;                                                                 { 32 TypeName
5006
;;;                                                                   { 33 TypeSpecifier (all)
5007
;;;                                                                     spec = const char (20100)
5008
;;;                                                                   } 33 TypeSpecifier (all)
5009
;;;                                                                   { 33 List
5010
;;;                                                                     { 34 DeclItem
5011
;;;                                                                       what = DECL_POINTER
5012
;;;                                                                       { 35 List
5013
;;;                                                                         { 36 Ptr
5014
;;;                                                                         } 36 Ptr
5015
;;;                                                                       } 35 List
5016
;;;                                                                     } 34 DeclItem
5017
;;;                                                                     { 34 DeclItem
5018
;;;                                                                       what = DECL_NAME
5019
;;;                                                                       name = alt
5020
;;;                                                                     } 34 DeclItem
5021
;;;                                                                   } 33 List
5022
;;;                                                                 } 32 TypeName
5023
;;;                                                               } 31 ParameterDeclaration
5024
;;;                                                               { 31 StringExpression
5025 2 jsauermann
;--     load_rr_string
5026
        MOVE    #Cstr_22, RR
5027 7 jsauermann
;;;                                                               } 31 StringExpression
5028 2 jsauermann
;--     push_rr (16 bit)
5029
        MOVE    RR, -(SP)
5030 7 jsauermann
;;;                                                               { 31 Expr (l , r)
5031
;;;                                                                 { 32 ParameterDeclaration
5032
;;;                                                                   isEllipsis = false
5033
;;;                                                                   { 33 TypeName
5034
;;;                                                                     { 34 TypeSpecifier (all)
5035
;;;                                                                       spec = char (20000)
5036
;;;                                                                     } 34 TypeSpecifier (all)
5037
;;;                                                                     { 34 List
5038
;;;                                                                       { 35 DeclItem
5039
;;;                                                                         what = DECL_NAME
5040
;;;                                                                         name = pad
5041
;;;                                                                       } 35 DeclItem
5042
;;;                                                                     } 34 List
5043
;;;                                                                   } 33 TypeName
5044
;;;                                                                 } 32 ParameterDeclaration
5045
;;;                                                                 { 32 NumericExpression (constant 32 = 0x20)
5046 2 jsauermann
;--     load_rr_constant
5047
        MOVE    #0x0020, RR
5048 7 jsauermann
;;;                                                                 } 32 NumericExpression (constant 32 = 0x20)
5049 2 jsauermann
;--     push_rr (8 bit)
5050
        MOVE    R, -(SP)
5051 7 jsauermann
;;;                                                                 { 32 Expr (l , r)
5052
;;;                                                                   { 33 ParameterDeclaration
5053
;;;                                                                     isEllipsis = false
5054
;;;                                                                     { 34 TypeName
5055
;;;                                                                       { 35 TypeSpecifier (all)
5056
;;;                                                                         spec = char (20000)
5057
;;;                                                                       } 35 TypeSpecifier (all)
5058
;;;                                                                       { 35 List
5059
;;;                                                                         { 36 DeclItem
5060
;;;                                                                           what = DECL_NAME
5061
;;;                                                                           name = sign
5062
;;;                                                                         } 36 DeclItem
5063
;;;                                                                       } 35 List
5064
;;;                                                                     } 34 TypeName
5065
;;;                                                                   } 33 ParameterDeclaration
5066
;;;                                                                   { 33 NumericExpression (constant 0 = 0x0)
5067 2 jsauermann
;--     load_rr_constant
5068
        MOVE    #0x0000, RR
5069 7 jsauermann
;;;                                                                   } 33 NumericExpression (constant 0 = 0x0)
5070 2 jsauermann
;--     push_rr (8 bit)
5071
        MOVE    R, -(SP)
5072 7 jsauermann
;;;                                                                   { 33 Expr (l , r)
5073
;;;                                                                     { 34 ParameterDeclaration
5074
;;;                                                                       isEllipsis = false
5075
;;;                                                                       { 35 TypeName
5076
;;;                                                                         { 36 TypeSpecifier (all)
5077
;;;                                                                           spec = char (20000)
5078
;;;                                                                         } 36 TypeSpecifier (all)
5079
;;;                                                                         { 36 List
5080
;;;                                                                           { 37 DeclItem
5081
;;;                                                                             what = DECL_NAME
5082
;;;                                                                             name = flags
5083
;;;                                                                           } 37 DeclItem
5084
;;;                                                                         } 36 List
5085
;;;                                                                       } 35 TypeName
5086
;;;                                                                     } 34 ParameterDeclaration
5087
;;;                                                                     { 34 Expr l & r
5088
;;;                                                                       { 35 TypeName (internal)
5089
;;;                                                                         { 36 TypeSpecifier (all)
5090
;;;                                                                           spec = int (80000)
5091
;;;                                                                         } 36 TypeSpecifier (all)
5092
;;;                                                                       } 35 TypeName (internal)
5093
;;;                                                                       { 35 Expression (variable name)
5094
;;;                                                                         expr_type = "identifier" (flags)
5095 2 jsauermann
;--     load_rr_var flags = -6(FP), SP at -37 (8 bit)
5096
        MOVE    31(SP), RS
5097 7 jsauermann
;;;                                                                       } 35 Expression (variable name)
5098 2 jsauermann
;--     l & r
5099
        AND     RR, #0x0002
5100 7 jsauermann
;;;                                                                     } 34 Expr l & r
5101 2 jsauermann
;--     push_rr (8 bit)
5102
        MOVE    R, -(SP)
5103 7 jsauermann
;;;                                                                     { 34 ParameterDeclaration
5104
;;;                                                                       isEllipsis = false
5105
;;;                                                                       { 35 TypeName
5106
;;;                                                                         { 36 TypeSpecifier (all)
5107
;;;                                                                           spec = const char (20100)
5108
;;;                                                                         } 36 TypeSpecifier (all)
5109
;;;                                                                         { 36 List
5110
;;;                                                                           { 37 DeclItem
5111
;;;                                                                             what = DECL_POINTER
5112
;;;                                                                             { 38 List
5113
;;;                                                                               { 39 Ptr
5114
;;;                                                                               } 39 Ptr
5115
;;;                                                                             } 38 List
5116
;;;                                                                           } 37 DeclItem
5117
;;;                                                                           { 37 DeclItem
5118
;;;                                                                             what = DECL_NAME
5119
;;;                                                                             name = buffer
5120
;;;                                                                           } 37 DeclItem
5121
;;;                                                                         } 36 List
5122
;;;                                                                       } 35 TypeName
5123
;;;                                                                     } 34 ParameterDeclaration
5124
;;;                                                                     { 34 Expr * r
5125
;;;                                                                       { 35 Expr l - r
5126
;;;                                                                         { 36 Expr ++r
5127
;;;                                                                           { 37 Expression (variable name)
5128
;;;                                                                             expr_type = "identifier" (args)
5129 2 jsauermann
;--     load_rr_var args = -2(FP), SP at -38 (16 bit)
5130
        MOVE    36(SP), RR
5131 7 jsauermann
;;;                                                                           } 37 Expression (variable name)
5132 2 jsauermann
;--     ++
5133
        ADD     RR, #0x0002
5134
;--     store_rr_var args = -2(FP), SP at -38
5135
        MOVE    RR, 36(SP)
5136 7 jsauermann
;;;                                                                         } 36 Expr ++r
5137 2 jsauermann
;--     l - r
5138
        SUB     RR, #0x0002
5139 7 jsauermann
;;;                                                                       } 35 Expr l - r
5140 2 jsauermann
;--     content
5141
        MOVE    (RR), RR
5142 7 jsauermann
;;;                                                                     } 34 Expr * r
5143 2 jsauermann
;--     push_rr (16 bit)
5144
        MOVE    RR, -(SP)
5145 7 jsauermann
;;;                                                                   } 33 Expr (l , r)
5146
;;;                                                                 } 32 Expr (l , r)
5147
;;;                                                               } 31 Expr (l , r)
5148
;;;                                                             } 30 Expr (l , r)
5149
;;;                                                           } 29 Expr (l , r)
5150
;;;                                                         } 28 Expr (l , r)
5151
;;;                                                       } 27 Expr (l , r)
5152 2 jsauermann
;--     push 2 bytes
5153
;--     call
5154
        CALL    Cprint_item
5155
;--     pop 12 bytes
5156
        ADD     SP, #12
5157 7 jsauermann
;;;                                                     } 26 Expr l(r)
5158
;;;                                                     { 26 Expression (variable name)
5159
;;;                                                       expr_type = "identifier" (len)
5160 2 jsauermann
;--     load_ll_var len = -4(FP), SP at -28 (16 bit)
5161
        MOVE    24(SP), LL
5162 7 jsauermann
;;;                                                     } 26 Expression (variable name)
5163 2 jsauermann
;--     scale_rr *1
5164
;--     l + r
5165
        ADD     LL, RR
5166 7 jsauermann
;;;                                                   } 25 Expr l + r
5167 2 jsauermann
;--     store_rr_var len = -4(FP), SP at -28
5168
        MOVE    RR, 24(SP)
5169 7 jsauermann
;;;                                                 } 24 Expr l += r
5170
;;;                                               } 23 ExpressionStatement
5171
;;;                                             } 22 case Statement
5172
;;;                                             { 22 break/continue Statement
5173 2 jsauermann
;--     branch
5174
        JMP     L12_brk_42
5175 7 jsauermann
;;;                                             } 22 break/continue Statement
5176
;;;                                             { 22 case Statement
5177 2 jsauermann
L12_case_42_0075:
5178 7 jsauermann
;;;                                               { 23 ExpressionStatement
5179
;;;                                                 { 24 Expr l(r)
5180
;;;                                                   { 25 TypeName
5181
;;;                                                     { 26 TypeSpecifier (all)
5182
;;;                                                       spec = void (10000)
5183
;;;                                                     } 26 TypeSpecifier (all)
5184
;;;                                                     { 26 List
5185
;;;                                                       { 27 DeclItem
5186
;;;                                                         what = DECL_NAME
5187
;;;                                                         name = print_unsigned
5188
;;;                                                       } 27 DeclItem
5189
;;;                                                     } 26 List
5190
;;;                                                   } 25 TypeName
5191
;;;                                                   { 25 Expr (l , r)
5192
;;;                                                     { 26 ParameterDeclaration
5193
;;;                                                       isEllipsis = false
5194
;;;                                                       { 27 TypeName
5195
;;;                                                         { 28 TypeSpecifier (all)
5196
;;;                                                           spec = unsigned int (82000)
5197
;;;                                                         } 28 TypeSpecifier (all)
5198
;;;                                                         { 28 List
5199
;;;                                                           { 29 DeclItem
5200
;;;                                                             what = DECL_NAME
5201
;;;                                                             name = value
5202
;;;                                                           } 29 DeclItem
5203
;;;                                                         } 28 List
5204
;;;                                                       } 27 TypeName
5205
;;;                                                     } 26 ParameterDeclaration
5206
;;;                                                     { 26 Expression (cast)r
5207
;;;                                                       { 27 Expr * r
5208
;;;                                                         { 28 Expr l - r
5209
;;;                                                           { 29 Expr ++r
5210
;;;                                                             { 30 Expression (variable name)
5211
;;;                                                               expr_type = "identifier" (args)
5212 2 jsauermann
;--     load_rr_var args = -2(FP), SP at -28 (16 bit)
5213
        MOVE    26(SP), RR
5214 7 jsauermann
;;;                                                             } 30 Expression (variable name)
5215 2 jsauermann
;--     ++
5216
        ADD     RR, #0x0002
5217
;--     store_rr_var args = -2(FP), SP at -28
5218
        MOVE    RR, 26(SP)
5219 7 jsauermann
;;;                                                           } 29 Expr ++r
5220 2 jsauermann
;--     l - r
5221
        SUB     RR, #0x0002
5222 7 jsauermann
;;;                                                         } 28 Expr l - r
5223 2 jsauermann
;--     content
5224
        MOVE    (RR), RR
5225 7 jsauermann
;;;                                                       } 27 Expr * r
5226
;;;                                                     } 26 Expression (cast)r
5227 2 jsauermann
;--     push_rr (16 bit)
5228
        MOVE    RR, -(SP)
5229 7 jsauermann
;;;                                                     { 26 ParameterDeclaration
5230
;;;                                                       isEllipsis = false
5231
;;;                                                       { 27 TypeName
5232
;;;                                                         { 28 TypeSpecifier (all)
5233
;;;                                                           spec = char (20000)
5234
;;;                                                         } 28 TypeSpecifier (all)
5235
;;;                                                         { 28 List
5236
;;;                                                           { 29 DeclItem
5237
;;;                                                             what = DECL_POINTER
5238
;;;                                                             { 30 List
5239
;;;                                                               { 31 Ptr
5240
;;;                                                               } 31 Ptr
5241
;;;                                                             } 30 List
5242
;;;                                                           } 29 DeclItem
5243
;;;                                                           { 29 DeclItem
5244
;;;                                                             what = DECL_NAME
5245
;;;                                                             name = dest
5246
;;;                                                           } 29 DeclItem
5247
;;;                                                         } 28 List
5248
;;;                                                       } 27 TypeName
5249
;;;                                                     } 26 ParameterDeclaration
5250 2 jsauermann
;--     load_address buffer = -28(FP), SP at -30
5251
        LEA     2(SP), RR
5252
;--     push_rr (16 bit)
5253
        MOVE    RR, -(SP)
5254 7 jsauermann
;;;                                                   } 25 Expr (l , r)
5255 2 jsauermann
;--     push 0 bytes
5256
;--     call
5257
        CALL    Cprint_unsigned
5258
;--     pop 4 bytes
5259
        ADD     SP, #4
5260 7 jsauermann
;;;                                                 } 24 Expr l(r)
5261
;;;                                               } 23 ExpressionStatement
5262
;;;                                             } 22 case Statement
5263
;;;                                             { 22 ExpressionStatement
5264
;;;                                               { 23 Expr l += r
5265
;;;                                                 { 24 TypeName
5266
;;;                                                   { 25 TypeSpecifier (all)
5267
;;;                                                     spec = int (80000)
5268
;;;                                                   } 25 TypeSpecifier (all)
5269
;;;                                                   { 25 List
5270
;;;                                                     { 26 DeclItem
5271
;;;                                                       what = DECL_NAME
5272
;;;                                                       name = len
5273
;;;                                                     } 26 DeclItem
5274
;;;                                                   } 25 List
5275
;;;                                                 } 24 TypeName
5276
;;;                                                 { 24 Expr l + r
5277
;;;                                                   { 25 Expr l(r)
5278
;;;                                                     { 26 TypeName
5279
;;;                                                       { 27 TypeSpecifier (all)
5280
;;;                                                         spec = int (80000)
5281
;;;                                                       } 27 TypeSpecifier (all)
5282
;;;                                                       { 27 List
5283
;;;                                                         { 28 DeclItem
5284
;;;                                                           what = DECL_NAME
5285
;;;                                                           name = print_item
5286
;;;                                                         } 28 DeclItem
5287
;;;                                                       } 27 List
5288
;;;                                                     } 26 TypeName
5289
;;;                                                     { 26 Expr (l , r)
5290
;;;                                                       { 27 ParameterDeclaration
5291
;;;                                                         isEllipsis = false
5292
;;;                                                         { 28 TypeName
5293
;;;                                                           { 29 TypeSpecifier (all)
5294
;;;                                                             spec = char (20000)
5295
;;;                                                           } 29 TypeSpecifier (all)
5296
;;;                                                           { 29 List
5297
;;;                                                             { 30 DeclItem
5298
;;;                                                               what = DECL_NAME
5299
;;;                                                               name = min_p
5300
;;;                                                             } 30 DeclItem
5301
;;;                                                           } 29 List
5302
;;;                                                         } 28 TypeName
5303
;;;                                                       } 27 ParameterDeclaration
5304
;;;                                                       { 27 NumericExpression (constant 48 = 0x30)
5305 2 jsauermann
;--     load_rr_constant
5306
        MOVE    #0x0030, RR
5307 7 jsauermann
;;;                                                       } 27 NumericExpression (constant 48 = 0x30)
5308 2 jsauermann
;--     push_rr (8 bit)
5309
        MOVE    R, -(SP)
5310 7 jsauermann
;;;                                                       { 27 Expr (l , r)
5311
;;;                                                         { 28 ParameterDeclaration
5312
;;;                                                           isEllipsis = false
5313
;;;                                                           { 29 TypeName
5314
;;;                                                             { 30 TypeSpecifier (all)
5315
;;;                                                               spec = int (80000)
5316
;;;                                                             } 30 TypeSpecifier (all)
5317
;;;                                                             { 30 List
5318
;;;                                                               { 31 DeclItem
5319
;;;                                                                 what = DECL_NAME
5320
;;;                                                                 name = min_w
5321
;;;                                                               } 31 DeclItem
5322
;;;                                                             } 30 List
5323
;;;                                                           } 29 TypeName
5324
;;;                                                         } 28 ParameterDeclaration
5325
;;;                                                         { 28 Expression (variable name)
5326
;;;                                                           expr_type = "identifier" (min_w)
5327 2 jsauermann
;--     load_rr_var min_w = -14(FP), SP at -29 (16 bit)
5328
        MOVE    15(SP), RR
5329 7 jsauermann
;;;                                                         } 28 Expression (variable name)
5330 2 jsauermann
;--     push_rr (16 bit)
5331
        MOVE    RR, -(SP)
5332 7 jsauermann
;;;                                                         { 28 Expr (l , r)
5333
;;;                                                           { 29 ParameterDeclaration
5334
;;;                                                             isEllipsis = false
5335
;;;                                                             { 30 TypeName
5336
;;;                                                               { 31 TypeSpecifier (all)
5337
;;;                                                                 spec = int (80000)
5338
;;;                                                               } 31 TypeSpecifier (all)
5339
;;;                                                               { 31 List
5340
;;;                                                                 { 32 DeclItem
5341
;;;                                                                   what = DECL_NAME
5342
;;;                                                                   name = field_w
5343
;;;                                                                 } 32 DeclItem
5344
;;;                                                               } 31 List
5345
;;;                                                             } 30 TypeName
5346
;;;                                                           } 29 ParameterDeclaration
5347
;;;                                                           { 29 Expression (variable name)
5348
;;;                                                             expr_type = "identifier" (field_w)
5349 2 jsauermann
;--     load_rr_var field_w = -12(FP), SP at -31 (16 bit)
5350
        MOVE    19(SP), RR
5351 7 jsauermann
;;;                                                           } 29 Expression (variable name)
5352 2 jsauermann
;--     push_rr (16 bit)
5353
        MOVE    RR, -(SP)
5354 7 jsauermann
;;;                                                           { 29 Expr (l , r)
5355
;;;                                                             { 30 ParameterDeclaration
5356
;;;                                                               isEllipsis = false
5357
;;;                                                               { 31 TypeName
5358
;;;                                                                 { 32 TypeSpecifier (all)
5359
;;;                                                                   spec = const char (20100)
5360
;;;                                                                 } 32 TypeSpecifier (all)
5361
;;;                                                                 { 32 List
5362
;;;                                                                   { 33 DeclItem
5363
;;;                                                                     what = DECL_POINTER
5364
;;;                                                                     { 34 List
5365
;;;                                                                       { 35 Ptr
5366
;;;                                                                       } 35 Ptr
5367
;;;                                                                     } 34 List
5368
;;;                                                                   } 33 DeclItem
5369
;;;                                                                   { 33 DeclItem
5370
;;;                                                                     what = DECL_NAME
5371
;;;                                                                     name = alt
5372
;;;                                                                   } 33 DeclItem
5373
;;;                                                                 } 32 List
5374
;;;                                                               } 31 TypeName
5375
;;;                                                             } 30 ParameterDeclaration
5376
;;;                                                             { 30 StringExpression
5377 2 jsauermann
;--     load_rr_string
5378
        MOVE    #Cstr_23, RR
5379 7 jsauermann
;;;                                                             } 30 StringExpression
5380 2 jsauermann
;--     push_rr (16 bit)
5381
        MOVE    RR, -(SP)
5382 7 jsauermann
;;;                                                             { 30 Expr (l , r)
5383
;;;                                                               { 31 ParameterDeclaration
5384
;;;                                                                 isEllipsis = false
5385
;;;                                                                 { 32 TypeName
5386
;;;                                                                   { 33 TypeSpecifier (all)
5387
;;;                                                                     spec = char (20000)
5388
;;;                                                                   } 33 TypeSpecifier (all)
5389
;;;                                                                   { 33 List
5390
;;;                                                                     { 34 DeclItem
5391
;;;                                                                       what = DECL_NAME
5392
;;;                                                                       name = pad
5393
;;;                                                                     } 34 DeclItem
5394
;;;                                                                   } 33 List
5395
;;;                                                                 } 32 TypeName
5396
;;;                                                               } 31 ParameterDeclaration
5397
;;;                                                               { 31 Expression (variable name)
5398
;;;                                                                 expr_type = "identifier" (pad)
5399 2 jsauermann
;--     load_rr_var pad = -8(FP), SP at -35 (8 bit)
5400
        MOVE    27(SP), RS
5401 7 jsauermann
;;;                                                               } 31 Expression (variable name)
5402 2 jsauermann
;--     push_rr (8 bit)
5403
        MOVE    R, -(SP)
5404 7 jsauermann
;;;                                                               { 31 Expr (l , r)
5405
;;;                                                                 { 32 ParameterDeclaration
5406
;;;                                                                   isEllipsis = false
5407
;;;                                                                   { 33 TypeName
5408
;;;                                                                     { 34 TypeSpecifier (all)
5409
;;;                                                                       spec = char (20000)
5410
;;;                                                                     } 34 TypeSpecifier (all)
5411
;;;                                                                     { 34 List
5412
;;;                                                                       { 35 DeclItem
5413
;;;                                                                         what = DECL_NAME
5414
;;;                                                                         name = sign
5415
;;;                                                                       } 35 DeclItem
5416
;;;                                                                     } 34 List
5417
;;;                                                                   } 33 TypeName
5418
;;;                                                                 } 32 ParameterDeclaration
5419
;;;                                                                 { 32 Expression (variable name)
5420
;;;                                                                   expr_type = "identifier" (sign)
5421 2 jsauermann
;--     load_rr_var sign = -7(FP), SP at -36 (8 bit)
5422
        MOVE    29(SP), RS
5423 7 jsauermann
;;;                                                                 } 32 Expression (variable name)
5424 2 jsauermann
;--     push_rr (8 bit)
5425
        MOVE    R, -(SP)
5426 7 jsauermann
;;;                                                                 { 32 Expr (l , r)
5427
;;;                                                                   { 33 ParameterDeclaration
5428
;;;                                                                     isEllipsis = false
5429
;;;                                                                     { 34 TypeName
5430
;;;                                                                       { 35 TypeSpecifier (all)
5431
;;;                                                                         spec = char (20000)
5432
;;;                                                                       } 35 TypeSpecifier (all)
5433
;;;                                                                       { 35 List
5434
;;;                                                                         { 36 DeclItem
5435
;;;                                                                           what = DECL_NAME
5436
;;;                                                                           name = flags
5437
;;;                                                                         } 36 DeclItem
5438
;;;                                                                       } 35 List
5439
;;;                                                                     } 34 TypeName
5440
;;;                                                                   } 33 ParameterDeclaration
5441
;;;                                                                   { 33 Expression (variable name)
5442
;;;                                                                     expr_type = "identifier" (flags)
5443 2 jsauermann
;--     load_rr_var flags = -6(FP), SP at -37 (8 bit)
5444
        MOVE    31(SP), RS
5445 7 jsauermann
;;;                                                                   } 33 Expression (variable name)
5446 2 jsauermann
;--     push_rr (8 bit)
5447
        MOVE    R, -(SP)
5448 7 jsauermann
;;;                                                                   { 33 ParameterDeclaration
5449
;;;                                                                     isEllipsis = false
5450
;;;                                                                     { 34 TypeName
5451
;;;                                                                       { 35 TypeSpecifier (all)
5452
;;;                                                                         spec = const char (20100)
5453
;;;                                                                       } 35 TypeSpecifier (all)
5454
;;;                                                                       { 35 List
5455
;;;                                                                         { 36 DeclItem
5456
;;;                                                                           what = DECL_POINTER
5457
;;;                                                                           { 37 List
5458
;;;                                                                             { 38 Ptr
5459
;;;                                                                             } 38 Ptr
5460
;;;                                                                           } 37 List
5461
;;;                                                                         } 36 DeclItem
5462
;;;                                                                         { 36 DeclItem
5463
;;;                                                                           what = DECL_NAME
5464
;;;                                                                           name = buffer
5465
;;;                                                                         } 36 DeclItem
5466
;;;                                                                       } 35 List
5467
;;;                                                                     } 34 TypeName
5468
;;;                                                                   } 33 ParameterDeclaration
5469 2 jsauermann
;--     load_address buffer = -28(FP), SP at -38
5470
        LEA     10(SP), RR
5471
;--     push_rr (16 bit)
5472
        MOVE    RR, -(SP)
5473 7 jsauermann
;;;                                                                 } 32 Expr (l , r)
5474
;;;                                                               } 31 Expr (l , r)
5475
;;;                                                             } 30 Expr (l , r)
5476
;;;                                                           } 29 Expr (l , r)
5477
;;;                                                         } 28 Expr (l , r)
5478
;;;                                                       } 27 Expr (l , r)
5479
;;;                                                     } 26 Expr (l , r)
5480 2 jsauermann
;--     push 2 bytes
5481
;--     call
5482
        CALL    Cprint_item
5483
;--     pop 12 bytes
5484
        ADD     SP, #12
5485 7 jsauermann
;;;                                                   } 25 Expr l(r)
5486
;;;                                                   { 25 Expression (variable name)
5487
;;;                                                     expr_type = "identifier" (len)
5488 2 jsauermann
;--     load_ll_var len = -4(FP), SP at -28 (16 bit)
5489
        MOVE    24(SP), LL
5490 7 jsauermann
;;;                                                   } 25 Expression (variable name)
5491 2 jsauermann
;--     scale_rr *1
5492
;--     l + r
5493
        ADD     LL, RR
5494 7 jsauermann
;;;                                                 } 24 Expr l + r
5495 2 jsauermann
;--     store_rr_var len = -4(FP), SP at -28
5496
        MOVE    RR, 24(SP)
5497 7 jsauermann
;;;                                               } 23 Expr l += r
5498
;;;                                             } 22 ExpressionStatement
5499
;;;                                             { 22 break/continue Statement
5500 2 jsauermann
;--     branch
5501
        JMP     L12_brk_42
5502 7 jsauermann
;;;                                             } 22 break/continue Statement
5503
;;;                                             { 22 case Statement
5504 2 jsauermann
L12_case_42_0078:
5505 7 jsauermann
;;;                                               { 23 ExpressionStatement
5506
;;;                                                 { 24 Expr l(r)
5507
;;;                                                   { 25 TypeName
5508
;;;                                                     { 26 TypeSpecifier (all)
5509
;;;                                                       spec = void (10000)
5510
;;;                                                     } 26 TypeSpecifier (all)
5511
;;;                                                     { 26 List
5512
;;;                                                       { 27 DeclItem
5513
;;;                                                         what = DECL_NAME
5514
;;;                                                         name = print_hex
5515
;;;                                                       } 27 DeclItem
5516
;;;                                                     } 26 List
5517
;;;                                                   } 25 TypeName
5518
;;;                                                   { 25 Expr (l , r)
5519
;;;                                                     { 26 ParameterDeclaration
5520
;;;                                                       isEllipsis = false
5521
;;;                                                       { 27 TypeName
5522
;;;                                                         { 28 TypeSpecifier (all)
5523
;;;                                                           spec = const char (20100)
5524
;;;                                                         } 28 TypeSpecifier (all)
5525
;;;                                                         { 28 List
5526
;;;                                                           { 29 DeclItem
5527
;;;                                                             what = DECL_POINTER
5528
;;;                                                             { 30 List
5529
;;;                                                               { 31 Ptr
5530
;;;                                                               } 31 Ptr
5531
;;;                                                             } 30 List
5532
;;;                                                           } 29 DeclItem
5533
;;;                                                           { 29 DeclItem
5534
;;;                                                             what = DECL_NAME
5535
;;;                                                             name = hex
5536
;;;                                                           } 29 DeclItem
5537
;;;                                                         } 28 List
5538
;;;                                                       } 27 TypeName
5539
;;;                                                     } 26 ParameterDeclaration
5540
;;;                                                     { 26 StringExpression
5541 2 jsauermann
;--     load_rr_string
5542
        MOVE    #Cstr_24, RR
5543 7 jsauermann
;;;                                                     } 26 StringExpression
5544 2 jsauermann
;--     push_rr (16 bit)
5545
        MOVE    RR, -(SP)
5546 7 jsauermann
;;;                                                     { 26 Expr (l , r)
5547
;;;                                                       { 27 ParameterDeclaration
5548
;;;                                                         isEllipsis = false
5549
;;;                                                         { 28 TypeName
5550
;;;                                                           { 29 TypeSpecifier (all)
5551
;;;                                                             spec = unsigned int (82000)
5552
;;;                                                           } 29 TypeSpecifier (all)
5553
;;;                                                           { 29 List
5554
;;;                                                             { 30 DeclItem
5555
;;;                                                               what = DECL_NAME
5556
;;;                                                               name = value
5557
;;;                                                             } 30 DeclItem
5558
;;;                                                           } 29 List
5559
;;;                                                         } 28 TypeName
5560
;;;                                                       } 27 ParameterDeclaration
5561
;;;                                                       { 27 Expression (cast)r
5562
;;;                                                         { 28 Expr * r
5563
;;;                                                           { 29 Expr l - r
5564
;;;                                                             { 30 Expr ++r
5565
;;;                                                               { 31 Expression (variable name)
5566
;;;                                                                 expr_type = "identifier" (args)
5567 2 jsauermann
;--     load_rr_var args = -2(FP), SP at -30 (16 bit)
5568
        MOVE    28(SP), RR
5569 7 jsauermann
;;;                                                               } 31 Expression (variable name)
5570 2 jsauermann
;--     ++
5571
        ADD     RR, #0x0002
5572
;--     store_rr_var args = -2(FP), SP at -30
5573
        MOVE    RR, 28(SP)
5574 7 jsauermann
;;;                                                             } 30 Expr ++r
5575 2 jsauermann
;--     l - r
5576
        SUB     RR, #0x0002
5577 7 jsauermann
;;;                                                           } 29 Expr l - r
5578 2 jsauermann
;--     content
5579
        MOVE    (RR), RR
5580 7 jsauermann
;;;                                                         } 28 Expr * r
5581
;;;                                                       } 27 Expression (cast)r
5582 2 jsauermann
;--     push_rr (16 bit)
5583
        MOVE    RR, -(SP)
5584 7 jsauermann
;;;                                                       { 27 ParameterDeclaration
5585
;;;                                                         isEllipsis = false
5586
;;;                                                         { 28 TypeName
5587
;;;                                                           { 29 TypeSpecifier (all)
5588
;;;                                                             spec = char (20000)
5589
;;;                                                           } 29 TypeSpecifier (all)
5590
;;;                                                           { 29 List
5591
;;;                                                             { 30 DeclItem
5592
;;;                                                               what = DECL_POINTER
5593
;;;                                                               { 31 List
5594
;;;                                                                 { 32 Ptr
5595
;;;                                                                 } 32 Ptr
5596
;;;                                                               } 31 List
5597
;;;                                                             } 30 DeclItem
5598
;;;                                                             { 30 DeclItem
5599
;;;                                                               what = DECL_NAME
5600
;;;                                                               name = dest
5601
;;;                                                             } 30 DeclItem
5602
;;;                                                           } 29 List
5603
;;;                                                         } 28 TypeName
5604
;;;                                                       } 27 ParameterDeclaration
5605 2 jsauermann
;--     load_address buffer = -28(FP), SP at -32
5606
        LEA     4(SP), RR
5607
;--     push_rr (16 bit)
5608
        MOVE    RR, -(SP)
5609 7 jsauermann
;;;                                                     } 26 Expr (l , r)
5610
;;;                                                   } 25 Expr (l , r)
5611 2 jsauermann
;--     push 0 bytes
5612
;--     call
5613
        CALL    Cprint_hex
5614
;--     pop 6 bytes
5615
        ADD     SP, #6
5616 7 jsauermann
;;;                                                 } 24 Expr l(r)
5617
;;;                                               } 23 ExpressionStatement
5618
;;;                                             } 22 case Statement
5619
;;;                                             { 22 ExpressionStatement
5620
;;;                                               { 23 Expr l += r
5621
;;;                                                 { 24 TypeName
5622
;;;                                                   { 25 TypeSpecifier (all)
5623
;;;                                                     spec = int (80000)
5624
;;;                                                   } 25 TypeSpecifier (all)
5625
;;;                                                   { 25 List
5626
;;;                                                     { 26 DeclItem
5627
;;;                                                       what = DECL_NAME
5628
;;;                                                       name = len
5629
;;;                                                     } 26 DeclItem
5630
;;;                                                   } 25 List
5631
;;;                                                 } 24 TypeName
5632
;;;                                                 { 24 Expr l + r
5633
;;;                                                   { 25 Expr l(r)
5634
;;;                                                     { 26 TypeName
5635
;;;                                                       { 27 TypeSpecifier (all)
5636
;;;                                                         spec = int (80000)
5637
;;;                                                       } 27 TypeSpecifier (all)
5638
;;;                                                       { 27 List
5639
;;;                                                         { 28 DeclItem
5640
;;;                                                           what = DECL_NAME
5641
;;;                                                           name = print_item
5642
;;;                                                         } 28 DeclItem
5643
;;;                                                       } 27 List
5644
;;;                                                     } 26 TypeName
5645
;;;                                                     { 26 Expr (l , r)
5646
;;;                                                       { 27 ParameterDeclaration
5647
;;;                                                         isEllipsis = false
5648
;;;                                                         { 28 TypeName
5649
;;;                                                           { 29 TypeSpecifier (all)
5650
;;;                                                             spec = char (20000)
5651
;;;                                                           } 29 TypeSpecifier (all)
5652
;;;                                                           { 29 List
5653
;;;                                                             { 30 DeclItem
5654
;;;                                                               what = DECL_NAME
5655
;;;                                                               name = min_p
5656
;;;                                                             } 30 DeclItem
5657
;;;                                                           } 29 List
5658
;;;                                                         } 28 TypeName
5659
;;;                                                       } 27 ParameterDeclaration
5660
;;;                                                       { 27 NumericExpression (constant 48 = 0x30)
5661 2 jsauermann
;--     load_rr_constant
5662
        MOVE    #0x0030, RR
5663 7 jsauermann
;;;                                                       } 27 NumericExpression (constant 48 = 0x30)
5664 2 jsauermann
;--     push_rr (8 bit)
5665
        MOVE    R, -(SP)
5666 7 jsauermann
;;;                                                       { 27 Expr (l , r)
5667
;;;                                                         { 28 ParameterDeclaration
5668
;;;                                                           isEllipsis = false
5669
;;;                                                           { 29 TypeName
5670
;;;                                                             { 30 TypeSpecifier (all)
5671
;;;                                                               spec = int (80000)
5672
;;;                                                             } 30 TypeSpecifier (all)
5673
;;;                                                             { 30 List
5674
;;;                                                               { 31 DeclItem
5675
;;;                                                                 what = DECL_NAME
5676
;;;                                                                 name = min_w
5677
;;;                                                               } 31 DeclItem
5678
;;;                                                             } 30 List
5679
;;;                                                           } 29 TypeName
5680
;;;                                                         } 28 ParameterDeclaration
5681
;;;                                                         { 28 Expression (variable name)
5682
;;;                                                           expr_type = "identifier" (min_w)
5683 2 jsauermann
;--     load_rr_var min_w = -14(FP), SP at -29 (16 bit)
5684
        MOVE    15(SP), RR
5685 7 jsauermann
;;;                                                         } 28 Expression (variable name)
5686 2 jsauermann
;--     push_rr (16 bit)
5687
        MOVE    RR, -(SP)
5688 7 jsauermann
;;;                                                         { 28 Expr (l , r)
5689
;;;                                                           { 29 ParameterDeclaration
5690
;;;                                                             isEllipsis = false
5691
;;;                                                             { 30 TypeName
5692
;;;                                                               { 31 TypeSpecifier (all)
5693
;;;                                                                 spec = int (80000)
5694
;;;                                                               } 31 TypeSpecifier (all)
5695
;;;                                                               { 31 List
5696
;;;                                                                 { 32 DeclItem
5697
;;;                                                                   what = DECL_NAME
5698
;;;                                                                   name = field_w
5699
;;;                                                                 } 32 DeclItem
5700
;;;                                                               } 31 List
5701
;;;                                                             } 30 TypeName
5702
;;;                                                           } 29 ParameterDeclaration
5703
;;;                                                           { 29 Expression (variable name)
5704
;;;                                                             expr_type = "identifier" (field_w)
5705 2 jsauermann
;--     load_rr_var field_w = -12(FP), SP at -31 (16 bit)
5706
        MOVE    19(SP), RR
5707 7 jsauermann
;;;                                                           } 29 Expression (variable name)
5708 2 jsauermann
;--     push_rr (16 bit)
5709
        MOVE    RR, -(SP)
5710 7 jsauermann
;;;                                                           { 29 Expr (l , r)
5711
;;;                                                             { 30 ParameterDeclaration
5712
;;;                                                               isEllipsis = false
5713
;;;                                                               { 31 TypeName
5714
;;;                                                                 { 32 TypeSpecifier (all)
5715
;;;                                                                   spec = const char (20100)
5716
;;;                                                                 } 32 TypeSpecifier (all)
5717
;;;                                                                 { 32 List
5718
;;;                                                                   { 33 DeclItem
5719
;;;                                                                     what = DECL_POINTER
5720
;;;                                                                     { 34 List
5721
;;;                                                                       { 35 Ptr
5722
;;;                                                                       } 35 Ptr
5723
;;;                                                                     } 34 List
5724
;;;                                                                   } 33 DeclItem
5725
;;;                                                                   { 33 DeclItem
5726
;;;                                                                     what = DECL_NAME
5727
;;;                                                                     name = alt
5728
;;;                                                                   } 33 DeclItem
5729
;;;                                                                 } 32 List
5730
;;;                                                               } 31 TypeName
5731
;;;                                                             } 30 ParameterDeclaration
5732
;;;                                                             { 30 StringExpression
5733 2 jsauermann
;--     load_rr_string
5734
        MOVE    #Cstr_25, RR
5735 7 jsauermann
;;;                                                             } 30 StringExpression
5736 2 jsauermann
;--     push_rr (16 bit)
5737
        MOVE    RR, -(SP)
5738 7 jsauermann
;;;                                                             { 30 Expr (l , r)
5739
;;;                                                               { 31 ParameterDeclaration
5740
;;;                                                                 isEllipsis = false
5741
;;;                                                                 { 32 TypeName
5742
;;;                                                                   { 33 TypeSpecifier (all)
5743
;;;                                                                     spec = char (20000)
5744
;;;                                                                   } 33 TypeSpecifier (all)
5745
;;;                                                                   { 33 List
5746
;;;                                                                     { 34 DeclItem
5747
;;;                                                                       what = DECL_NAME
5748
;;;                                                                       name = pad
5749
;;;                                                                     } 34 DeclItem
5750
;;;                                                                   } 33 List
5751
;;;                                                                 } 32 TypeName
5752
;;;                                                               } 31 ParameterDeclaration
5753
;;;                                                               { 31 Expression (variable name)
5754
;;;                                                                 expr_type = "identifier" (pad)
5755 2 jsauermann
;--     load_rr_var pad = -8(FP), SP at -35 (8 bit)
5756
        MOVE    27(SP), RS
5757 7 jsauermann
;;;                                                               } 31 Expression (variable name)
5758 2 jsauermann
;--     push_rr (8 bit)
5759
        MOVE    R, -(SP)
5760 7 jsauermann
;;;                                                               { 31 Expr (l , r)
5761
;;;                                                                 { 32 ParameterDeclaration
5762
;;;                                                                   isEllipsis = false
5763
;;;                                                                   { 33 TypeName
5764
;;;                                                                     { 34 TypeSpecifier (all)
5765
;;;                                                                       spec = char (20000)
5766
;;;                                                                     } 34 TypeSpecifier (all)
5767
;;;                                                                     { 34 List
5768
;;;                                                                       { 35 DeclItem
5769
;;;                                                                         what = DECL_NAME
5770
;;;                                                                         name = sign
5771
;;;                                                                       } 35 DeclItem
5772
;;;                                                                     } 34 List
5773
;;;                                                                   } 33 TypeName
5774
;;;                                                                 } 32 ParameterDeclaration
5775
;;;                                                                 { 32 Expression (variable name)
5776
;;;                                                                   expr_type = "identifier" (sign)
5777 2 jsauermann
;--     load_rr_var sign = -7(FP), SP at -36 (8 bit)
5778
        MOVE    29(SP), RS
5779 7 jsauermann
;;;                                                                 } 32 Expression (variable name)
5780 2 jsauermann
;--     push_rr (8 bit)
5781
        MOVE    R, -(SP)
5782 7 jsauermann
;;;                                                                 { 32 Expr (l , r)
5783
;;;                                                                   { 33 ParameterDeclaration
5784
;;;                                                                     isEllipsis = false
5785
;;;                                                                     { 34 TypeName
5786
;;;                                                                       { 35 TypeSpecifier (all)
5787
;;;                                                                         spec = char (20000)
5788
;;;                                                                       } 35 TypeSpecifier (all)
5789
;;;                                                                       { 35 List
5790
;;;                                                                         { 36 DeclItem
5791
;;;                                                                           what = DECL_NAME
5792
;;;                                                                           name = flags
5793
;;;                                                                         } 36 DeclItem
5794
;;;                                                                       } 35 List
5795
;;;                                                                     } 34 TypeName
5796
;;;                                                                   } 33 ParameterDeclaration
5797
;;;                                                                   { 33 Expression (variable name)
5798
;;;                                                                     expr_type = "identifier" (flags)
5799 2 jsauermann
;--     load_rr_var flags = -6(FP), SP at -37 (8 bit)
5800
        MOVE    31(SP), RS
5801 7 jsauermann
;;;                                                                   } 33 Expression (variable name)
5802 2 jsauermann
;--     push_rr (8 bit)
5803
        MOVE    R, -(SP)
5804 7 jsauermann
;;;                                                                   { 33 ParameterDeclaration
5805
;;;                                                                     isEllipsis = false
5806
;;;                                                                     { 34 TypeName
5807
;;;                                                                       { 35 TypeSpecifier (all)
5808
;;;                                                                         spec = const char (20100)
5809
;;;                                                                       } 35 TypeSpecifier (all)
5810
;;;                                                                       { 35 List
5811
;;;                                                                         { 36 DeclItem
5812
;;;                                                                           what = DECL_POINTER
5813
;;;                                                                           { 37 List
5814
;;;                                                                             { 38 Ptr
5815
;;;                                                                             } 38 Ptr
5816
;;;                                                                           } 37 List
5817
;;;                                                                         } 36 DeclItem
5818
;;;                                                                         { 36 DeclItem
5819
;;;                                                                           what = DECL_NAME
5820
;;;                                                                           name = buffer
5821
;;;                                                                         } 36 DeclItem
5822
;;;                                                                       } 35 List
5823
;;;                                                                     } 34 TypeName
5824
;;;                                                                   } 33 ParameterDeclaration
5825 2 jsauermann
;--     load_address buffer = -28(FP), SP at -38
5826
        LEA     10(SP), RR
5827
;--     push_rr (16 bit)
5828
        MOVE    RR, -(SP)
5829 7 jsauermann
;;;                                                                 } 32 Expr (l , r)
5830
;;;                                                               } 31 Expr (l , r)
5831
;;;                                                             } 30 Expr (l , r)
5832
;;;                                                           } 29 Expr (l , r)
5833
;;;                                                         } 28 Expr (l , r)
5834
;;;                                                       } 27 Expr (l , r)
5835
;;;                                                     } 26 Expr (l , r)
5836 2 jsauermann
;--     push 2 bytes
5837
;--     call
5838
        CALL    Cprint_item
5839
;--     pop 12 bytes
5840
        ADD     SP, #12
5841 7 jsauermann
;;;                                                   } 25 Expr l(r)
5842
;;;                                                   { 25 Expression (variable name)
5843
;;;                                                     expr_type = "identifier" (len)
5844 2 jsauermann
;--     load_ll_var len = -4(FP), SP at -28 (16 bit)
5845
        MOVE    24(SP), LL
5846 7 jsauermann
;;;                                                   } 25 Expression (variable name)
5847 2 jsauermann
;--     scale_rr *1
5848
;--     l + r
5849
        ADD     LL, RR
5850 7 jsauermann
;;;                                                 } 24 Expr l + r
5851 2 jsauermann
;--     store_rr_var len = -4(FP), SP at -28
5852
        MOVE    RR, 24(SP)
5853 7 jsauermann
;;;                                               } 23 Expr l += r
5854
;;;                                             } 22 ExpressionStatement
5855
;;;                                             { 22 break/continue Statement
5856 2 jsauermann
;--     branch
5857
        JMP     L12_brk_42
5858 7 jsauermann
;;;                                             } 22 break/continue Statement
5859
;;;                                             { 22 case Statement
5860 2 jsauermann
L12_case_42_0063:
5861 7 jsauermann
;;;                                               { 23 ExpressionStatement
5862
;;;                                                 { 24 Expr l += r
5863
;;;                                                   { 25 TypeName
5864
;;;                                                     { 26 TypeSpecifier (all)
5865
;;;                                                       spec = int (80000)
5866
;;;                                                     } 26 TypeSpecifier (all)
5867
;;;                                                     { 26 List
5868
;;;                                                       { 27 DeclItem
5869
;;;                                                         what = DECL_NAME
5870
;;;                                                         name = len
5871
;;;                                                       } 27 DeclItem
5872
;;;                                                     } 26 List
5873
;;;                                                   } 25 TypeName
5874
;;;                                                   { 25 Expr l + r
5875
;;;                                                     { 26 Expr l(r)
5876
;;;                                                       { 27 TypeName
5877
;;;                                                         { 28 TypeSpecifier (all)
5878
;;;                                                           spec = int (80000)
5879
;;;                                                         } 28 TypeSpecifier (all)
5880
;;;                                                         { 28 List
5881
;;;                                                           { 29 DeclItem
5882
;;;                                                             what = DECL_NAME
5883
;;;                                                             name = putchr
5884
;;;                                                           } 29 DeclItem
5885
;;;                                                         } 28 List
5886
;;;                                                       } 27 TypeName
5887
;;;                                                       { 27 ParameterDeclaration
5888
;;;                                                         isEllipsis = false
5889
;;;                                                         { 28 TypeName
5890
;;;                                                           { 29 TypeSpecifier (all)
5891
;;;                                                             spec = char (20000)
5892
;;;                                                           } 29 TypeSpecifier (all)
5893
;;;                                                           { 29 List
5894
;;;                                                             { 30 DeclItem
5895
;;;                                                               what = DECL_NAME
5896
;;;                                                               name = c
5897
;;;                                                             } 30 DeclItem
5898
;;;                                                           } 29 List
5899
;;;                                                         } 28 TypeName
5900
;;;                                                       } 27 ParameterDeclaration
5901
;;;                                                       { 27 Expression (cast)r
5902
;;;                                                         { 28 Expr * r
5903
;;;                                                           { 29 Expr l - r
5904
;;;                                                             { 30 Expr ++r
5905
;;;                                                               { 31 Expression (variable name)
5906
;;;                                                                 expr_type = "identifier" (args)
5907 2 jsauermann
;--     load_rr_var args = -2(FP), SP at -28 (16 bit)
5908
        MOVE    26(SP), RR
5909 7 jsauermann
;;;                                                               } 31 Expression (variable name)
5910 2 jsauermann
;--     ++
5911
        ADD     RR, #0x0002
5912
;--     store_rr_var args = -2(FP), SP at -28
5913
        MOVE    RR, 26(SP)
5914 7 jsauermann
;;;                                                             } 30 Expr ++r
5915 2 jsauermann
;--     l - r
5916
        SUB     RR, #0x0002
5917 7 jsauermann
;;;                                                           } 29 Expr l - r
5918 2 jsauermann
;--     content
5919
        MOVE    (RR), RR
5920 7 jsauermann
;;;                                                         } 28 Expr * r
5921
;;;                                                       } 27 Expression (cast)r
5922 2 jsauermann
;--     push_rr (8 bit)
5923
        MOVE    R, -(SP)
5924
;--     push 2 bytes
5925
;--     call
5926
        CALL    Cputchr
5927
;--     pop 1 bytes
5928
        ADD     SP, #1
5929 7 jsauermann
;;;                                                     } 26 Expr l(r)
5930
;;;                                                     { 26 Expression (variable name)
5931
;;;                                                       expr_type = "identifier" (len)
5932 2 jsauermann
;--     load_ll_var len = -4(FP), SP at -28 (16 bit)
5933
        MOVE    24(SP), LL
5934 7 jsauermann
;;;                                                     } 26 Expression (variable name)
5935 2 jsauermann
;--     scale_rr *1
5936
;--     l + r
5937
        ADD     LL, RR
5938 7 jsauermann
;;;                                                   } 25 Expr l + r
5939 2 jsauermann
;--     store_rr_var len = -4(FP), SP at -28
5940
        MOVE    RR, 24(SP)
5941 7 jsauermann
;;;                                                 } 24 Expr l += r
5942
;;;                                               } 23 ExpressionStatement
5943
;;;                                             } 22 case Statement
5944
;;;                                             { 22 break/continue Statement
5945 2 jsauermann
;--     branch
5946
        JMP     L12_brk_42
5947 7 jsauermann
;;;                                             } 22 break/continue Statement
5948
;;;                                             { 22 case Statement
5949 2 jsauermann
L12_case_42_0023:
5950 7 jsauermann
;;;                                               { 23 ExpressionStatement
5951
;;;                                                 { 24 Expr l | r
5952
;;;                                                   { 25 TypeName
5953
;;;                                                     { 26 TypeSpecifier (all)
5954
;;;                                                       spec = char (20000)
5955
;;;                                                     } 26 TypeSpecifier (all)
5956
;;;                                                     { 26 List
5957
;;;                                                       { 27 DeclItem
5958
;;;                                                         what = DECL_NAME
5959
;;;                                                         name = flags
5960
;;;                                                       } 27 DeclItem
5961
;;;                                                     } 26 List
5962
;;;                                                   } 25 TypeName
5963
;;;                                                   { 25 Expr l | r
5964
;;;                                                     { 26 TypeName (internal)
5965
;;;                                                       { 27 TypeSpecifier (all)
5966
;;;                                                         spec = int (80000)
5967
;;;                                                       } 27 TypeSpecifier (all)
5968
;;;                                                     } 26 TypeName (internal)
5969
;;;                                                     { 26 Expression (variable name)
5970
;;;                                                       expr_type = "identifier" (flags)
5971 2 jsauermann
;--     load_rr_var flags = -6(FP), SP at -28 (8 bit)
5972
        MOVE    22(SP), RS
5973 7 jsauermann
;;;                                                     } 26 Expression (variable name)
5974 2 jsauermann
;--     l | r
5975
        OR      RR, #0x0001
5976 7 jsauermann
;;;                                                   } 25 Expr l | r
5977 2 jsauermann
;--     store_rr_var flags = -6(FP), SP at -28
5978
        MOVE    R, 22(SP)
5979 7 jsauermann
;;;                                                 } 24 Expr l | r
5980
;;;                                               } 23 ExpressionStatement
5981
;;;                                             } 22 case Statement
5982
;;;                                             { 22 break/continue Statement
5983 2 jsauermann
;--     branch
5984
        JMP     L12_cont_40
5985 7 jsauermann
;;;                                             } 22 break/continue Statement
5986
;;;                                             { 22 case Statement
5987 2 jsauermann
L12_case_42_002D:
5988 7 jsauermann
;;;                                               { 23 ExpressionStatement
5989
;;;                                                 { 24 Expr l | r
5990
;;;                                                   { 25 TypeName
5991
;;;                                                     { 26 TypeSpecifier (all)
5992
;;;                                                       spec = char (20000)
5993
;;;                                                     } 26 TypeSpecifier (all)
5994
;;;                                                     { 26 List
5995
;;;                                                       { 27 DeclItem
5996
;;;                                                         what = DECL_NAME
5997
;;;                                                         name = flags
5998
;;;                                                       } 27 DeclItem
5999
;;;                                                     } 26 List
6000
;;;                                                   } 25 TypeName
6001
;;;                                                   { 25 Expr l | r
6002
;;;                                                     { 26 TypeName (internal)
6003
;;;                                                       { 27 TypeSpecifier (all)
6004
;;;                                                         spec = int (80000)
6005
;;;                                                       } 27 TypeSpecifier (all)
6006
;;;                                                     } 26 TypeName (internal)
6007
;;;                                                     { 26 Expression (variable name)
6008
;;;                                                       expr_type = "identifier" (flags)
6009 2 jsauermann
;--     load_rr_var flags = -6(FP), SP at -28 (8 bit)
6010
        MOVE    22(SP), RS
6011 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6012 2 jsauermann
;--     l | r
6013
        OR      RR, #0x0002
6014 7 jsauermann
;;;                                                   } 25 Expr l | r
6015 2 jsauermann
;--     store_rr_var flags = -6(FP), SP at -28
6016
        MOVE    R, 22(SP)
6017 7 jsauermann
;;;                                                 } 24 Expr l | r
6018
;;;                                               } 23 ExpressionStatement
6019
;;;                                             } 22 case Statement
6020
;;;                                             { 22 break/continue Statement
6021 2 jsauermann
;--     branch
6022
        JMP     L12_cont_40
6023 7 jsauermann
;;;                                             } 22 break/continue Statement
6024
;;;                                             { 22 case Statement
6025 2 jsauermann
L12_case_42_0020:
6026 7 jsauermann
;;;                                               { 23 IfElseStatement
6027
;;;                                                 { 24 Expr ! r
6028
;;;                                                   { 25 Expression (variable name)
6029
;;;                                                     expr_type = "identifier" (sign)
6030 2 jsauermann
;--     load_rr_var sign = -7(FP), SP at -28 (8 bit)
6031
        MOVE    21(SP), RS
6032 7 jsauermann
;;;                                                   } 25 Expression (variable name)
6033 2 jsauermann
;--     16 bit ! r
6034
        LNOT    RR
6035 7 jsauermann
;;;                                                 } 24 Expr ! r
6036 2 jsauermann
;--     branch_false
6037
        JMP     RRZ, L12_endif_44
6038 7 jsauermann
;;;                                                 { 24 ExpressionStatement
6039
;;;                                                   { 25 Expr l = r
6040
;;;                                                     { 26 TypeName
6041
;;;                                                       { 27 TypeSpecifier (all)
6042
;;;                                                         spec = char (20000)
6043
;;;                                                       } 27 TypeSpecifier (all)
6044
;;;                                                       { 27 List
6045
;;;                                                         { 28 DeclItem
6046
;;;                                                           what = DECL_NAME
6047
;;;                                                           name = sign
6048
;;;                                                         } 28 DeclItem
6049
;;;                                                       } 27 List
6050
;;;                                                     } 26 TypeName
6051
;;;                                                     { 26 NumericExpression (constant 32 = 0x20)
6052 2 jsauermann
;--     load_rr_constant
6053
        MOVE    #0x0020, RR
6054 7 jsauermann
;;;                                                     } 26 NumericExpression (constant 32 = 0x20)
6055 2 jsauermann
;--     store_rr_var sign = -7(FP), SP at -28
6056
        MOVE    R, 21(SP)
6057 7 jsauermann
;;;                                                   } 25 Expr l = r
6058
;;;                                                 } 24 ExpressionStatement
6059 2 jsauermann
L12_endif_44:
6060 7 jsauermann
;;;                                               } 23 IfElseStatement
6061
;;;                                             } 22 case Statement
6062
;;;                                             { 22 break/continue Statement
6063 2 jsauermann
;--     branch
6064
        JMP     L12_cont_40
6065 7 jsauermann
;;;                                             } 22 break/continue Statement
6066
;;;                                             { 22 case Statement
6067 2 jsauermann
L12_case_42_002B:
6068 7 jsauermann
;;;                                               { 23 ExpressionStatement
6069
;;;                                                 { 24 Expr l = r
6070
;;;                                                   { 25 TypeName
6071
;;;                                                     { 26 TypeSpecifier (all)
6072
;;;                                                       spec = char (20000)
6073
;;;                                                     } 26 TypeSpecifier (all)
6074
;;;                                                     { 26 List
6075
;;;                                                       { 27 DeclItem
6076
;;;                                                         what = DECL_NAME
6077
;;;                                                         name = sign
6078
;;;                                                       } 27 DeclItem
6079
;;;                                                     } 26 List
6080
;;;                                                   } 25 TypeName
6081
;;;                                                   { 25 NumericExpression (constant 43 = 0x2B)
6082 2 jsauermann
;--     load_rr_constant
6083
        MOVE    #0x002B, RR
6084 7 jsauermann
;;;                                                   } 25 NumericExpression (constant 43 = 0x2B)
6085 2 jsauermann
;--     store_rr_var sign = -7(FP), SP at -28
6086
        MOVE    R, 21(SP)
6087 7 jsauermann
;;;                                                 } 24 Expr l = r
6088
;;;                                               } 23 ExpressionStatement
6089
;;;                                             } 22 case Statement
6090
;;;                                             { 22 break/continue Statement
6091 2 jsauermann
;--     branch
6092
        JMP     L12_cont_40
6093 7 jsauermann
;;;                                             } 22 break/continue Statement
6094
;;;                                             { 22 case Statement
6095 2 jsauermann
L12_case_42_002E:
6096 7 jsauermann
;;;                                               { 23 ExpressionStatement
6097
;;;                                                 { 24 Expr l = r
6098
;;;                                                   { 25 TypeName
6099
;;;                                                     { 26 TypeSpecifier (all)
6100
;;;                                                       spec = unsigned int (82000)
6101
;;;                                                     } 26 TypeSpecifier (all)
6102
;;;                                                     { 26 List
6103
;;;                                                       { 27 DeclItem
6104
;;;                                                         what = DECL_POINTER
6105
;;;                                                         { 28 List
6106
;;;                                                           { 29 Ptr
6107
;;;                                                           } 29 Ptr
6108
;;;                                                         } 28 List
6109
;;;                                                       } 27 DeclItem
6110
;;;                                                       { 27 DeclItem
6111
;;;                                                         what = DECL_NAME
6112
;;;                                                         name = which_w
6113
;;;                                                       } 27 DeclItem
6114
;;;                                                     } 26 List
6115
;;;                                                   } 25 TypeName
6116
;;;                                                   { 25 Expr & r
6117 2 jsauermann
;--     load_address min_w = -14(FP), SP at -28
6118
        LEA     14(SP), RR
6119 7 jsauermann
;;;                                                   } 25 Expr & r
6120 2 jsauermann
;--     store_rr_var which_w = -16(FP), SP at -28
6121
        MOVE    RR, 12(SP)
6122 7 jsauermann
;;;                                                 } 24 Expr l = r
6123
;;;                                               } 23 ExpressionStatement
6124
;;;                                             } 22 case Statement
6125
;;;                                             { 22 break/continue Statement
6126 2 jsauermann
;--     branch
6127
        JMP     L12_cont_40
6128 7 jsauermann
;;;                                             } 22 break/continue Statement
6129
;;;                                             { 22 case Statement
6130 2 jsauermann
L12_case_42_0030:
6131 7 jsauermann
;;;                                               { 23 IfElseStatement
6132
;;;                                                 { 24 Expr * r
6133
;;;                                                   { 25 Expression (variable name)
6134
;;;                                                     expr_type = "identifier" (which_w)
6135 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6136
        MOVE    12(SP), RR
6137 7 jsauermann
;;;                                                   } 25 Expression (variable name)
6138 2 jsauermann
;--     content
6139
        MOVE    (RR), RR
6140 7 jsauermann
;;;                                                 } 24 Expr * r
6141 2 jsauermann
;--     branch_false
6142
        JMP     RRZ, L12_else_45
6143 7 jsauermann
;;;                                                 { 24 ExpressionStatement
6144
;;;                                                   { 25 Expr l *- r
6145
;;;                                                     { 26 TypeName
6146
;;;                                                       { 27 TypeSpecifier (all)
6147
;;;                                                         spec = unsigned int (82000)
6148
;;;                                                       } 27 TypeSpecifier (all)
6149
;;;                                                       { 27 List
6150
;;;                                                         { 28 DeclItem
6151
;;;                                                           what = DECL_NAME
6152
;;;                                                           name = which_w
6153
;;;                                                         } 28 DeclItem
6154
;;;                                                       } 27 List
6155
;;;                                                     } 26 TypeName
6156
;;;                                                     { 26 Expr l * r
6157
;;;                                                       { 27 TypeName (internal)
6158
;;;                                                         { 28 TypeSpecifier (all)
6159
;;;                                                           spec = unsigned int (82000)
6160
;;;                                                         } 28 TypeSpecifier (all)
6161
;;;                                                       } 27 TypeName (internal)
6162
;;;                                                       { 27 Expr * r
6163
;;;                                                         { 28 Expression (variable name)
6164
;;;                                                           expr_type = "identifier" (which_w)
6165 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6166
        MOVE    12(SP), RR
6167 7 jsauermann
;;;                                                         } 28 Expression (variable name)
6168 2 jsauermann
;--     content
6169
        MOVE    (RR), RR
6170 7 jsauermann
;;;                                                       } 27 Expr * r
6171 2 jsauermann
;--     l * r
6172
        MOVE    RR, LL
6173
        MOVE    #0x000A, RR
6174
;--     l * r
6175
        DI
6176
        MUL_IU
6177
        CALL    mult_div
6178
        MD_FIN
6179
        EI
6180 7 jsauermann
;;;                                                     } 26 Expr l * r
6181 2 jsauermann
;--     push_rr (16 bit)
6182
        MOVE    RR, -(SP)
6183 7 jsauermann
;;;                                                     { 26 Expr * r
6184
;;;                                                       { 27 Expression (variable name)
6185
;;;                                                         expr_type = "identifier" (which_w)
6186 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6187
        MOVE    14(SP), RR
6188 7 jsauermann
;;;                                                       } 27 Expression (variable name)
6189
;;;                                                     } 26 Expr * r
6190 2 jsauermann
;--     move_rr_to_ll
6191
        MOVE    RR, LL
6192
;--     pop_rr (16 bit)
6193
        MOVE    (SP)+, RR
6194
;--     assign (16 bit)
6195
        MOVE    RR, (LL)
6196 7 jsauermann
;;;                                                   } 25 Expr l *- r
6197
;;;                                                 } 24 ExpressionStatement
6198 2 jsauermann
;--     branch
6199
        JMP     L12_endif_45
6200
L12_else_45:
6201 7 jsauermann
;;;                                                 { 24 ExpressionStatement
6202
;;;                                                   { 25 Expr l = r
6203
;;;                                                     { 26 TypeName
6204
;;;                                                       { 27 TypeSpecifier (all)
6205
;;;                                                         spec = char (20000)
6206
;;;                                                       } 27 TypeSpecifier (all)
6207
;;;                                                       { 27 List
6208
;;;                                                         { 28 DeclItem
6209
;;;                                                           what = DECL_NAME
6210
;;;                                                           name = pad
6211
;;;                                                         } 28 DeclItem
6212
;;;                                                       } 27 List
6213
;;;                                                     } 26 TypeName
6214
;;;                                                     { 26 NumericExpression (constant 48 = 0x30)
6215 2 jsauermann
;--     load_rr_constant
6216
        MOVE    #0x0030, RR
6217 7 jsauermann
;;;                                                     } 26 NumericExpression (constant 48 = 0x30)
6218 2 jsauermann
;--     store_rr_var pad = -8(FP), SP at -28
6219
        MOVE    R, 20(SP)
6220 7 jsauermann
;;;                                                   } 25 Expr l = r
6221
;;;                                                 } 24 ExpressionStatement
6222 2 jsauermann
L12_endif_45:
6223 7 jsauermann
;;;                                               } 23 IfElseStatement
6224
;;;                                             } 22 case Statement
6225
;;;                                             { 22 break/continue Statement
6226 2 jsauermann
;--     branch
6227
        JMP     L12_cont_40
6228 7 jsauermann
;;;                                             } 22 break/continue Statement
6229
;;;                                             { 22 case Statement
6230 2 jsauermann
L12_case_42_0031:
6231 7 jsauermann
;;;                                               { 23 ExpressionStatement
6232
;;;                                                 { 24 Expr l = r
6233
;;;                                                   { 25 TypeName
6234
;;;                                                     { 26 TypeSpecifier (all)
6235
;;;                                                       spec = unsigned int (82000)
6236
;;;                                                     } 26 TypeSpecifier (all)
6237
;;;                                                     { 26 List
6238
;;;                                                       { 27 DeclItem
6239
;;;                                                         what = DECL_NAME
6240
;;;                                                         name = which_w
6241
;;;                                                       } 27 DeclItem
6242
;;;                                                     } 26 List
6243
;;;                                                   } 25 TypeName
6244
;;;                                                   { 25 Expr l + r
6245
;;;                                                     { 26 Expr l * r
6246
;;;                                                       { 27 TypeName (internal)
6247
;;;                                                         { 28 TypeSpecifier (all)
6248
;;;                                                           spec = unsigned int (82000)
6249
;;;                                                         } 28 TypeSpecifier (all)
6250
;;;                                                       } 27 TypeName (internal)
6251
;;;                                                       { 27 Expr * r
6252
;;;                                                         { 28 Expression (variable name)
6253
;;;                                                           expr_type = "identifier" (which_w)
6254 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6255
        MOVE    12(SP), RR
6256 7 jsauermann
;;;                                                         } 28 Expression (variable name)
6257 2 jsauermann
;--     content
6258
        MOVE    (RR), RR
6259 7 jsauermann
;;;                                                       } 27 Expr * r
6260 2 jsauermann
;--     l * r
6261
        MOVE    RR, LL
6262
        MOVE    #0x000A, RR
6263
;--     l * r
6264
        DI
6265
        MUL_IU
6266
        CALL    mult_div
6267
        MD_FIN
6268
        EI
6269 7 jsauermann
;;;                                                     } 26 Expr l * r
6270 2 jsauermann
;--     l + r
6271
        ADD     RR, #0x0001
6272 7 jsauermann
;;;                                                   } 25 Expr l + r
6273 2 jsauermann
;--     push_rr (16 bit)
6274
        MOVE    RR, -(SP)
6275 7 jsauermann
;;;                                                   { 25 Expr * r
6276
;;;                                                     { 26 Expression (variable name)
6277
;;;                                                       expr_type = "identifier" (which_w)
6278 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6279
        MOVE    14(SP), RR
6280 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6281
;;;                                                   } 25 Expr * r
6282 2 jsauermann
;--     move_rr_to_ll
6283
        MOVE    RR, LL
6284
;--     pop_rr (16 bit)
6285
        MOVE    (SP)+, RR
6286
;--     assign (16 bit)
6287
        MOVE    RR, (LL)
6288 7 jsauermann
;;;                                                 } 24 Expr l = r
6289
;;;                                               } 23 ExpressionStatement
6290
;;;                                             } 22 case Statement
6291
;;;                                             { 22 break/continue Statement
6292 2 jsauermann
;--     branch
6293
        JMP     L12_cont_40
6294 7 jsauermann
;;;                                             } 22 break/continue Statement
6295
;;;                                             { 22 case Statement
6296 2 jsauermann
L12_case_42_0032:
6297 7 jsauermann
;;;                                               { 23 ExpressionStatement
6298
;;;                                                 { 24 Expr l = r
6299
;;;                                                   { 25 TypeName
6300
;;;                                                     { 26 TypeSpecifier (all)
6301
;;;                                                       spec = unsigned int (82000)
6302
;;;                                                     } 26 TypeSpecifier (all)
6303
;;;                                                     { 26 List
6304
;;;                                                       { 27 DeclItem
6305
;;;                                                         what = DECL_NAME
6306
;;;                                                         name = which_w
6307
;;;                                                       } 27 DeclItem
6308
;;;                                                     } 26 List
6309
;;;                                                   } 25 TypeName
6310
;;;                                                   { 25 Expr l + r
6311
;;;                                                     { 26 Expr l * r
6312
;;;                                                       { 27 TypeName (internal)
6313
;;;                                                         { 28 TypeSpecifier (all)
6314
;;;                                                           spec = unsigned int (82000)
6315
;;;                                                         } 28 TypeSpecifier (all)
6316
;;;                                                       } 27 TypeName (internal)
6317
;;;                                                       { 27 Expr * r
6318
;;;                                                         { 28 Expression (variable name)
6319
;;;                                                           expr_type = "identifier" (which_w)
6320 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6321
        MOVE    12(SP), RR
6322 7 jsauermann
;;;                                                         } 28 Expression (variable name)
6323 2 jsauermann
;--     content
6324
        MOVE    (RR), RR
6325 7 jsauermann
;;;                                                       } 27 Expr * r
6326 2 jsauermann
;--     l * r
6327
        MOVE    RR, LL
6328
        MOVE    #0x000A, RR
6329
;--     l * r
6330
        DI
6331
        MUL_IU
6332
        CALL    mult_div
6333
        MD_FIN
6334
        EI
6335 7 jsauermann
;;;                                                     } 26 Expr l * r
6336 2 jsauermann
;--     l + r
6337
        ADD     RR, #0x0002
6338 7 jsauermann
;;;                                                   } 25 Expr l + r
6339 2 jsauermann
;--     push_rr (16 bit)
6340
        MOVE    RR, -(SP)
6341 7 jsauermann
;;;                                                   { 25 Expr * r
6342
;;;                                                     { 26 Expression (variable name)
6343
;;;                                                       expr_type = "identifier" (which_w)
6344 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6345
        MOVE    14(SP), RR
6346 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6347
;;;                                                   } 25 Expr * r
6348 2 jsauermann
;--     move_rr_to_ll
6349
        MOVE    RR, LL
6350
;--     pop_rr (16 bit)
6351
        MOVE    (SP)+, RR
6352
;--     assign (16 bit)
6353
        MOVE    RR, (LL)
6354 7 jsauermann
;;;                                                 } 24 Expr l = r
6355
;;;                                               } 23 ExpressionStatement
6356
;;;                                             } 22 case Statement
6357
;;;                                             { 22 break/continue Statement
6358 2 jsauermann
;--     branch
6359
        JMP     L12_cont_40
6360 7 jsauermann
;;;                                             } 22 break/continue Statement
6361
;;;                                             { 22 case Statement
6362 2 jsauermann
L12_case_42_0033:
6363 7 jsauermann
;;;                                               { 23 ExpressionStatement
6364
;;;                                                 { 24 Expr l = r
6365
;;;                                                   { 25 TypeName
6366
;;;                                                     { 26 TypeSpecifier (all)
6367
;;;                                                       spec = unsigned int (82000)
6368
;;;                                                     } 26 TypeSpecifier (all)
6369
;;;                                                     { 26 List
6370
;;;                                                       { 27 DeclItem
6371
;;;                                                         what = DECL_NAME
6372
;;;                                                         name = which_w
6373
;;;                                                       } 27 DeclItem
6374
;;;                                                     } 26 List
6375
;;;                                                   } 25 TypeName
6376
;;;                                                   { 25 Expr l + r
6377
;;;                                                     { 26 Expr l * r
6378
;;;                                                       { 27 TypeName (internal)
6379
;;;                                                         { 28 TypeSpecifier (all)
6380
;;;                                                           spec = unsigned int (82000)
6381
;;;                                                         } 28 TypeSpecifier (all)
6382
;;;                                                       } 27 TypeName (internal)
6383
;;;                                                       { 27 Expr * r
6384
;;;                                                         { 28 Expression (variable name)
6385
;;;                                                           expr_type = "identifier" (which_w)
6386 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6387
        MOVE    12(SP), RR
6388 7 jsauermann
;;;                                                         } 28 Expression (variable name)
6389 2 jsauermann
;--     content
6390
        MOVE    (RR), RR
6391 7 jsauermann
;;;                                                       } 27 Expr * r
6392 2 jsauermann
;--     l * r
6393
        MOVE    RR, LL
6394
        MOVE    #0x000A, RR
6395
;--     l * r
6396
        DI
6397
        MUL_IU
6398
        CALL    mult_div
6399
        MD_FIN
6400
        EI
6401 7 jsauermann
;;;                                                     } 26 Expr l * r
6402 2 jsauermann
;--     l + r
6403
        ADD     RR, #0x0003
6404 7 jsauermann
;;;                                                   } 25 Expr l + r
6405 2 jsauermann
;--     push_rr (16 bit)
6406
        MOVE    RR, -(SP)
6407 7 jsauermann
;;;                                                   { 25 Expr * r
6408
;;;                                                     { 26 Expression (variable name)
6409
;;;                                                       expr_type = "identifier" (which_w)
6410 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6411
        MOVE    14(SP), RR
6412 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6413
;;;                                                   } 25 Expr * r
6414 2 jsauermann
;--     move_rr_to_ll
6415
        MOVE    RR, LL
6416
;--     pop_rr (16 bit)
6417
        MOVE    (SP)+, RR
6418
;--     assign (16 bit)
6419
        MOVE    RR, (LL)
6420 7 jsauermann
;;;                                                 } 24 Expr l = r
6421
;;;                                               } 23 ExpressionStatement
6422
;;;                                             } 22 case Statement
6423
;;;                                             { 22 break/continue Statement
6424 2 jsauermann
;--     branch
6425
        JMP     L12_cont_40
6426 7 jsauermann
;;;                                             } 22 break/continue Statement
6427
;;;                                             { 22 case Statement
6428 2 jsauermann
L12_case_42_0034:
6429 7 jsauermann
;;;                                               { 23 ExpressionStatement
6430
;;;                                                 { 24 Expr l = r
6431
;;;                                                   { 25 TypeName
6432
;;;                                                     { 26 TypeSpecifier (all)
6433
;;;                                                       spec = unsigned int (82000)
6434
;;;                                                     } 26 TypeSpecifier (all)
6435
;;;                                                     { 26 List
6436
;;;                                                       { 27 DeclItem
6437
;;;                                                         what = DECL_NAME
6438
;;;                                                         name = which_w
6439
;;;                                                       } 27 DeclItem
6440
;;;                                                     } 26 List
6441
;;;                                                   } 25 TypeName
6442
;;;                                                   { 25 Expr l + r
6443
;;;                                                     { 26 Expr l * r
6444
;;;                                                       { 27 TypeName (internal)
6445
;;;                                                         { 28 TypeSpecifier (all)
6446
;;;                                                           spec = unsigned int (82000)
6447
;;;                                                         } 28 TypeSpecifier (all)
6448
;;;                                                       } 27 TypeName (internal)
6449
;;;                                                       { 27 Expr * r
6450
;;;                                                         { 28 Expression (variable name)
6451
;;;                                                           expr_type = "identifier" (which_w)
6452 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6453
        MOVE    12(SP), RR
6454 7 jsauermann
;;;                                                         } 28 Expression (variable name)
6455 2 jsauermann
;--     content
6456
        MOVE    (RR), RR
6457 7 jsauermann
;;;                                                       } 27 Expr * r
6458 2 jsauermann
;--     l * r
6459
        MOVE    RR, LL
6460
        MOVE    #0x000A, RR
6461
;--     l * r
6462
        DI
6463
        MUL_IU
6464
        CALL    mult_div
6465
        MD_FIN
6466
        EI
6467 7 jsauermann
;;;                                                     } 26 Expr l * r
6468 2 jsauermann
;--     l + r
6469
        ADD     RR, #0x0004
6470 7 jsauermann
;;;                                                   } 25 Expr l + r
6471 2 jsauermann
;--     push_rr (16 bit)
6472
        MOVE    RR, -(SP)
6473 7 jsauermann
;;;                                                   { 25 Expr * r
6474
;;;                                                     { 26 Expression (variable name)
6475
;;;                                                       expr_type = "identifier" (which_w)
6476 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6477
        MOVE    14(SP), RR
6478 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6479
;;;                                                   } 25 Expr * r
6480 2 jsauermann
;--     move_rr_to_ll
6481
        MOVE    RR, LL
6482
;--     pop_rr (16 bit)
6483
        MOVE    (SP)+, RR
6484
;--     assign (16 bit)
6485
        MOVE    RR, (LL)
6486 7 jsauermann
;;;                                                 } 24 Expr l = r
6487
;;;                                               } 23 ExpressionStatement
6488
;;;                                             } 22 case Statement
6489
;;;                                             { 22 break/continue Statement
6490 2 jsauermann
;--     branch
6491
        JMP     L12_cont_40
6492 7 jsauermann
;;;                                             } 22 break/continue Statement
6493
;;;                                             { 22 case Statement
6494 2 jsauermann
L12_case_42_0035:
6495 7 jsauermann
;;;                                               { 23 ExpressionStatement
6496
;;;                                                 { 24 Expr l = r
6497
;;;                                                   { 25 TypeName
6498
;;;                                                     { 26 TypeSpecifier (all)
6499
;;;                                                       spec = unsigned int (82000)
6500
;;;                                                     } 26 TypeSpecifier (all)
6501
;;;                                                     { 26 List
6502
;;;                                                       { 27 DeclItem
6503
;;;                                                         what = DECL_NAME
6504
;;;                                                         name = which_w
6505
;;;                                                       } 27 DeclItem
6506
;;;                                                     } 26 List
6507
;;;                                                   } 25 TypeName
6508
;;;                                                   { 25 Expr l + r
6509
;;;                                                     { 26 Expr l * r
6510
;;;                                                       { 27 TypeName (internal)
6511
;;;                                                         { 28 TypeSpecifier (all)
6512
;;;                                                           spec = unsigned int (82000)
6513
;;;                                                         } 28 TypeSpecifier (all)
6514
;;;                                                       } 27 TypeName (internal)
6515
;;;                                                       { 27 Expr * r
6516
;;;                                                         { 28 Expression (variable name)
6517
;;;                                                           expr_type = "identifier" (which_w)
6518 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6519
        MOVE    12(SP), RR
6520 7 jsauermann
;;;                                                         } 28 Expression (variable name)
6521 2 jsauermann
;--     content
6522
        MOVE    (RR), RR
6523 7 jsauermann
;;;                                                       } 27 Expr * r
6524 2 jsauermann
;--     l * r
6525
        MOVE    RR, LL
6526
        MOVE    #0x000A, RR
6527
;--     l * r
6528
        DI
6529
        MUL_IU
6530
        CALL    mult_div
6531
        MD_FIN
6532
        EI
6533 7 jsauermann
;;;                                                     } 26 Expr l * r
6534 2 jsauermann
;--     l + r
6535
        ADD     RR, #0x0005
6536 7 jsauermann
;;;                                                   } 25 Expr l + r
6537 2 jsauermann
;--     push_rr (16 bit)
6538
        MOVE    RR, -(SP)
6539 7 jsauermann
;;;                                                   { 25 Expr * r
6540
;;;                                                     { 26 Expression (variable name)
6541
;;;                                                       expr_type = "identifier" (which_w)
6542 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6543
        MOVE    14(SP), RR
6544 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6545
;;;                                                   } 25 Expr * r
6546 2 jsauermann
;--     move_rr_to_ll
6547
        MOVE    RR, LL
6548
;--     pop_rr (16 bit)
6549
        MOVE    (SP)+, RR
6550
;--     assign (16 bit)
6551
        MOVE    RR, (LL)
6552 7 jsauermann
;;;                                                 } 24 Expr l = r
6553
;;;                                               } 23 ExpressionStatement
6554
;;;                                             } 22 case Statement
6555
;;;                                             { 22 break/continue Statement
6556 2 jsauermann
;--     branch
6557
        JMP     L12_cont_40
6558 7 jsauermann
;;;                                             } 22 break/continue Statement
6559
;;;                                             { 22 case Statement
6560 2 jsauermann
L12_case_42_0036:
6561 7 jsauermann
;;;                                               { 23 ExpressionStatement
6562
;;;                                                 { 24 Expr l = r
6563
;;;                                                   { 25 TypeName
6564
;;;                                                     { 26 TypeSpecifier (all)
6565
;;;                                                       spec = unsigned int (82000)
6566
;;;                                                     } 26 TypeSpecifier (all)
6567
;;;                                                     { 26 List
6568
;;;                                                       { 27 DeclItem
6569
;;;                                                         what = DECL_NAME
6570
;;;                                                         name = which_w
6571
;;;                                                       } 27 DeclItem
6572
;;;                                                     } 26 List
6573
;;;                                                   } 25 TypeName
6574
;;;                                                   { 25 Expr l + r
6575
;;;                                                     { 26 Expr l * r
6576
;;;                                                       { 27 TypeName (internal)
6577
;;;                                                         { 28 TypeSpecifier (all)
6578
;;;                                                           spec = unsigned int (82000)
6579
;;;                                                         } 28 TypeSpecifier (all)
6580
;;;                                                       } 27 TypeName (internal)
6581
;;;                                                       { 27 Expr * r
6582
;;;                                                         { 28 Expression (variable name)
6583
;;;                                                           expr_type = "identifier" (which_w)
6584 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6585
        MOVE    12(SP), RR
6586 7 jsauermann
;;;                                                         } 28 Expression (variable name)
6587 2 jsauermann
;--     content
6588
        MOVE    (RR), RR
6589 7 jsauermann
;;;                                                       } 27 Expr * r
6590 2 jsauermann
;--     l * r
6591
        MOVE    RR, LL
6592
        MOVE    #0x000A, RR
6593
;--     l * r
6594
        DI
6595
        MUL_IU
6596
        CALL    mult_div
6597
        MD_FIN
6598
        EI
6599 7 jsauermann
;;;                                                     } 26 Expr l * r
6600 2 jsauermann
;--     l + r
6601
        ADD     RR, #0x0006
6602 7 jsauermann
;;;                                                   } 25 Expr l + r
6603 2 jsauermann
;--     push_rr (16 bit)
6604
        MOVE    RR, -(SP)
6605 7 jsauermann
;;;                                                   { 25 Expr * r
6606
;;;                                                     { 26 Expression (variable name)
6607
;;;                                                       expr_type = "identifier" (which_w)
6608 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6609
        MOVE    14(SP), RR
6610 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6611
;;;                                                   } 25 Expr * r
6612 2 jsauermann
;--     move_rr_to_ll
6613
        MOVE    RR, LL
6614
;--     pop_rr (16 bit)
6615
        MOVE    (SP)+, RR
6616
;--     assign (16 bit)
6617
        MOVE    RR, (LL)
6618 7 jsauermann
;;;                                                 } 24 Expr l = r
6619
;;;                                               } 23 ExpressionStatement
6620
;;;                                             } 22 case Statement
6621
;;;                                             { 22 break/continue Statement
6622 2 jsauermann
;--     branch
6623
        JMP     L12_cont_40
6624 7 jsauermann
;;;                                             } 22 break/continue Statement
6625
;;;                                             { 22 case Statement
6626 2 jsauermann
L12_case_42_0037:
6627 7 jsauermann
;;;                                               { 23 ExpressionStatement
6628
;;;                                                 { 24 Expr l = r
6629
;;;                                                   { 25 TypeName
6630
;;;                                                     { 26 TypeSpecifier (all)
6631
;;;                                                       spec = unsigned int (82000)
6632
;;;                                                     } 26 TypeSpecifier (all)
6633
;;;                                                     { 26 List
6634
;;;                                                       { 27 DeclItem
6635
;;;                                                         what = DECL_NAME
6636
;;;                                                         name = which_w
6637
;;;                                                       } 27 DeclItem
6638
;;;                                                     } 26 List
6639
;;;                                                   } 25 TypeName
6640
;;;                                                   { 25 Expr l + r
6641
;;;                                                     { 26 Expr l * r
6642
;;;                                                       { 27 TypeName (internal)
6643
;;;                                                         { 28 TypeSpecifier (all)
6644
;;;                                                           spec = unsigned int (82000)
6645
;;;                                                         } 28 TypeSpecifier (all)
6646
;;;                                                       } 27 TypeName (internal)
6647
;;;                                                       { 27 Expr * r
6648
;;;                                                         { 28 Expression (variable name)
6649
;;;                                                           expr_type = "identifier" (which_w)
6650 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6651
        MOVE    12(SP), RR
6652 7 jsauermann
;;;                                                         } 28 Expression (variable name)
6653 2 jsauermann
;--     content
6654
        MOVE    (RR), RR
6655 7 jsauermann
;;;                                                       } 27 Expr * r
6656 2 jsauermann
;--     l * r
6657
        MOVE    RR, LL
6658
        MOVE    #0x000A, RR
6659
;--     l * r
6660
        DI
6661
        MUL_IU
6662
        CALL    mult_div
6663
        MD_FIN
6664
        EI
6665 7 jsauermann
;;;                                                     } 26 Expr l * r
6666 2 jsauermann
;--     l + r
6667
        ADD     RR, #0x0007
6668 7 jsauermann
;;;                                                   } 25 Expr l + r
6669 2 jsauermann
;--     push_rr (16 bit)
6670
        MOVE    RR, -(SP)
6671 7 jsauermann
;;;                                                   { 25 Expr * r
6672
;;;                                                     { 26 Expression (variable name)
6673
;;;                                                       expr_type = "identifier" (which_w)
6674 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6675
        MOVE    14(SP), RR
6676 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6677
;;;                                                   } 25 Expr * r
6678 2 jsauermann
;--     move_rr_to_ll
6679
        MOVE    RR, LL
6680
;--     pop_rr (16 bit)
6681
        MOVE    (SP)+, RR
6682
;--     assign (16 bit)
6683
        MOVE    RR, (LL)
6684 7 jsauermann
;;;                                                 } 24 Expr l = r
6685
;;;                                               } 23 ExpressionStatement
6686
;;;                                             } 22 case Statement
6687
;;;                                             { 22 break/continue Statement
6688 2 jsauermann
;--     branch
6689
        JMP     L12_cont_40
6690 7 jsauermann
;;;                                             } 22 break/continue Statement
6691
;;;                                             { 22 case Statement
6692 2 jsauermann
L12_case_42_0038:
6693 7 jsauermann
;;;                                               { 23 ExpressionStatement
6694
;;;                                                 { 24 Expr l = r
6695
;;;                                                   { 25 TypeName
6696
;;;                                                     { 26 TypeSpecifier (all)
6697
;;;                                                       spec = unsigned int (82000)
6698
;;;                                                     } 26 TypeSpecifier (all)
6699
;;;                                                     { 26 List
6700
;;;                                                       { 27 DeclItem
6701
;;;                                                         what = DECL_NAME
6702
;;;                                                         name = which_w
6703
;;;                                                       } 27 DeclItem
6704
;;;                                                     } 26 List
6705
;;;                                                   } 25 TypeName
6706
;;;                                                   { 25 Expr l + r
6707
;;;                                                     { 26 Expr l * r
6708
;;;                                                       { 27 TypeName (internal)
6709
;;;                                                         { 28 TypeSpecifier (all)
6710
;;;                                                           spec = unsigned int (82000)
6711
;;;                                                         } 28 TypeSpecifier (all)
6712
;;;                                                       } 27 TypeName (internal)
6713
;;;                                                       { 27 Expr * r
6714
;;;                                                         { 28 Expression (variable name)
6715
;;;                                                           expr_type = "identifier" (which_w)
6716 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6717
        MOVE    12(SP), RR
6718 7 jsauermann
;;;                                                         } 28 Expression (variable name)
6719 2 jsauermann
;--     content
6720
        MOVE    (RR), RR
6721 7 jsauermann
;;;                                                       } 27 Expr * r
6722 2 jsauermann
;--     l * r
6723
        MOVE    RR, LL
6724
        MOVE    #0x000A, RR
6725
;--     l * r
6726
        DI
6727
        MUL_IU
6728
        CALL    mult_div
6729
        MD_FIN
6730
        EI
6731 7 jsauermann
;;;                                                     } 26 Expr l * r
6732 2 jsauermann
;--     l + r
6733
        ADD     RR, #0x0008
6734 7 jsauermann
;;;                                                   } 25 Expr l + r
6735 2 jsauermann
;--     push_rr (16 bit)
6736
        MOVE    RR, -(SP)
6737 7 jsauermann
;;;                                                   { 25 Expr * r
6738
;;;                                                     { 26 Expression (variable name)
6739
;;;                                                       expr_type = "identifier" (which_w)
6740 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6741
        MOVE    14(SP), RR
6742 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6743
;;;                                                   } 25 Expr * r
6744 2 jsauermann
;--     move_rr_to_ll
6745
        MOVE    RR, LL
6746
;--     pop_rr (16 bit)
6747
        MOVE    (SP)+, RR
6748
;--     assign (16 bit)
6749
        MOVE    RR, (LL)
6750 7 jsauermann
;;;                                                 } 24 Expr l = r
6751
;;;                                               } 23 ExpressionStatement
6752
;;;                                             } 22 case Statement
6753
;;;                                             { 22 break/continue Statement
6754 2 jsauermann
;--     branch
6755
        JMP     L12_cont_40
6756 7 jsauermann
;;;                                             } 22 break/continue Statement
6757
;;;                                             { 22 case Statement
6758 2 jsauermann
L12_case_42_0039:
6759 7 jsauermann
;;;                                               { 23 ExpressionStatement
6760
;;;                                                 { 24 Expr l = r
6761
;;;                                                   { 25 TypeName
6762
;;;                                                     { 26 TypeSpecifier (all)
6763
;;;                                                       spec = unsigned int (82000)
6764
;;;                                                     } 26 TypeSpecifier (all)
6765
;;;                                                     { 26 List
6766
;;;                                                       { 27 DeclItem
6767
;;;                                                         what = DECL_NAME
6768
;;;                                                         name = which_w
6769
;;;                                                       } 27 DeclItem
6770
;;;                                                     } 26 List
6771
;;;                                                   } 25 TypeName
6772
;;;                                                   { 25 Expr l + r
6773
;;;                                                     { 26 Expr l * r
6774
;;;                                                       { 27 TypeName (internal)
6775
;;;                                                         { 28 TypeSpecifier (all)
6776
;;;                                                           spec = unsigned int (82000)
6777
;;;                                                         } 28 TypeSpecifier (all)
6778
;;;                                                       } 27 TypeName (internal)
6779
;;;                                                       { 27 Expr * r
6780
;;;                                                         { 28 Expression (variable name)
6781
;;;                                                           expr_type = "identifier" (which_w)
6782 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -28 (16 bit)
6783
        MOVE    12(SP), RR
6784 7 jsauermann
;;;                                                         } 28 Expression (variable name)
6785 2 jsauermann
;--     content
6786
        MOVE    (RR), RR
6787 7 jsauermann
;;;                                                       } 27 Expr * r
6788 2 jsauermann
;--     l * r
6789
        MOVE    RR, LL
6790
        MOVE    #0x000A, RR
6791
;--     l * r
6792
        DI
6793
        MUL_IU
6794
        CALL    mult_div
6795
        MD_FIN
6796
        EI
6797 7 jsauermann
;;;                                                     } 26 Expr l * r
6798 2 jsauermann
;--     l + r
6799
        ADD     RR, #0x0009
6800 7 jsauermann
;;;                                                   } 25 Expr l + r
6801 2 jsauermann
;--     push_rr (16 bit)
6802
        MOVE    RR, -(SP)
6803 7 jsauermann
;;;                                                   { 25 Expr * r
6804
;;;                                                     { 26 Expression (variable name)
6805
;;;                                                       expr_type = "identifier" (which_w)
6806 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6807
        MOVE    14(SP), RR
6808 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6809
;;;                                                   } 25 Expr * r
6810 2 jsauermann
;--     move_rr_to_ll
6811
        MOVE    RR, LL
6812
;--     pop_rr (16 bit)
6813
        MOVE    (SP)+, RR
6814
;--     assign (16 bit)
6815
        MOVE    RR, (LL)
6816 7 jsauermann
;;;                                                 } 24 Expr l = r
6817
;;;                                               } 23 ExpressionStatement
6818
;;;                                             } 22 case Statement
6819
;;;                                             { 22 break/continue Statement
6820 2 jsauermann
;--     branch
6821
        JMP     L12_cont_40
6822 7 jsauermann
;;;                                             } 22 break/continue Statement
6823
;;;                                             { 22 case Statement
6824 2 jsauermann
L12_case_42_002A:
6825 7 jsauermann
;;;                                               { 23 ExpressionStatement
6826
;;;                                                 { 24 Expr l = r
6827
;;;                                                   { 25 TypeName
6828
;;;                                                     { 26 TypeSpecifier (all)
6829
;;;                                                       spec = unsigned int (82000)
6830
;;;                                                     } 26 TypeSpecifier (all)
6831
;;;                                                     { 26 List
6832
;;;                                                       { 27 DeclItem
6833
;;;                                                         what = DECL_NAME
6834
;;;                                                         name = which_w
6835
;;;                                                       } 27 DeclItem
6836
;;;                                                     } 26 List
6837
;;;                                                   } 25 TypeName
6838
;;;                                                   { 25 Expression (cast)r
6839
;;;                                                     { 26 Expr * r
6840
;;;                                                       { 27 Expr l - r
6841
;;;                                                         { 28 Expr ++r
6842
;;;                                                           { 29 Expression (variable name)
6843
;;;                                                             expr_type = "identifier" (args)
6844 2 jsauermann
;--     load_rr_var args = -2(FP), SP at -28 (16 bit)
6845
        MOVE    26(SP), RR
6846 7 jsauermann
;;;                                                           } 29 Expression (variable name)
6847 2 jsauermann
;--     ++
6848
        ADD     RR, #0x0002
6849
;--     store_rr_var args = -2(FP), SP at -28
6850
        MOVE    RR, 26(SP)
6851 7 jsauermann
;;;                                                         } 28 Expr ++r
6852 2 jsauermann
;--     l - r
6853
        SUB     RR, #0x0002
6854 7 jsauermann
;;;                                                       } 27 Expr l - r
6855 2 jsauermann
;--     content
6856
        MOVE    (RR), RR
6857 7 jsauermann
;;;                                                     } 26 Expr * r
6858
;;;                                                   } 25 Expression (cast)r
6859 2 jsauermann
;--     push_rr (16 bit)
6860
        MOVE    RR, -(SP)
6861 7 jsauermann
;;;                                                   { 25 Expr * r
6862
;;;                                                     { 26 Expression (variable name)
6863
;;;                                                       expr_type = "identifier" (which_w)
6864 2 jsauermann
;--     load_rr_var which_w = -16(FP), SP at -30 (16 bit)
6865
        MOVE    14(SP), RR
6866 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6867
;;;                                                   } 25 Expr * r
6868 2 jsauermann
;--     move_rr_to_ll
6869
        MOVE    RR, LL
6870
;--     pop_rr (16 bit)
6871
        MOVE    (SP)+, RR
6872
;--     assign (16 bit)
6873
        MOVE    RR, (LL)
6874 7 jsauermann
;;;                                                 } 24 Expr l = r
6875
;;;                                               } 23 ExpressionStatement
6876
;;;                                             } 22 case Statement
6877
;;;                                             { 22 break/continue Statement
6878 2 jsauermann
;--     branch
6879
        JMP     L12_cont_40
6880 7 jsauermann
;;;                                             } 22 break/continue Statement
6881
;;;                                             { 22 case Statement
6882 2 jsauermann
L12_case_42_0000:
6883 7 jsauermann
;;;                                               { 23 ExpressionStatement
6884
;;;                                                 { 24 Expr l + r
6885
;;;                                                   { 25 Expr --r
6886
;;;                                                     { 26 Expression (variable name)
6887
;;;                                                       expr_type = "identifier" (format)
6888 2 jsauermann
;--     load_rr_var format = 2(FP), SP at -28 (16 bit)
6889
        MOVE    30(SP), RR
6890 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6891 2 jsauermann
;--     --
6892
        SUB     RR, #0x0001
6893
;--     store_rr_var format = 2(FP), SP at -28
6894
        MOVE    RR, 30(SP)
6895 7 jsauermann
;;;                                                   } 25 Expr --r
6896 2 jsauermann
;--     l + r
6897
        ADD     RR, #0x0001
6898 7 jsauermann
;;;                                                 } 24 Expr l + r
6899
;;;                                               } 23 ExpressionStatement
6900
;;;                                             } 22 case Statement
6901
;;;                                             { 22 break/continue Statement
6902 2 jsauermann
;--     branch
6903
        JMP     L12_brk_42
6904 7 jsauermann
;;;                                             } 22 break/continue Statement
6905
;;;                                             { 22 case Statement
6906 2 jsauermann
L12_deflt_42:
6907 7 jsauermann
;;;                                               { 23 ExpressionStatement
6908
;;;                                                 { 24 Expr l += r
6909
;;;                                                   { 25 TypeName
6910
;;;                                                     { 26 TypeSpecifier (all)
6911
;;;                                                       spec = int (80000)
6912
;;;                                                     } 26 TypeSpecifier (all)
6913
;;;                                                     { 26 List
6914
;;;                                                       { 27 DeclItem
6915
;;;                                                         what = DECL_NAME
6916
;;;                                                         name = len
6917
;;;                                                       } 27 DeclItem
6918
;;;                                                     } 26 List
6919
;;;                                                   } 25 TypeName
6920
;;;                                                   { 25 Expr l + r
6921
;;;                                                     { 26 Expr l(r)
6922
;;;                                                       { 27 TypeName
6923
;;;                                                         { 28 TypeSpecifier (all)
6924
;;;                                                           spec = int (80000)
6925
;;;                                                         } 28 TypeSpecifier (all)
6926
;;;                                                         { 28 List
6927
;;;                                                           { 29 DeclItem
6928
;;;                                                             what = DECL_NAME
6929
;;;                                                             name = putchr
6930
;;;                                                           } 29 DeclItem
6931
;;;                                                         } 28 List
6932
;;;                                                       } 27 TypeName
6933
;;;                                                       { 27 ParameterDeclaration
6934
;;;                                                         isEllipsis = false
6935
;;;                                                         { 28 TypeName
6936
;;;                                                           { 29 TypeSpecifier (all)
6937
;;;                                                             spec = char (20000)
6938
;;;                                                           } 29 TypeSpecifier (all)
6939
;;;                                                           { 29 List
6940
;;;                                                             { 30 DeclItem
6941
;;;                                                               what = DECL_NAME
6942
;;;                                                               name = c
6943
;;;                                                             } 30 DeclItem
6944
;;;                                                           } 29 List
6945
;;;                                                         } 28 TypeName
6946
;;;                                                       } 27 ParameterDeclaration
6947
;;;                                                       { 27 Expression (variable name)
6948
;;;                                                         expr_type = "identifier" (c)
6949 2 jsauermann
;--     load_rr_var c = -5(FP), SP at -28 (8 bit)
6950
        MOVE    23(SP), RS
6951 7 jsauermann
;;;                                                       } 27 Expression (variable name)
6952 2 jsauermann
;--     push_rr (8 bit)
6953
        MOVE    R, -(SP)
6954
;--     push 2 bytes
6955
;--     call
6956
        CALL    Cputchr
6957
;--     pop 1 bytes
6958
        ADD     SP, #1
6959 7 jsauermann
;;;                                                     } 26 Expr l(r)
6960
;;;                                                     { 26 Expression (variable name)
6961
;;;                                                       expr_type = "identifier" (len)
6962 2 jsauermann
;--     load_ll_var len = -4(FP), SP at -28 (16 bit)
6963
        MOVE    24(SP), LL
6964 7 jsauermann
;;;                                                     } 26 Expression (variable name)
6965 2 jsauermann
;--     scale_rr *1
6966
;--     l + r
6967
        ADD     LL, RR
6968 7 jsauermann
;;;                                                   } 25 Expr l + r
6969 2 jsauermann
;--     store_rr_var len = -4(FP), SP at -28
6970
        MOVE    RR, 24(SP)
6971 7 jsauermann
;;;                                                 } 24 Expr l += r
6972
;;;                                               } 23 ExpressionStatement
6973
;;;                                             } 22 case Statement
6974
;;;                                             { 22 break/continue Statement
6975 2 jsauermann
;--     branch
6976
        JMP     L12_brk_42
6977 7 jsauermann
;;;                                             } 22 break/continue Statement
6978
;;;                                           } 21 List
6979
;--     pop 0 bytes
6980
;;;                                         } 20 CompoundStatement
6981 2 jsauermann
L12_brk_42:
6982 7 jsauermann
;;;                                       } 19 SwitchStatement
6983
;;;                                       { 19 break/continue Statement
6984 2 jsauermann
;--     branch
6985
        JMP     L12_brk_41
6986 7 jsauermann
;;;                                       } 19 break/continue Statement
6987
;;;                                     } 18 List
6988
;--     pop 0 bytes
6989
;;;                                   } 17 CompoundStatement
6990 2 jsauermann
L12_cont_40:
6991
;--     branch
6992
        JMP     L12_loop_40
6993
L12_brk_41:
6994 7 jsauermann
;;;                                 } 16 for Statement
6995
;;;                               } 15 List
6996
;--     pop 0 bytes
6997
;;;                             } 14 CompoundStatement
6998 2 jsauermann
L12_cont_37:
6999 7 jsauermann
;;;                             { 14 Expr l = r
7000
;;;                               { 15 TypeName
7001
;;;                                 { 16 TypeSpecifier (all)
7002
;;;                                   spec = char (20000)
7003
;;;                                 } 16 TypeSpecifier (all)
7004
;;;                                 { 16 List
7005
;;;                                   { 17 DeclItem
7006
;;;                                     what = DECL_NAME
7007
;;;                                     name = c
7008
;;;                                   } 17 DeclItem
7009
;;;                                 } 16 List
7010
;;;                               } 15 TypeName
7011
;;;                               { 15 Expr * r
7012
;;;                                 { 16 Expr l - r
7013
;;;                                   { 17 Expr ++r
7014
;;;                                     { 18 Expression (variable name)
7015
;;;                                       expr_type = "identifier" (format)
7016 2 jsauermann
;--     load_rr_var format = 2(FP), SP at -28 (16 bit)
7017
        MOVE    30(SP), RR
7018 7 jsauermann
;;;                                     } 18 Expression (variable name)
7019 2 jsauermann
;--     ++
7020
        ADD     RR, #0x0001
7021
;--     store_rr_var format = 2(FP), SP at -28
7022
        MOVE    RR, 30(SP)
7023 7 jsauermann
;;;                                   } 17 Expr ++r
7024 2 jsauermann
;--     l - r
7025
        SUB     RR, #0x0001
7026 7 jsauermann
;;;                                 } 16 Expr l - r
7027 2 jsauermann
;--     content
7028
        MOVE    (RR), RS
7029 7 jsauermann
;;;                               } 15 Expr * r
7030 2 jsauermann
;--     store_rr_var c = -5(FP), SP at -28
7031
        MOVE    R, 23(SP)
7032 7 jsauermann
;;;                             } 14 Expr l = r
7033 2 jsauermann
;--     branch_true
7034
        JMP     RRNZ, L12_loop_37
7035
L12_brk_38:
7036 7 jsauermann
;;;                           } 13 while Statement
7037
;;;                           { 13 return Statement
7038
;;;                             { 14 Expression (variable name)
7039
;;;                               expr_type = "identifier" (len)
7040 2 jsauermann
;--     load_rr_var len = -4(FP), SP at -28 (16 bit)
7041
        MOVE    24(SP), RR
7042 7 jsauermann
;;;                             } 14 Expression (variable name)
7043 2 jsauermann
;--     ret
7044 7 jsauermann
        ADD     SP, #28
7045
        RET
7046
;;;                           } 13 return Statement
7047
;;;                         } 12 List
7048 2 jsauermann
;--     pop 28 bytes
7049
        ADD     SP, #28
7050 7 jsauermann
;;;                       } 11 CompoundStatement
7051
;--     ret
7052 2 jsauermann
        RET
7053
;;; ------------------------------------;
7054 7 jsauermann
;;;                       { 11 FunctionDefinition
7055
;;;                         { 12 TypeName
7056
;;;                           { 13 TypeSpecifier (all)
7057
;;;                             spec = int (80000)
7058
;;;                           } 13 TypeSpecifier (all)
7059
;;;                           { 13 List
7060
;;;                             { 14 DeclItem
7061
;;;                               what = DECL_NAME
7062
;;;                               name = getchr
7063
;;;                             } 14 DeclItem
7064
;;;                           } 13 List
7065
;;;                         } 12 TypeName
7066
;;;                         { 12 List
7067
;;;                           { 13 DeclItem
7068
;;;                             what = DECL_NAME
7069
;;;                             name = getchr
7070
;;;                           } 13 DeclItem
7071
;;;                           { 13 DeclItem
7072
;;;                             what = DECL_FUN
7073
;;;                           } 13 DeclItem
7074
;;;                         } 12 List
7075 2 jsauermann
Cgetchr:
7076 7 jsauermann
;;;                         { 12 CompoundStatement
7077
;;;                           { 13 InitDeclarator
7078
;;;                             { 14 List
7079
;;;                               { 15 DeclItem
7080
;;;                                 what = DECL_NAME
7081
;;;                                 name = c
7082
;;;                               } 15 DeclItem
7083
;;;                             } 14 List
7084 2 jsauermann
;--     push_zero 1 bytes
7085
        CLRB    -(SP)
7086 7 jsauermann
;;;                           } 13 InitDeclarator
7087
;;;                           { 13 List
7088
;;;                             { 14 while Statement
7089 2 jsauermann
L13_loop_46:
7090 7 jsauermann
;;;                               { 15 ExpressionStatement
7091
;;;                               } 15 ExpressionStatement
7092 2 jsauermann
L13_cont_46:
7093 7 jsauermann
;;;                               { 15 Expr ! r
7094
;;;                                 { 16 Expression (variable name)
7095
;;;                                   expr_type = "identifier" (serial_in_length)
7096 2 jsauermann
;--     load_rr_var serial_in_length, (8 bit)
7097
        MOVE    (Cserial_in_length), RU
7098 7 jsauermann
;;;                                 } 16 Expression (variable name)
7099 2 jsauermann
;--     16 bit ! r
7100
        LNOT    RR
7101 7 jsauermann
;;;                               } 15 Expr ! r
7102 2 jsauermann
;--     branch_true
7103
        JMP     RRNZ, L13_loop_46
7104
L13_brk_47:
7105 7 jsauermann
;;;                             } 14 while Statement
7106
;;;                             { 14 ExpressionStatement
7107
;;;                               { 15 Expr l = r
7108
;;;                                 { 16 TypeName
7109
;;;                                   { 17 TypeSpecifier (all)
7110
;;;                                     spec = char (20000)
7111
;;;                                   } 17 TypeSpecifier (all)
7112
;;;                                   { 17 List
7113
;;;                                     { 18 DeclItem
7114
;;;                                       what = DECL_NAME
7115
;;;                                       name = c
7116
;;;                                     } 18 DeclItem
7117
;;;                                   } 17 List
7118
;;;                                 } 16 TypeName
7119
;;;                                 { 16 Expr l[r]
7120
;;;                                   { 17 TypeName
7121
;;;                                     { 18 TypeSpecifier (all)
7122
;;;                                       spec = unsigned char (22000)
7123
;;;                                     } 18 TypeSpecifier (all)
7124
;;;                                     { 18 List
7125
;;;                                       { 19 DeclItem
7126
;;;                                         what = DECL_NAME
7127
;;;                                         name = serial_in_buffer
7128
;;;                                       } 19 DeclItem
7129
;;;                                     } 18 List
7130
;;;                                   } 17 TypeName
7131
;;;                                   { 17 Expr l[r]
7132
;;;                                     { 18 Expression (variable name)
7133
;;;                                       expr_type = "identifier" (serial_in_get)
7134 2 jsauermann
;--     load_rr_var serial_in_get, (8 bit)
7135
        MOVE    (Cserial_in_get), RU
7136 7 jsauermann
;;;                                     } 18 Expression (variable name)
7137 2 jsauermann
;--     scale_rr *1
7138
;--     add_address serial_in_buffer
7139
        ADD     RR, #Cserial_in_buffer
7140 7 jsauermann
;;;                                   } 17 Expr l[r]
7141 2 jsauermann
;--     content
7142
        MOVE    (RR), RU
7143 7 jsauermann
;;;                                 } 16 Expr l[r]
7144 2 jsauermann
;--     store_rr_var c = -1(FP), SP at -1
7145
        MOVE    R, 0(SP)
7146 7 jsauermann
;;;                               } 15 Expr l = r
7147
;;;                             } 14 ExpressionStatement
7148
;;;                             { 14 ExpressionStatement
7149
;;;                               { 15 Expr l = r
7150
;;;                                 { 16 TypeName
7151
;;;                                   { 17 TypeSpecifier (all)
7152
;;;                                     spec = unsigned char (22000)
7153
;;;                                   } 17 TypeSpecifier (all)
7154
;;;                                   { 17 List
7155
;;;                                     { 18 DeclItem
7156
;;;                                       what = DECL_NAME
7157
;;;                                       name = serial_in_get
7158
;;;                                     } 18 DeclItem
7159
;;;                                   } 17 List
7160
;;;                                 } 16 TypeName
7161
;;;                                 { 16 Expr l & r
7162
;;;                                   { 17 TypeName (internal)
7163
;;;                                     { 18 TypeSpecifier (all)
7164
;;;                                       spec = unsigned int (82000)
7165
;;;                                     } 18 TypeSpecifier (all)
7166
;;;                                   } 17 TypeName (internal)
7167
;;;                                   { 17 Expr ++r
7168
;;;                                     { 18 Expression (variable name)
7169
;;;                                       expr_type = "identifier" (serial_in_get)
7170 2 jsauermann
;--     load_rr_var serial_in_get, (8 bit)
7171
        MOVE    (Cserial_in_get), RU
7172 7 jsauermann
;;;                                     } 18 Expression (variable name)
7173 2 jsauermann
;--     ++
7174
        ADD     RR, #0x0001
7175
;--     store_rr_var serial_in_get
7176
        MOVE    R, (Cserial_in_get)
7177 7 jsauermann
;;;                                   } 17 Expr ++r
7178 2 jsauermann
;--     l & r
7179
        AND     RR, #0x000F
7180 7 jsauermann
;;;                                 } 16 Expr l & r
7181 2 jsauermann
;--     store_rr_var serial_in_get
7182
        MOVE    R, (Cserial_in_get)
7183 7 jsauermann
;;;                               } 15 Expr l = r
7184
;;;                             } 14 ExpressionStatement
7185
;;;                             { 14 ExpressionStatement
7186 2 jsauermann
        DI
7187 7 jsauermann
;;;                             } 14 ExpressionStatement
7188
;;;                             { 14 ExpressionStatement
7189
;;;                               { 15 Expr --r
7190
;;;                                 { 16 Expression (variable name)
7191
;;;                                   expr_type = "identifier" (serial_in_length)
7192 2 jsauermann
;--     load_rr_var serial_in_length, (8 bit)
7193
        MOVE    (Cserial_in_length), RU
7194 7 jsauermann
;;;                                 } 16 Expression (variable name)
7195 2 jsauermann
;--     --
7196
        SUB     RR, #0x0001
7197
;--     store_rr_var serial_in_length
7198
        MOVE    R, (Cserial_in_length)
7199 7 jsauermann
;;;                               } 15 Expr --r
7200
;;;                             } 14 ExpressionStatement
7201
;;;                             { 14 ExpressionStatement
7202 2 jsauermann
        EI
7203 7 jsauermann
;;;                             } 14 ExpressionStatement
7204
;;;                             { 14 return Statement
7205
;;;                               { 15 Expression (variable name)
7206
;;;                                 expr_type = "identifier" (c)
7207 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -1 (8 bit)
7208
        MOVE    0(SP), RS
7209 7 jsauermann
;;;                               } 15 Expression (variable name)
7210 2 jsauermann
;--     ret
7211 7 jsauermann
        ADD     SP, #1
7212
        RET
7213
;;;                             } 14 return Statement
7214
;;;                           } 13 List
7215 2 jsauermann
;--     pop 1 bytes
7216
        ADD     SP, #1
7217 7 jsauermann
;;;                         } 12 CompoundStatement
7218
;--     ret
7219 2 jsauermann
        RET
7220
;;; ------------------------------------;
7221 7 jsauermann
;;;                         { 12 FunctionDefinition
7222
;;;                           { 13 TypeName
7223
;;;                             { 14 TypeSpecifier (all)
7224
;;;                               spec = int (80000)
7225
;;;                             } 14 TypeSpecifier (all)
7226
;;;                             { 14 List
7227
;;;                               { 15 DeclItem
7228
;;;                                 what = DECL_NAME
7229
;;;                                 name = peekchr
7230
;;;                               } 15 DeclItem
7231
;;;                             } 14 List
7232
;;;                           } 13 TypeName
7233
;;;                           { 13 List
7234
;;;                             { 14 DeclItem
7235
;;;                               what = DECL_NAME
7236
;;;                               name = peekchr
7237
;;;                             } 14 DeclItem
7238
;;;                             { 14 DeclItem
7239
;;;                               what = DECL_FUN
7240
;;;                             } 14 DeclItem
7241
;;;                           } 13 List
7242 2 jsauermann
Cpeekchr:
7243 7 jsauermann
;;;                           { 13 CompoundStatement
7244
;;;                             { 14 List
7245
;;;                               { 15 while Statement
7246 2 jsauermann
L14_loop_48:
7247 7 jsauermann
;;;                                 { 16 ExpressionStatement
7248
;;;                                 } 16 ExpressionStatement
7249 2 jsauermann
L14_cont_48:
7250 7 jsauermann
;;;                                 { 16 Expr ! r
7251
;;;                                   { 17 Expression (variable name)
7252
;;;                                     expr_type = "identifier" (serial_in_length)
7253 2 jsauermann
;--     load_rr_var serial_in_length, (8 bit)
7254
        MOVE    (Cserial_in_length), RU
7255 7 jsauermann
;;;                                   } 17 Expression (variable name)
7256 2 jsauermann
;--     16 bit ! r
7257
        LNOT    RR
7258 7 jsauermann
;;;                                 } 16 Expr ! r
7259 2 jsauermann
;--     branch_true
7260
        JMP     RRNZ, L14_loop_48
7261
L14_brk_49:
7262 7 jsauermann
;;;                               } 15 while Statement
7263
;;;                               { 15 return Statement
7264
;;;                                 { 16 Expr l[r]
7265
;;;                                   { 17 TypeName
7266
;;;                                     { 18 TypeSpecifier (all)
7267
;;;                                       spec = unsigned char (22000)
7268
;;;                                     } 18 TypeSpecifier (all)
7269
;;;                                     { 18 List
7270
;;;                                       { 19 DeclItem
7271
;;;                                         what = DECL_NAME
7272
;;;                                         name = serial_in_buffer
7273
;;;                                       } 19 DeclItem
7274
;;;                                     } 18 List
7275
;;;                                   } 17 TypeName
7276
;;;                                   { 17 Expr l[r]
7277
;;;                                     { 18 Expression (variable name)
7278
;;;                                       expr_type = "identifier" (serial_in_get)
7279 2 jsauermann
;--     load_rr_var serial_in_get, (8 bit)
7280
        MOVE    (Cserial_in_get), RU
7281 7 jsauermann
;;;                                     } 18 Expression (variable name)
7282 2 jsauermann
;--     scale_rr *1
7283
;--     add_address serial_in_buffer
7284
        ADD     RR, #Cserial_in_buffer
7285 7 jsauermann
;;;                                   } 17 Expr l[r]
7286 2 jsauermann
;--     content
7287
        MOVE    (RR), RU
7288 7 jsauermann
;;;                                 } 16 Expr l[r]
7289 2 jsauermann
;--     ret
7290 7 jsauermann
        RET
7291
;;;                               } 15 return Statement
7292
;;;                             } 14 List
7293 2 jsauermann
;--     pop 0 bytes
7294 7 jsauermann
;;;                           } 13 CompoundStatement
7295
;--     ret
7296 2 jsauermann
        RET
7297
;;; ------------------------------------;
7298 7 jsauermann
;;;                           { 13 FunctionDefinition
7299
;;;                             { 14 TypeName
7300
;;;                               { 15 TypeSpecifier (all)
7301
;;;                                 spec = char (20000)
7302
;;;                               } 15 TypeSpecifier (all)
7303
;;;                               { 15 List
7304
;;;                                 { 16 DeclItem
7305
;;;                                   what = DECL_NAME
7306
;;;                                   name = getnibble
7307
;;;                                 } 16 DeclItem
7308
;;;                               } 15 List
7309
;;;                             } 14 TypeName
7310
;;;                             { 14 List
7311
;;;                               { 15 DeclItem
7312
;;;                                 what = DECL_NAME
7313
;;;                                 name = getnibble
7314
;;;                               } 15 DeclItem
7315
;;;                               { 15 DeclItem
7316
;;;                                 what = DECL_FUN
7317
;;;                                 { 16 List
7318
;;;                                   { 17 ParameterDeclaration
7319
;;;                                     isEllipsis = false
7320
;;;                                     { 18 TypeName
7321
;;;                                       { 19 TypeSpecifier (all)
7322
;;;                                         spec = char (20000)
7323
;;;                                       } 19 TypeSpecifier (all)
7324
;;;                                       { 19 List
7325
;;;                                         { 20 DeclItem
7326
;;;                                           what = DECL_NAME
7327
;;;                                           name = echo
7328
;;;                                         } 20 DeclItem
7329
;;;                                       } 19 List
7330
;;;                                     } 18 TypeName
7331
;;;                                   } 17 ParameterDeclaration
7332
;;;                                 } 16 List
7333
;;;                               } 15 DeclItem
7334
;;;                             } 14 List
7335 2 jsauermann
Cgetnibble:
7336 7 jsauermann
;;;                             { 14 CompoundStatement
7337
;;;                               { 15 InitDeclarator
7338
;;;                                 { 16 List
7339
;;;                                   { 17 DeclItem
7340
;;;                                     what = DECL_NAME
7341
;;;                                     name = c
7342
;;;                                   } 17 DeclItem
7343
;;;                                 } 16 List
7344
;;;                                 { 16 Initializer (skalar)
7345
;;;                                   { 17 Expr l(r)
7346
;;;                                     { 18 TypeName
7347
;;;                                       { 19 TypeSpecifier (all)
7348
;;;                                         spec = int (80000)
7349
;;;                                       } 19 TypeSpecifier (all)
7350
;;;                                       { 19 List
7351
;;;                                         { 20 DeclItem
7352
;;;                                           what = DECL_NAME
7353
;;;                                           name = peekchr
7354
;;;                                         } 20 DeclItem
7355
;;;                                       } 19 List
7356
;;;                                     } 18 TypeName
7357 2 jsauermann
;--     push 2 bytes
7358
;--     call
7359
        CALL    Cpeekchr
7360
;--     pop 0 bytes
7361 7 jsauermann
;;;                                   } 17 Expr l(r)
7362 2 jsauermann
;--     push_rr (8 bit)
7363
        MOVE    R, -(SP)
7364 7 jsauermann
;;;                                 } 16 Initializer (skalar)
7365
;;;                               } 15 InitDeclarator
7366
;;;                               { 15 InitDeclarator
7367
;;;                                 { 16 List
7368
;;;                                   { 17 DeclItem
7369
;;;                                     what = DECL_NAME
7370
;;;                                     name = ret
7371
;;;                                   } 17 DeclItem
7372
;;;                                 } 16 List
7373
;;;                                 { 16 Initializer (skalar)
7374
;;;                                   { 17 NumericExpression (constant 1 = 0x1)
7375 2 jsauermann
;--     load_rr_constant
7376
        MOVE    #0xFFFF, RR
7377 7 jsauermann
;;;                                   } 17 NumericExpression (constant 1 = 0x1)
7378 2 jsauermann
;--     push_rr (16 bit)
7379
        MOVE    RR, -(SP)
7380 7 jsauermann
;;;                                 } 16 Initializer (skalar)
7381
;;;                               } 15 InitDeclarator
7382
;;;                               { 15 List
7383
;;;                                 { 16 IfElseStatement
7384
;;;                                   { 17 Expr l && r
7385
;;;                                     { 18 TypeName (internal)
7386
;;;                                       { 19 TypeSpecifier (all)
7387
;;;                                         spec = int (80000)
7388
;;;                                       } 19 TypeSpecifier (all)
7389
;;;                                     } 18 TypeName (internal)
7390
;;;                                     { 18 IfElseStatement
7391
;;;                                       { 19 Expr l >= r
7392
;;;                                         { 20 TypeName (internal)
7393
;;;                                           { 21 TypeSpecifier (all)
7394
;;;                                             spec = int (80000)
7395
;;;                                           } 21 TypeSpecifier (all)
7396
;;;                                         } 20 TypeName (internal)
7397
;;;                                         { 20 Expression (variable name)
7398
;;;                                           expr_type = "identifier" (c)
7399 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -3 (8 bit)
7400
        MOVE    2(SP), RS
7401 7 jsauermann
;;;                                         } 20 Expression (variable name)
7402 2 jsauermann
;--     l >= r
7403
        SGE     RR, #0x0030
7404 7 jsauermann
;;;                                       } 19 Expr l >= r
7405 2 jsauermann
;--     branch_false
7406
        JMP     RRZ, L15_endif_51
7407 7 jsauermann
;;;                                       { 19 ExpressionStatement
7408
;;;                                         { 20 Expr l <= r
7409
;;;                                           { 21 TypeName (internal)
7410
;;;                                             { 22 TypeSpecifier (all)
7411
;;;                                               spec = int (80000)
7412
;;;                                             } 22 TypeSpecifier (all)
7413
;;;                                           } 21 TypeName (internal)
7414
;;;                                           { 21 Expression (variable name)
7415
;;;                                             expr_type = "identifier" (c)
7416 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -3 (8 bit)
7417
        MOVE    2(SP), RS
7418 7 jsauermann
;;;                                           } 21 Expression (variable name)
7419 2 jsauermann
;--     l <= r
7420
        SLE     RR, #0x0039
7421 7 jsauermann
;;;                                         } 20 Expr l <= r
7422
;;;                                       } 19 ExpressionStatement
7423 2 jsauermann
L15_endif_51:
7424 7 jsauermann
;;;                                     } 18 IfElseStatement
7425
;;;                                   } 17 Expr l && r
7426 2 jsauermann
;--     branch_false
7427
        JMP     RRZ, L15_else_50
7428 7 jsauermann
;;;                                   { 17 ExpressionStatement
7429
;;;                                     { 18 Expr l = r
7430
;;;                                       { 19 TypeName
7431
;;;                                         { 20 TypeSpecifier (all)
7432
;;;                                           spec = int (80000)
7433
;;;                                         } 20 TypeSpecifier (all)
7434
;;;                                         { 20 List
7435
;;;                                           { 21 DeclItem
7436
;;;                                             what = DECL_NAME
7437
;;;                                             name = ret
7438
;;;                                           } 21 DeclItem
7439
;;;                                         } 20 List
7440
;;;                                       } 19 TypeName
7441
;;;                                       { 19 Expr l - r
7442
;;;                                         { 20 Expression (variable name)
7443
;;;                                           expr_type = "identifier" (c)
7444 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -3 (8 bit)
7445
        MOVE    2(SP), RS
7446 7 jsauermann
;;;                                         } 20 Expression (variable name)
7447 2 jsauermann
;--     l - r
7448
        SUB     RR, #0x0030
7449 7 jsauermann
;;;                                       } 19 Expr l - r
7450 2 jsauermann
;--     store_rr_var ret = -3(FP), SP at -3
7451
        MOVE    RR, 0(SP)
7452 7 jsauermann
;;;                                     } 18 Expr l = r
7453
;;;                                   } 17 ExpressionStatement
7454 2 jsauermann
;--     branch
7455
        JMP     L15_endif_50
7456
L15_else_50:
7457 7 jsauermann
;;;                                   { 17 IfElseStatement
7458
;;;                                     { 18 Expr l && r
7459
;;;                                       { 19 TypeName (internal)
7460
;;;                                         { 20 TypeSpecifier (all)
7461
;;;                                           spec = int (80000)
7462
;;;                                         } 20 TypeSpecifier (all)
7463
;;;                                       } 19 TypeName (internal)
7464
;;;                                       { 19 IfElseStatement
7465
;;;                                         { 20 Expr l >= r
7466
;;;                                           { 21 TypeName (internal)
7467
;;;                                             { 22 TypeSpecifier (all)
7468
;;;                                               spec = int (80000)
7469
;;;                                             } 22 TypeSpecifier (all)
7470
;;;                                           } 21 TypeName (internal)
7471
;;;                                           { 21 Expression (variable name)
7472
;;;                                             expr_type = "identifier" (c)
7473 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -3 (8 bit)
7474
        MOVE    2(SP), RS
7475 7 jsauermann
;;;                                           } 21 Expression (variable name)
7476 2 jsauermann
;--     l >= r
7477
        SGE     RR, #0x0041
7478 7 jsauermann
;;;                                         } 20 Expr l >= r
7479 2 jsauermann
;--     branch_false
7480
        JMP     RRZ, L15_endif_53
7481 7 jsauermann
;;;                                         { 20 ExpressionStatement
7482
;;;                                           { 21 Expr l <= r
7483
;;;                                             { 22 TypeName (internal)
7484
;;;                                               { 23 TypeSpecifier (all)
7485
;;;                                                 spec = int (80000)
7486
;;;                                               } 23 TypeSpecifier (all)
7487
;;;                                             } 22 TypeName (internal)
7488
;;;                                             { 22 Expression (variable name)
7489
;;;                                               expr_type = "identifier" (c)
7490 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -3 (8 bit)
7491
        MOVE    2(SP), RS
7492 7 jsauermann
;;;                                             } 22 Expression (variable name)
7493 2 jsauermann
;--     l <= r
7494
        SLE     RR, #0x0046
7495 7 jsauermann
;;;                                           } 21 Expr l <= r
7496
;;;                                         } 20 ExpressionStatement
7497 2 jsauermann
L15_endif_53:
7498 7 jsauermann
;;;                                       } 19 IfElseStatement
7499
;;;                                     } 18 Expr l && r
7500 2 jsauermann
;--     branch_false
7501
        JMP     RRZ, L15_else_52
7502 7 jsauermann
;;;                                     { 18 ExpressionStatement
7503
;;;                                       { 19 Expr l = r
7504
;;;                                         { 20 TypeName
7505
;;;                                           { 21 TypeSpecifier (all)
7506
;;;                                             spec = int (80000)
7507
;;;                                           } 21 TypeSpecifier (all)
7508
;;;                                           { 21 List
7509
;;;                                             { 22 DeclItem
7510
;;;                                               what = DECL_NAME
7511
;;;                                               name = ret
7512
;;;                                             } 22 DeclItem
7513
;;;                                           } 21 List
7514
;;;                                         } 20 TypeName
7515
;;;                                         { 20 Expr l - r
7516
;;;                                           { 21 Expression (variable name)
7517
;;;                                             expr_type = "identifier" (c)
7518 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -3 (8 bit)
7519
        MOVE    2(SP), RS
7520 7 jsauermann
;;;                                           } 21 Expression (variable name)
7521 2 jsauermann
;--     l - r
7522
        SUB     RR, #0x0037
7523 7 jsauermann
;;;                                         } 20 Expr l - r
7524 2 jsauermann
;--     store_rr_var ret = -3(FP), SP at -3
7525
        MOVE    RR, 0(SP)
7526 7 jsauermann
;;;                                       } 19 Expr l = r
7527
;;;                                     } 18 ExpressionStatement
7528 2 jsauermann
;--     branch
7529
        JMP     L15_endif_52
7530
L15_else_52:
7531 7 jsauermann
;;;                                     { 18 IfElseStatement
7532
;;;                                       { 19 Expr l && r
7533
;;;                                         { 20 TypeName (internal)
7534
;;;                                           { 21 TypeSpecifier (all)
7535
;;;                                             spec = int (80000)
7536
;;;                                           } 21 TypeSpecifier (all)
7537
;;;                                         } 20 TypeName (internal)
7538
;;;                                         { 20 IfElseStatement
7539
;;;                                           { 21 Expr l >= r
7540
;;;                                             { 22 TypeName (internal)
7541
;;;                                               { 23 TypeSpecifier (all)
7542
;;;                                                 spec = int (80000)
7543
;;;                                               } 23 TypeSpecifier (all)
7544
;;;                                             } 22 TypeName (internal)
7545
;;;                                             { 22 Expression (variable name)
7546
;;;                                               expr_type = "identifier" (c)
7547 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -3 (8 bit)
7548
        MOVE    2(SP), RS
7549 7 jsauermann
;;;                                             } 22 Expression (variable name)
7550 2 jsauermann
;--     l >= r
7551
        SGE     RR, #0x0061
7552 7 jsauermann
;;;                                           } 21 Expr l >= r
7553 2 jsauermann
;--     branch_false
7554
        JMP     RRZ, L15_endif_55
7555 7 jsauermann
;;;                                           { 21 ExpressionStatement
7556
;;;                                             { 22 Expr l <= r
7557
;;;                                               { 23 TypeName (internal)
7558
;;;                                                 { 24 TypeSpecifier (all)
7559
;;;                                                   spec = int (80000)
7560
;;;                                                 } 24 TypeSpecifier (all)
7561
;;;                                               } 23 TypeName (internal)
7562
;;;                                               { 23 Expression (variable name)
7563
;;;                                                 expr_type = "identifier" (c)
7564 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -3 (8 bit)
7565
        MOVE    2(SP), RS
7566 7 jsauermann
;;;                                               } 23 Expression (variable name)
7567 2 jsauermann
;--     l <= r
7568
        SLE     RR, #0x0066
7569 7 jsauermann
;;;                                             } 22 Expr l <= r
7570
;;;                                           } 21 ExpressionStatement
7571 2 jsauermann
L15_endif_55:
7572 7 jsauermann
;;;                                         } 20 IfElseStatement
7573
;;;                                       } 19 Expr l && r
7574 2 jsauermann
;--     branch_false
7575
        JMP     RRZ, L15_endif_54
7576 7 jsauermann
;;;                                       { 19 ExpressionStatement
7577
;;;                                         { 20 Expr l = r
7578
;;;                                           { 21 TypeName
7579
;;;                                             { 22 TypeSpecifier (all)
7580
;;;                                               spec = int (80000)
7581
;;;                                             } 22 TypeSpecifier (all)
7582
;;;                                             { 22 List
7583
;;;                                               { 23 DeclItem
7584
;;;                                                 what = DECL_NAME
7585
;;;                                                 name = ret
7586
;;;                                               } 23 DeclItem
7587
;;;                                             } 22 List
7588
;;;                                           } 21 TypeName
7589
;;;                                           { 21 Expr l - r
7590
;;;                                             { 22 Expression (variable name)
7591
;;;                                               expr_type = "identifier" (c)
7592 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -3 (8 bit)
7593
        MOVE    2(SP), RS
7594 7 jsauermann
;;;                                             } 22 Expression (variable name)
7595 2 jsauermann
;--     l - r
7596
        SUB     RR, #0x0057
7597 7 jsauermann
;;;                                           } 21 Expr l - r
7598 2 jsauermann
;--     store_rr_var ret = -3(FP), SP at -3
7599
        MOVE    RR, 0(SP)
7600 7 jsauermann
;;;                                         } 20 Expr l = r
7601
;;;                                       } 19 ExpressionStatement
7602 2 jsauermann
L15_endif_54:
7603 7 jsauermann
;;;                                     } 18 IfElseStatement
7604 2 jsauermann
L15_endif_52:
7605 7 jsauermann
;;;                                   } 17 IfElseStatement
7606 2 jsauermann
L15_endif_50:
7607 7 jsauermann
;;;                                 } 16 IfElseStatement
7608
;;;                                 { 16 IfElseStatement
7609
;;;                                   { 17 Expr l != r
7610
;;;                                     { 18 TypeName (internal)
7611
;;;                                       { 19 TypeSpecifier (all)
7612
;;;                                         spec = int (80000)
7613
;;;                                       } 19 TypeSpecifier (all)
7614
;;;                                     } 18 TypeName (internal)
7615
;;;                                     { 18 Expression (variable name)
7616
;;;                                       expr_type = "identifier" (ret)
7617 2 jsauermann
;--     load_rr_var ret = -3(FP), SP at -3 (16 bit)
7618
        MOVE    0(SP), RR
7619 7 jsauermann
;;;                                     } 18 Expression (variable name)
7620 2 jsauermann
;--     l != r
7621
        SNE     RR, #0xFFFF
7622 7 jsauermann
;;;                                   } 17 Expr l != r
7623 2 jsauermann
;--     branch_false
7624
        JMP     RRZ, L15_endif_56
7625 7 jsauermann
;;;                                   { 17 CompoundStatement
7626
;;;                                     { 18 List
7627
;;;                                       { 19 ExpressionStatement
7628
;;;                                         { 20 Expr l(r)
7629
;;;                                           { 21 TypeName
7630
;;;                                             { 22 TypeSpecifier (all)
7631
;;;                                               spec = int (80000)
7632
;;;                                             } 22 TypeSpecifier (all)
7633
;;;                                             { 22 List
7634
;;;                                               { 23 DeclItem
7635
;;;                                                 what = DECL_NAME
7636
;;;                                                 name = getchr
7637
;;;                                               } 23 DeclItem
7638
;;;                                             } 22 List
7639
;;;                                           } 21 TypeName
7640 2 jsauermann
;--     push 2 bytes
7641
;--     call
7642
        CALL    Cgetchr
7643
;--     pop 0 bytes
7644 7 jsauermann
;;;                                         } 20 Expr l(r)
7645
;;;                                       } 19 ExpressionStatement
7646
;;;                                       { 19 IfElseStatement
7647
;;;                                         { 20 Expression (variable name)
7648
;;;                                           expr_type = "identifier" (echo)
7649 2 jsauermann
;--     load_rr_var echo = 2(FP), SP at -3 (8 bit)
7650
        MOVE    5(SP), RS
7651 7 jsauermann
;;;                                         } 20 Expression (variable name)
7652 2 jsauermann
;--     branch_false
7653
        JMP     RRZ, L15_endif_57
7654 7 jsauermann
;;;                                         { 20 ExpressionStatement
7655
;;;                                           { 21 Expr l(r)
7656
;;;                                             { 22 TypeName
7657
;;;                                               { 23 TypeSpecifier (all)
7658
;;;                                                 spec = int (80000)
7659
;;;                                               } 23 TypeSpecifier (all)
7660
;;;                                               { 23 List
7661
;;;                                                 { 24 DeclItem
7662
;;;                                                   what = DECL_NAME
7663
;;;                                                   name = putchr
7664
;;;                                                 } 24 DeclItem
7665
;;;                                               } 23 List
7666
;;;                                             } 22 TypeName
7667
;;;                                             { 22 ParameterDeclaration
7668
;;;                                               isEllipsis = false
7669
;;;                                               { 23 TypeName
7670
;;;                                                 { 24 TypeSpecifier (all)
7671
;;;                                                   spec = char (20000)
7672
;;;                                                 } 24 TypeSpecifier (all)
7673
;;;                                                 { 24 List
7674
;;;                                                   { 25 DeclItem
7675
;;;                                                     what = DECL_NAME
7676
;;;                                                     name = c
7677
;;;                                                   } 25 DeclItem
7678
;;;                                                 } 24 List
7679
;;;                                               } 23 TypeName
7680
;;;                                             } 22 ParameterDeclaration
7681
;;;                                             { 22 Expression (variable name)
7682
;;;                                               expr_type = "identifier" (c)
7683 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -3 (8 bit)
7684
        MOVE    2(SP), RS
7685 7 jsauermann
;;;                                             } 22 Expression (variable name)
7686 2 jsauermann
;--     push_rr (8 bit)
7687
        MOVE    R, -(SP)
7688
;--     push 2 bytes
7689
;--     call
7690
        CALL    Cputchr
7691
;--     pop 1 bytes
7692
        ADD     SP, #1
7693 7 jsauermann
;;;                                           } 21 Expr l(r)
7694
;;;                                         } 20 ExpressionStatement
7695 2 jsauermann
L15_endif_57:
7696 7 jsauermann
;;;                                       } 19 IfElseStatement
7697
;;;                                     } 18 List
7698
;--     pop 0 bytes
7699
;;;                                   } 17 CompoundStatement
7700 2 jsauermann
L15_endif_56:
7701 7 jsauermann
;;;                                 } 16 IfElseStatement
7702
;;;                                 { 16 return Statement
7703
;;;                                   { 17 Expression (variable name)
7704
;;;                                     expr_type = "identifier" (ret)
7705 2 jsauermann
;--     load_rr_var ret = -3(FP), SP at -3 (16 bit)
7706
        MOVE    0(SP), RR
7707 7 jsauermann
;;;                                   } 17 Expression (variable name)
7708 2 jsauermann
;--     ret
7709 7 jsauermann
        ADD     SP, #3
7710
        RET
7711
;;;                                 } 16 return Statement
7712
;;;                               } 15 List
7713 2 jsauermann
;--     pop 3 bytes
7714
        ADD     SP, #3
7715 7 jsauermann
;;;                             } 14 CompoundStatement
7716
;--     ret
7717 2 jsauermann
        RET
7718
;;; ------------------------------------;
7719 7 jsauermann
;;;                             { 14 FunctionDefinition
7720
;;;                               { 15 TypeName
7721
;;;                                 { 16 TypeSpecifier (all)
7722
;;;                                   spec = int (80000)
7723
;;;                                 } 16 TypeSpecifier (all)
7724
;;;                                 { 16 List
7725
;;;                                   { 17 DeclItem
7726
;;;                                     what = DECL_NAME
7727
;;;                                     name = gethex
7728
;;;                                   } 17 DeclItem
7729
;;;                                 } 16 List
7730
;;;                               } 15 TypeName
7731
;;;                               { 15 List
7732
;;;                                 { 16 DeclItem
7733
;;;                                   what = DECL_NAME
7734
;;;                                   name = gethex
7735
;;;                                 } 16 DeclItem
7736
;;;                                 { 16 DeclItem
7737
;;;                                   what = DECL_FUN
7738
;;;                                   { 17 List
7739
;;;                                     { 18 ParameterDeclaration
7740
;;;                                       isEllipsis = false
7741
;;;                                       { 19 TypeName
7742
;;;                                         { 20 TypeSpecifier (all)
7743
;;;                                           spec = char (20000)
7744
;;;                                         } 20 TypeSpecifier (all)
7745
;;;                                         { 20 List
7746
;;;                                           { 21 DeclItem
7747
;;;                                             what = DECL_NAME
7748
;;;                                             name = echo
7749
;;;                                           } 21 DeclItem
7750
;;;                                         } 20 List
7751
;;;                                       } 19 TypeName
7752
;;;                                     } 18 ParameterDeclaration
7753
;;;                                   } 17 List
7754
;;;                                 } 16 DeclItem
7755
;;;                               } 15 List
7756 2 jsauermann
Cgethex:
7757 7 jsauermann
;;;                               { 15 CompoundStatement
7758
;;;                                 { 16 InitDeclarator
7759
;;;                                   { 17 List
7760
;;;                                     { 18 DeclItem
7761
;;;                                       what = DECL_NAME
7762
;;;                                       name = ret
7763
;;;                                     } 18 DeclItem
7764
;;;                                   } 17 List
7765
;;;                                   { 17 Initializer (skalar)
7766 2 jsauermann
;--     push_zero 2 bytes
7767
        CLRW    -(SP)
7768 7 jsauermann
;;;                                   } 17 Initializer (skalar)
7769
;;;                                 } 16 InitDeclarator
7770
;;;                                 { 16 InitDeclarator
7771
;;;                                   { 17 List
7772
;;;                                     { 18 DeclItem
7773
;;;                                       what = DECL_NAME
7774
;;;                                       name = c
7775
;;;                                     } 18 DeclItem
7776
;;;                                   } 17 List
7777 2 jsauermann
;--     push_zero 1 bytes
7778
        CLRB    -(SP)
7779 7 jsauermann
;;;                                 } 16 InitDeclarator
7780
;;;                                 { 16 List
7781
;;;                                   { 17 while Statement
7782 2 jsauermann
;--     branch
7783
        JMP     L16_cont_58
7784
L16_loop_58:
7785 7 jsauermann
;;;                                     { 18 ExpressionStatement
7786
;;;                                       { 19 Expr l = r
7787
;;;                                         { 20 TypeName
7788
;;;                                           { 21 TypeSpecifier (all)
7789
;;;                                             spec = int (80000)
7790
;;;                                           } 21 TypeSpecifier (all)
7791
;;;                                           { 21 List
7792
;;;                                             { 22 DeclItem
7793
;;;                                               what = DECL_NAME
7794
;;;                                               name = ret
7795
;;;                                             } 22 DeclItem
7796
;;;                                           } 21 List
7797
;;;                                         } 20 TypeName
7798
;;;                                         { 20 Expr l | r
7799
;;;                                           { 21 TypeName (internal)
7800
;;;                                             { 22 TypeSpecifier (all)
7801
;;;                                               spec = int (80000)
7802
;;;                                             } 22 TypeSpecifier (all)
7803
;;;                                           } 21 TypeName (internal)
7804
;;;                                           { 21 Expr l << r
7805
;;;                                             { 22 TypeName (internal)
7806
;;;                                               { 23 TypeSpecifier (all)
7807
;;;                                                 spec = int (80000)
7808
;;;                                               } 23 TypeSpecifier (all)
7809
;;;                                             } 22 TypeName (internal)
7810
;;;                                             { 22 Expression (variable name)
7811
;;;                                               expr_type = "identifier" (ret)
7812 2 jsauermann
;--     load_rr_var ret = -2(FP), SP at -3 (16 bit)
7813
        MOVE    1(SP), RR
7814 7 jsauermann
;;;                                             } 22 Expression (variable name)
7815 2 jsauermann
;--     l << r
7816
        LSL     RR, #0x0004
7817 7 jsauermann
;;;                                           } 21 Expr l << r
7818 2 jsauermann
;--     move_rr_to_ll
7819
        MOVE    RR, LL
7820 7 jsauermann
;;;                                           { 21 Expression (variable name)
7821
;;;                                             expr_type = "identifier" (c)
7822 2 jsauermann
;--     load_rr_var c = -3(FP), SP at -3 (8 bit)
7823
        MOVE    0(SP), RS
7824 7 jsauermann
;;;                                           } 21 Expression (variable name)
7825 2 jsauermann
;--     l | r
7826
        OR      LL, RR
7827 7 jsauermann
;;;                                         } 20 Expr l | r
7828 2 jsauermann
;--     store_rr_var ret = -2(FP), SP at -3
7829
        MOVE    RR, 1(SP)
7830 7 jsauermann
;;;                                       } 19 Expr l = r
7831
;;;                                     } 18 ExpressionStatement
7832 2 jsauermann
L16_cont_58:
7833 7 jsauermann
;;;                                     { 18 Expr l != r
7834
;;;                                       { 19 TypeName (internal)
7835
;;;                                         { 20 TypeSpecifier (all)
7836
;;;                                           spec = int (80000)
7837
;;;                                         } 20 TypeSpecifier (all)
7838
;;;                                       } 19 TypeName (internal)
7839
;;;                                       { 19 Expr l = r
7840
;;;                                         { 20 TypeName
7841
;;;                                           { 21 TypeSpecifier (all)
7842
;;;                                             spec = char (20000)
7843
;;;                                           } 21 TypeSpecifier (all)
7844
;;;                                           { 21 List
7845
;;;                                             { 22 DeclItem
7846
;;;                                               what = DECL_NAME
7847
;;;                                               name = c
7848
;;;                                             } 22 DeclItem
7849
;;;                                           } 21 List
7850
;;;                                         } 20 TypeName
7851
;;;                                         { 20 Expr l(r)
7852
;;;                                           { 21 TypeName
7853
;;;                                             { 22 TypeSpecifier (all)
7854
;;;                                               spec = char (20000)
7855
;;;                                             } 22 TypeSpecifier (all)
7856
;;;                                             { 22 List
7857
;;;                                               { 23 DeclItem
7858
;;;                                                 what = DECL_NAME
7859
;;;                                                 name = getnibble
7860
;;;                                               } 23 DeclItem
7861
;;;                                             } 22 List
7862
;;;                                           } 21 TypeName
7863
;;;                                           { 21 ParameterDeclaration
7864
;;;                                             isEllipsis = false
7865
;;;                                             { 22 TypeName
7866
;;;                                               { 23 TypeSpecifier (all)
7867
;;;                                                 spec = char (20000)
7868
;;;                                               } 23 TypeSpecifier (all)
7869
;;;                                               { 23 List
7870
;;;                                                 { 24 DeclItem
7871
;;;                                                   what = DECL_NAME
7872
;;;                                                   name = echo
7873
;;;                                                 } 24 DeclItem
7874
;;;                                               } 23 List
7875
;;;                                             } 22 TypeName
7876
;;;                                           } 21 ParameterDeclaration
7877
;;;                                           { 21 Expression (variable name)
7878
;;;                                             expr_type = "identifier" (echo)
7879 2 jsauermann
;--     load_rr_var echo = 2(FP), SP at -3 (8 bit)
7880
        MOVE    5(SP), RS
7881 7 jsauermann
;;;                                           } 21 Expression (variable name)
7882 2 jsauermann
;--     push_rr (8 bit)
7883
        MOVE    R, -(SP)
7884
;--     push 1 bytes
7885
;--     call
7886
        CALL    Cgetnibble
7887
;--     pop 1 bytes
7888
        ADD     SP, #1
7889 7 jsauermann
;;;                                         } 20 Expr l(r)
7890 2 jsauermann
;--     store_rr_var c = -3(FP), SP at -3
7891
        MOVE    R, 0(SP)
7892 7 jsauermann
;;;                                       } 19 Expr l = r
7893 2 jsauermann
;--     l != r
7894
        SNE     RR, #0xFFFF
7895 7 jsauermann
;;;                                     } 18 Expr l != r
7896 2 jsauermann
;--     branch_true
7897
        JMP     RRNZ, L16_loop_58
7898
L16_brk_59:
7899 7 jsauermann
;;;                                   } 17 while Statement
7900
;;;                                   { 17 return Statement
7901
;;;                                     { 18 Expression (variable name)
7902
;;;                                       expr_type = "identifier" (ret)
7903 2 jsauermann
;--     load_rr_var ret = -2(FP), SP at -3 (16 bit)
7904
        MOVE    1(SP), RR
7905 7 jsauermann
;;;                                     } 18 Expression (variable name)
7906 2 jsauermann
;--     ret
7907 7 jsauermann
        ADD     SP, #3
7908
        RET
7909
;;;                                   } 17 return Statement
7910
;;;                                 } 16 List
7911 2 jsauermann
;--     pop 3 bytes
7912
        ADD     SP, #3
7913 7 jsauermann
;;;                               } 15 CompoundStatement
7914
;--     ret
7915 2 jsauermann
        RET
7916
;;; ------------------------------------;
7917 7 jsauermann
;;;                               { 15 FunctionDefinition
7918
;;;                                 { 16 TypeName
7919
;;;                                   { 17 TypeSpecifier (all)
7920
;;;                                     spec = void (10000)
7921
;;;                                   } 17 TypeSpecifier (all)
7922
;;;                                   { 17 List
7923
;;;                                     { 18 DeclItem
7924
;;;                                       what = DECL_NAME
7925
;;;                                       name = show_time
7926
;;;                                     } 18 DeclItem
7927
;;;                                   } 17 List
7928
;;;                                 } 16 TypeName
7929
;;;                                 { 16 List
7930
;;;                                   { 17 DeclItem
7931
;;;                                     what = DECL_NAME
7932
;;;                                     name = show_time
7933
;;;                                   } 17 DeclItem
7934
;;;                                   { 17 DeclItem
7935
;;;                                     what = DECL_FUN
7936
;;;                                   } 17 DeclItem
7937
;;;                                 } 16 List
7938 2 jsauermann
Cshow_time:
7939 7 jsauermann
;;;                                 { 16 CompoundStatement
7940
;;;                                   { 17 InitDeclarator
7941
;;;                                     { 18 List
7942
;;;                                       { 19 DeclItem
7943
;;;                                         what = DECL_NAME
7944
;;;                                         name = sl
7945
;;;                                       } 19 DeclItem
7946
;;;                                     } 18 List
7947 2 jsauermann
;--     push_zero 2 bytes
7948
        CLRW    -(SP)
7949 7 jsauermann
;;;                                   } 17 InitDeclarator
7950
;;;                                   { 17 InitDeclarator
7951
;;;                                     { 18 List
7952
;;;                                       { 19 DeclItem
7953
;;;                                         what = DECL_NAME
7954
;;;                                         name = sm
7955
;;;                                       } 19 DeclItem
7956
;;;                                     } 18 List
7957 2 jsauermann
;--     push_zero 2 bytes
7958
        CLRW    -(SP)
7959 7 jsauermann
;;;                                   } 17 InitDeclarator
7960
;;;                                   { 17 InitDeclarator
7961
;;;                                     { 18 List
7962
;;;                                       { 19 DeclItem
7963
;;;                                         what = DECL_NAME
7964
;;;                                         name = sh
7965
;;;                                       } 19 DeclItem
7966
;;;                                     } 18 List
7967 2 jsauermann
;--     push_zero 2 bytes
7968
        CLRW    -(SP)
7969 7 jsauermann
;;;                                   } 17 InitDeclarator
7970
;;;                                   { 17 List
7971
;;;                                     { 18 do while Statement
7972 2 jsauermann
L17_loop_60:
7973 7 jsauermann
;;;                                       { 19 CompoundStatement
7974
;;;                                         { 20 List
7975
;;;                                           { 21 ExpressionStatement
7976
;;;                                             { 22 Expr l = r
7977
;;;                                               { 23 TypeName
7978
;;;                                                 { 24 TypeSpecifier (all)
7979
;;;                                                   spec = unsigned char (22000)
7980
;;;                                                 } 24 TypeSpecifier (all)
7981
;;;                                                 { 24 List
7982
;;;                                                   { 25 DeclItem
7983
;;;                                                     what = DECL_NAME
7984
;;;                                                     name = seconds_changed
7985
;;;                                                   } 25 DeclItem
7986
;;;                                                 } 24 List
7987
;;;                                               } 23 TypeName
7988
;;;                                               { 23 NumericExpression (constant 0 = 0x0)
7989 2 jsauermann
;--     load_rr_constant
7990
        MOVE    #0x0000, RR
7991 7 jsauermann
;;;                                               } 23 NumericExpression (constant 0 = 0x0)
7992 2 jsauermann
;--     store_rr_var seconds_changed
7993
        MOVE    R, (Cseconds_changed)
7994 7 jsauermann
;;;                                             } 22 Expr l = r
7995
;;;                                           } 21 ExpressionStatement
7996
;;;                                           { 21 ExpressionStatement
7997
;;;                                             { 22 Expr l = r
7998
;;;                                               { 23 TypeName
7999
;;;                                                 { 24 TypeSpecifier (all)
8000
;;;                                                   spec = unsigned int (82000)
8001
;;;                                                 } 24 TypeSpecifier (all)
8002
;;;                                                 { 24 List
8003
;;;                                                   { 25 DeclItem
8004
;;;                                                     what = DECL_NAME
8005
;;;                                                     name = sl
8006
;;;                                                   } 25 DeclItem
8007
;;;                                                 } 24 List
8008
;;;                                               } 23 TypeName
8009
;;;                                               { 23 Expression (variable name)
8010
;;;                                                 expr_type = "identifier" (seconds_low)
8011 2 jsauermann
;--     load_rr_var seconds_low, (16 bit)
8012
        MOVE    (Cseconds_low), RR
8013 7 jsauermann
;;;                                               } 23 Expression (variable name)
8014 2 jsauermann
;--     store_rr_var sl = -2(FP), SP at -6
8015
        MOVE    RR, 4(SP)
8016 7 jsauermann
;;;                                             } 22 Expr l = r
8017
;;;                                           } 21 ExpressionStatement
8018
;;;                                           { 21 ExpressionStatement
8019
;;;                                             { 22 Expr l = r
8020
;;;                                               { 23 TypeName
8021
;;;                                                 { 24 TypeSpecifier (all)
8022
;;;                                                   spec = unsigned int (82000)
8023
;;;                                                 } 24 TypeSpecifier (all)
8024
;;;                                                 { 24 List
8025
;;;                                                   { 25 DeclItem
8026
;;;                                                     what = DECL_NAME
8027
;;;                                                     name = sm
8028
;;;                                                   } 25 DeclItem
8029
;;;                                                 } 24 List
8030
;;;                                               } 23 TypeName
8031
;;;                                               { 23 Expression (variable name)
8032
;;;                                                 expr_type = "identifier" (seconds_mid)
8033 2 jsauermann
;--     load_rr_var seconds_mid, (16 bit)
8034
        MOVE    (Cseconds_mid), RR
8035 7 jsauermann
;;;                                               } 23 Expression (variable name)
8036 2 jsauermann
;--     store_rr_var sm = -4(FP), SP at -6
8037
        MOVE    RR, 2(SP)
8038 7 jsauermann
;;;                                             } 22 Expr l = r
8039
;;;                                           } 21 ExpressionStatement
8040
;;;                                           { 21 ExpressionStatement
8041
;;;                                             { 22 Expr l = r
8042
;;;                                               { 23 TypeName
8043
;;;                                                 { 24 TypeSpecifier (all)
8044
;;;                                                   spec = unsigned int (82000)
8045
;;;                                                 } 24 TypeSpecifier (all)
8046
;;;                                                 { 24 List
8047
;;;                                                   { 25 DeclItem
8048
;;;                                                     what = DECL_NAME
8049
;;;                                                     name = sh
8050
;;;                                                   } 25 DeclItem
8051
;;;                                                 } 24 List
8052
;;;                                               } 23 TypeName
8053
;;;                                               { 23 Expression (variable name)
8054
;;;                                                 expr_type = "identifier" (seconds_high)
8055 2 jsauermann
;--     load_rr_var seconds_high, (16 bit)
8056
        MOVE    (Cseconds_high), RR
8057 7 jsauermann
;;;                                               } 23 Expression (variable name)
8058 2 jsauermann
;--     store_rr_var sh = -6(FP), SP at -6
8059
        MOVE    RR, 0(SP)
8060 7 jsauermann
;;;                                             } 22 Expr l = r
8061
;;;                                           } 21 ExpressionStatement
8062
;;;                                         } 20 List
8063
;--     pop 0 bytes
8064
;;;                                       } 19 CompoundStatement
8065 2 jsauermann
L17_cont_60:
8066 7 jsauermann
;;;                                       { 19 Expression (variable name)
8067
;;;                                         expr_type = "identifier" (seconds_changed)
8068 2 jsauermann
;--     load_rr_var seconds_changed, (8 bit)
8069
        MOVE    (Cseconds_changed), RU
8070 7 jsauermann
;;;                                       } 19 Expression (variable name)
8071 2 jsauermann
;--     branch_true
8072
        JMP     RRNZ, L17_loop_60
8073
L17_brk_61:
8074 7 jsauermann
;;;                                     } 18 do while Statement
8075
;;;                                     { 18 ExpressionStatement
8076
;;;                                       { 19 Expr l(r)
8077
;;;                                         { 20 TypeName
8078
;;;                                           { 21 TypeSpecifier (all)
8079
;;;                                             spec = int (80000)
8080
;;;                                           } 21 TypeSpecifier (all)
8081
;;;                                           { 21 List
8082
;;;                                             { 22 DeclItem
8083
;;;                                               what = DECL_NAME
8084
;;;                                               name = printf
8085
;;;                                             } 22 DeclItem
8086
;;;                                           } 21 List
8087
;;;                                         } 20 TypeName
8088
;;;                                         { 20 Expr (l , r)
8089
;;;                                           { 21 ParameterDeclaration
8090
;;;                                             isEllipsis = true
8091
;;;                                             { 22 TypeName
8092
;;;                                               { 23 TypeSpecifier (all)
8093
;;;                                                 spec = const char (20100)
8094
;;;                                               } 23 TypeSpecifier (all)
8095
;;;                                               { 23 List
8096
;;;                                                 { 24 DeclItem
8097
;;;                                                   what = DECL_POINTER
8098
;;;                                                   { 25 List
8099
;;;                                                     { 26 Ptr
8100
;;;                                                     } 26 Ptr
8101
;;;                                                   } 25 List
8102
;;;                                                 } 24 DeclItem
8103
;;;                                                 { 24 DeclItem
8104
;;;                                                   what = DECL_NAME
8105
;;;                                                   name = format
8106
;;;                                                 } 24 DeclItem
8107
;;;                                               } 23 List
8108
;;;                                             } 22 TypeName
8109
;;;                                           } 21 ParameterDeclaration
8110
;;;                                           { 21 Expression (variable name)
8111
;;;                                             expr_type = "identifier" (sl)
8112 2 jsauermann
;--     load_rr_var sl = -2(FP), SP at -6 (16 bit)
8113
        MOVE    4(SP), RR
8114 7 jsauermann
;;;                                           } 21 Expression (variable name)
8115 2 jsauermann
;--     push_rr (16 bit)
8116
        MOVE    RR, -(SP)
8117 7 jsauermann
;;;                                           { 21 Expr (l , r)
8118
;;;                                             { 22 ParameterDeclaration
8119
;;;                                               isEllipsis = true
8120
;;;                                               { 23 TypeName
8121
;;;                                                 { 24 TypeSpecifier (all)
8122
;;;                                                   spec = const char (20100)
8123
;;;                                                 } 24 TypeSpecifier (all)
8124
;;;                                                 { 24 List
8125
;;;                                                   { 25 DeclItem
8126
;;;                                                     what = DECL_POINTER
8127
;;;                                                     { 26 List
8128
;;;                                                       { 27 Ptr
8129
;;;                                                       } 27 Ptr
8130
;;;                                                     } 26 List
8131
;;;                                                   } 25 DeclItem
8132
;;;                                                   { 25 DeclItem
8133
;;;                                                     what = DECL_NAME
8134
;;;                                                     name = format
8135
;;;                                                   } 25 DeclItem
8136
;;;                                                 } 24 List
8137
;;;                                               } 23 TypeName
8138
;;;                                             } 22 ParameterDeclaration
8139
;;;                                             { 22 Expression (variable name)
8140
;;;                                               expr_type = "identifier" (sm)
8141 2 jsauermann
;--     load_rr_var sm = -4(FP), SP at -8 (16 bit)
8142
        MOVE    4(SP), RR
8143 7 jsauermann
;;;                                             } 22 Expression (variable name)
8144 2 jsauermann
;--     push_rr (16 bit)
8145
        MOVE    RR, -(SP)
8146 7 jsauermann
;;;                                             { 22 Expr (l , r)
8147
;;;                                               { 23 ParameterDeclaration
8148
;;;                                                 isEllipsis = true
8149
;;;                                                 { 24 TypeName
8150
;;;                                                   { 25 TypeSpecifier (all)
8151
;;;                                                     spec = const char (20100)
8152
;;;                                                   } 25 TypeSpecifier (all)
8153
;;;                                                   { 25 List
8154
;;;                                                     { 26 DeclItem
8155
;;;                                                       what = DECL_POINTER
8156
;;;                                                       { 27 List
8157
;;;                                                         { 28 Ptr
8158
;;;                                                         } 28 Ptr
8159
;;;                                                       } 27 List
8160
;;;                                                     } 26 DeclItem
8161
;;;                                                     { 26 DeclItem
8162
;;;                                                       what = DECL_NAME
8163
;;;                                                       name = format
8164
;;;                                                     } 26 DeclItem
8165
;;;                                                   } 25 List
8166
;;;                                                 } 24 TypeName
8167
;;;                                               } 23 ParameterDeclaration
8168
;;;                                               { 23 Expression (variable name)
8169
;;;                                                 expr_type = "identifier" (sh)
8170 2 jsauermann
;--     load_rr_var sh = -6(FP), SP at -10 (16 bit)
8171
        MOVE    4(SP), RR
8172 7 jsauermann
;;;                                               } 23 Expression (variable name)
8173 2 jsauermann
;--     push_rr (16 bit)
8174
        MOVE    RR, -(SP)
8175 7 jsauermann
;;;                                               { 23 ParameterDeclaration
8176
;;;                                                 isEllipsis = true
8177
;;;                                                 { 24 TypeName
8178
;;;                                                   { 25 TypeSpecifier (all)
8179
;;;                                                     spec = const char (20100)
8180
;;;                                                   } 25 TypeSpecifier (all)
8181
;;;                                                   { 25 List
8182
;;;                                                     { 26 DeclItem
8183
;;;                                                       what = DECL_POINTER
8184
;;;                                                       { 27 List
8185
;;;                                                         { 28 Ptr
8186
;;;                                                         } 28 Ptr
8187
;;;                                                       } 27 List
8188
;;;                                                     } 26 DeclItem
8189
;;;                                                     { 26 DeclItem
8190
;;;                                                       what = DECL_NAME
8191
;;;                                                       name = format
8192
;;;                                                     } 26 DeclItem
8193
;;;                                                   } 25 List
8194
;;;                                                 } 24 TypeName
8195
;;;                                               } 23 ParameterDeclaration
8196
;;;                                               { 23 StringExpression
8197 2 jsauermann
;--     load_rr_string
8198
        MOVE    #Cstr_28, RR
8199 7 jsauermann
;;;                                               } 23 StringExpression
8200 2 jsauermann
;--     push_rr (16 bit)
8201
        MOVE    RR, -(SP)
8202 7 jsauermann
;;;                                             } 22 Expr (l , r)
8203
;;;                                           } 21 Expr (l , r)
8204
;;;                                         } 20 Expr (l , r)
8205 2 jsauermann
;--     push 2 bytes
8206
;--     call
8207
        CALL    Cprintf
8208
;--     pop 8 bytes
8209
        ADD     SP, #8
8210 7 jsauermann
;;;                                       } 19 Expr l(r)
8211
;;;                                     } 18 ExpressionStatement
8212
;;;                                   } 17 List
8213 2 jsauermann
;--     pop 6 bytes
8214
        ADD     SP, #6
8215 7 jsauermann
;;;                                 } 16 CompoundStatement
8216
;--     ret
8217 2 jsauermann
        RET
8218
;;; ------------------------------------;
8219 7 jsauermann
;;;                                 { 16 FunctionDefinition
8220
;;;                                   { 17 TypeName
8221
;;;                                     { 18 TypeSpecifier (all)
8222
;;;                                       spec = void (10000)
8223
;;;                                     } 18 TypeSpecifier (all)
8224
;;;                                     { 18 List
8225
;;;                                       { 19 DeclItem
8226
;;;                                         what = DECL_NAME
8227
;;;                                         name = display_memory
8228
;;;                                       } 19 DeclItem
8229
;;;                                     } 18 List
8230
;;;                                   } 17 TypeName
8231
;;;                                   { 17 List
8232
;;;                                     { 18 DeclItem
8233
;;;                                       what = DECL_NAME
8234
;;;                                       name = display_memory
8235
;;;                                     } 18 DeclItem
8236
;;;                                     { 18 DeclItem
8237
;;;                                       what = DECL_FUN
8238
;;;                                       { 19 List
8239
;;;                                         { 20 ParameterDeclaration
8240
;;;                                           isEllipsis = false
8241
;;;                                           { 21 TypeName
8242
;;;                                             { 22 TypeSpecifier (all)
8243
;;;                                               spec = unsigned char (22000)
8244
;;;                                             } 22 TypeSpecifier (all)
8245
;;;                                             { 22 List
8246
;;;                                               { 23 DeclItem
8247
;;;                                                 what = DECL_POINTER
8248
;;;                                                 { 24 List
8249
;;;                                                   { 25 Ptr
8250
;;;                                                   } 25 Ptr
8251
;;;                                                 } 24 List
8252
;;;                                               } 23 DeclItem
8253
;;;                                               { 23 DeclItem
8254
;;;                                                 what = DECL_NAME
8255
;;;                                                 name = address
8256
;;;                                               } 23 DeclItem
8257
;;;                                             } 22 List
8258
;;;                                           } 21 TypeName
8259
;;;                                         } 20 ParameterDeclaration
8260
;;;                                       } 19 List
8261
;;;                                     } 18 DeclItem
8262
;;;                                   } 17 List
8263 2 jsauermann
Cdisplay_memory:
8264 7 jsauermann
;;;                                   { 17 CompoundStatement
8265
;;;                                     { 18 InitDeclarator
8266
;;;                                       { 19 List
8267
;;;                                         { 20 DeclItem
8268
;;;                                           what = DECL_NAME
8269
;;;                                           name = c
8270
;;;                                         } 20 DeclItem
8271
;;;                                       } 19 List
8272 2 jsauermann
;--     push_zero 1 bytes
8273
        CLRB    -(SP)
8274 7 jsauermann
;;;                                     } 18 InitDeclarator
8275
;;;                                     { 18 InitDeclarator
8276
;;;                                       { 19 List
8277
;;;                                         { 20 DeclItem
8278
;;;                                           what = DECL_NAME
8279
;;;                                           name = row
8280
;;;                                         } 20 DeclItem
8281
;;;                                       } 19 List
8282 2 jsauermann
;--     push_zero 2 bytes
8283
        CLRW    -(SP)
8284 7 jsauermann
;;;                                     } 18 InitDeclarator
8285
;;;                                     { 18 InitDeclarator
8286
;;;                                       { 19 List
8287
;;;                                         { 20 DeclItem
8288
;;;                                           what = DECL_NAME
8289
;;;                                           name = col
8290
;;;                                         } 20 DeclItem
8291
;;;                                       } 19 List
8292 2 jsauermann
;--     push_zero 2 bytes
8293
        CLRW    -(SP)
8294 7 jsauermann
;;;                                     } 18 InitDeclarator
8295
;;;                                     { 18 List
8296
;;;                                       { 19 for Statement
8297
;;;                                         { 20 ExpressionStatement
8298
;;;                                           { 21 Expr l = r
8299
;;;                                             { 22 TypeName
8300
;;;                                               { 23 TypeSpecifier (all)
8301
;;;                                                 spec = int (80000)
8302
;;;                                               } 23 TypeSpecifier (all)
8303
;;;                                               { 23 List
8304
;;;                                                 { 24 DeclItem
8305
;;;                                                   what = DECL_NAME
8306
;;;                                                   name = row
8307
;;;                                                 } 24 DeclItem
8308
;;;                                               } 23 List
8309
;;;                                             } 22 TypeName
8310
;;;                                             { 22 NumericExpression (constant 0 = 0x0)
8311 2 jsauermann
;--     load_rr_constant
8312
        MOVE    #0x0000, RR
8313 7 jsauermann
;;;                                             } 22 NumericExpression (constant 0 = 0x0)
8314 2 jsauermann
;--     store_rr_var row = -3(FP), SP at -5
8315
        MOVE    RR, 2(SP)
8316 7 jsauermann
;;;                                           } 21 Expr l = r
8317
;;;                                         } 20 ExpressionStatement
8318 2 jsauermann
;--     branch
8319
        JMP     L18_tst_62
8320
L18_loop_62:
8321 7 jsauermann
;;;                                         { 20 CompoundStatement
8322
;;;                                           { 21 List
8323
;;;                                             { 22 ExpressionStatement
8324
;;;                                               { 23 Expr l(r)
8325
;;;                                                 { 24 TypeName
8326
;;;                                                   { 25 TypeSpecifier (all)
8327
;;;                                                     spec = int (80000)
8328
;;;                                                   } 25 TypeSpecifier (all)
8329
;;;                                                   { 25 List
8330
;;;                                                     { 26 DeclItem
8331
;;;                                                       what = DECL_NAME
8332
;;;                                                       name = printf
8333
;;;                                                     } 26 DeclItem
8334
;;;                                                   } 25 List
8335
;;;                                                 } 24 TypeName
8336
;;;                                                 { 24 Expr (l , r)
8337
;;;                                                   { 25 ParameterDeclaration
8338
;;;                                                     isEllipsis = true
8339
;;;                                                     { 26 TypeName
8340
;;;                                                       { 27 TypeSpecifier (all)
8341
;;;                                                         spec = const char (20100)
8342
;;;                                                       } 27 TypeSpecifier (all)
8343
;;;                                                       { 27 List
8344
;;;                                                         { 28 DeclItem
8345
;;;                                                           what = DECL_POINTER
8346
;;;                                                           { 29 List
8347
;;;                                                             { 30 Ptr
8348
;;;                                                             } 30 Ptr
8349
;;;                                                           } 29 List
8350
;;;                                                         } 28 DeclItem
8351
;;;                                                         { 28 DeclItem
8352
;;;                                                           what = DECL_NAME
8353
;;;                                                           name = format
8354
;;;                                                         } 28 DeclItem
8355
;;;                                                       } 27 List
8356
;;;                                                     } 26 TypeName
8357
;;;                                                   } 25 ParameterDeclaration
8358
;;;                                                   { 25 Expression (variable name)
8359
;;;                                                     expr_type = "identifier" (address)
8360 2 jsauermann
;--     load_rr_var address = 2(FP), SP at -5 (16 bit)
8361
        MOVE    7(SP), RR
8362 7 jsauermann
;;;                                                   } 25 Expression (variable name)
8363 2 jsauermann
;--     push_rr (16 bit)
8364
        MOVE    RR, -(SP)
8365 7 jsauermann
;;;                                                   { 25 ParameterDeclaration
8366
;;;                                                     isEllipsis = true
8367
;;;                                                     { 26 TypeName
8368
;;;                                                       { 27 TypeSpecifier (all)
8369
;;;                                                         spec = const char (20100)
8370
;;;                                                       } 27 TypeSpecifier (all)
8371
;;;                                                       { 27 List
8372
;;;                                                         { 28 DeclItem
8373
;;;                                                           what = DECL_POINTER
8374
;;;                                                           { 29 List
8375
;;;                                                             { 30 Ptr
8376
;;;                                                             } 30 Ptr
8377
;;;                                                           } 29 List
8378
;;;                                                         } 28 DeclItem
8379
;;;                                                         { 28 DeclItem
8380
;;;                                                           what = DECL_NAME
8381
;;;                                                           name = format
8382
;;;                                                         } 28 DeclItem
8383
;;;                                                       } 27 List
8384
;;;                                                     } 26 TypeName
8385
;;;                                                   } 25 ParameterDeclaration
8386
;;;                                                   { 25 StringExpression
8387 2 jsauermann
;--     load_rr_string
8388
        MOVE    #Cstr_29, RR
8389 7 jsauermann
;;;                                                   } 25 StringExpression
8390 2 jsauermann
;--     push_rr (16 bit)
8391
        MOVE    RR, -(SP)
8392 7 jsauermann
;;;                                                 } 24 Expr (l , r)
8393 2 jsauermann
;--     push 2 bytes
8394
;--     call
8395
        CALL    Cprintf
8396
;--     pop 4 bytes
8397
        ADD     SP, #4
8398 7 jsauermann
;;;                                               } 23 Expr l(r)
8399
;;;                                             } 22 ExpressionStatement
8400
;;;                                             { 22 for Statement
8401
;;;                                               { 23 ExpressionStatement
8402
;;;                                                 { 24 Expr l = r
8403
;;;                                                   { 25 TypeName
8404
;;;                                                     { 26 TypeSpecifier (all)
8405
;;;                                                       spec = int (80000)
8406
;;;                                                     } 26 TypeSpecifier (all)
8407
;;;                                                     { 26 List
8408
;;;                                                       { 27 DeclItem
8409
;;;                                                         what = DECL_NAME
8410
;;;                                                         name = col
8411
;;;                                                       } 27 DeclItem
8412
;;;                                                     } 26 List
8413
;;;                                                   } 25 TypeName
8414
;;;                                                   { 25 NumericExpression (constant 0 = 0x0)
8415 2 jsauermann
;--     load_rr_constant
8416
        MOVE    #0x0000, RR
8417 7 jsauermann
;;;                                                   } 25 NumericExpression (constant 0 = 0x0)
8418 2 jsauermann
;--     store_rr_var col = -5(FP), SP at -5
8419
        MOVE    RR, 0(SP)
8420 7 jsauermann
;;;                                                 } 24 Expr l = r
8421
;;;                                               } 23 ExpressionStatement
8422 2 jsauermann
;--     branch
8423
        JMP     L18_tst_64
8424
L18_loop_64:
8425 7 jsauermann
;;;                                               { 23 ExpressionStatement
8426
;;;                                                 { 24 Expr l(r)
8427
;;;                                                   { 25 TypeName
8428
;;;                                                     { 26 TypeSpecifier (all)
8429
;;;                                                       spec = int (80000)
8430
;;;                                                     } 26 TypeSpecifier (all)
8431
;;;                                                     { 26 List
8432
;;;                                                       { 27 DeclItem
8433
;;;                                                         what = DECL_NAME
8434
;;;                                                         name = printf
8435
;;;                                                       } 27 DeclItem
8436
;;;                                                     } 26 List
8437
;;;                                                   } 25 TypeName
8438
;;;                                                   { 25 Expr (l , r)
8439
;;;                                                     { 26 ParameterDeclaration
8440
;;;                                                       isEllipsis = true
8441
;;;                                                       { 27 TypeName
8442
;;;                                                         { 28 TypeSpecifier (all)
8443
;;;                                                           spec = const char (20100)
8444
;;;                                                         } 28 TypeSpecifier (all)
8445
;;;                                                         { 28 List
8446
;;;                                                           { 29 DeclItem
8447
;;;                                                             what = DECL_POINTER
8448
;;;                                                             { 30 List
8449
;;;                                                               { 31 Ptr
8450
;;;                                                               } 31 Ptr
8451
;;;                                                             } 30 List
8452
;;;                                                           } 29 DeclItem
8453
;;;                                                           { 29 DeclItem
8454
;;;                                                             what = DECL_NAME
8455
;;;                                                             name = format
8456
;;;                                                           } 29 DeclItem
8457
;;;                                                         } 28 List
8458
;;;                                                       } 27 TypeName
8459
;;;                                                     } 26 ParameterDeclaration
8460
;;;                                                     { 26 Expr * r
8461
;;;                                                       { 27 Expr l - r
8462
;;;                                                         { 28 Expr ++r
8463
;;;                                                           { 29 Expression (variable name)
8464
;;;                                                             expr_type = "identifier" (address)
8465 2 jsauermann
;--     load_rr_var address = 2(FP), SP at -5 (16 bit)
8466
        MOVE    7(SP), RR
8467 7 jsauermann
;;;                                                           } 29 Expression (variable name)
8468 2 jsauermann
;--     ++
8469
        ADD     RR, #0x0001
8470
;--     store_rr_var address = 2(FP), SP at -5
8471
        MOVE    RR, 7(SP)
8472 7 jsauermann
;;;                                                         } 28 Expr ++r
8473 2 jsauermann
;--     l - r
8474
        SUB     RR, #0x0001
8475 7 jsauermann
;;;                                                       } 27 Expr l - r
8476 2 jsauermann
;--     content
8477
        MOVE    (RR), RU
8478 7 jsauermann
;;;                                                     } 26 Expr * r
8479 2 jsauermann
;--     push_rr (16 bit)
8480
        MOVE    RR, -(SP)
8481 7 jsauermann
;;;                                                     { 26 ParameterDeclaration
8482
;;;                                                       isEllipsis = true
8483
;;;                                                       { 27 TypeName
8484
;;;                                                         { 28 TypeSpecifier (all)
8485
;;;                                                           spec = const char (20100)
8486
;;;                                                         } 28 TypeSpecifier (all)
8487
;;;                                                         { 28 List
8488
;;;                                                           { 29 DeclItem
8489
;;;                                                             what = DECL_POINTER
8490
;;;                                                             { 30 List
8491
;;;                                                               { 31 Ptr
8492
;;;                                                               } 31 Ptr
8493
;;;                                                             } 30 List
8494
;;;                                                           } 29 DeclItem
8495
;;;                                                           { 29 DeclItem
8496
;;;                                                             what = DECL_NAME
8497
;;;                                                             name = format
8498
;;;                                                           } 29 DeclItem
8499
;;;                                                         } 28 List
8500
;;;                                                       } 27 TypeName
8501
;;;                                                     } 26 ParameterDeclaration
8502
;;;                                                     { 26 StringExpression
8503 2 jsauermann
;--     load_rr_string
8504
        MOVE    #Cstr_30, RR
8505 7 jsauermann
;;;                                                     } 26 StringExpression
8506 2 jsauermann
;--     push_rr (16 bit)
8507
        MOVE    RR, -(SP)
8508 7 jsauermann
;;;                                                   } 25 Expr (l , r)
8509 2 jsauermann
;--     push 2 bytes
8510
;--     call
8511
        CALL    Cprintf
8512
;--     pop 4 bytes
8513
        ADD     SP, #4
8514 7 jsauermann
;;;                                                 } 24 Expr l(r)
8515
;;;                                               } 23 ExpressionStatement
8516 2 jsauermann
L18_cont_64:
8517 7 jsauermann
;;;                                               { 23 Expr l - r
8518
;;;                                                 { 24 Expr ++r
8519
;;;                                                   { 25 Expression (variable name)
8520
;;;                                                     expr_type = "identifier" (col)
8521 2 jsauermann
;--     load_rr_var col = -5(FP), SP at -5 (16 bit)
8522
        MOVE    0(SP), RR
8523 7 jsauermann
;;;                                                   } 25 Expression (variable name)
8524 2 jsauermann
;--     ++
8525
        ADD     RR, #0x0001
8526
;--     store_rr_var col = -5(FP), SP at -5
8527
        MOVE    RR, 0(SP)
8528 7 jsauermann
;;;                                                 } 24 Expr ++r
8529 2 jsauermann
;--     l - r
8530
        SUB     RR, #0x0001
8531 7 jsauermann
;;;                                               } 23 Expr l - r
8532 2 jsauermann
L18_tst_64:
8533 7 jsauermann
;;;                                               { 23 Expr l < r
8534
;;;                                                 { 24 TypeName (internal)
8535
;;;                                                   { 25 TypeSpecifier (all)
8536
;;;                                                     spec = int (80000)
8537
;;;                                                   } 25 TypeSpecifier (all)
8538
;;;                                                 } 24 TypeName (internal)
8539
;;;                                                 { 24 Expression (variable name)
8540
;;;                                                   expr_type = "identifier" (col)
8541 2 jsauermann
;--     load_rr_var col = -5(FP), SP at -5 (16 bit)
8542
        MOVE    0(SP), RR
8543 7 jsauermann
;;;                                                 } 24 Expression (variable name)
8544 2 jsauermann
;--     l < r
8545
        SLT     RR, #0x0010
8546 7 jsauermann
;;;                                               } 23 Expr l < r
8547 2 jsauermann
;--     branch_true
8548
        JMP     RRNZ, L18_loop_64
8549
L18_brk_65:
8550 7 jsauermann
;;;                                             } 22 for Statement
8551
;;;                                             { 22 ExpressionStatement
8552
;;;                                               { 23 Expr l -= r
8553
;;;                                                 { 24 TypeName
8554
;;;                                                   { 25 TypeSpecifier (all)
8555
;;;                                                     spec = unsigned char (22000)
8556
;;;                                                   } 25 TypeSpecifier (all)
8557
;;;                                                   { 25 List
8558
;;;                                                     { 26 DeclItem
8559
;;;                                                       what = DECL_POINTER
8560
;;;                                                       { 27 List
8561
;;;                                                         { 28 Ptr
8562
;;;                                                         } 28 Ptr
8563
;;;                                                       } 27 List
8564
;;;                                                     } 26 DeclItem
8565
;;;                                                     { 26 DeclItem
8566
;;;                                                       what = DECL_NAME
8567
;;;                                                       name = address
8568
;;;                                                     } 26 DeclItem
8569
;;;                                                   } 25 List
8570
;;;                                                 } 24 TypeName
8571
;;;                                                 { 24 Expr l - r
8572
;;;                                                   { 25 Expression (variable name)
8573
;;;                                                     expr_type = "identifier" (address)
8574 2 jsauermann
;--     load_rr_var address = 2(FP), SP at -5 (16 bit)
8575
        MOVE    7(SP), RR
8576 7 jsauermann
;;;                                                   } 25 Expression (variable name)
8577 2 jsauermann
;--     l - r
8578
        SUB     RR, #0x0010
8579 7 jsauermann
;;;                                                 } 24 Expr l - r
8580 2 jsauermann
;--     store_rr_var address = 2(FP), SP at -5
8581
        MOVE    RR, 7(SP)
8582 7 jsauermann
;;;                                               } 23 Expr l -= r
8583
;;;                                             } 22 ExpressionStatement
8584
;;;                                             { 22 ExpressionStatement
8585
;;;                                               { 23 Expr l(r)
8586
;;;                                                 { 24 TypeName
8587
;;;                                                   { 25 TypeSpecifier (all)
8588
;;;                                                     spec = int (80000)
8589
;;;                                                   } 25 TypeSpecifier (all)
8590
;;;                                                   { 25 List
8591
;;;                                                     { 26 DeclItem
8592
;;;                                                       what = DECL_NAME
8593
;;;                                                       name = printf
8594
;;;                                                     } 26 DeclItem
8595
;;;                                                   } 25 List
8596
;;;                                                 } 24 TypeName
8597
;;;                                                 { 24 ParameterDeclaration
8598
;;;                                                   isEllipsis = true
8599
;;;                                                   { 25 TypeName
8600
;;;                                                     { 26 TypeSpecifier (all)
8601
;;;                                                       spec = const char (20100)
8602
;;;                                                     } 26 TypeSpecifier (all)
8603
;;;                                                     { 26 List
8604
;;;                                                       { 27 DeclItem
8605
;;;                                                         what = DECL_POINTER
8606
;;;                                                         { 28 List
8607
;;;                                                           { 29 Ptr
8608
;;;                                                           } 29 Ptr
8609
;;;                                                         } 28 List
8610
;;;                                                       } 27 DeclItem
8611
;;;                                                       { 27 DeclItem
8612
;;;                                                         what = DECL_NAME
8613
;;;                                                         name = format
8614
;;;                                                       } 27 DeclItem
8615
;;;                                                     } 26 List
8616
;;;                                                   } 25 TypeName
8617
;;;                                                 } 24 ParameterDeclaration
8618
;;;                                                 { 24 StringExpression
8619 2 jsauermann
;--     load_rr_string
8620
        MOVE    #Cstr_31, RR
8621 7 jsauermann
;;;                                                 } 24 StringExpression
8622 2 jsauermann
;--     push_rr (16 bit)
8623
        MOVE    RR, -(SP)
8624
;--     push 2 bytes
8625
;--     call
8626
        CALL    Cprintf
8627
;--     pop 2 bytes
8628
        ADD     SP, #2
8629 7 jsauermann
;;;                                               } 23 Expr l(r)
8630
;;;                                             } 22 ExpressionStatement
8631
;;;                                             { 22 for Statement
8632
;;;                                               { 23 ExpressionStatement
8633
;;;                                                 { 24 Expr l = r
8634
;;;                                                   { 25 TypeName
8635
;;;                                                     { 26 TypeSpecifier (all)
8636
;;;                                                       spec = int (80000)
8637
;;;                                                     } 26 TypeSpecifier (all)
8638
;;;                                                     { 26 List
8639
;;;                                                       { 27 DeclItem
8640
;;;                                                         what = DECL_NAME
8641
;;;                                                         name = col
8642
;;;                                                       } 27 DeclItem
8643
;;;                                                     } 26 List
8644
;;;                                                   } 25 TypeName
8645
;;;                                                   { 25 NumericExpression (constant 0 = 0x0)
8646 2 jsauermann
;--     load_rr_constant
8647
        MOVE    #0x0000, RR
8648 7 jsauermann
;;;                                                   } 25 NumericExpression (constant 0 = 0x0)
8649 2 jsauermann
;--     store_rr_var col = -5(FP), SP at -5
8650
        MOVE    RR, 0(SP)
8651 7 jsauermann
;;;                                                 } 24 Expr l = r
8652
;;;                                               } 23 ExpressionStatement
8653 2 jsauermann
;--     branch
8654
        JMP     L18_tst_66
8655
L18_loop_66:
8656 7 jsauermann
;;;                                               { 23 CompoundStatement
8657
;;;                                                 { 24 List
8658
;;;                                                   { 25 ExpressionStatement
8659
;;;                                                     { 26 Expr l = r
8660
;;;                                                       { 27 TypeName
8661
;;;                                                         { 28 TypeSpecifier (all)
8662
;;;                                                           spec = char (20000)
8663
;;;                                                         } 28 TypeSpecifier (all)
8664
;;;                                                         { 28 List
8665
;;;                                                           { 29 DeclItem
8666
;;;                                                             what = DECL_NAME
8667
;;;                                                             name = c
8668
;;;                                                           } 29 DeclItem
8669
;;;                                                         } 28 List
8670
;;;                                                       } 27 TypeName
8671
;;;                                                       { 27 Expr * r
8672
;;;                                                         { 28 Expr l - r
8673
;;;                                                           { 29 Expr ++r
8674
;;;                                                             { 30 Expression (variable name)
8675
;;;                                                               expr_type = "identifier" (address)
8676 2 jsauermann
;--     load_rr_var address = 2(FP), SP at -5 (16 bit)
8677
        MOVE    7(SP), RR
8678 7 jsauermann
;;;                                                             } 30 Expression (variable name)
8679 2 jsauermann
;--     ++
8680
        ADD     RR, #0x0001
8681
;--     store_rr_var address = 2(FP), SP at -5
8682
        MOVE    RR, 7(SP)
8683 7 jsauermann
;;;                                                           } 29 Expr ++r
8684 2 jsauermann
;--     l - r
8685
        SUB     RR, #0x0001
8686 7 jsauermann
;;;                                                         } 28 Expr l - r
8687 2 jsauermann
;--     content
8688
        MOVE    (RR), RU
8689 7 jsauermann
;;;                                                       } 27 Expr * r
8690 2 jsauermann
;--     store_rr_var c = -1(FP), SP at -5
8691
        MOVE    R, 4(SP)
8692 7 jsauermann
;;;                                                     } 26 Expr l = r
8693
;;;                                                   } 25 ExpressionStatement
8694
;;;                                                   { 25 IfElseStatement
8695
;;;                                                     { 26 Expr l < r
8696
;;;                                                       { 27 TypeName (internal)
8697
;;;                                                         { 28 TypeSpecifier (all)
8698
;;;                                                           spec = int (80000)
8699
;;;                                                         } 28 TypeSpecifier (all)
8700
;;;                                                       } 27 TypeName (internal)
8701
;;;                                                       { 27 Expression (variable name)
8702
;;;                                                         expr_type = "identifier" (c)
8703 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -5 (8 bit)
8704
        MOVE    4(SP), RS
8705 7 jsauermann
;;;                                                       } 27 Expression (variable name)
8706 2 jsauermann
;--     l < r
8707
        SLT     RR, #0x0020
8708 7 jsauermann
;;;                                                     } 26 Expr l < r
8709 2 jsauermann
;--     branch_false
8710
        JMP     RRZ, L18_else_68
8711 7 jsauermann
;;;                                                     { 26 ExpressionStatement
8712
;;;                                                       { 27 Expr l(r)
8713
;;;                                                         { 28 TypeName
8714
;;;                                                           { 29 TypeSpecifier (all)
8715
;;;                                                             spec = int (80000)
8716
;;;                                                           } 29 TypeSpecifier (all)
8717
;;;                                                           { 29 List
8718
;;;                                                             { 30 DeclItem
8719
;;;                                                               what = DECL_NAME
8720
;;;                                                               name = putchr
8721
;;;                                                             } 30 DeclItem
8722
;;;                                                           } 29 List
8723
;;;                                                         } 28 TypeName
8724
;;;                                                         { 28 ParameterDeclaration
8725
;;;                                                           isEllipsis = false
8726
;;;                                                           { 29 TypeName
8727
;;;                                                             { 30 TypeSpecifier (all)
8728
;;;                                                               spec = char (20000)
8729
;;;                                                             } 30 TypeSpecifier (all)
8730
;;;                                                             { 30 List
8731
;;;                                                               { 31 DeclItem
8732
;;;                                                                 what = DECL_NAME
8733
;;;                                                                 name = c
8734
;;;                                                               } 31 DeclItem
8735
;;;                                                             } 30 List
8736
;;;                                                           } 29 TypeName
8737
;;;                                                         } 28 ParameterDeclaration
8738
;;;                                                         { 28 NumericExpression (constant 46 = 0x2E)
8739 2 jsauermann
;--     load_rr_constant
8740
        MOVE    #0x002E, RR
8741 7 jsauermann
;;;                                                         } 28 NumericExpression (constant 46 = 0x2E)
8742 2 jsauermann
;--     push_rr (8 bit)
8743
        MOVE    R, -(SP)
8744
;--     push 2 bytes
8745
;--     call
8746
        CALL    Cputchr
8747
;--     pop 1 bytes
8748
        ADD     SP, #1
8749 7 jsauermann
;;;                                                       } 27 Expr l(r)
8750
;;;                                                     } 26 ExpressionStatement
8751 2 jsauermann
;--     branch
8752
        JMP     L18_endif_68
8753
L18_else_68:
8754 7 jsauermann
;;;                                                     { 26 IfElseStatement
8755
;;;                                                       { 27 Expr l < r
8756
;;;                                                         { 28 TypeName (internal)
8757
;;;                                                           { 29 TypeSpecifier (all)
8758
;;;                                                             spec = int (80000)
8759
;;;                                                           } 29 TypeSpecifier (all)
8760
;;;                                                         } 28 TypeName (internal)
8761
;;;                                                         { 28 Expression (variable name)
8762
;;;                                                           expr_type = "identifier" (c)
8763 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -5 (8 bit)
8764
        MOVE    4(SP), RS
8765 7 jsauermann
;;;                                                         } 28 Expression (variable name)
8766 2 jsauermann
;--     l < r
8767
        SLT     RR, #0x007F
8768 7 jsauermann
;;;                                                       } 27 Expr l < r
8769 2 jsauermann
;--     branch_false
8770
        JMP     RRZ, L18_else_69
8771 7 jsauermann
;;;                                                       { 27 ExpressionStatement
8772
;;;                                                         { 28 Expr l(r)
8773
;;;                                                           { 29 TypeName
8774
;;;                                                             { 30 TypeSpecifier (all)
8775
;;;                                                               spec = int (80000)
8776
;;;                                                             } 30 TypeSpecifier (all)
8777
;;;                                                             { 30 List
8778
;;;                                                               { 31 DeclItem
8779
;;;                                                                 what = DECL_NAME
8780
;;;                                                                 name = putchr
8781
;;;                                                               } 31 DeclItem
8782
;;;                                                             } 30 List
8783
;;;                                                           } 29 TypeName
8784
;;;                                                           { 29 ParameterDeclaration
8785
;;;                                                             isEllipsis = false
8786
;;;                                                             { 30 TypeName
8787
;;;                                                               { 31 TypeSpecifier (all)
8788
;;;                                                                 spec = char (20000)
8789
;;;                                                               } 31 TypeSpecifier (all)
8790
;;;                                                               { 31 List
8791
;;;                                                                 { 32 DeclItem
8792
;;;                                                                   what = DECL_NAME
8793
;;;                                                                   name = c
8794
;;;                                                                 } 32 DeclItem
8795
;;;                                                               } 31 List
8796
;;;                                                             } 30 TypeName
8797
;;;                                                           } 29 ParameterDeclaration
8798
;;;                                                           { 29 Expression (variable name)
8799
;;;                                                             expr_type = "identifier" (c)
8800 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -5 (8 bit)
8801
        MOVE    4(SP), RS
8802 7 jsauermann
;;;                                                           } 29 Expression (variable name)
8803 2 jsauermann
;--     push_rr (8 bit)
8804
        MOVE    R, -(SP)
8805
;--     push 2 bytes
8806
;--     call
8807
        CALL    Cputchr
8808
;--     pop 1 bytes
8809
        ADD     SP, #1
8810 7 jsauermann
;;;                                                         } 28 Expr l(r)
8811
;;;                                                       } 27 ExpressionStatement
8812 2 jsauermann
;--     branch
8813
        JMP     L18_endif_69
8814
L18_else_69:
8815 7 jsauermann
;;;                                                       { 27 ExpressionStatement
8816
;;;                                                         { 28 Expr l(r)
8817
;;;                                                           { 29 TypeName
8818
;;;                                                             { 30 TypeSpecifier (all)
8819
;;;                                                               spec = int (80000)
8820
;;;                                                             } 30 TypeSpecifier (all)
8821
;;;                                                             { 30 List
8822
;;;                                                               { 31 DeclItem
8823
;;;                                                                 what = DECL_NAME
8824
;;;                                                                 name = putchr
8825
;;;                                                               } 31 DeclItem
8826
;;;                                                             } 30 List
8827
;;;                                                           } 29 TypeName
8828
;;;                                                           { 29 ParameterDeclaration
8829
;;;                                                             isEllipsis = false
8830
;;;                                                             { 30 TypeName
8831
;;;                                                               { 31 TypeSpecifier (all)
8832
;;;                                                                 spec = char (20000)
8833
;;;                                                               } 31 TypeSpecifier (all)
8834
;;;                                                               { 31 List
8835
;;;                                                                 { 32 DeclItem
8836
;;;                                                                   what = DECL_NAME
8837
;;;                                                                   name = c
8838
;;;                                                                 } 32 DeclItem
8839
;;;                                                               } 31 List
8840
;;;                                                             } 30 TypeName
8841
;;;                                                           } 29 ParameterDeclaration
8842
;;;                                                           { 29 NumericExpression (constant 46 = 0x2E)
8843 2 jsauermann
;--     load_rr_constant
8844
        MOVE    #0x002E, RR
8845 7 jsauermann
;;;                                                           } 29 NumericExpression (constant 46 = 0x2E)
8846 2 jsauermann
;--     push_rr (8 bit)
8847
        MOVE    R, -(SP)
8848
;--     push 2 bytes
8849
;--     call
8850
        CALL    Cputchr
8851
;--     pop 1 bytes
8852
        ADD     SP, #1
8853 7 jsauermann
;;;                                                         } 28 Expr l(r)
8854
;;;                                                       } 27 ExpressionStatement
8855 2 jsauermann
L18_endif_69:
8856 7 jsauermann
;;;                                                     } 26 IfElseStatement
8857 2 jsauermann
L18_endif_68:
8858 7 jsauermann
;;;                                                   } 25 IfElseStatement
8859
;;;                                                 } 24 List
8860
;--     pop 0 bytes
8861
;;;                                               } 23 CompoundStatement
8862 2 jsauermann
L18_cont_66:
8863 7 jsauermann
;;;                                               { 23 Expr l - r
8864
;;;                                                 { 24 Expr ++r
8865
;;;                                                   { 25 Expression (variable name)
8866
;;;                                                     expr_type = "identifier" (col)
8867 2 jsauermann
;--     load_rr_var col = -5(FP), SP at -5 (16 bit)
8868
        MOVE    0(SP), RR
8869 7 jsauermann
;;;                                                   } 25 Expression (variable name)
8870 2 jsauermann
;--     ++
8871
        ADD     RR, #0x0001
8872
;--     store_rr_var col = -5(FP), SP at -5
8873
        MOVE    RR, 0(SP)
8874 7 jsauermann
;;;                                                 } 24 Expr ++r
8875 2 jsauermann
;--     l - r
8876
        SUB     RR, #0x0001
8877 7 jsauermann
;;;                                               } 23 Expr l - r
8878 2 jsauermann
L18_tst_66:
8879 7 jsauermann
;;;                                               { 23 Expr l < r
8880
;;;                                                 { 24 TypeName (internal)
8881
;;;                                                   { 25 TypeSpecifier (all)
8882
;;;                                                     spec = int (80000)
8883
;;;                                                   } 25 TypeSpecifier (all)
8884
;;;                                                 } 24 TypeName (internal)
8885
;;;                                                 { 24 Expression (variable name)
8886
;;;                                                   expr_type = "identifier" (col)
8887 2 jsauermann
;--     load_rr_var col = -5(FP), SP at -5 (16 bit)
8888
        MOVE    0(SP), RR
8889 7 jsauermann
;;;                                                 } 24 Expression (variable name)
8890 2 jsauermann
;--     l < r
8891
        SLT     RR, #0x0010
8892 7 jsauermann
;;;                                               } 23 Expr l < r
8893 2 jsauermann
;--     branch_true
8894
        JMP     RRNZ, L18_loop_66
8895
L18_brk_67:
8896 7 jsauermann
;;;                                             } 22 for Statement
8897
;;;                                             { 22 ExpressionStatement
8898
;;;                                               { 23 Expr l(r)
8899
;;;                                                 { 24 TypeName
8900
;;;                                                   { 25 TypeSpecifier (all)
8901
;;;                                                     spec = int (80000)
8902
;;;                                                   } 25 TypeSpecifier (all)
8903
;;;                                                   { 25 List
8904
;;;                                                     { 26 DeclItem
8905
;;;                                                       what = DECL_NAME
8906
;;;                                                       name = printf
8907
;;;                                                     } 26 DeclItem
8908
;;;                                                   } 25 List
8909
;;;                                                 } 24 TypeName
8910
;;;                                                 { 24 ParameterDeclaration
8911
;;;                                                   isEllipsis = true
8912
;;;                                                   { 25 TypeName
8913
;;;                                                     { 26 TypeSpecifier (all)
8914
;;;                                                       spec = const char (20100)
8915
;;;                                                     } 26 TypeSpecifier (all)
8916
;;;                                                     { 26 List
8917
;;;                                                       { 27 DeclItem
8918
;;;                                                         what = DECL_POINTER
8919
;;;                                                         { 28 List
8920
;;;                                                           { 29 Ptr
8921
;;;                                                           } 29 Ptr
8922
;;;                                                         } 28 List
8923
;;;                                                       } 27 DeclItem
8924
;;;                                                       { 27 DeclItem
8925
;;;                                                         what = DECL_NAME
8926
;;;                                                         name = format
8927
;;;                                                       } 27 DeclItem
8928
;;;                                                     } 26 List
8929
;;;                                                   } 25 TypeName
8930
;;;                                                 } 24 ParameterDeclaration
8931
;;;                                                 { 24 StringExpression
8932 2 jsauermann
;--     load_rr_string
8933
        MOVE    #Cstr_32, RR
8934 7 jsauermann
;;;                                                 } 24 StringExpression
8935 2 jsauermann
;--     push_rr (16 bit)
8936
        MOVE    RR, -(SP)
8937
;--     push 2 bytes
8938
;--     call
8939
        CALL    Cprintf
8940
;--     pop 2 bytes
8941
        ADD     SP, #2
8942 7 jsauermann
;;;                                               } 23 Expr l(r)
8943
;;;                                             } 22 ExpressionStatement
8944
;;;                                           } 21 List
8945
;--     pop 0 bytes
8946
;;;                                         } 20 CompoundStatement
8947 2 jsauermann
L18_cont_62:
8948 7 jsauermann
;;;                                         { 20 Expr l - r
8949
;;;                                           { 21 Expr ++r
8950
;;;                                             { 22 Expression (variable name)
8951
;;;                                               expr_type = "identifier" (row)
8952 2 jsauermann
;--     load_rr_var row = -3(FP), SP at -5 (16 bit)
8953
        MOVE    2(SP), RR
8954 7 jsauermann
;;;                                             } 22 Expression (variable name)
8955 2 jsauermann
;--     ++
8956
        ADD     RR, #0x0001
8957
;--     store_rr_var row = -3(FP), SP at -5
8958
        MOVE    RR, 2(SP)
8959 7 jsauermann
;;;                                           } 21 Expr ++r
8960 2 jsauermann
;--     l - r
8961
        SUB     RR, #0x0001
8962 7 jsauermann
;;;                                         } 20 Expr l - r
8963 2 jsauermann
L18_tst_62:
8964 7 jsauermann
;;;                                         { 20 Expr l < r
8965
;;;                                           { 21 TypeName (internal)
8966
;;;                                             { 22 TypeSpecifier (all)
8967
;;;                                               spec = int (80000)
8968
;;;                                             } 22 TypeSpecifier (all)
8969
;;;                                           } 21 TypeName (internal)
8970
;;;                                           { 21 Expression (variable name)
8971
;;;                                             expr_type = "identifier" (row)
8972 2 jsauermann
;--     load_rr_var row = -3(FP), SP at -5 (16 bit)
8973
        MOVE    2(SP), RR
8974 7 jsauermann
;;;                                           } 21 Expression (variable name)
8975 2 jsauermann
;--     l < r
8976
        SLT     RR, #0x0010
8977 7 jsauermann
;;;                                         } 20 Expr l < r
8978 2 jsauermann
;--     branch_true
8979
        JMP     RRNZ, L18_loop_62
8980
L18_brk_63:
8981 7 jsauermann
;;;                                       } 19 for Statement
8982
;;;                                     } 18 List
8983 2 jsauermann
;--     pop 5 bytes
8984
        ADD     SP, #5
8985 7 jsauermann
;;;                                   } 17 CompoundStatement
8986
;--     ret
8987 2 jsauermann
        RET
8988
;;; ------------------------------------;
8989 7 jsauermann
;;;                                   { 17 FunctionDefinition
8990
;;;                                     { 18 TypeName
8991
;;;                                       { 19 TypeSpecifier (all)
8992
;;;                                         spec = int (80000)
8993
;;;                                       } 19 TypeSpecifier (all)
8994
;;;                                       { 19 List
8995
;;;                                         { 20 DeclItem
8996
;;;                                           what = DECL_NAME
8997
;;;                                           name = main
8998
;;;                                         } 20 DeclItem
8999
;;;                                       } 19 List
9000
;;;                                     } 18 TypeName
9001
;;;                                     { 18 List
9002
;;;                                       { 19 DeclItem
9003
;;;                                         what = DECL_NAME
9004
;;;                                         name = main
9005
;;;                                       } 19 DeclItem
9006
;;;                                       { 19 DeclItem
9007
;;;                                         what = DECL_FUN
9008
;;;                                         { 20 List
9009
;;;                                           { 21 ParameterDeclaration
9010
;;;                                             isEllipsis = false
9011
;;;                                             { 22 TypeName
9012
;;;                                               { 23 TypeSpecifier (all)
9013
;;;                                                 spec = int (80000)
9014
;;;                                               } 23 TypeSpecifier (all)
9015
;;;                                               { 23 List
9016
;;;                                                 { 24 DeclItem
9017
;;;                                                   what = DECL_NAME
9018
;;;                                                   name = argc
9019
;;;                                                 } 24 DeclItem
9020
;;;                                               } 23 List
9021
;;;                                             } 22 TypeName
9022
;;;                                           } 21 ParameterDeclaration
9023
;;;                                           { 21 ParameterDeclaration
9024
;;;                                             isEllipsis = false
9025
;;;                                             { 22 TypeName
9026
;;;                                               { 23 TypeSpecifier (all)
9027
;;;                                                 spec = char (20000)
9028
;;;                                               } 23 TypeSpecifier (all)
9029
;;;                                               { 23 List
9030
;;;                                                 { 24 DeclItem
9031
;;;                                                   what = DECL_POINTER
9032
;;;                                                   { 25 List
9033
;;;                                                     { 26 Ptr
9034
;;;                                                     } 26 Ptr
9035
;;;                                                   } 25 List
9036
;;;                                                 } 24 DeclItem
9037
;;;                                                 { 24 DeclItem
9038
;;;                                                   what = DECL_NAME
9039
;;;                                                   name = argv
9040
;;;                                                 } 24 DeclItem
9041
;;;                                                 { 24 DeclItem
9042
;;;                                                   what = DECL_ARRAY
9043
;;;                                                 } 24 DeclItem
9044
;;;                                               } 23 List
9045
;;;                                             } 22 TypeName
9046
;;;                                           } 21 ParameterDeclaration
9047
;;;                                         } 20 List
9048
;;;                                       } 19 DeclItem
9049
;;;                                     } 18 List
9050 2 jsauermann
Cmain:
9051 7 jsauermann
;;;                                     { 18 CompoundStatement
9052
;;;                                       { 19 InitDeclarator
9053
;;;                                         { 20 List
9054
;;;                                           { 21 DeclItem
9055
;;;                                             what = DECL_NAME
9056
;;;                                             name = c
9057
;;;                                           } 21 DeclItem
9058
;;;                                         } 20 List
9059 2 jsauermann
;--     push_zero 1 bytes
9060
        CLRB    -(SP)
9061 7 jsauermann
;;;                                       } 19 InitDeclarator
9062
;;;                                       { 19 InitDeclarator
9063
;;;                                         { 20 List
9064
;;;                                           { 21 DeclItem
9065
;;;                                             what = DECL_NAME
9066
;;;                                             name = noprompt
9067
;;;                                           } 21 DeclItem
9068
;;;                                         } 20 List
9069 2 jsauermann
;--     push_zero 1 bytes
9070
        CLRB    -(SP)
9071 7 jsauermann
;;;                                       } 19 InitDeclarator
9072
;;;                                       { 19 InitDeclarator
9073
;;;                                         { 20 List
9074
;;;                                           { 21 DeclItem
9075
;;;                                             what = DECL_NAME
9076
;;;                                             name = last_c
9077
;;;                                           } 21 DeclItem
9078
;;;                                         } 20 List
9079 2 jsauermann
;--     push_zero 1 bytes
9080
        CLRB    -(SP)
9081 7 jsauermann
;;;                                       } 19 InitDeclarator
9082
;;;                                       { 19 InitDeclarator
9083
;;;                                         { 20 List
9084
;;;                                           { 21 DeclItem
9085
;;;                                             what = DECL_POINTER
9086
;;;                                             { 22 List
9087
;;;                                               { 23 Ptr
9088
;;;                                               } 23 Ptr
9089
;;;                                             } 22 List
9090
;;;                                           } 21 DeclItem
9091
;;;                                           { 21 DeclItem
9092
;;;                                             what = DECL_NAME
9093
;;;                                             name = address
9094
;;;                                           } 21 DeclItem
9095
;;;                                         } 20 List
9096 2 jsauermann
;--     push_zero 2 bytes
9097
        CLRW    -(SP)
9098 7 jsauermann
;;;                                       } 19 InitDeclarator
9099
;;;                                       { 19 List
9100
;;;                                         { 20 ExpressionStatement
9101 2 jsauermann
        MOVE #0x05, RR
9102 7 jsauermann
;;;                                         } 20 ExpressionStatement
9103
;;;                                         { 20 ExpressionStatement
9104 2 jsauermann
        OUT  R, (OUT_INT_MASK)
9105 7 jsauermann
;;;                                         } 20 ExpressionStatement
9106
;;;                                         { 20 for Statement
9107
;;;                                           { 21 ExpressionStatement
9108
;;;                                           } 21 ExpressionStatement
9109 2 jsauermann
L19_loop_70:
9110 7 jsauermann
;;;                                           { 21 CompoundStatement
9111
;;;                                             { 22 List
9112
;;;                                               { 23 ExpressionStatement
9113
;;;                                                 { 24 Expr l = r
9114
;;;                                                   { 25 TypeName
9115
;;;                                                     { 26 TypeSpecifier (all)
9116
;;;                                                       spec = char (20000)
9117
;;;                                                     } 26 TypeSpecifier (all)
9118
;;;                                                     { 26 List
9119
;;;                                                       { 27 DeclItem
9120
;;;                                                         what = DECL_NAME
9121
;;;                                                         name = last_c
9122
;;;                                                       } 27 DeclItem
9123
;;;                                                     } 26 List
9124
;;;                                                   } 25 TypeName
9125
;;;                                                   { 25 Expression (variable name)
9126
;;;                                                     expr_type = "identifier" (c)
9127 2 jsauermann
;--     load_rr_var c = -1(FP), SP at -5 (8 bit)
9128
        MOVE    4(SP), RS
9129 7 jsauermann
;;;                                                   } 25 Expression (variable name)
9130 2 jsauermann
;--     store_rr_var last_c = -3(FP), SP at -5
9131
        MOVE    R, 2(SP)
9132 7 jsauermann
;;;                                                 } 24 Expr l = r
9133
;;;                                               } 23 ExpressionStatement
9134
;;;                                               { 23 IfElseStatement
9135
;;;                                                 { 24 Expr ! r
9136
;;;                                                   { 25 Expression (variable name)
9137
;;;                                                     expr_type = "identifier" (noprompt)
9138 2 jsauermann
;--     load_rr_var noprompt = -2(FP), SP at -5 (8 bit)
9139
        MOVE    3(SP), RS
9140 7 jsauermann
;;;                                                   } 25 Expression (variable name)
9141 2 jsauermann
;--     16 bit ! r
9142
        LNOT    RR
9143 7 jsauermann
;;;                                                 } 24 Expr ! r
9144 2 jsauermann
;--     branch_false
9145
        JMP     RRZ, L19_endif_72
9146 7 jsauermann
;;;                                                 { 24 ExpressionStatement
9147
;;;                                                   { 25 Expr l(r)
9148
;;;                                                     { 26 TypeName
9149
;;;                                                       { 27 TypeSpecifier (all)
9150
;;;                                                         spec = int (80000)
9151
;;;                                                       } 27 TypeSpecifier (all)
9152
;;;                                                       { 27 List
9153
;;;                                                         { 28 DeclItem
9154
;;;                                                           what = DECL_NAME
9155
;;;                                                           name = printf
9156
;;;                                                         } 28 DeclItem
9157
;;;                                                       } 27 List
9158
;;;                                                     } 26 TypeName
9159
;;;                                                     { 26 ParameterDeclaration
9160
;;;                                                       isEllipsis = true
9161
;;;                                                       { 27 TypeName
9162
;;;                                                         { 28 TypeSpecifier (all)
9163
;;;                                                           spec = const char (20100)
9164
;;;                                                         } 28 TypeSpecifier (all)
9165
;;;                                                         { 28 List
9166
;;;                                                           { 29 DeclItem
9167
;;;                                                             what = DECL_POINTER
9168
;;;                                                             { 30 List
9169
;;;                                                               { 31 Ptr
9170
;;;                                                               } 31 Ptr
9171
;;;                                                             } 30 List
9172
;;;                                                           } 29 DeclItem
9173
;;;                                                           { 29 DeclItem
9174
;;;                                                             what = DECL_NAME
9175
;;;                                                             name = format
9176
;;;                                                           } 29 DeclItem
9177
;;;                                                         } 28 List
9178
;;;                                                       } 27 TypeName
9179
;;;                                                     } 26 ParameterDeclaration
9180
;;;                                                     { 26 StringExpression
9181 2 jsauermann
;--     load_rr_string
9182
        MOVE    #Cstr_35, RR
9183 7 jsauermann
;;;                                                     } 26 StringExpression
9184 2 jsauermann
;--     push_rr (16 bit)
9185
        MOVE    RR, -(SP)
9186
;--     push 2 bytes
9187
;--     call
9188
        CALL    Cprintf
9189
;--     pop 2 bytes
9190
        ADD     SP, #2
9191 7 jsauermann
;;;                                                   } 25 Expr l(r)
9192
;;;                                                 } 24 ExpressionStatement
9193 2 jsauermann
L19_endif_72:
9194 7 jsauermann
;;;                                               } 23 IfElseStatement
9195
;;;                                               { 23 ExpressionStatement
9196
;;;                                                 { 24 Expr l = r
9197
;;;                                                   { 25 TypeName
9198
;;;                                                     { 26 TypeSpecifier (all)
9199
;;;                                                       spec = char (20000)
9200
;;;                                                     } 26 TypeSpecifier (all)
9201
;;;                                                     { 26 List
9202
;;;                                                       { 27 DeclItem
9203
;;;                                                         what = DECL_NAME
9204
;;;                                                         name = noprompt
9205
;;;                                                       } 27 DeclItem
9206
;;;                                                     } 26 List
9207
;;;                                                   } 25 TypeName
9208
;;;                                                   { 25 NumericExpression (constant 0 = 0x0)
9209 2 jsauermann
;--     load_rr_constant
9210
        MOVE    #0x0000, RR
9211 7 jsauermann
;;;                                                   } 25 NumericExpression (constant 0 = 0x0)
9212 2 jsauermann
;--     store_rr_var noprompt = -2(FP), SP at -5
9213
        MOVE    R, 3(SP)
9214 7 jsauermann
;;;                                                 } 24 Expr l = r
9215
;;;                                               } 23 ExpressionStatement
9216
;;;                                               { 23 SwitchStatement
9217
;;;                                                 { 24 Expr l = r
9218
;;;                                                   { 25 TypeName
9219
;;;                                                     { 26 TypeSpecifier (all)
9220
;;;                                                       spec = char (20000)
9221
;;;                                                     } 26 TypeSpecifier (all)
9222
;;;                                                     { 26 List
9223
;;;                                                       { 27 DeclItem
9224
;;;                                                         what = DECL_NAME
9225
;;;                                                         name = c
9226
;;;                                                       } 27 DeclItem
9227
;;;                                                     } 26 List
9228
;;;                                                   } 25 TypeName
9229
;;;                                                   { 25 Expr l(r)
9230
;;;                                                     { 26 TypeName
9231
;;;                                                       { 27 TypeSpecifier (all)
9232
;;;                                                         spec = int (80000)
9233
;;;                                                       } 27 TypeSpecifier (all)
9234
;;;                                                       { 27 List
9235
;;;                                                         { 28 DeclItem
9236
;;;                                                           what = DECL_NAME
9237
;;;                                                           name = getchr
9238
;;;                                                         } 28 DeclItem
9239
;;;                                                       } 27 List
9240
;;;                                                     } 26 TypeName
9241 2 jsauermann
;--     push 2 bytes
9242
;--     call
9243
        CALL    Cgetchr
9244
;--     pop 0 bytes
9245 7 jsauermann
;;;                                                   } 25 Expr l(r)
9246 2 jsauermann
;--     store_rr_var c = -1(FP), SP at -5
9247
        MOVE    R, 4(SP)
9248 7 jsauermann
;;;                                                 } 24 Expr l = r
9249 2 jsauermann
;--     move_rr_to_ll
9250
        MOVE    RR, LL
9251
;--     branch_case (8 bit)
9252
        SEQ     LL, #0x000D
9253
        JMP     RRNZ, L19_case_73_000D
9254
;--     branch_case (8 bit)
9255
        SEQ     LL, #0x000A
9256
        JMP     RRNZ, L19_case_73_000A
9257
;--     branch_case (8 bit)
9258
        SEQ     LL, #0x0043
9259
        JMP     RRNZ, L19_case_73_0043
9260
;--     branch_case (8 bit)
9261
        SEQ     LL, #0x0063
9262
        JMP     RRNZ, L19_case_73_0063
9263
;--     branch_case (8 bit)
9264
        SEQ     LL, #0x0044
9265
        JMP     RRNZ, L19_case_73_0044
9266
;--     branch_case (8 bit)
9267
        SEQ     LL, #0x0064
9268
        JMP     RRNZ, L19_case_73_0064
9269
;--     branch_case (8 bit)
9270
        SEQ     LL, #0x0045
9271
        JMP     RRNZ, L19_case_73_0045
9272
;--     branch_case (8 bit)
9273
        SEQ     LL, #0x0065
9274
        JMP     RRNZ, L19_case_73_0065
9275
;--     branch_case (8 bit)
9276
        SEQ     LL, #0x004D
9277
        JMP     RRNZ, L19_case_73_004D
9278
;--     branch_case (8 bit)
9279
        SEQ     LL, #0x006D
9280
        JMP     RRNZ, L19_case_73_006D
9281
;--     branch_case (8 bit)
9282
        SEQ     LL, #0x0053
9283
        JMP     RRNZ, L19_case_73_0053
9284
;--     branch_case (8 bit)
9285
        SEQ     LL, #0x0073
9286
        JMP     RRNZ, L19_case_73_0073
9287
;--     branch_case (8 bit)
9288
        SEQ     LL, #0x0054
9289
        JMP     RRNZ, L19_case_73_0054
9290
;--     branch_case (8 bit)
9291
        SEQ     LL, #0x0074
9292
        JMP     RRNZ, L19_case_73_0074
9293
;--     branch_case (8 bit)
9294
        SEQ     LL, #0x0051
9295
        JMP     RRNZ, L19_case_73_0051
9296
;--     branch_case (8 bit)
9297
        SEQ     LL, #0x0071
9298
        JMP     RRNZ, L19_case_73_0071
9299
;--     branch_case (8 bit)
9300
        SEQ     LL, #0x0058
9301
        JMP     RRNZ, L19_case_73_0058
9302
;--     branch_case (8 bit)
9303
        SEQ     LL, #0x0078
9304
        JMP     RRNZ, L19_case_73_0078
9305
;--     branch
9306
        JMP     L19_deflt_73
9307 7 jsauermann
;;;                                                 { 24 CompoundStatement
9308
;;;                                                   { 25 List
9309
;;;                                                     { 26 case Statement
9310 2 jsauermann
L19_case_73_000D:
9311 7 jsauermann
;;;                                                       { 27 case Statement
9312 2 jsauermann
L19_case_73_000A:
9313 7 jsauermann
;;;                                                         { 28 IfElseStatement
9314
;;;                                                           { 29 Expr l == r
9315
;;;                                                             { 30 TypeName (internal)
9316
;;;                                                               { 31 TypeSpecifier (all)
9317
;;;                                                                 spec = int (80000)
9318
;;;                                                               } 31 TypeSpecifier (all)
9319
;;;                                                             } 30 TypeName (internal)
9320
;;;                                                             { 30 Expression (variable name)
9321
;;;                                                               expr_type = "identifier" (last_c)
9322 2 jsauermann
;--     load_rr_var last_c = -3(FP), SP at -5 (8 bit)
9323
        MOVE    2(SP), RS
9324 7 jsauermann
;;;                                                             } 30 Expression (variable name)
9325 2 jsauermann
;--     l == r
9326
        SEQ     RR, #0x0064
9327 7 jsauermann
;;;                                                           } 29 Expr l == r
9328 2 jsauermann
;--     branch_false
9329
        JMP     RRZ, L19_endif_74
9330 7 jsauermann
;;;                                                           { 29 CompoundStatement
9331
;;;                                                             { 30 List
9332
;;;                                                               { 31 ExpressionStatement
9333
;;;                                                                 { 32 Expr l += r
9334
;;;                                                                   { 33 TypeName
9335
;;;                                                                     { 34 TypeSpecifier (all)
9336
;;;                                                                       spec = unsigned char (22000)
9337
;;;                                                                     } 34 TypeSpecifier (all)
9338
;;;                                                                     { 34 List
9339
;;;                                                                       { 35 DeclItem
9340
;;;                                                                         what = DECL_POINTER
9341
;;;                                                                         { 36 List
9342
;;;                                                                           { 37 Ptr
9343
;;;                                                                           } 37 Ptr
9344
;;;                                                                         } 36 List
9345
;;;                                                                       } 35 DeclItem
9346
;;;                                                                       { 35 DeclItem
9347
;;;                                                                         what = DECL_NAME
9348
;;;                                                                         name = address
9349
;;;                                                                       } 35 DeclItem
9350
;;;                                                                     } 34 List
9351
;;;                                                                   } 33 TypeName
9352
;;;                                                                   { 33 Expr l + r
9353
;;;                                                                     { 34 Expression (variable name)
9354
;;;                                                                       expr_type = "identifier" (address)
9355 2 jsauermann
;--     load_rr_var address = -5(FP), SP at -5 (16 bit)
9356
        MOVE    0(SP), RR
9357 7 jsauermann
;;;                                                                     } 34 Expression (variable name)
9358 2 jsauermann
;--     l + r
9359
        ADD     RR, #0x0100
9360 7 jsauermann
;;;                                                                   } 33 Expr l + r
9361 2 jsauermann
;--     store_rr_var address = -5(FP), SP at -5
9362
        MOVE    RR, 0(SP)
9363 7 jsauermann
;;;                                                                 } 32 Expr l += r
9364
;;;                                                               } 31 ExpressionStatement
9365
;;;                                                               { 31 ExpressionStatement
9366
;;;                                                                 { 32 Expr l(r)
9367
;;;                                                                   { 33 TypeName
9368
;;;                                                                     { 34 TypeSpecifier (all)
9369
;;;                                                                       spec = int (80000)
9370
;;;                                                                     } 34 TypeSpecifier (all)
9371
;;;                                                                     { 34 List
9372
;;;                                                                       { 35 DeclItem
9373
;;;                                                                         what = DECL_NAME
9374
;;;                                                                         name = printf
9375
;;;                                                                       } 35 DeclItem
9376
;;;                                                                     } 34 List
9377
;;;                                                                   } 33 TypeName
9378
;;;                                                                   { 33 ParameterDeclaration
9379
;;;                                                                     isEllipsis = true
9380
;;;                                                                     { 34 TypeName
9381
;;;                                                                       { 35 TypeSpecifier (all)
9382
;;;                                                                         spec = const char (20100)
9383
;;;                                                                       } 35 TypeSpecifier (all)
9384
;;;                                                                       { 35 List
9385
;;;                                                                         { 36 DeclItem
9386
;;;                                                                           what = DECL_POINTER
9387
;;;                                                                           { 37 List
9388
;;;                                                                             { 38 Ptr
9389
;;;                                                                             } 38 Ptr
9390
;;;                                                                           } 37 List
9391
;;;                                                                         } 36 DeclItem
9392
;;;                                                                         { 36 DeclItem
9393
;;;                                                                           what = DECL_NAME
9394
;;;                                                                           name = format
9395
;;;                                                                         } 36 DeclItem
9396
;;;                                                                       } 35 List
9397
;;;                                                                     } 34 TypeName
9398
;;;                                                                   } 33 ParameterDeclaration
9399
;;;                                                                   { 33 StringExpression
9400 2 jsauermann
;--     load_rr_string
9401
        MOVE    #Cstr_36, RR
9402 7 jsauermann
;;;                                                                   } 33 StringExpression
9403 2 jsauermann
;--     push_rr (16 bit)
9404
        MOVE    RR, -(SP)
9405
;--     push 2 bytes
9406
;--     call
9407
        CALL    Cprintf
9408
;--     pop 2 bytes
9409
        ADD     SP, #2
9410 7 jsauermann
;;;                                                                 } 32 Expr l(r)
9411
;;;                                                               } 31 ExpressionStatement
9412
;;;                                                               { 31 ExpressionStatement
9413
;;;                                                                 { 32 Expr l(r)
9414
;;;                                                                   { 33 TypeName
9415
;;;                                                                     { 34 TypeSpecifier (all)
9416
;;;                                                                       spec = void (10000)
9417
;;;                                                                     } 34 TypeSpecifier (all)
9418
;;;                                                                     { 34 List
9419
;;;                                                                       { 35 DeclItem
9420
;;;                                                                         what = DECL_NAME
9421
;;;                                                                         name = display_memory
9422
;;;                                                                       } 35 DeclItem
9423
;;;                                                                     } 34 List
9424
;;;                                                                   } 33 TypeName
9425
;;;                                                                   { 33 ParameterDeclaration
9426
;;;                                                                     isEllipsis = false
9427
;;;                                                                     { 34 TypeName
9428
;;;                                                                       { 35 TypeSpecifier (all)
9429
;;;                                                                         spec = unsigned char (22000)
9430
;;;                                                                       } 35 TypeSpecifier (all)
9431
;;;                                                                       { 35 List
9432
;;;                                                                         { 36 DeclItem
9433
;;;                                                                           what = DECL_POINTER
9434
;;;                                                                           { 37 List
9435
;;;                                                                             { 38 Ptr
9436
;;;                                                                             } 38 Ptr
9437
;;;                                                                           } 37 List
9438
;;;                                                                         } 36 DeclItem
9439
;;;                                                                         { 36 DeclItem
9440
;;;                                                                           what = DECL_NAME
9441
;;;                                                                           name = address
9442
;;;                                                                         } 36 DeclItem
9443
;;;                                                                       } 35 List
9444
;;;                                                                     } 34 TypeName
9445
;;;                                                                   } 33 ParameterDeclaration
9446
;;;                                                                   { 33 Expression (variable name)
9447
;;;                                                                     expr_type = "identifier" (address)
9448 2 jsauermann
;--     load_rr_var address = -5(FP), SP at -5 (16 bit)
9449
        MOVE    0(SP), RR
9450 7 jsauermann
;;;                                                                   } 33 Expression (variable name)
9451 2 jsauermann
;--     push_rr (16 bit)
9452
        MOVE    RR, -(SP)
9453
;--     push 0 bytes
9454
;--     call
9455
        CALL    Cdisplay_memory
9456
;--     pop 2 bytes
9457
        ADD     SP, #2
9458 7 jsauermann
;;;                                                                 } 32 Expr l(r)
9459
;;;                                                               } 31 ExpressionStatement
9460
;;;                                                               { 31 ExpressionStatement
9461
;;;                                                                 { 32 Expr l = r
9462
;;;                                                                   { 33 TypeName
9463
;;;                                                                     { 34 TypeSpecifier (all)
9464
;;;                                                                       spec = char (20000)
9465
;;;                                                                     } 34 TypeSpecifier (all)
9466
;;;                                                                     { 34 List
9467
;;;                                                                       { 35 DeclItem
9468
;;;                                                                         what = DECL_NAME
9469
;;;                                                                         name = c
9470
;;;                                                                       } 35 DeclItem
9471
;;;                                                                     } 34 List
9472
;;;                                                                   } 33 TypeName
9473
;;;                                                                   { 33 NumericExpression (constant 100 = 0x64)
9474 2 jsauermann
;--     load_rr_constant
9475
        MOVE    #0x0064, RR
9476 7 jsauermann
;;;                                                                   } 33 NumericExpression (constant 100 = 0x64)
9477 2 jsauermann
;--     store_rr_var c = -1(FP), SP at -5
9478
        MOVE    R, 4(SP)
9479 7 jsauermann
;;;                                                                 } 32 Expr l = r
9480
;;;                                                               } 31 ExpressionStatement
9481
;;;                                                             } 30 List
9482
;--     pop 0 bytes
9483
;;;                                                           } 29 CompoundStatement
9484 2 jsauermann
L19_endif_74:
9485 7 jsauermann
;;;                                                         } 28 IfElseStatement
9486
;;;                                                       } 27 case Statement
9487
;;;                                                     } 26 case Statement
9488
;;;                                                     { 26 ExpressionStatement
9489
;;;                                                       { 27 Expr l = r
9490
;;;                                                         { 28 TypeName
9491
;;;                                                           { 29 TypeSpecifier (all)
9492
;;;                                                             spec = char (20000)
9493
;;;                                                           } 29 TypeSpecifier (all)
9494
;;;                                                           { 29 List
9495
;;;                                                             { 30 DeclItem
9496
;;;                                                               what = DECL_NAME
9497
;;;                                                               name = noprompt
9498
;;;                                                             } 30 DeclItem
9499
;;;                                                           } 29 List
9500
;;;                                                         } 28 TypeName
9501
;;;                                                         { 28 NumericExpression (constant 1 = 0x1)
9502 2 jsauermann
;--     load_rr_constant
9503
        MOVE    #0x0001, RR
9504 7 jsauermann
;;;                                                         } 28 NumericExpression (constant 1 = 0x1)
9505 2 jsauermann
;--     store_rr_var noprompt = -2(FP), SP at -5
9506
        MOVE    R, 3(SP)
9507 7 jsauermann
;;;                                                       } 27 Expr l = r
9508
;;;                                                     } 26 ExpressionStatement
9509
;;;                                                     { 26 break/continue Statement
9510 2 jsauermann
;--     branch
9511
        JMP     L19_brk_73
9512 7 jsauermann
;;;                                                     } 26 break/continue Statement
9513
;;;                                                     { 26 case Statement
9514 2 jsauermann
L19_case_73_0043:
9515 7 jsauermann
;;;                                                       { 27 case Statement
9516 2 jsauermann
L19_case_73_0063:
9517 7 jsauermann
;;;                                                         { 28 ExpressionStatement
9518
;;;                                                           { 29 Expr l(r)
9519
;;;                                                             { 30 TypeName
9520
;;;                                                               { 31 TypeSpecifier (all)
9521
;;;                                                                 spec = void (10000)
9522
;;;                                                               } 31 TypeSpecifier (all)
9523
;;;                                                               { 31 List
9524
;;;                                                                 { 32 DeclItem
9525
;;;                                                                   what = DECL_NAME
9526
;;;                                                                   name = show_time
9527
;;;                                                                 } 32 DeclItem
9528
;;;                                                               } 31 List
9529
;;;                                                             } 30 TypeName
9530 2 jsauermann
;--     push 0 bytes
9531
;--     call
9532
        CALL    Cshow_time
9533
;--     pop 0 bytes
9534 7 jsauermann
;;;                                                           } 29 Expr l(r)
9535
;;;                                                         } 28 ExpressionStatement
9536
;;;                                                       } 27 case Statement
9537
;;;                                                     } 26 case Statement
9538
;;;                                                     { 26 break/continue Statement
9539 2 jsauermann
;--     branch
9540
        JMP     L19_brk_73
9541 7 jsauermann
;;;                                                     } 26 break/continue Statement
9542
;;;                                                     { 26 case Statement
9543 2 jsauermann
L19_case_73_0044:
9544 7 jsauermann
;;;                                                       { 27 case Statement
9545 2 jsauermann
L19_case_73_0064:
9546 7 jsauermann
;;;                                                         { 28 ExpressionStatement
9547
;;;                                                           { 29 Expr l = r
9548
;;;                                                             { 30 TypeName
9549
;;;                                                               { 31 TypeSpecifier (all)
9550
;;;                                                                 spec = char (20000)
9551
;;;                                                               } 31 TypeSpecifier (all)
9552
;;;                                                               { 31 List
9553
;;;                                                                 { 32 DeclItem
9554
;;;                                                                   what = DECL_NAME
9555
;;;                                                                   name = last_c
9556
;;;                                                                 } 32 DeclItem
9557
;;;                                                               } 31 List
9558
;;;                                                             } 30 TypeName
9559
;;;                                                             { 30 NumericExpression (constant 100 = 0x64)
9560 2 jsauermann
;--     load_rr_constant
9561
        MOVE    #0x0064, RR
9562 7 jsauermann
;;;                                                             } 30 NumericExpression (constant 100 = 0x64)
9563 2 jsauermann
;--     store_rr_var last_c = -3(FP), SP at -5
9564
        MOVE    R, 2(SP)
9565 7 jsauermann
;;;                                                           } 29 Expr l = r
9566
;;;                                                         } 28 ExpressionStatement
9567
;;;                                                       } 27 case Statement
9568
;;;                                                     } 26 case Statement
9569
;;;                                                     { 26 ExpressionStatement
9570
;;;                                                       { 27 Expr l(r)
9571
;;;                                                         { 28 TypeName
9572
;;;                                                           { 29 TypeSpecifier (all)
9573
;;;                                                             spec = int (80000)
9574
;;;                                                           } 29 TypeSpecifier (all)
9575
;;;                                                           { 29 List
9576
;;;                                                             { 30 DeclItem
9577
;;;                                                               what = DECL_NAME
9578
;;;                                                               name = printf
9579
;;;                                                             } 30 DeclItem
9580
;;;                                                           } 29 List
9581
;;;                                                         } 28 TypeName
9582
;;;                                                         { 28 ParameterDeclaration
9583
;;;                                                           isEllipsis = true
9584
;;;                                                           { 29 TypeName
9585
;;;                                                             { 30 TypeSpecifier (all)
9586
;;;                                                               spec = const char (20100)
9587
;;;                                                             } 30 TypeSpecifier (all)
9588
;;;                                                             { 30 List
9589
;;;                                                               { 31 DeclItem
9590
;;;                                                                 what = DECL_POINTER
9591
;;;                                                                 { 32 List
9592
;;;                                                                   { 33 Ptr
9593
;;;                                                                   } 33 Ptr
9594
;;;                                                                 } 32 List
9595
;;;                                                               } 31 DeclItem
9596
;;;                                                               { 31 DeclItem
9597
;;;                                                                 what = DECL_NAME
9598
;;;                                                                 name = format
9599
;;;                                                               } 31 DeclItem
9600
;;;                                                             } 30 List
9601
;;;                                                           } 29 TypeName
9602
;;;                                                         } 28 ParameterDeclaration
9603
;;;                                                         { 28 StringExpression
9604 2 jsauermann
;--     load_rr_string
9605
        MOVE    #Cstr_37, RR
9606 7 jsauermann
;;;                                                         } 28 StringExpression
9607 2 jsauermann
;--     push_rr (16 bit)
9608
        MOVE    RR, -(SP)
9609
;--     push 2 bytes
9610
;--     call
9611
        CALL    Cprintf
9612
;--     pop 2 bytes
9613
        ADD     SP, #2
9614 7 jsauermann
;;;                                                       } 27 Expr l(r)
9615
;;;                                                     } 26 ExpressionStatement
9616
;;;                                                     { 26 ExpressionStatement
9617
;;;                                                       { 27 Expr l = r
9618
;;;                                                         { 28 TypeName
9619
;;;                                                           { 29 TypeSpecifier (all)
9620
;;;                                                             spec = unsigned char (22000)
9621
;;;                                                           } 29 TypeSpecifier (all)
9622
;;;                                                           { 29 List
9623
;;;                                                             { 30 DeclItem
9624
;;;                                                               what = DECL_POINTER
9625
;;;                                                               { 31 List
9626
;;;                                                                 { 32 Ptr
9627
;;;                                                                 } 32 Ptr
9628
;;;                                                               } 31 List
9629
;;;                                                             } 30 DeclItem
9630
;;;                                                             { 30 DeclItem
9631
;;;                                                               what = DECL_NAME
9632
;;;                                                               name = address
9633
;;;                                                             } 30 DeclItem
9634
;;;                                                           } 29 List
9635
;;;                                                         } 28 TypeName
9636
;;;                                                         { 28 Expression (cast)r
9637
;;;                                                           { 29 Expr l(r)
9638
;;;                                                             { 30 TypeName
9639
;;;                                                               { 31 TypeSpecifier (all)
9640
;;;                                                                 spec = int (80000)
9641
;;;                                                               } 31 TypeSpecifier (all)
9642
;;;                                                               { 31 List
9643
;;;                                                                 { 32 DeclItem
9644
;;;                                                                   what = DECL_NAME
9645
;;;                                                                   name = gethex
9646
;;;                                                                 } 32 DeclItem
9647
;;;                                                               } 31 List
9648
;;;                                                             } 30 TypeName
9649
;;;                                                             { 30 ParameterDeclaration
9650
;;;                                                               isEllipsis = false
9651
;;;                                                               { 31 TypeName
9652
;;;                                                                 { 32 TypeSpecifier (all)
9653
;;;                                                                   spec = char (20000)
9654
;;;                                                                 } 32 TypeSpecifier (all)
9655
;;;                                                                 { 32 List
9656
;;;                                                                   { 33 DeclItem
9657
;;;                                                                     what = DECL_NAME
9658
;;;                                                                     name = echo
9659
;;;                                                                   } 33 DeclItem
9660
;;;                                                                 } 32 List
9661
;;;                                                               } 31 TypeName
9662
;;;                                                             } 30 ParameterDeclaration
9663
;;;                                                             { 30 NumericExpression (constant 1 = 0x1)
9664 2 jsauermann
;--     load_rr_constant
9665
        MOVE    #0x0001, RR
9666 7 jsauermann
;;;                                                             } 30 NumericExpression (constant 1 = 0x1)
9667 2 jsauermann
;--     push_rr (8 bit)
9668
        MOVE    R, -(SP)
9669
;--     push 2 bytes
9670
;--     call
9671
        CALL    Cgethex
9672
;--     pop 1 bytes
9673
        ADD     SP, #1
9674 7 jsauermann
;;;                                                           } 29 Expr l(r)
9675
;;;                                                         } 28 Expression (cast)r
9676 2 jsauermann
;--     store_rr_var address = -5(FP), SP at -5
9677
        MOVE    RR, 0(SP)
9678 7 jsauermann
;;;                                                       } 27 Expr l = r
9679
;;;                                                     } 26 ExpressionStatement
9680
;;;                                                     { 26 ExpressionStatement
9681
;;;                                                       { 27 Expr l(r)
9682
;;;                                                         { 28 TypeName
9683
;;;                                                           { 29 TypeSpecifier (all)
9684
;;;                                                             spec = int (80000)
9685
;;;                                                           } 29 TypeSpecifier (all)
9686
;;;                                                           { 29 List
9687
;;;                                                             { 30 DeclItem
9688
;;;                                                               what = DECL_NAME
9689
;;;                                                               name = printf
9690
;;;                                                             } 30 DeclItem
9691
;;;                                                           } 29 List
9692
;;;                                                         } 28 TypeName
9693
;;;                                                         { 28 ParameterDeclaration
9694
;;;                                                           isEllipsis = true
9695
;;;                                                           { 29 TypeName
9696
;;;                                                             { 30 TypeSpecifier (all)
9697
;;;                                                               spec = const char (20100)
9698
;;;                                                             } 30 TypeSpecifier (all)
9699
;;;                                                             { 30 List
9700
;;;                                                               { 31 DeclItem
9701
;;;                                                                 what = DECL_POINTER
9702
;;;                                                                 { 32 List
9703
;;;                                                                   { 33 Ptr
9704
;;;                                                                   } 33 Ptr
9705
;;;                                                                 } 32 List
9706
;;;                                                               } 31 DeclItem
9707
;;;                                                               { 31 DeclItem
9708
;;;                                                                 what = DECL_NAME
9709
;;;                                                                 name = format
9710
;;;                                                               } 31 DeclItem
9711
;;;                                                             } 30 List
9712
;;;                                                           } 29 TypeName
9713
;;;                                                         } 28 ParameterDeclaration
9714
;;;                                                         { 28 StringExpression
9715 2 jsauermann
;--     load_rr_string
9716
        MOVE    #Cstr_38, RR
9717 7 jsauermann
;;;                                                         } 28 StringExpression
9718 2 jsauermann
;--     push_rr (16 bit)
9719
        MOVE    RR, -(SP)
9720
;--     push 2 bytes
9721
;--     call
9722
        CALL    Cprintf
9723
;--     pop 2 bytes
9724
        ADD     SP, #2
9725 7 jsauermann
;;;                                                       } 27 Expr l(r)
9726
;;;                                                     } 26 ExpressionStatement
9727
;;;                                                     { 26 ExpressionStatement
9728
;;;                                                       { 27 Expr l(r)
9729
;;;                                                         { 28 TypeName
9730
;;;                                                           { 29 TypeSpecifier (all)
9731
;;;                                                             spec = int (80000)
9732
;;;                                                           } 29 TypeSpecifier (all)
9733
;;;                                                           { 29 List
9734
;;;                                                             { 30 DeclItem
9735
;;;                                                               what = DECL_NAME
9736
;;;                                                               name = getchr
9737
;;;                                                             } 30 DeclItem
9738
;;;                                                           } 29 List
9739
;;;                                                         } 28 TypeName
9740 2 jsauermann
;--     push 2 bytes
9741
;--     call
9742
        CALL    Cgetchr
9743
;--     pop 0 bytes
9744 7 jsauermann
;;;                                                       } 27 Expr l(r)
9745
;;;                                                     } 26 ExpressionStatement
9746
;;;                                                     { 26 ExpressionStatement
9747
;;;                                                       { 27 Expr l(r)
9748
;;;                                                         { 28 TypeName
9749
;;;                                                           { 29 TypeSpecifier (all)
9750
;;;                                                             spec = void (10000)
9751
;;;                                                           } 29 TypeSpecifier (all)
9752
;;;                                                           { 29 List
9753
;;;                                                             { 30 DeclItem
9754
;;;                                                               what = DECL_NAME
9755
;;;                                                               name = display_memory
9756
;;;                                                             } 30 DeclItem
9757
;;;                                                           } 29 List
9758
;;;                                                         } 28 TypeName
9759
;;;                                                         { 28 ParameterDeclaration
9760
;;;                                                           isEllipsis = false
9761
;;;                                                           { 29 TypeName
9762
;;;                                                             { 30 TypeSpecifier (all)
9763
;;;                                                               spec = unsigned char (22000)
9764
;;;                                                             } 30 TypeSpecifier (all)
9765
;;;                                                             { 30 List
9766
;;;                                                               { 31 DeclItem
9767
;;;                                                                 what = DECL_POINTER
9768
;;;                                                                 { 32 List
9769
;;;                                                                   { 33 Ptr
9770
;;;                                                                   } 33 Ptr
9771
;;;                                                                 } 32 List
9772
;;;                                                               } 31 DeclItem
9773
;;;                                                               { 31 DeclItem
9774
;;;                                                                 what = DECL_NAME
9775
;;;                                                                 name = address
9776
;;;                                                               } 31 DeclItem
9777
;;;                                                             } 30 List
9778
;;;                                                           } 29 TypeName
9779
;;;                                                         } 28 ParameterDeclaration
9780
;;;                                                         { 28 Expression (variable name)
9781
;;;                                                           expr_type = "identifier" (address)
9782 2 jsauermann
;--     load_rr_var address = -5(FP), SP at -5 (16 bit)
9783
        MOVE    0(SP), RR
9784 7 jsauermann
;;;                                                         } 28 Expression (variable name)
9785 2 jsauermann
;--     push_rr (16 bit)
9786
        MOVE    RR, -(SP)
9787
;--     push 0 bytes
9788
;--     call
9789
        CALL    Cdisplay_memory
9790
;--     pop 2 bytes
9791
        ADD     SP, #2
9792 7 jsauermann
;;;                                                       } 27 Expr l(r)
9793
;;;                                                     } 26 ExpressionStatement
9794
;;;                                                     { 26 break/continue Statement
9795 2 jsauermann
;--     branch
9796
        JMP     L19_brk_73
9797 7 jsauermann
;;;                                                     } 26 break/continue Statement
9798
;;;                                                     { 26 case Statement
9799 2 jsauermann
L19_case_73_0045:
9800 7 jsauermann
;;;                                                       { 27 case Statement
9801 2 jsauermann
L19_case_73_0065:
9802 7 jsauermann
;;;                                                         { 28 ExpressionStatement
9803
;;;                                                           { 29 Expr l(r)
9804
;;;                                                             { 30 TypeName
9805
;;;                                                               { 31 TypeSpecifier (all)
9806
;;;                                                                 spec = int (80000)
9807
;;;                                                               } 31 TypeSpecifier (all)
9808
;;;                                                               { 31 List
9809
;;;                                                                 { 32 DeclItem
9810
;;;                                                                   what = DECL_NAME
9811
;;;                                                                   name = printf
9812
;;;                                                                 } 32 DeclItem
9813
;;;                                                               } 31 List
9814
;;;                                                             } 30 TypeName
9815
;;;                                                             { 30 ParameterDeclaration
9816
;;;                                                               isEllipsis = true
9817
;;;                                                               { 31 TypeName
9818
;;;                                                                 { 32 TypeSpecifier (all)
9819
;;;                                                                   spec = const char (20100)
9820
;;;                                                                 } 32 TypeSpecifier (all)
9821
;;;                                                                 { 32 List
9822
;;;                                                                   { 33 DeclItem
9823
;;;                                                                     what = DECL_POINTER
9824
;;;                                                                     { 34 List
9825
;;;                                                                       { 35 Ptr
9826
;;;                                                                       } 35 Ptr
9827
;;;                                                                     } 34 List
9828
;;;                                                                   } 33 DeclItem
9829
;;;                                                                   { 33 DeclItem
9830
;;;                                                                     what = DECL_NAME
9831
;;;                                                                     name = format
9832
;;;                                                                   } 33 DeclItem
9833
;;;                                                                 } 32 List
9834
;;;                                                               } 31 TypeName
9835
;;;                                                             } 30 ParameterDeclaration
9836
;;;                                                             { 30 StringExpression
9837 2 jsauermann
;--     load_rr_string
9838
        MOVE    #Cstr_39, RR
9839 7 jsauermann
;;;                                                             } 30 StringExpression
9840 2 jsauermann
;--     push_rr (16 bit)
9841
        MOVE    RR, -(SP)
9842
;--     push 2 bytes
9843
;--     call
9844
        CALL    Cprintf
9845
;--     pop 2 bytes
9846
        ADD     SP, #2
9847 7 jsauermann
;;;                                                           } 29 Expr l(r)
9848
;;;                                                         } 28 ExpressionStatement
9849
;;;                                                       } 27 case Statement
9850
;;;                                                     } 26 case Statement
9851
;;;                                                     { 26 ExpressionStatement
9852
;;;                                                       { 27 Expr l(r)
9853
;;;                                                         { 28 TypeName
9854
;;;                                                           { 29 TypeSpecifier (all)
9855
;;;                                                             spec = int (80000)
9856
;;;                                                           } 29 TypeSpecifier (all)
9857
;;;                                                           { 29 List
9858
;;;                                                             { 30 DeclItem
9859
;;;                                                               what = DECL_NAME
9860
;;;                                                               name = gethex
9861
;;;                                                             } 30 DeclItem
9862
;;;                                                           } 29 List
9863
;;;                                                         } 28 TypeName
9864
;;;                                                         { 28 ParameterDeclaration
9865
;;;                                                           isEllipsis = false
9866
;;;                                                           { 29 TypeName
9867
;;;                                                             { 30 TypeSpecifier (all)
9868
;;;                                                               spec = char (20000)
9869
;;;                                                             } 30 TypeSpecifier (all)
9870
;;;                                                             { 30 List
9871
;;;                                                               { 31 DeclItem
9872
;;;                                                                 what = DECL_NAME
9873
;;;                                                                 name = echo
9874
;;;                                                               } 31 DeclItem
9875
;;;                                                             } 30 List
9876
;;;                                                           } 29 TypeName
9877
;;;                                                         } 28 ParameterDeclaration
9878
;;;                                                         { 28 NumericExpression (constant 1 = 0x1)
9879 2 jsauermann
;--     load_rr_constant
9880
        MOVE    #0x0001, RR
9881 7 jsauermann
;;;                                                         } 28 NumericExpression (constant 1 = 0x1)
9882 2 jsauermann
;--     push_rr (8 bit)
9883
        MOVE    R, -(SP)
9884
;--     push 2 bytes
9885
;--     call
9886
        CALL    Cgethex
9887
;--     pop 1 bytes
9888
        ADD     SP, #1
9889 7 jsauermann
;;;                                                       } 27 Expr l(r)
9890
;;;                                                     } 26 ExpressionStatement
9891
;;;                                                     { 26 ExpressionStatement
9892 2 jsauermann
        OUT R, (OUT_LEDS)
9893 7 jsauermann
;;;                                                     } 26 ExpressionStatement
9894
;;;                                                     { 26 ExpressionStatement
9895
;;;                                                       { 27 Expr l(r)
9896
;;;                                                         { 28 TypeName
9897
;;;                                                           { 29 TypeSpecifier (all)
9898
;;;                                                             spec = int (80000)
9899
;;;                                                           } 29 TypeSpecifier (all)
9900
;;;                                                           { 29 List
9901
;;;                                                             { 30 DeclItem
9902
;;;                                                               what = DECL_NAME
9903
;;;                                                               name = printf
9904
;;;                                                             } 30 DeclItem
9905
;;;                                                           } 29 List
9906
;;;                                                         } 28 TypeName
9907
;;;                                                         { 28 ParameterDeclaration
9908
;;;                                                           isEllipsis = true
9909
;;;                                                           { 29 TypeName
9910
;;;                                                             { 30 TypeSpecifier (all)
9911
;;;                                                               spec = const char (20100)
9912
;;;                                                             } 30 TypeSpecifier (all)
9913
;;;                                                             { 30 List
9914
;;;                                                               { 31 DeclItem
9915
;;;                                                                 what = DECL_POINTER
9916
;;;                                                                 { 32 List
9917
;;;                                                                   { 33 Ptr
9918
;;;                                                                   } 33 Ptr
9919
;;;                                                                 } 32 List
9920
;;;                                                               } 31 DeclItem
9921
;;;                                                               { 31 DeclItem
9922
;;;                                                                 what = DECL_NAME
9923
;;;                                                                 name = format
9924
;;;                                                               } 31 DeclItem
9925
;;;                                                             } 30 List
9926
;;;                                                           } 29 TypeName
9927
;;;                                                         } 28 ParameterDeclaration
9928
;;;                                                         { 28 StringExpression
9929 2 jsauermann
;--     load_rr_string
9930
        MOVE    #Cstr_41, RR
9931 7 jsauermann
;;;                                                         } 28 StringExpression
9932 2 jsauermann
;--     push_rr (16 bit)
9933
        MOVE    RR, -(SP)
9934
;--     push 2 bytes
9935
;--     call
9936
        CALL    Cprintf
9937
;--     pop 2 bytes
9938
        ADD     SP, #2
9939 7 jsauermann
;;;                                                       } 27 Expr l(r)
9940
;;;                                                     } 26 ExpressionStatement
9941
;;;                                                     { 26 ExpressionStatement
9942
;;;                                                       { 27 Expr l(r)
9943
;;;                                                         { 28 TypeName
9944
;;;                                                           { 29 TypeSpecifier (all)
9945
;;;                                                             spec = int (80000)
9946
;;;                                                           } 29 TypeSpecifier (all)
9947
;;;                                                           { 29 List
9948
;;;                                                             { 30 DeclItem
9949
;;;                                                               what = DECL_NAME
9950
;;;                                                               name = getchr
9951
;;;                                                             } 30 DeclItem
9952
;;;                                                           } 29 List
9953
;;;                                                         } 28 TypeName
9954 2 jsauermann
;--     push 2 bytes
9955
;--     call
9956
        CALL    Cgetchr
9957
;--     pop 0 bytes
9958 7 jsauermann
;;;                                                       } 27 Expr l(r)
9959
;;;                                                     } 26 ExpressionStatement
9960
;;;                                                     { 26 break/continue Statement
9961 2 jsauermann
;--     branch
9962
        JMP     L19_brk_73
9963 7 jsauermann
;;;                                                     } 26 break/continue Statement
9964
;;;                                                     { 26 case Statement
9965 2 jsauermann
L19_case_73_004D:
9966 7 jsauermann
;;;                                                       { 27 case Statement
9967 2 jsauermann
L19_case_73_006D:
9968 7 jsauermann
;;;                                                         { 28 ExpressionStatement
9969
;;;                                                           { 29 Expr l(r)
9970
;;;                                                             { 30 TypeName
9971
;;;                                                               { 31 TypeSpecifier (all)
9972
;;;                                                                 spec = int (80000)
9973
;;;                                                               } 31 TypeSpecifier (all)
9974
;;;                                                               { 31 List
9975
;;;                                                                 { 32 DeclItem
9976
;;;                                                                   what = DECL_NAME
9977
;;;                                                                   name = printf
9978
;;;                                                                 } 32 DeclItem
9979
;;;                                                               } 31 List
9980
;;;                                                             } 30 TypeName
9981
;;;                                                             { 30 ParameterDeclaration
9982
;;;                                                               isEllipsis = true
9983
;;;                                                               { 31 TypeName
9984
;;;                                                                 { 32 TypeSpecifier (all)
9985
;;;                                                                   spec = const char (20100)
9986
;;;                                                                 } 32 TypeSpecifier (all)
9987
;;;                                                                 { 32 List
9988
;;;                                                                   { 33 DeclItem
9989
;;;                                                                     what = DECL_POINTER
9990
;;;                                                                     { 34 List
9991
;;;                                                                       { 35 Ptr
9992
;;;                                                                       } 35 Ptr
9993
;;;                                                                     } 34 List
9994
;;;                                                                   } 33 DeclItem
9995
;;;                                                                   { 33 DeclItem
9996
;;;                                                                     what = DECL_NAME
9997
;;;                                                                     name = format
9998
;;;                                                                   } 33 DeclItem
9999
;;;                                                                 } 32 List
10000
;;;                                                               } 31 TypeName
10001
;;;                                                             } 30 ParameterDeclaration
10002
;;;                                                             { 30 StringExpression
10003 2 jsauermann
;--     load_rr_string
10004
        MOVE    #Cstr_42, RR
10005 7 jsauermann
;;;                                                             } 30 StringExpression
10006 2 jsauermann
;--     push_rr (16 bit)
10007
        MOVE    RR, -(SP)
10008
;--     push 2 bytes
10009
;--     call
10010
        CALL    Cprintf
10011
;--     pop 2 bytes
10012
        ADD     SP, #2
10013 7 jsauermann
;;;                                                           } 29 Expr l(r)
10014
;;;                                                         } 28 ExpressionStatement
10015
;;;                                                       } 27 case Statement
10016
;;;                                                     } 26 case Statement
10017
;;;                                                     { 26 ExpressionStatement
10018
;;;                                                       { 27 Expr l = r
10019
;;;                                                         { 28 TypeName
10020
;;;                                                           { 29 TypeSpecifier (all)
10021
;;;                                                             spec = unsigned char (22000)
10022
;;;                                                           } 29 TypeSpecifier (all)
10023
;;;                                                           { 29 List
10024
;;;                                                             { 30 DeclItem
10025
;;;                                                               what = DECL_POINTER
10026
;;;                                                               { 31 List
10027
;;;                                                                 { 32 Ptr
10028
;;;                                                                 } 32 Ptr
10029
;;;                                                               } 31 List
10030
;;;                                                             } 30 DeclItem
10031
;;;                                                             { 30 DeclItem
10032
;;;                                                               what = DECL_NAME
10033
;;;                                                               name = address
10034
;;;                                                             } 30 DeclItem
10035
;;;                                                           } 29 List
10036
;;;                                                         } 28 TypeName
10037
;;;                                                         { 28 Expression (cast)r
10038
;;;                                                           { 29 Expr l(r)
10039
;;;                                                             { 30 TypeName
10040
;;;                                                               { 31 TypeSpecifier (all)
10041
;;;                                                                 spec = int (80000)
10042
;;;                                                               } 31 TypeSpecifier (all)
10043
;;;                                                               { 31 List
10044
;;;                                                                 { 32 DeclItem
10045
;;;                                                                   what = DECL_NAME
10046
;;;                                                                   name = gethex
10047
;;;                                                                 } 32 DeclItem
10048
;;;                                                               } 31 List
10049
;;;                                                             } 30 TypeName
10050
;;;                                                             { 30 ParameterDeclaration
10051
;;;                                                               isEllipsis = false
10052
;;;                                                               { 31 TypeName
10053
;;;                                                                 { 32 TypeSpecifier (all)
10054
;;;                                                                   spec = char (20000)
10055
;;;                                                                 } 32 TypeSpecifier (all)
10056
;;;                                                                 { 32 List
10057
;;;                                                                   { 33 DeclItem
10058
;;;                                                                     what = DECL_NAME
10059
;;;                                                                     name = echo
10060
;;;                                                                   } 33 DeclItem
10061
;;;                                                                 } 32 List
10062
;;;                                                               } 31 TypeName
10063
;;;                                                             } 30 ParameterDeclaration
10064
;;;                                                             { 30 NumericExpression (constant 1 = 0x1)
10065 2 jsauermann
;--     load_rr_constant
10066
        MOVE    #0x0001, RR
10067 7 jsauermann
;;;                                                             } 30 NumericExpression (constant 1 = 0x1)
10068 2 jsauermann
;--     push_rr (8 bit)
10069
        MOVE    R, -(SP)
10070
;--     push 2 bytes
10071
;--     call
10072
        CALL    Cgethex
10073
;--     pop 1 bytes
10074
        ADD     SP, #1
10075 7 jsauermann
;;;                                                           } 29 Expr l(r)
10076
;;;                                                         } 28 Expression (cast)r
10077 2 jsauermann
;--     store_rr_var address = -5(FP), SP at -5
10078
        MOVE    RR, 0(SP)
10079 7 jsauermann
;;;                                                       } 27 Expr l = r
10080
;;;                                                     } 26 ExpressionStatement
10081
;;;                                                     { 26 ExpressionStatement
10082
;;;                                                       { 27 Expr l(r)
10083
;;;                                                         { 28 TypeName
10084
;;;                                                           { 29 TypeSpecifier (all)
10085
;;;                                                             spec = int (80000)
10086
;;;                                                           } 29 TypeSpecifier (all)
10087
;;;                                                           { 29 List
10088
;;;                                                             { 30 DeclItem
10089
;;;                                                               what = DECL_NAME
10090
;;;                                                               name = printf
10091
;;;                                                             } 30 DeclItem
10092
;;;                                                           } 29 List
10093
;;;                                                         } 28 TypeName
10094
;;;                                                         { 28 ParameterDeclaration
10095
;;;                                                           isEllipsis = true
10096
;;;                                                           { 29 TypeName
10097
;;;                                                             { 30 TypeSpecifier (all)
10098
;;;                                                               spec = const char (20100)
10099
;;;                                                             } 30 TypeSpecifier (all)
10100
;;;                                                             { 30 List
10101
;;;                                                               { 31 DeclItem
10102
;;;                                                                 what = DECL_POINTER
10103
;;;                                                                 { 32 List
10104
;;;                                                                   { 33 Ptr
10105
;;;                                                                   } 33 Ptr
10106
;;;                                                                 } 32 List
10107
;;;                                                               } 31 DeclItem
10108
;;;                                                               { 31 DeclItem
10109
;;;                                                                 what = DECL_NAME
10110
;;;                                                                 name = format
10111
;;;                                                               } 31 DeclItem
10112
;;;                                                             } 30 List
10113
;;;                                                           } 29 TypeName
10114
;;;                                                         } 28 ParameterDeclaration
10115
;;;                                                         { 28 StringExpression
10116 2 jsauermann
;--     load_rr_string
10117
        MOVE    #Cstr_43, RR
10118 7 jsauermann
;;;                                                         } 28 StringExpression
10119 2 jsauermann
;--     push_rr (16 bit)
10120
        MOVE    RR, -(SP)
10121
;--     push 2 bytes
10122
;--     call
10123
        CALL    Cprintf
10124
;--     pop 2 bytes
10125
        ADD     SP, #2
10126 7 jsauermann
;;;                                                       } 27 Expr l(r)
10127
;;;                                                     } 26 ExpressionStatement
10128
;;;                                                     { 26 ExpressionStatement
10129
;;;                                                       { 27 Expr l(r)
10130
;;;                                                         { 28 TypeName
10131
;;;                                                           { 29 TypeSpecifier (all)
10132
;;;                                                             spec = int (80000)
10133
;;;                                                           } 29 TypeSpecifier (all)
10134
;;;                                                           { 29 List
10135
;;;                                                             { 30 DeclItem
10136
;;;                                                               what = DECL_NAME
10137
;;;                                                               name = getchr
10138
;;;                                                             } 30 DeclItem
10139
;;;                                                           } 29 List
10140
;;;                                                         } 28 TypeName
10141 2 jsauermann
;--     push 2 bytes
10142
;--     call
10143
        CALL    Cgetchr
10144
;--     pop 0 bytes
10145 7 jsauermann
;;;                                                       } 27 Expr l(r)
10146
;;;                                                     } 26 ExpressionStatement
10147
;;;                                                     { 26 ExpressionStatement
10148
;;;                                                       { 27 Expr l = r
10149
;;;                                                         { 28 TypeName
10150
;;;                                                           { 29 TypeSpecifier (all)
10151
;;;                                                             spec = unsigned char (22000)
10152
;;;                                                           } 29 TypeSpecifier (all)
10153
;;;                                                           { 29 List
10154
;;;                                                             { 30 DeclItem
10155
;;;                                                               what = DECL_NAME
10156
;;;                                                               name = address
10157
;;;                                                             } 30 DeclItem
10158
;;;                                                           } 29 List
10159
;;;                                                         } 28 TypeName
10160
;;;                                                         { 28 Expr l(r)
10161
;;;                                                           { 29 TypeName
10162
;;;                                                             { 30 TypeSpecifier (all)
10163
;;;                                                               spec = int (80000)
10164
;;;                                                             } 30 TypeSpecifier (all)
10165
;;;                                                             { 30 List
10166
;;;                                                               { 31 DeclItem
10167
;;;                                                                 what = DECL_NAME
10168
;;;                                                                 name = gethex
10169
;;;                                                               } 31 DeclItem
10170
;;;                                                             } 30 List
10171
;;;                                                           } 29 TypeName
10172
;;;                                                           { 29 ParameterDeclaration
10173
;;;                                                             isEllipsis = false
10174
;;;                                                             { 30 TypeName
10175
;;;                                                               { 31 TypeSpecifier (all)
10176
;;;                                                                 spec = char (20000)
10177
;;;                                                               } 31 TypeSpecifier (all)
10178
;;;                                                               { 31 List
10179
;;;                                                                 { 32 DeclItem
10180
;;;                                                                   what = DECL_NAME
10181
;;;                                                                   name = echo
10182
;;;                                                                 } 32 DeclItem
10183
;;;                                                               } 31 List
10184
;;;                                                             } 30 TypeName
10185
;;;                                                           } 29 ParameterDeclaration
10186
;;;                                                           { 29 NumericExpression (constant 1 = 0x1)
10187 2 jsauermann
;--     load_rr_constant
10188
        MOVE    #0x0001, RR
10189 7 jsauermann
;;;                                                           } 29 NumericExpression (constant 1 = 0x1)
10190 2 jsauermann
;--     push_rr (8 bit)
10191
        MOVE    R, -(SP)
10192
;--     push 2 bytes
10193
;--     call
10194
        CALL    Cgethex
10195
;--     pop 1 bytes
10196
        ADD     SP, #1
10197 7 jsauermann
;;;                                                         } 28 Expr l(r)
10198 2 jsauermann
;--     push_rr (8 bit)
10199
        MOVE    R, -(SP)
10200 7 jsauermann
;;;                                                         { 28 Expr * r
10201
;;;                                                           { 29 Expression (variable name)
10202
;;;                                                             expr_type = "identifier" (address)
10203 2 jsauermann
;--     load_rr_var address = -5(FP), SP at -6 (16 bit)
10204
        MOVE    1(SP), RR
10205 7 jsauermann
;;;                                                           } 29 Expression (variable name)
10206
;;;                                                         } 28 Expr * r
10207 2 jsauermann
;--     move_rr_to_ll
10208
        MOVE    RR, LL
10209
;--     pop_rr (8 bit)
10210
        MOVE    (SP)+, RU
10211
;--     assign (8 bit)
10212
        MOVE    R, (LL)
10213 7 jsauermann
;;;                                                       } 27 Expr l = r
10214
;;;                                                     } 26 ExpressionStatement
10215
;;;                                                     { 26 ExpressionStatement
10216
;;;                                                       { 27 Expr l(r)
10217
;;;                                                         { 28 TypeName
10218
;;;                                                           { 29 TypeSpecifier (all)
10219
;;;                                                             spec = int (80000)
10220
;;;                                                           } 29 TypeSpecifier (all)
10221
;;;                                                           { 29 List
10222
;;;                                                             { 30 DeclItem
10223
;;;                                                               what = DECL_NAME
10224
;;;                                                               name = getchr
10225
;;;                                                             } 30 DeclItem
10226
;;;                                                           } 29 List
10227
;;;                                                         } 28 TypeName
10228 2 jsauermann
;--     push 2 bytes
10229
;--     call
10230
        CALL    Cgetchr
10231
;--     pop 0 bytes
10232 7 jsauermann
;;;                                                       } 27 Expr l(r)
10233
;;;                                                     } 26 ExpressionStatement
10234
;;;                                                     { 26 ExpressionStatement
10235
;;;                                                       { 27 Expr l(r)
10236
;;;                                                         { 28 TypeName
10237
;;;                                                           { 29 TypeSpecifier (all)
10238
;;;                                                             spec = int (80000)
10239
;;;                                                           } 29 TypeSpecifier (all)
10240
;;;                                                           { 29 List
10241
;;;                                                             { 30 DeclItem
10242
;;;                                                               what = DECL_NAME
10243
;;;                                                               name = printf
10244
;;;                                                             } 30 DeclItem
10245
;;;                                                           } 29 List
10246
;;;                                                         } 28 TypeName
10247
;;;                                                         { 28 ParameterDeclaration
10248
;;;                                                           isEllipsis = true
10249
;;;                                                           { 29 TypeName
10250
;;;                                                             { 30 TypeSpecifier (all)
10251
;;;                                                               spec = const char (20100)
10252
;;;                                                             } 30 TypeSpecifier (all)
10253
;;;                                                             { 30 List
10254
;;;                                                               { 31 DeclItem
10255
;;;                                                                 what = DECL_POINTER
10256
;;;                                                                 { 32 List
10257
;;;                                                                   { 33 Ptr
10258
;;;                                                                   } 33 Ptr
10259
;;;                                                                 } 32 List
10260
;;;                                                               } 31 DeclItem
10261
;;;                                                               { 31 DeclItem
10262
;;;                                                                 what = DECL_NAME
10263
;;;                                                                 name = format
10264
;;;                                                               } 31 DeclItem
10265
;;;                                                             } 30 List
10266
;;;                                                           } 29 TypeName
10267
;;;                                                         } 28 ParameterDeclaration
10268
;;;                                                         { 28 StringExpression
10269 2 jsauermann
;--     load_rr_string
10270
        MOVE    #Cstr_44, RR
10271 7 jsauermann
;;;                                                         } 28 StringExpression
10272 2 jsauermann
;--     push_rr (16 bit)
10273
        MOVE    RR, -(SP)
10274
;--     push 2 bytes
10275
;--     call
10276
        CALL    Cprintf
10277
;--     pop 2 bytes
10278
        ADD     SP, #2
10279 7 jsauermann
;;;                                                       } 27 Expr l(r)
10280
;;;                                                     } 26 ExpressionStatement
10281
;;;                                                     { 26 break/continue Statement
10282 2 jsauermann
;--     branch
10283
        JMP     L19_brk_73
10284 7 jsauermann
;;;                                                     } 26 break/continue Statement
10285
;;;                                                     { 26 case Statement
10286 2 jsauermann
L19_case_73_0053:
10287 7 jsauermann
;;;                                                       { 27 case Statement
10288 2 jsauermann
L19_case_73_0073:
10289 7 jsauermann
;;;                                                         { 28 ExpressionStatement
10290
;;;                                                           { 29 Expr l(r)
10291
;;;                                                             { 30 TypeName
10292
;;;                                                               { 31 TypeSpecifier (all)
10293
;;;                                                                 spec = int (80000)
10294
;;;                                                               } 31 TypeSpecifier (all)
10295
;;;                                                               { 31 List
10296
;;;                                                                 { 32 DeclItem
10297
;;;                                                                   what = DECL_NAME
10298
;;;                                                                   name = printf
10299
;;;                                                                 } 32 DeclItem
10300
;;;                                                               } 31 List
10301
;;;                                                             } 30 TypeName
10302
;;;                                                             { 30 Expr (l , r)
10303
;;;                                                               { 31 ParameterDeclaration
10304
;;;                                                                 isEllipsis = true
10305
;;;                                                                 { 32 TypeName
10306
;;;                                                                   { 33 TypeSpecifier (all)
10307
;;;                                                                     spec = const char (20100)
10308
;;;                                                                   } 33 TypeSpecifier (all)
10309
;;;                                                                   { 33 List
10310
;;;                                                                     { 34 DeclItem
10311
;;;                                                                       what = DECL_POINTER
10312
;;;                                                                       { 35 List
10313
;;;                                                                         { 36 Ptr
10314
;;;                                                                         } 36 Ptr
10315
;;;                                                                       } 35 List
10316
;;;                                                                     } 34 DeclItem
10317
;;;                                                                     { 34 DeclItem
10318
;;;                                                                       what = DECL_NAME
10319
;;;                                                                       name = format
10320
;;;                                                                     } 34 DeclItem
10321
;;;                                                                   } 33 List
10322
;;;                                                                 } 32 TypeName
10323
;;;                                                               } 31 ParameterDeclaration
10324 2 jsauermann
        IN (IN_DIP_SWITCH), RU
10325
;--     push_rr (16 bit)
10326
        MOVE    RR, -(SP)
10327 7 jsauermann
;;;                                                               { 31 ParameterDeclaration
10328
;;;                                                                 isEllipsis = true
10329
;;;                                                                 { 32 TypeName
10330
;;;                                                                   { 33 TypeSpecifier (all)
10331
;;;                                                                     spec = const char (20100)
10332
;;;                                                                   } 33 TypeSpecifier (all)
10333
;;;                                                                   { 33 List
10334
;;;                                                                     { 34 DeclItem
10335
;;;                                                                       what = DECL_POINTER
10336
;;;                                                                       { 35 List
10337
;;;                                                                         { 36 Ptr
10338
;;;                                                                         } 36 Ptr
10339
;;;                                                                       } 35 List
10340
;;;                                                                     } 34 DeclItem
10341
;;;                                                                     { 34 DeclItem
10342
;;;                                                                       what = DECL_NAME
10343
;;;                                                                       name = format
10344
;;;                                                                     } 34 DeclItem
10345
;;;                                                                   } 33 List
10346
;;;                                                                 } 32 TypeName
10347
;;;                                                               } 31 ParameterDeclaration
10348
;;;                                                               { 31 StringExpression
10349 2 jsauermann
;--     load_rr_string
10350
        MOVE    #Cstr_45, RR
10351 7 jsauermann
;;;                                                               } 31 StringExpression
10352 2 jsauermann
;--     push_rr (16 bit)
10353
        MOVE    RR, -(SP)
10354 7 jsauermann
;;;                                                             } 30 Expr (l , r)
10355 2 jsauermann
;--     push 2 bytes
10356
;--     call
10357
        CALL    Cprintf
10358
;--     pop 4 bytes
10359
        ADD     SP, #4
10360 7 jsauermann
;;;                                                           } 29 Expr l(r)
10361
;;;                                                         } 28 ExpressionStatement
10362
;;;                                                       } 27 case Statement
10363
;;;                                                     } 26 case Statement
10364
;;;                                                     { 26 break/continue Statement
10365 2 jsauermann
;--     branch
10366
        JMP     L19_brk_73
10367 7 jsauermann
;;;                                                     } 26 break/continue Statement
10368
;;;                                                     { 26 case Statement
10369 2 jsauermann
L19_case_73_0054:
10370 7 jsauermann
;;;                                                       { 27 case Statement
10371 2 jsauermann
L19_case_73_0074:
10372 7 jsauermann
;;;                                                         { 28 ExpressionStatement
10373
;;;                                                           { 29 Expr l(r)
10374
;;;                                                             { 30 TypeName
10375
;;;                                                               { 31 TypeSpecifier (all)
10376
;;;                                                                 spec = int (80000)
10377
;;;                                                               } 31 TypeSpecifier (all)
10378
;;;                                                               { 31 List
10379
;;;                                                                 { 32 DeclItem
10380
;;;                                                                   what = DECL_NAME
10381
;;;                                                                   name = printf
10382
;;;                                                                 } 32 DeclItem
10383
;;;                                                               } 31 List
10384
;;;                                                             } 30 TypeName
10385
;;;                                                             { 30 Expr (l , r)
10386
;;;                                                               { 31 ParameterDeclaration
10387
;;;                                                                 isEllipsis = true
10388
;;;                                                                 { 32 TypeName
10389
;;;                                                                   { 33 TypeSpecifier (all)
10390
;;;                                                                     spec = const char (20100)
10391
;;;                                                                   } 33 TypeSpecifier (all)
10392
;;;                                                                   { 33 List
10393
;;;                                                                     { 34 DeclItem
10394
;;;                                                                       what = DECL_POINTER
10395
;;;                                                                       { 35 List
10396
;;;                                                                         { 36 Ptr
10397
;;;                                                                         } 36 Ptr
10398
;;;                                                                       } 35 List
10399
;;;                                                                     } 34 DeclItem
10400
;;;                                                                     { 34 DeclItem
10401
;;;                                                                       what = DECL_NAME
10402
;;;                                                                       name = format
10403
;;;                                                                     } 34 DeclItem
10404
;;;                                                                   } 33 List
10405
;;;                                                                 } 32 TypeName
10406
;;;                                                               } 31 ParameterDeclaration
10407 2 jsauermann
        IN (IN_TEMPERAT), RU
10408
;--     push_rr (16 bit)
10409
        MOVE    RR, -(SP)
10410 7 jsauermann
;;;                                                               { 31 ParameterDeclaration
10411
;;;                                                                 isEllipsis = true
10412
;;;                                                                 { 32 TypeName
10413
;;;                                                                   { 33 TypeSpecifier (all)
10414
;;;                                                                     spec = const char (20100)
10415
;;;                                                                   } 33 TypeSpecifier (all)
10416
;;;                                                                   { 33 List
10417
;;;                                                                     { 34 DeclItem
10418
;;;                                                                       what = DECL_POINTER
10419
;;;                                                                       { 35 List
10420
;;;                                                                         { 36 Ptr
10421
;;;                                                                         } 36 Ptr
10422
;;;                                                                       } 35 List
10423
;;;                                                                     } 34 DeclItem
10424
;;;                                                                     { 34 DeclItem
10425
;;;                                                                       what = DECL_NAME
10426
;;;                                                                       name = format
10427
;;;                                                                     } 34 DeclItem
10428
;;;                                                                   } 33 List
10429
;;;                                                                 } 32 TypeName
10430
;;;                                                               } 31 ParameterDeclaration
10431
;;;                                                               { 31 StringExpression
10432 2 jsauermann
;--     load_rr_string
10433
        MOVE    #Cstr_47, RR
10434 7 jsauermann
;;;                                                               } 31 StringExpression
10435 2 jsauermann
;--     push_rr (16 bit)
10436
        MOVE    RR, -(SP)
10437 7 jsauermann
;;;                                                             } 30 Expr (l , r)
10438 2 jsauermann
;--     push 2 bytes
10439
;--     call
10440
        CALL    Cprintf
10441
;--     pop 4 bytes
10442
        ADD     SP, #4
10443 7 jsauermann
;;;                                                           } 29 Expr l(r)
10444
;;;                                                         } 28 ExpressionStatement
10445
;;;                                                       } 27 case Statement
10446
;;;                                                     } 26 case Statement
10447
;;;                                                     { 26 break/continue Statement
10448 2 jsauermann
;--     branch
10449
        JMP     L19_brk_73
10450 7 jsauermann
;;;                                                     } 26 break/continue Statement
10451
;;;                                                     { 26 case Statement
10452 2 jsauermann
L19_case_73_0051:
10453 7 jsauermann
;;;                                                       { 27 case Statement
10454 2 jsauermann
L19_case_73_0071:
10455 7 jsauermann
;;;                                                         { 28 case Statement
10456 2 jsauermann
L19_case_73_0058:
10457 7 jsauermann
;;;                                                           { 29 case Statement
10458 2 jsauermann
L19_case_73_0078:
10459 7 jsauermann
;;;                                                             { 30 ExpressionStatement
10460
;;;                                                               { 31 Expr l(r)
10461
;;;                                                                 { 32 TypeName
10462
;;;                                                                   { 33 TypeSpecifier (all)
10463
;;;                                                                     spec = int (80000)
10464
;;;                                                                   } 33 TypeSpecifier (all)
10465
;;;                                                                   { 33 List
10466
;;;                                                                     { 34 DeclItem
10467
;;;                                                                       what = DECL_NAME
10468
;;;                                                                       name = printf
10469
;;;                                                                     } 34 DeclItem
10470
;;;                                                                   } 33 List
10471
;;;                                                                 } 32 TypeName
10472
;;;                                                                 { 32 ParameterDeclaration
10473
;;;                                                                   isEllipsis = true
10474
;;;                                                                   { 33 TypeName
10475
;;;                                                                     { 34 TypeSpecifier (all)
10476
;;;                                                                       spec = const char (20100)
10477
;;;                                                                     } 34 TypeSpecifier (all)
10478
;;;                                                                     { 34 List
10479
;;;                                                                       { 35 DeclItem
10480
;;;                                                                         what = DECL_POINTER
10481
;;;                                                                         { 36 List
10482
;;;                                                                           { 37 Ptr
10483
;;;                                                                           } 37 Ptr
10484
;;;                                                                         } 36 List
10485
;;;                                                                       } 35 DeclItem
10486
;;;                                                                       { 35 DeclItem
10487
;;;                                                                         what = DECL_NAME
10488
;;;                                                                         name = format
10489
;;;                                                                       } 35 DeclItem
10490
;;;                                                                     } 34 List
10491
;;;                                                                   } 33 TypeName
10492
;;;                                                                 } 32 ParameterDeclaration
10493
;;;                                                                 { 32 StringExpression
10494 2 jsauermann
;--     load_rr_string
10495
        MOVE    #Cstr_49, RR
10496 7 jsauermann
;;;                                                                 } 32 StringExpression
10497 2 jsauermann
;--     push_rr (16 bit)
10498
        MOVE    RR, -(SP)
10499
;--     push 2 bytes
10500
;--     call
10501
        CALL    Cprintf
10502
;--     pop 2 bytes
10503
        ADD     SP, #2
10504 7 jsauermann
;;;                                                               } 31 Expr l(r)
10505
;;;                                                             } 30 ExpressionStatement
10506
;;;                                                           } 29 case Statement
10507
;;;                                                         } 28 case Statement
10508
;;;                                                       } 27 case Statement
10509
;;;                                                     } 26 case Statement
10510
;;;                                                     { 26 while Statement
10511 2 jsauermann
L19_loop_75:
10512 7 jsauermann
;;;                                                       { 27 ExpressionStatement
10513
;;;                                                       } 27 ExpressionStatement
10514 2 jsauermann
L19_cont_75:
10515 7 jsauermann
;;;                                                       { 27 Expression (variable name)
10516
;;;                                                         expr_type = "identifier" (serial_out_length)
10517 2 jsauermann
;--     load_rr_var serial_out_length, (8 bit)
10518
        MOVE    (Cserial_out_length), RU
10519 7 jsauermann
;;;                                                       } 27 Expression (variable name)
10520 2 jsauermann
;--     branch_true
10521
        JMP     RRNZ, L19_loop_75
10522
L19_brk_76:
10523 7 jsauermann
;;;                                                     } 26 while Statement
10524
;;;                                                     { 26 ExpressionStatement
10525 2 jsauermann
        DI
10526 7 jsauermann
;;;                                                     } 26 ExpressionStatement
10527
;;;                                                     { 26 ExpressionStatement
10528 2 jsauermann
        HALT
10529 7 jsauermann
;;;                                                     } 26 ExpressionStatement
10530
;;;                                                     { 26 break/continue Statement
10531 2 jsauermann
;--     branch
10532
        JMP     L19_brk_73
10533 7 jsauermann
;;;                                                     } 26 break/continue Statement
10534
;;;                                                     { 26 case Statement
10535 2 jsauermann
L19_deflt_73:
10536 7 jsauermann
;;;                                                       { 27 ExpressionStatement
10537
;;;                                                         { 28 Expr l(r)
10538
;;;                                                           { 29 TypeName
10539
;;;                                                             { 30 TypeSpecifier (all)
10540
;;;                                                               spec = int (80000)
10541
;;;                                                             } 30 TypeSpecifier (all)
10542
;;;                                                             { 30 List
10543
;;;                                                               { 31 DeclItem
10544
;;;                                                                 what = DECL_NAME
10545
;;;                                                                 name = printf
10546
;;;                                                               } 31 DeclItem
10547
;;;                                                             } 30 List
10548
;;;                                                           } 29 TypeName
10549
;;;                                                           { 29 ParameterDeclaration
10550
;;;                                                             isEllipsis = true
10551
;;;                                                             { 30 TypeName
10552
;;;                                                               { 31 TypeSpecifier (all)
10553
;;;                                                                 spec = const char (20100)
10554
;;;                                                               } 31 TypeSpecifier (all)
10555
;;;                                                               { 31 List
10556
;;;                                                                 { 32 DeclItem
10557
;;;                                                                   what = DECL_POINTER
10558
;;;                                                                   { 33 List
10559
;;;                                                                     { 34 Ptr
10560
;;;                                                                     } 34 Ptr
10561
;;;                                                                   } 33 List
10562
;;;                                                                 } 32 DeclItem
10563
;;;                                                                 { 32 DeclItem
10564
;;;                                                                   what = DECL_NAME
10565
;;;                                                                   name = format
10566
;;;                                                                 } 32 DeclItem
10567
;;;                                                               } 31 List
10568
;;;                                                             } 30 TypeName
10569
;;;                                                           } 29 ParameterDeclaration
10570
;;;                                                           { 29 StringExpression
10571 2 jsauermann
;--     load_rr_string
10572
        MOVE    #Cstr_52, RR
10573 7 jsauermann
;;;                                                           } 29 StringExpression
10574 2 jsauermann
;--     push_rr (16 bit)
10575
        MOVE    RR, -(SP)
10576
;--     push 2 bytes
10577
;--     call
10578
        CALL    Cprintf
10579
;--     pop 2 bytes
10580
        ADD     SP, #2
10581 7 jsauermann
;;;                                                         } 28 Expr l(r)
10582
;;;                                                       } 27 ExpressionStatement
10583
;;;                                                     } 26 case Statement
10584
;;;                                                   } 25 List
10585
;--     pop 0 bytes
10586
;;;                                                 } 24 CompoundStatement
10587 2 jsauermann
L19_brk_73:
10588 7 jsauermann
;;;                                               } 23 SwitchStatement
10589
;;;                                             } 22 List
10590
;--     pop 0 bytes
10591
;;;                                           } 21 CompoundStatement
10592 2 jsauermann
L19_cont_70:
10593
;--     branch
10594
        JMP     L19_loop_70
10595
L19_brk_71:
10596 7 jsauermann
;;;                                         } 20 for Statement
10597
;;;                                       } 19 List
10598 2 jsauermann
;--     pop 5 bytes
10599
        ADD     SP, #5
10600 7 jsauermann
;;;                                     } 18 CompoundStatement
10601
;--     ret
10602 2 jsauermann
        RET
10603
;;; ------------------------------------;
10604
Cstr_19:                                ;
10605
        .BYTE   0x30                    ;
10606
        .BYTE   0x31                    ;
10607
        .BYTE   0x32                    ;
10608
        .BYTE   0x33                    ;
10609
        .BYTE   0x34                    ;
10610
        .BYTE   0x35                    ;
10611
        .BYTE   0x36                    ;
10612
        .BYTE   0x37                    ;
10613
        .BYTE   0x38                    ;
10614
        .BYTE   0x39                    ;
10615
        .BYTE   0x41                    ;
10616
        .BYTE   0x42                    ;
10617
        .BYTE   0x43                    ;
10618
        .BYTE   0x44                    ;
10619
        .BYTE   0x45                    ;
10620
        .BYTE   0x46                    ;
10621
        .BYTE   0                        ;
10622
Cstr_20:                                ;
10623
        .BYTE   0x30                    ;
10624
        .BYTE   0x58                    ;
10625
        .BYTE   0                        ;
10626
Cstr_21:                                ;
10627
        .BYTE   0                        ;
10628
Cstr_22:                                ;
10629
        .BYTE   0                        ;
10630
Cstr_23:                                ;
10631
        .BYTE   0                        ;
10632
Cstr_24:                                ;
10633
        .BYTE   0x30                    ;
10634
        .BYTE   0x31                    ;
10635
        .BYTE   0x32                    ;
10636
        .BYTE   0x33                    ;
10637
        .BYTE   0x34                    ;
10638
        .BYTE   0x35                    ;
10639
        .BYTE   0x36                    ;
10640
        .BYTE   0x37                    ;
10641
        .BYTE   0x38                    ;
10642
        .BYTE   0x39                    ;
10643
        .BYTE   0x61                    ;
10644
        .BYTE   0x62                    ;
10645
        .BYTE   0x63                    ;
10646
        .BYTE   0x64                    ;
10647
        .BYTE   0x65                    ;
10648
        .BYTE   0x66                    ;
10649
        .BYTE   0                        ;
10650
Cstr_25:                                ;
10651
        .BYTE   0x30                    ;
10652
        .BYTE   0x78                    ;
10653
        .BYTE   0                        ;
10654
Cstr_28:                                ;
10655
        .BYTE   0x55                    ;
10656
        .BYTE   0x70                    ;
10657
        .BYTE   0x74                    ;
10658
        .BYTE   0x69                    ;
10659
        .BYTE   0x6D                    ;
10660
        .BYTE   0x65                    ;
10661
        .BYTE   0x20                    ;
10662
        .BYTE   0x69                    ;
10663
        .BYTE   0x73                    ;
10664
        .BYTE   0x20                    ;
10665
        .BYTE   0x25                    ;
10666
        .BYTE   0x34                    ;
10667
        .BYTE   0x2E                    ;
10668
        .BYTE   0x34                    ;
10669
        .BYTE   0x58                    ;
10670
        .BYTE   0x25                    ;
10671
        .BYTE   0x34                    ;
10672
        .BYTE   0x2E                    ;
10673
        .BYTE   0x34                    ;
10674
        .BYTE   0x58                    ;
10675
        .BYTE   0x25                    ;
10676
        .BYTE   0x34                    ;
10677
        .BYTE   0x2E                    ;
10678
        .BYTE   0x34                    ;
10679
        .BYTE   0x58                    ;
10680
        .BYTE   0x20                    ;
10681
        .BYTE   0x73                    ;
10682
        .BYTE   0x65                    ;
10683
        .BYTE   0x63                    ;
10684
        .BYTE   0x6F                    ;
10685
        .BYTE   0x6E                    ;
10686
        .BYTE   0x64                    ;
10687
        .BYTE   0x73                    ;
10688
        .BYTE   0x0D                    ;
10689
        .BYTE   0x0A                    ;
10690
        .BYTE   0                        ;
10691
Cstr_29:                                ;
10692
        .BYTE   0x25                    ;
10693
        .BYTE   0x34                    ;
10694
        .BYTE   0x2E                    ;
10695
        .BYTE   0x34                    ;
10696
        .BYTE   0x58                    ;
10697
        .BYTE   0x3A                    ;
10698
        .BYTE   0                        ;
10699
Cstr_30:                                ;
10700
        .BYTE   0x20                    ;
10701
        .BYTE   0x25                    ;
10702
        .BYTE   0x32                    ;
10703
        .BYTE   0x2E                    ;
10704
        .BYTE   0x32                    ;
10705
        .BYTE   0x58                    ;
10706
        .BYTE   0                        ;
10707
Cstr_31:                                ;
10708
        .BYTE   0x20                    ;
10709
        .BYTE   0x2D                    ;
10710
        .BYTE   0x20                    ;
10711
        .BYTE   0                        ;
10712
Cstr_32:                                ;
10713
        .BYTE   0x0D                    ;
10714
        .BYTE   0x0A                    ;
10715
        .BYTE   0                        ;
10716
Cstr_35:                                ;
10717
        .BYTE   0x2D                    ;
10718
        .BYTE   0x3E                    ;
10719
        .BYTE   0x20                    ;
10720
        .BYTE   0                        ;
10721
Cstr_36:                                ;
10722
        .BYTE   0x08                    ;
10723
        .BYTE   0x08                    ;
10724
        .BYTE   0x08                    ;
10725
        .BYTE   0x08                    ;
10726
        .BYTE   0                        ;
10727
Cstr_37:                                ;
10728
        .BYTE   0x44                    ;
10729
        .BYTE   0x69                    ;
10730
        .BYTE   0x73                    ;
10731
        .BYTE   0x70                    ;
10732
        .BYTE   0x6C                    ;
10733
        .BYTE   0x61                    ;
10734
        .BYTE   0x79                    ;
10735
        .BYTE   0x20                    ;
10736
        .BYTE   0                        ;
10737
Cstr_38:                                ;
10738
        .BYTE   0x0D                    ;
10739
        .BYTE   0x0A                    ;
10740
        .BYTE   0                        ;
10741
Cstr_39:                                ;
10742
        .BYTE   0x4C                    ;
10743
        .BYTE   0x45                    ;
10744
        .BYTE   0x44                    ;
10745
        .BYTE   0x73                    ;
10746
        .BYTE   0x20                    ;
10747
        .BYTE   0                        ;
10748
Cstr_41:                                ;
10749
        .BYTE   0x0D                    ;
10750
        .BYTE   0x0A                    ;
10751
        .BYTE   0                        ;
10752
Cstr_42:                                ;
10753
        .BYTE   0x4D                    ;
10754
        .BYTE   0x65                    ;
10755
        .BYTE   0x6D                    ;
10756
        .BYTE   0x6F                    ;
10757
        .BYTE   0x72                    ;
10758
        .BYTE   0x79                    ;
10759
        .BYTE   0x20                    ;
10760
        .BYTE   0                        ;
10761
Cstr_43:                                ;
10762
        .BYTE   0x20                    ;
10763
        .BYTE   0x56                    ;
10764
        .BYTE   0x61                    ;
10765
        .BYTE   0x6C                    ;
10766
        .BYTE   0x75                    ;
10767
        .BYTE   0x65                    ;
10768
        .BYTE   0x20                    ;
10769
        .BYTE   0                        ;
10770
Cstr_44:                                ;
10771
        .BYTE   0x0D                    ;
10772
        .BYTE   0x0A                    ;
10773
        .BYTE   0                        ;
10774
Cstr_45:                                ;
10775
        .BYTE   0x44                    ;
10776
        .BYTE   0x49                    ;
10777
        .BYTE   0x50                    ;
10778
        .BYTE   0x20                    ;
10779
        .BYTE   0x73                    ;
10780
        .BYTE   0x77                    ;
10781
        .BYTE   0x69                    ;
10782
        .BYTE   0x74                    ;
10783
        .BYTE   0x63                    ;
10784
        .BYTE   0x68                    ;
10785
        .BYTE   0x20                    ;
10786
        .BYTE   0x69                    ;
10787
        .BYTE   0x73                    ;
10788
        .BYTE   0x20                    ;
10789
        .BYTE   0x30                    ;
10790
        .BYTE   0x78                    ;
10791
        .BYTE   0x25                    ;
10792
        .BYTE   0x58                    ;
10793
        .BYTE   0x0D                    ;
10794
        .BYTE   0x0A                    ;
10795
        .BYTE   0                        ;
10796
Cstr_47:                                ;
10797
        .BYTE   0x54                    ;
10798
        .BYTE   0x65                    ;
10799
        .BYTE   0x6D                    ;
10800
        .BYTE   0x70                    ;
10801
        .BYTE   0x65                    ;
10802
        .BYTE   0x72                    ;
10803
        .BYTE   0x61                    ;
10804
        .BYTE   0x74                    ;
10805
        .BYTE   0x75                    ;
10806
        .BYTE   0x72                    ;
10807
        .BYTE   0x65                    ;
10808
        .BYTE   0x20                    ;
10809
        .BYTE   0x69                    ;
10810
        .BYTE   0x73                    ;
10811
        .BYTE   0x20                    ;
10812
        .BYTE   0x25                    ;
10813
        .BYTE   0x64                    ;
10814
        .BYTE   0x20                    ;
10815
        .BYTE   0x64                    ;
10816
        .BYTE   0x65                    ;
10817
        .BYTE   0x67                    ;
10818
        .BYTE   0x72                    ;
10819
        .BYTE   0x65                    ;
10820
        .BYTE   0x65                    ;
10821
        .BYTE   0x73                    ;
10822
        .BYTE   0x20                    ;
10823
        .BYTE   0x43                    ;
10824
        .BYTE   0x65                    ;
10825
        .BYTE   0x6C                    ;
10826
        .BYTE   0x73                    ;
10827
        .BYTE   0x69                    ;
10828
        .BYTE   0x75                    ;
10829
        .BYTE   0x73                    ;
10830
        .BYTE   0x0D                    ;
10831
        .BYTE   0x0A                    ;
10832
        .BYTE   0                        ;
10833
Cstr_49:                                ;
10834
        .BYTE   0x48                    ;
10835
        .BYTE   0x61                    ;
10836
        .BYTE   0x6C                    ;
10837
        .BYTE   0x74                    ;
10838
        .BYTE   0x65                    ;
10839
        .BYTE   0x64                    ;
10840
        .BYTE   0x2E                    ;
10841
        .BYTE   0x0D                    ;
10842
        .BYTE   0x0A                    ;
10843
        .BYTE   0                        ;
10844
Cstr_52:                                ;
10845
        .BYTE   0x0D                    ;
10846
        .BYTE   0x0A                    ;
10847
        .BYTE   0x43                    ;
10848
        .BYTE   0x20                    ;
10849
        .BYTE   0x2D                    ;
10850
        .BYTE   0x20                    ;
10851
        .BYTE   0x73                    ;
10852
        .BYTE   0x68                    ;
10853
        .BYTE   0x6F                    ;
10854
        .BYTE   0x77                    ;
10855
        .BYTE   0x20                    ;
10856
        .BYTE   0x74                    ;
10857
        .BYTE   0x69                    ;
10858
        .BYTE   0x6D                    ;
10859
        .BYTE   0x65                    ;
10860
        .BYTE   0x0D                    ;
10861
        .BYTE   0x0A                    ;
10862
        .BYTE   0x44                    ;
10863
        .BYTE   0x20                    ;
10864
        .BYTE   0x2D                    ;
10865
        .BYTE   0x20                    ;
10866
        .BYTE   0x64                    ;
10867
        .BYTE   0x69                    ;
10868
        .BYTE   0x73                    ;
10869
        .BYTE   0x70                    ;
10870
        .BYTE   0x6C                    ;
10871
        .BYTE   0x61                    ;
10872
        .BYTE   0x79                    ;
10873
        .BYTE   0x20                    ;
10874
        .BYTE   0x6D                    ;
10875
        .BYTE   0x65                    ;
10876
        .BYTE   0x6D                    ;
10877
        .BYTE   0x6F                    ;
10878
        .BYTE   0x72                    ;
10879
        .BYTE   0x79                    ;
10880
        .BYTE   0x0D                    ;
10881
        .BYTE   0x0A                    ;
10882
        .BYTE   0x45                    ;
10883
        .BYTE   0x20                    ;
10884
        .BYTE   0x2D                    ;
10885
        .BYTE   0x20                    ;
10886
        .BYTE   0x73                    ;
10887
        .BYTE   0x65                    ;
10888
        .BYTE   0x74                    ;
10889
        .BYTE   0x20                    ;
10890
        .BYTE   0x4C                    ;
10891
        .BYTE   0x45                    ;
10892
        .BYTE   0x44                    ;
10893
        .BYTE   0x73                    ;
10894
        .BYTE   0x0D                    ;
10895
        .BYTE   0x0A                    ;
10896
        .BYTE   0x4D                    ;
10897
        .BYTE   0x20                    ;
10898
        .BYTE   0x2D                    ;
10899
        .BYTE   0x20                    ;
10900
        .BYTE   0x6D                    ;
10901
        .BYTE   0x6F                    ;
10902
        .BYTE   0x64                    ;
10903
        .BYTE   0x69                    ;
10904
        .BYTE   0x66                    ;
10905
        .BYTE   0x79                    ;
10906
        .BYTE   0x20                    ;
10907
        .BYTE   0x6D                    ;
10908
        .BYTE   0x65                    ;
10909
        .BYTE   0x6D                    ;
10910
        .BYTE   0x6F                    ;
10911
        .BYTE   0x72                    ;
10912
        .BYTE   0x79                    ;
10913
        .BYTE   0x0D                    ;
10914
        .BYTE   0x0A                    ;
10915
        .BYTE   0x53                    ;
10916
        .BYTE   0x20                    ;
10917
        .BYTE   0x2D                    ;
10918
        .BYTE   0x20                    ;
10919
        .BYTE   0x72                    ;
10920
        .BYTE   0x65                    ;
10921
        .BYTE   0x61                    ;
10922
        .BYTE   0x64                    ;
10923
        .BYTE   0x20                    ;
10924
        .BYTE   0x44                    ;
10925
        .BYTE   0x49                    ;
10926
        .BYTE   0x50                    ;
10927
        .BYTE   0x20                    ;
10928
        .BYTE   0x73                    ;
10929
        .BYTE   0x77                    ;
10930
        .BYTE   0x69                    ;
10931
        .BYTE   0x74                    ;
10932
        .BYTE   0x63                    ;
10933
        .BYTE   0x68                    ;
10934
        .BYTE   0x0D                    ;
10935
        .BYTE   0x0A                    ;
10936
        .BYTE   0x54                    ;
10937
        .BYTE   0x20                    ;
10938
        .BYTE   0x2D                    ;
10939
        .BYTE   0x20                    ;
10940
        .BYTE   0x72                    ;
10941
        .BYTE   0x65                    ;
10942
        .BYTE   0x61                    ;
10943
        .BYTE   0x64                    ;
10944
        .BYTE   0x20                    ;
10945
        .BYTE   0x74                    ;
10946
        .BYTE   0x65                    ;
10947
        .BYTE   0x6D                    ;
10948
        .BYTE   0x70                    ;
10949
        .BYTE   0x65                    ;
10950
        .BYTE   0x72                    ;
10951
        .BYTE   0x61                    ;
10952
        .BYTE   0x74                    ;
10953
        .BYTE   0x75                    ;
10954
        .BYTE   0x72                    ;
10955
        .BYTE   0x65                    ;
10956
        .BYTE   0x0D                    ;
10957
        .BYTE   0x0A                    ;
10958
        .BYTE   0x51                    ;
10959
        .BYTE   0x20                    ;
10960
        .BYTE   0x2D                    ;
10961
        .BYTE   0x20                    ;
10962
        .BYTE   0x71                    ;
10963
        .BYTE   0x75                    ;
10964
        .BYTE   0x69                    ;
10965
        .BYTE   0x74                    ;
10966
        .BYTE   0x0D                    ;
10967
        .BYTE   0x0A                    ;
10968
        .BYTE   0x58                    ;
10969
        .BYTE   0x20                    ;
10970
        .BYTE   0x2D                    ;
10971
        .BYTE   0x20                    ;
10972
        .BYTE   0x65                    ;
10973
        .BYTE   0x78                    ;
10974
        .BYTE   0x69                    ;
10975
        .BYTE   0x74                    ;
10976
        .BYTE   0x0D                    ;
10977
        .BYTE   0x0A                    ;
10978
        .BYTE   0x0D                    ;
10979
        .BYTE   0x0A                    ;
10980
        .BYTE   0                        ;
10981
Cend_text:                              ;

powered by: WebSVN 2.1.0

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