Rev 151 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
151 | dimkam | 1 | ############################################################################## |
2 | # # |
||
3 | # IAR Z80/64180 C-Compiler V4.06A/W32 # |
||
4 | # # |
||
5 | # Compile time = 09/Feb/2016 10:47:27 # |
||
6 | # Target option = Z80 # |
||
7 | # Memory model = large # |
||
8 | # Source file = mylib.c # |
||
9 | # List file = list\mylib.lst # |
||
10 | # Object file = mylib.r01 # |
||
11 | # ASM file = list\mylib.s01 # |
||
12 | # Command line = -v0 -ml -uua -b -q -x -K -gA -z9 -t4 -T -Llist\ # |
||
13 | # -Alist\ -I../z80/inc/ mylib.c # |
||
14 | # # |
||
15 | # Copyright 2001 IAR Systems. All rights reserved. # |
||
16 | ############################################################################## |
||
17 | |||
18 | \ 0000 MODULE mylib(16) |
||
19 | \ 0000 RSEG CODE(0) |
||
20 | \ 0000 RSEG UDATA0(0) |
||
21 | \ 0000 RSEG IDATA0(0) |
||
22 | \ 0000 RSEG CDATA0(0) |
||
23 | \ 0000 PUBLIC mylib_font8x8 |
||
24 | \ 0000 PUBLIC putchar |
||
25 | \ 0000 PUBLIC scr_init |
||
26 | \ 0000 EXTERN ?CLZ80L_4_06_L00 |
||
27 | \ 0000 EXTERN ?ENT_PARM_DIRECT_L09 |
||
28 | \ 0000 EXTERN ?ENT_AUTO_DIRECT_L09 |
||
29 | \ 0000 EXTERN ?LEAVE_DIRECT_L09 |
||
30 | \ 0000 RSEG CODE |
||
31 | 1 #include <string.h> |
||
32 | 2 #include <intrz80.h> |
||
33 | 3 #include <stdio.h> |
||
34 | 4 char * mylib_font8x8=(void*)0x3c00; |
||
35 | 5 static union {char * w;char b[2];}scrxy; |
||
36 | \ 0000 scr_init: |
||
37 | \ 0000 CD0000 CALL ?ENT_PARM_DIRECT_L09 |
||
38 | 6 void scr_init(char a){ |
||
39 | \ 0003 7B LD A,E |
||
40 | \ 0004 320058 LD (22528),A |
||
41 | 7 *((char *)0x5800)=a; |
||
42 | \ 0007 CB3B SRL E |
||
43 | \ 0009 CB3B SRL E |
||
44 | \ 000B CB3B SRL E |
||
45 | \ 000D 7B LD A,E |
||
46 | \ 000E D3FE OUT (254),A |
||
47 | 8 output8(0xfe,a>>3); |
||
48 | \ 0010 01FF02 LD BC,767 |
||
49 | \ 0013 110158 LD DE,22529 |
||
50 | \ 0016 210058 LD HL,22528 |
||
51 | \ 0019 EDB0 LDIR |
||
52 | 9 memcpy((void *)0x5801, (void *)0x5800, 32*24-1); |
||
53 | \ 001B 210040 LD HL,16384 |
||
54 | \ 001E 220000 LD (scrxy),HL |
||
55 | 10 scrxy.w=(void *)0x4000; |
||
56 | \ 0021 AF XOR A |
||
57 | \ 0022 320040 LD (16384),A |
||
58 | 11 *((char *)0x4000)=0; |
||
59 | \ 0025 01FF17 LD BC,6143 |
||
60 | \ 0028 110140 LD DE,16385 |
||
61 | \ 002B EDB0 LDIR |
||
62 | 12 memcpy((void *)0x4001, (void *)0x4000, (unsigned int)256*192/8-1); |
||
63 | \ 002D C30000 JP ?LEAVE_DIRECT_L09 |
||
64 | 13 } |
||
65 | \ 0030 putchar: |
||
66 | \ 0030 CD0000 CALL ?ENT_AUTO_DIRECT_L09 |
||
67 | \ 0033 FCFF DEFW 65532 |
||
68 | 14 int putchar(int ch){ |
||
69 | \ 0035 DD4E02 LD C,(IX+2) |
||
70 | \ 0038 DD4603 LD B,(IX+3) |
||
71 | \ 003B 3E0D LD A,13 |
||
72 | \ 003D A9 XOR C |
||
73 | \ 003E B0 OR B |
||
74 | \ 003F 280E JR Z,?0012 |
||
75 | \ 0041 3E0A LD A,10 |
||
76 | \ 0043 A9 XOR C |
||
77 | \ 0044 B0 OR B |
||
78 | \ 0045 2012 JR NZ,?0013 |
||
79 | \ 0047 ?0011: |
||
80 | 15 switch(ch){ |
||
81 | \ 0047 3A0000 LD A,(scrxy) |
||
82 | \ 004A C620 ADD A,32 |
||
83 | \ 004C 320000 LD (scrxy),A |
||
84 | \ 004F ?0012: |
||
85 | 16 case '\n': scrxy.b[0]+=32; |
||
86 | \ 004F 3A0000 LD A,(scrxy) |
||
87 | \ 0052 E6E0 AND 224 |
||
88 | \ 0054 320000 LD (scrxy),A |
||
89 | 17 case '\r': scrxy.b[0]&=0xe0; |
||
90 | \ 0057 1833 JR ?0010 |
||
91 | \ 0059 ?0013: |
||
92 | 18 break; |
||
93 | 19 default:{ |
||
94 | \ 0059 69 LD L,C |
||
95 | \ 005A 60 LD H,B |
||
96 | \ 005B 29 ADD HL,HL |
||
97 | \ 005C 29 ADD HL,HL |
||
98 | \ 005D 29 ADD HL,HL |
||
99 | \ 005E ED4B0000 LD BC,(mylib_font8x8) |
||
100 | \ 0062 09 ADD HL,BC |
||
101 | \ 0063 EB EX DE,HL |
||
102 | 20 char* s=mylib_font8x8+(ch<<3); |
||
103 | \ 0064 DD36FE08 LD (IX-2),8 |
||
104 | \ 0068 ?0015: |
||
105 | 21 unsigned char i=8; |
||
106 | \ 0068 DD46FE LD B,(IX-2) |
||
107 | \ 006B DD35FE DEC (IX-2) |
||
108 | \ 006E 04 INC B |
||
109 | \ 006F 05 DEC B |
||
110 | \ 0070 280E JR Z,?0014 |
||
111 | \ 0072 ?0016: |
||
112 | 22 while(i--){ |
||
113 | \ 0072 6B LD L,E |
||
114 | \ 0073 62 LD H,D |
||
115 | \ 0074 13 INC DE |
||
116 | \ 0075 46 LD B,(HL) |
||
117 | \ 0076 2A0000 LD HL,(scrxy) |
||
118 | \ 0079 70 LD (HL),B |
||
119 | 23 *scrxy.w=*(s++); |
||
120 | \ 007A 210100 LD HL,scrxy+1 |
||
121 | \ 007D 34 INC (HL) |
||
122 | 24 scrxy.b[1]++; |
||
123 | 25 } |
||
124 | \ 007E 18E8 JR ?0015 |
||
125 | \ 0080 ?0014: |
||
126 | 26 } |
||
127 | \ 0080 210000 LD HL,scrxy |
||
128 | \ 0083 7E LD A,(HL) |
||
129 | \ 0084 D6FF SUB 255 |
||
130 | \ 0086 77 LD (HL),A |
||
131 | \ 0087 23 INC HL |
||
132 | \ 0088 7E LD A,(HL) |
||
133 | \ 0089 DE07 SBC A,7 |
||
134 | \ 008B 77 LD (HL),A |
||
135 | 27 scrxy.w-=0x07ff; |
||
136 | \ 008C ?0010: |
||
137 | 28 break; |
||
138 | 29 } |
||
139 | \ 008C 3A0000 LD A,(scrxy) |
||
140 | \ 008F B7 OR A |
||
141 | \ 0090 2011 JR NZ,?0020 |
||
142 | \ 0092 ?0017: |
||
143 | 30 if(!scrxy.b[0]){ |
||
144 | \ 0092 3A0100 LD A,(scrxy+1) |
||
145 | \ 0095 C608 ADD A,8 |
||
146 | \ 0097 320100 LD (scrxy+1),A |
||
147 | \ 009A FE58 CP 88 |
||
148 | \ 009C 2005 JR NZ,?0020 |
||
149 | \ 009E ?0019: |
||
150 | \ 009E 3E40 LD A,64 |
||
151 | \ 00A0 320100 LD (scrxy+1),A |
||
152 | \ 00A3 ?0020: |
||
153 | \ 00A3 ?0018: |
||
154 | 31 if((scrxy.b[1]+=8)==0x58) scrxy.b[1]=0x40; |
||
155 | 32 } |
||
156 | \ 00A3 210100 LD HL,1 |
||
157 | 33 return 1; |
||
158 | \ 00A6 C30000 JP ?LEAVE_DIRECT_L09 |
||
159 | 34 } |
||
160 | \ 0000 RSEG UDATA0 |
||
161 | \ 0000 scrxy: |
||
162 | \ 0002 DEFS 2 |
||
163 | \ 0000 RSEG IDATA0 |
||
164 | \ 0000 mylib_font8x8: |
||
165 | \ 0002 DEFS 2 |
||
166 | \ 0000 RSEG CDATA0 |
||
167 | \ 0000 003C DEFW 15360 |
||
168 | \ 0002 END |
||
169 | |||
170 | |||
171 | S Y M B O L - T A B L E |
||
172 | ======================= |
||
173 | |||
174 | |||
175 | #include file(s): |
||
176 | |||
177 | [ 1] list\mylib.lst |
||
178 | |||
179 | |||
180 | Symbol Type Class Defline Refline(s) |
||
181 | ------ ---- ----- ------- ---------- |
||
182 | |||
183 | memcpy function intrinsic 29:1 9 12 |
||
184 | mylib_font8x8 pointer public 4 20 |
||
185 | output8 function intrinsic 36:3 8 |
||
186 | putchar function public 14 28:4 |
||
187 | scr_init function public 6 6 |
||
188 | scrxy union static 5 10 16 17 23 |
||
189 | 24 27 30 31 |
||
190 | 31 |
||
191 | size_t u_short typedef 89:2 29:1 31:1 33:1 35:1 |
||
192 | 37:1 43:1 47:1 49:1 |
||
193 | 51:1 61:1 65:1 71:1 |
||
194 | 71:1 |
||
195 | va_list array typedef 141:5 31:4 33:4 |
||
196 | |||
197 | |||
198 | Errors: none |
||
199 | Warnings: none |
||
200 | Code size: 169 |
||
201 | Constant size: 2 |
||
202 | Static variable size: Data(4) Iram(0) |
||
203 |