Hackfix and re-enable strtoull and wcstoull, see bug #3798.
[sdcc.git] / sdcc / sdas / astlcs90 / tt90.asm
blob940efdd9708c427eab03aa02a905021b2ea81200
1 .title Test of TLCS-90 assembler
2 ; see http://www.bitsavers.org/components/toshiba/_dataBook/1988_Toshiba_TLCS-48_90_8_Bit_Microcontroller.pdf
4 offset = 0x11 ;arbitrary constants
5 n = 0x20
6 nn = 0x0584
7 stack = 0x0FFA0
8 stack8 = 0xA0
10 ;***********************************************************
11 ; 4T (just loads for initialization)
12 ld a, #n ; 36 20
13 ld d, #n ; 32 20
14 ld e, d ; FA 33
15 ld hl, de ; 41
16 ld bc, hl ; 48
18 ;***********************************************************
19 ; 2T
20 nop ; 00
21 ld b, a ; 28
22 ld a, b ; 20
23 inc a ; 86
24 dec e ; 8B
25 rlca ; A0
26 rrca ; A1
27 rla ; A2
28 rra ; A3
29 ;slaa ; A4
30 ;sraa ; A5
31 ;slla ; A6
32 ;srla ; A7
33 cpl ; 10
34 neg ; 11
35 ex de, hl ; 08
36 ex af, af ; 09
37 exx ; 0A
39 ;***********************************************************
40 ; 4T
41 add a, b ; F8 60
42 add a, #n ; 68 20
43 adc a, l ; FD 61
44 sub a, h ; FC 62
45 sub l, #n ; FD 6A 20
46 xor a, a ; FE 65
47 rlc b ; F8 A0
48 set 2, b ; F8 BA
49 sla a ; FE A4
50 sra b ; F8 A5
51 sll c ; F9 A6
52 srl d ; Fa A7
54 ;***********************************************************
55 ; 6T
56 ld sp, #stack ; 3E A0 FF
57 ld ix, sp ; FE 3C
58 ld (sp), b ; EE 20
59 ld c, (sp) ; E6 29
60 add a, (sp) ; E6 60
61 ;xor b, b ; illegal
62 xor a, b ; F8 65 ; as 4T
63 bit 3, (sp) ; E6 AB
65 ;***********************************************************
66 ; 8T (b 0x5e)
67 ld de, (sp) ; E6 49 ; as 6T
68 push hl ; 52
69 ld c, (stack) ; E7 A0 29
70 add a, (stack) ; 60 A0 ; as 4T
71 rrc (sp) ; E6 A1 ; as 6T
72 tset 4, b ; F8 1C
73 xor hl, hl ; FA 75
75 ;***********************************************************
76 ; 10T
77 pop hl ; 5A
78 ld offset(sp), e ; F6 11 23
79 ld d, offset(sp) ; F2 11 2A ; as 8T
80 add a, offset(sp) ; F2 11 60 ; as 8T
81 ;rr (stack) ; E7 A0 A3
82 res 5, (sp) ; E6 B5 ; as 6T
84 ;***********************************************************
85 ; 12T (b 0x78)
86 and (stack), #n ; EF A0 6C 20 ; as 6T
87 inc 1(sp) ; F2 01 87 ; as 8T
88 cp 1(sp), #n ; F6 01 6F 20 ; as 10T
90 ;***********************************************************
91 ; 14T
92 or 1(sp), #n ; F6 01 6E 20 ; as 10T
94 ;***********************************************************
95 ; 16T
96 mul hl, #3 ; 12 03 ; as 4T
98 ;***********************************************************
99 ; 18T (b 0x89)
100 div hl, b ; F8 13 ; as 4T
102 ;***********************************************************
103 ; 20T
104 mul hl, (stack) ; E7 A0 12 ; as 6T
105 ;mul hl, (stack8) ; E7 A0 12
107 ;***********************************************************
108 ; 22T
109 div hl, offset(sp) ; F2 11 13 ; as 8T
111 ;***********************************************************
112 ; just some setup
113 sub a, a ; FE 62
114 ld hl, #stack + 2 ; 3A A2 FF
116 ;***********************************************************
117 ; 26T
118 ;div hl, (hl+a) ; EF 13
120 ;***********************************************************
121 ; jumps
122 ;xor c, c ; illegal
123 and c, #0 ; F9 6C 00 ; as 4T (not 6T)
124 call fun2 ; 1Cr85r00
125 ld bc, #fun2 ; 38r85r00
126 ;call NC, bc ; E8 DF
127 ;jp C, bc ; E8 E7
128 call NZ, fun1 ; EBr83r00 DE
129 call Z, fun1 ; EBr83r00 D6
130 jr NE, end ; CE 05
131 jr EQ, end ; C6 03
132 fun1:
133 ret NZ ; FE DE
134 ret Z ; FE D6
135 fun2:
136 ret ; 1E
137 end:
138 jp end ; 1Ar86r00