Rev 151 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.06A/W32 #
# #
# Compile time = 09/Feb/2016 10:47:27 #
# Target option = Z80 #
# Memory model = large #
# Source file = mylib.c #
# List file = list\mylib.lst #
# Object file = mylib.r01 #
# ASM file = list\mylib.s01 #
# Command line = -v0 -ml -uua -b -q -x -K -gA -z9 -t4 -T -Llist\ #
# -Alist\ -I../z80/inc/ mylib.c #
# #
# Copyright 2001 IAR Systems. All rights reserved. #
##############################################################################
\ 0000 MODULE mylib(16)
\ 0000 RSEG CODE(0)
\ 0000 RSEG UDATA0(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 PUBLIC mylib_font8x8
\ 0000 PUBLIC putchar
\ 0000 PUBLIC scr_init
\ 0000 EXTERN ?CLZ80L_4_06_L00
\ 0000 EXTERN ?ENT_PARM_DIRECT_L09
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 EXTERN ?LEAVE_DIRECT_L09
\ 0000 RSEG CODE
1 #include <string.h>
2 #include <intrz80.h>
3 #include <stdio.h>
4 char * mylib_font8x8=(void*)0x3c00;
5 static union {char * w;char b[2];}scrxy;
\ 0000 scr_init:
\ 0000 CD0000 CALL ?ENT_PARM_DIRECT_L09
6 void scr_init(char a){
\ 0003 7B LD A,E
\ 0004 320058 LD (22528),A
7 *((char *)0x5800)=a;
\ 0007 CB3B SRL E
\ 0009 CB3B SRL E
\ 000B CB3B SRL E
\ 000D 7B LD A,E
\ 000E D3FE OUT (254),A
8 output8(0xfe,a>>3);
\ 0010 01FF02 LD BC,767
\ 0013 110158 LD DE,22529
\ 0016 210058 LD HL,22528
\ 0019 EDB0 LDIR
9 memcpy((void *)0x5801, (void *)0x5800, 32*24-1);
\ 001B 210040 LD HL,16384
\ 001E 220000 LD (scrxy),HL
10 scrxy.w=(void *)0x4000;
\ 0021 AF XOR A
\ 0022 320040 LD (16384),A
11 *((char *)0x4000)=0;
\ 0025 01FF17 LD BC,6143
\ 0028 110140 LD DE,16385
\ 002B EDB0 LDIR
12 memcpy((void *)0x4001, (void *)0x4000, (unsigned int)256*192/8-1);
\ 002D C30000 JP ?LEAVE_DIRECT_L09
13 }
\ 0030 putchar:
\ 0030 CD0000 CALL ?ENT_AUTO_DIRECT_L09
\ 0033 FCFF DEFW 65532
14 int putchar(int ch){
\ 0035 DD4E02 LD C,(IX+2)
\ 0038 DD4603 LD B,(IX+3)
\ 003B 3E0D LD A,13
\ 003D A9 XOR C
\ 003E B0 OR B
\ 003F 280E JR Z,?0012
\ 0041 3E0A LD A,10
\ 0043 A9 XOR C
\ 0044 B0 OR B
\ 0045 2012 JR NZ,?0013
\ 0047 ?0011:
15 switch(ch){
\ 0047 3A0000 LD A,(scrxy)
\ 004A C620 ADD A,32
\ 004C 320000 LD (scrxy),A
\ 004F ?0012:
16 case '\n': scrxy.b[0]+=32;
\ 004F 3A0000 LD A,(scrxy)
\ 0052 E6E0 AND 224
\ 0054 320000 LD (scrxy),A
17 case '\r': scrxy.b[0]&=0xe0;
\ 0057 1833 JR ?0010
\ 0059 ?0013:
18 break;
19 default:{
\ 0059 69 LD L,C
\ 005A 60 LD H,B
\ 005B 29 ADD HL,HL
\ 005C 29 ADD HL,HL
\ 005D 29 ADD HL,HL
\ 005E ED4B0000 LD BC,(mylib_font8x8)
\ 0062 09 ADD HL,BC
\ 0063 EB EX DE,HL
20 char* s=mylib_font8x8+(ch<<3);
\ 0064 DD36FE08 LD (IX-2),8
\ 0068 ?0015:
21 unsigned char i=8;
\ 0068 DD46FE LD B,(IX-2)
\ 006B DD35FE DEC (IX-2)
\ 006E 04 INC B
\ 006F 05 DEC B
\ 0070 280E JR Z,?0014
\ 0072 ?0016:
22 while(i--){
\ 0072 6B LD L,E
\ 0073 62 LD H,D
\ 0074 13 INC DE
\ 0075 46 LD B,(HL)
\ 0076 2A0000 LD HL,(scrxy)
\ 0079 70 LD (HL),B
23 *scrxy.w=*(s++);
\ 007A 210100 LD HL,scrxy+1
\ 007D 34 INC (HL)
24 scrxy.b[1]++;
25 }
\ 007E 18E8 JR ?0015
\ 0080 ?0014:
26 }
\ 0080 210000 LD HL,scrxy
\ 0083 7E LD A,(HL)
\ 0084 D6FF SUB 255
\ 0086 77 LD (HL),A
\ 0087 23 INC HL
\ 0088 7E LD A,(HL)
\ 0089 DE07 SBC A,7
\ 008B 77 LD (HL),A
27 scrxy.w-=0x07ff;
\ 008C ?0010:
28 break;
29 }
\ 008C 3A0000 LD A,(scrxy)
\ 008F B7 OR A
\ 0090 2011 JR NZ,?0020
\ 0092 ?0017:
30 if(!scrxy.b[0]){
\ 0092 3A0100 LD A,(scrxy+1)
\ 0095 C608 ADD A,8
\ 0097 320100 LD (scrxy+1),A
\ 009A FE58 CP 88
\ 009C 2005 JR NZ,?0020
\ 009E ?0019:
\ 009E 3E40 LD A,64
\ 00A0 320100 LD (scrxy+1),A
\ 00A3 ?0020:
\ 00A3 ?0018:
31 if((scrxy.b[1]+=8)==0x58) scrxy.b[1]=0x40;
32 }
\ 00A3 210100 LD HL,1
33 return 1;
\ 00A6 C30000 JP ?LEAVE_DIRECT_L09
34 }
\ 0000 RSEG UDATA0
\ 0000 scrxy:
\ 0002 DEFS 2
\ 0000 RSEG IDATA0
\ 0000 mylib_font8x8:
\ 0002 DEFS 2
\ 0000 RSEG CDATA0
\ 0000 003C DEFW 15360
\ 0002 END
S Y M B O L - T A B L E
=======================
#include file(s):
[ 1] list\mylib.lst
Symbol Type Class Defline Refline(s)
------ ---- ----- ------- ----------
memcpy function intrinsic 29:1 9 12
mylib_font8x8 pointer public 4 20
output8 function intrinsic 36:3 8
putchar function public 14 28:4
scr_init function public 6 6
scrxy union static 5 10 16 17 23
24 27 30 31
31
size_t u_short typedef 89:2 29:1 31:1 33:1 35:1
37:1 43:1 47:1 49:1
51:1 61:1 65:1 71:1
71:1
va_list array typedef 141:5 31:4 33:4
Errors: none
Warnings: none
Code size: 169
Constant size: 2
Static variable size: Data(4) Iram(0)