URL
https://opencores.org/ocsvn/light8080/light8080/trunk
Subversion Repositories light8080
[/] [light8080/] [trunk/] [c/] [HELLO.LST] - Rev 65
Go to most recent revision | Compare with Previous | Blame | View Log
AS80 Assembler for i8080-Z180 [1.11]. Page 1
--------------------------------- HELLO.ASM ----------------------------------
-------------------------------- Symbol Table --------------------------------
Symbol Value Decimal
ccand : $0029 41
ccasl : $0099 153
ccasr : $008b 139
ccbcneg : $011c 284
cccmp : $0056 86
cccmpbcde : $012c 300
cccmp1 : $0063 99
cccom : $00ac 172
ccdeneg : $0114 276
ccdiv : $00d3 211
ccdiv1 : $00e9 233
ccdiv2 : $0100 256
ccdiv3 : $0109 265
cceq : $0030 48
ccgchar : $0007 7
ccge : $004a 74
ccgint : $000d 13
ccgt : $003c 60
ccle : $0043 67
cclt : $0050 80
ccmult : $00b3 179
ccmult1 : $00b8 184
ccne : $0036 54
ccneg : $00a7 167
ccor : $001b 27
ccpchar : $0012 18
ccpint : $0015 21
ccrdel : $0124 292
ccsub : $00a0 160
ccsxt : $0008 8
ccucmp : $0080 128
ccuge : $0066 102
ccugt : $0072 114
ccule : $0079 121
ccult : $006c 108
ccxor : $0022 34
cc1 : $035c 860
cc10 : $027a 634
cc11 : $02cf 719
cc12 : $02e1 737
cc13 : $033f 831
cc14 : $035b 859
cc15 : $0358 856
cc2 : $0131 305
cc3 : $0144 324
cc4 : $016d 365
cc5 : $0171 369
cc6 : $0183 387
cc7 : $01b3 435
cc8 : $01e3 483
cc9 : $0221 545
__getbyte : $014f 335
__main : $02e3 739
__nl : $0172 370
__outint : $01f0 496
__printdec : $01b4 436
__printhex : $0249 585
__printstr : $0183 387
AS80 Assembler for i8080-Z180 [1.11]. Page 2
--------------------------------- HELLO.ASM ----------------------------------
__rxbyte : $039e 926
__sendbyte : $0131 305
__tstary : $039f 927
__8080__ : $0001 1
62 labels used
770 lines read, no errors in pass 1.
AS80 Assembler for i8080-Z180 [1.11]. Page 3
--------------------------------- HELLO.ASM ----------------------------------
; <><><> Small-C V1.2 DOS--CP/M Cross Compiler <
; <><><><><> CP/M Large String Space Version <><><
; <><><><><><><><><><> By Ron Cain <><><><><><><><
;
code
0000 = org #0000
0000 : 21000c ld hl,3072
0003 : f9 ld sp,hl
0004 : cde302 call __main
;//---------------------------------------------------
;// Project: light8080 SOC WiCores Solutions
;//
;// File name: hello.c (February 04, 2012)
;//
;// Writer: Moti Litochevski
;//
;// Description:
;// This file contains a simple program written in Sm
;// the UART and then switches to echo received bytes
;//
;// Revision History:
;//
;// Rev <revnumber> <Date> <owner>
;// <comment>
;//---------------------------------------------------
;#include ..\tools\c80\c80.lib
;#asm
;
;-----------------------------------------------------
; Small-C Run-time Librray
;
; V4d As of July 16, 1980 (gtf)
; Added EXIT() function
;-----------------------------------------------------
;
;Fetch a single byte from the address in HL and sign e
0007 : ccgchar:
0007 : 7e ld a,(hl)
0008 : ccsxt:
0008 : 6f ld l,a
0009 : 07 rlca
000a : 9f sbc a
000b : 67 ld h,a
000c : c9 ret
;Fetch a full 16-bit integer from the address in HL
000d : ccgint:
000d : 7e ld a,(hl)
000e : 23 inc hl
000f : 66 ld h,(hl)
0010 : 6f ld l,a
0011 : c9 ret
;Store a single byte from HL at the address in DE
0012 : ccpchar:
0012 : 7d ld a,l
0013 : 12 ld (de),a
0014 : c9 ret
;Store a 16-bit integer in HL at the address in DE
0015 : ccpint:
0015 : 7d ld a,l
0016 : 12 ld (de),a
0017 : 13 inc de
0018 : 7c ld a,h
AS80 Assembler for i8080-Z180 [1.11]. Page 4
--------------------------------- HELLO.ASM ----------------------------------
0019 : 12 ld (de),a
001a : c9 ret
;Inclusive "or" HL and DE into HL
001b : ccor:
001b : 7d ld a,l
001c : b3 or e
001d : 6f ld l,a
001e : 7c ld a,h
001f : b2 or d
0020 : 67 ld h,a
0021 : c9 ret
;Exclusive "or" HL and DE into HL
0022 : ccxor:
0022 : 7d ld a,l
0023 : ab xor e
0024 : 6f ld l,a
0025 : 7c ld a,h
0026 : aa xor d
0027 : 67 ld h,a
0028 : c9 ret
;"And" HL and DE into HL
0029 : ccand:
0029 : 7d ld a,l
002a : a3 and e
002b : 6f ld l,a
002c : 7c ld a,h
002d : a2 and d
002e : 67 ld h,a
002f : c9 ret
;Test if HL = DE and set HL = 1 if true else 0
0030 : cceq:
0030 : cd5600 call cccmp
0033 : c8 ret z
0034 : 2b dec hl
0035 : c9 ret
;Test if DE ~= HL
0036 : ccne:
0036 : cd5600 call cccmp
0039 : c0 ret nz
003a : 2b dec hl
003b : c9 ret
;Test if DE > HL (signed)
003c : ccgt:
003c : eb ex de,hl
003d : cd5600 call cccmp
0040 : d8 ret c
0041 : 2b dec hl
0042 : c9 ret
;Test if DE <= HL (signed)
0043 : ccle:
0043 : cd5600 call cccmp
0046 : c8 ret z
0047 : d8 ret c
0048 : 2b dec hl
0049 : c9 ret
;Test if DE >= HL (signed)
004a : ccge:
004a : cd5600 call cccmp
004d : d0 ret nc
004e : 2b dec hl
004f : c9 ret
;Test if DE < HL (signed)
AS80 Assembler for i8080-Z180 [1.11]. Page 5
--------------------------------- HELLO.ASM ----------------------------------
0050 : cclt:
0050 : cd5600 call cccmp
0053 : d8 ret c
0054 : 2b dec hl
0055 : c9 ret
; Signed compare of DE and HL
; Performs DE - HL and sets the conditions:
; Carry reflects sign of difference (set means DE < HL
; Zero/non-zero set according to equality.
0056 : cccmp:
0056 : 7b ld a,e
0057 : 95 sub l
0058 : 5f ld e,a
0059 : 7a ld a,d
005a : 9c sbc h
005b : 210100 ld hl,1
005e : fa6300 jp m,cccmp1
0061 : b3 or e ;"OR" resets carry
0062 : c9 ret
0063 : cccmp1:
0063 : b3 or e
0064 : 37 scf ;set carry to signal minus
0065 : c9 ret
;Test if DE >= HL (unsigned)
0066 : ccuge:
0066 : cd8000 call ccucmp
0069 : d0 ret nc
006a : 2b dec hl
006b : c9 ret
;Test if DE < HL (unsigned)
006c : ccult:
006c : cd8000 call ccucmp
006f : d8 ret c
0070 : 2b dec hl
0071 : c9 ret
;Test if DE > HL (unsigned)
0072 : ccugt:
0072 : eb ex de,hl
0073 : cd8000 call ccucmp
0076 : d8 ret c
0077 : 2b dec hl
0078 : c9 ret
;Test if DE <= HL (unsigned)
0079 : ccule:
0079 : cd8000 call ccucmp
007c : c8 ret z
007d : d8 ret c
007e : 2b dec hl
007f : c9 ret
;Routine to perform unsigned compare
;carry set if DE < HL
;zero/nonzero set accordingly
0080 : ccucmp:
0080 : 7a ld a,d
0081 : bc cp h
0082 : c28700 jp nz,$+5
0085 : 7b ld a,e
0086 : bd cp l
0087 : 210100 ld hl,1
008a : c9 ret
;Shift DE arithmetically right by HL and return in HL
008b : ccasr:
AS80 Assembler for i8080-Z180 [1.11]. Page 6
--------------------------------- HELLO.ASM ----------------------------------
008b : eb ex de,hl
008c : 7c ld a,h
008d : 17 rla
008e : 7c ld a,h
008f : 1f rra
0090 : 67 ld h,a
0091 : 7d ld a,l
0092 : 1f rra
0093 : 6f ld l,a
0094 : 1d dec e
0095 : c28c00 jp nz,ccasr+1
0098 : c9 ret
;Shift DE arithmetically left by HL and return in HL
0099 : ccasl:
0099 : eb ex de,hl
009a : 29 add hl,hl
009b : 1d dec e
009c : c29a00 jp nz,ccasl+1
009f : c9 ret
;Subtract HL from DE and return in HL
00a0 : ccsub:
00a0 : 7b ld a,e
00a1 : 95 sub l
00a2 : 6f ld l,a
00a3 : 7a ld a,d
00a4 : 9c sbc h
00a5 : 67 ld h,a
00a6 : c9 ret
;Form the two's complement of HL
00a7 : ccneg:
00a7 : cdac00 call cccom
00aa : 23 inc hl
00ab : c9 ret
;Form the one's complement of HL
00ac : cccom:
00ac : 7c ld a,h
00ad : 2f cpl
00ae : 67 ld h,a
00af : 7d ld a,l
00b0 : 2f cpl
00b1 : 6f ld l,a
00b2 : c9 ret
;Multiply DE by HL and return in HL
00b3 : ccmult:
00b3 : 44 ld b,h
00b4 : 4d ld c,l
00b5 : 210000 ld hl,0
00b8 : ccmult1:
00b8 : 79 ld a,c
00b9 : 0f rrca
00ba : d2be00 jp nc,$+4
00bd : 19 add hl,de
00be : af xor a
00bf : 78 ld a,b
00c0 : 1f rra
00c1 : 47 ld b,a
00c2 : 79 ld a,c
00c3 : 1f rra
00c4 : 4f ld c,a
00c5 : b0 or b
00c6 : c8 ret z
00c7 : af xor a
AS80 Assembler for i8080-Z180 [1.11]. Page 7
--------------------------------- HELLO.ASM ----------------------------------
00c8 : 7b ld a,e
00c9 : 17 rla
00ca : 5f ld e,a
00cb : 7a ld a,d
00cc : 17 rla
00cd : 57 ld d,a
00ce : b3 or e
00cf : c8 ret z
00d0 : c3b800 jp ccmult1
;Divide DE by HL and return quotient in HL, remainder
00d3 : ccdiv:
00d3 : 44 ld b,h
00d4 : 4d ld c,l
00d5 : 7a ld a,d
00d6 : a8 xor b
00d7 : f5 push af
00d8 : 7a ld a,d
00d9 : b7 or a
00da : fc1401 call m,ccdeneg
00dd : 78 ld a,b
00de : b7 or a
00df : fc1c01 call m,ccbcneg
00e2 : 3e10 ld a,16
00e4 : f5 push af
00e5 : eb ex de,hl
00e6 : 110000 ld de,0
00e9 : ccdiv1:
00e9 : 29 add hl,hl
00ea : cd2401 call ccrdel
00ed : ca0001 jp z,ccdiv2
00f0 : cd2c01 call cccmpbcde
00f3 : fa0001 jp m,ccdiv2
00f6 : 7d ld a,l
00f7 : f601 or 1
00f9 : 6f ld l,a
00fa : 7b ld a,e
00fb : 91 sub c
00fc : 5f ld e,a
00fd : 7a ld a,d
00fe : 98 sbc b
00ff : 57 ld d,a
0100 : ccdiv2:
0100 : f1 pop af
0101 : 3d dec a
0102 : ca0901 jp z,ccdiv3
0105 : f5 push af
0106 : c3e900 jp ccdiv1
0109 : ccdiv3:
0109 : f1 pop af
010a : f0 ret p
010b : cd1401 call ccdeneg
010e : eb ex de,hl
010f : cd1401 call ccdeneg
0112 : eb ex de,hl
0113 : c9 ret
0114 : ccdeneg:
0114 : 7a ld a,d
0115 : 2f cpl
0116 : 57 ld d,a
0117 : 7b ld a,e
0118 : 2f cpl
0119 : 5f ld e,a
AS80 Assembler for i8080-Z180 [1.11]. Page 8
--------------------------------- HELLO.ASM ----------------------------------
011a : 13 inc de
011b : c9 ret
011c : ccbcneg:
011c : 78 ld a,b
011d : 2f cpl
011e : 47 ld b,a
011f : 79 ld a,c
0120 : 2f cpl
0121 : 4f ld c,a
0122 : 03 inc bc
0123 : c9 ret
0124 : ccrdel:
0124 : 7b ld a,e
0125 : 17 rla
0126 : 5f ld e,a
0127 : 7a ld a,d
0128 : 17 rla
0129 : 57 ld d,a
012a : b3 or e
012b : c9 ret
012c : cccmpbcde:
012c : 7b ld a,e
012d : 91 sub c
012e : 7a ld a,d
012f : 98 sbc b
0130 : c9 ret
;// UART IO registers
;port (128) UDATA; // uart data register used for bot
;port (129) UBAUDL; // low byte of baud rate register
;port (130) UBAUDH; // low byte of baud rate register
;port (131) USTAT; // uart status register
;// digital IO ports registers
;port (132) P1REG; // output port1 - used as firs
;port (133) P2REG; // output port2 - used as low digi
;port (134) P3REG; // output port3 - used as high dig
;port (135) P4REG; // output port4
;// simulation end register
;// writing any value to this port will end the verilo
;// test bench.
;port (255) SIMEND;
;// registers bit fields definition
;// uart status register decoding
;#define UTXBUSY 1
;#define URXFULL 16
;// globals
;char rxbyte; // byte received from the uart
;int tstary[2] = {1234, 5678};
;//---------------------------------------------------
;// send a single byte to the UART
;sendbyte(by)
0131 : __sendbyte:
;char by;
;{
; while (USTAT & UTXBUSY);
0131 : cc2:
0131 : db83 in a,(131)
0133 : cf call ccsxt
0134 : e5 push hl
0135 : 210100 ld hl,1
0138 : d1 pop de
0139 : cd2900 call ccand
013c : 7c ld a,h
AS80 Assembler for i8080-Z180 [1.11]. Page 9
--------------------------------- HELLO.ASM ----------------------------------
013d : b5 or l
013e : ca4401 jp z,cc3
0141 : c33101 jp cc2
0144 : cc3:
; UDATA = by;
0144 : 210200 ld hl,2
0147 : 39 add hl,sp
0148 : cd0700 call ccgchar
014b : 7d ld a,l
014c : d380 out (128),a
;}
014e : c9 ret
;// check if a byte was received by the uart
;getbyte()
014f : __getbyte:
;{
; if (USTAT & URXFULL) {
014f : db83 in a,(131)
0151 : cf call ccsxt
0152 : e5 push hl
0153 : 211000 ld hl,16
0156 : d1 pop de
0157 : cd2900 call ccand
015a : 7c ld a,h
015b : b5 or l
015c : ca6d01 jp z,cc4
; rxbyte = UDATA;
015f : db80 in a,(128)
0161 : cf call ccsxt
0162 : 7d ld a,l
0163 : 329e03 ld (__rxbyte),a
; return 1;
0166 : 210100 ld hl,1
0169 : c9 ret
; }
; else
016a : c37101 jp cc5
016d : cc4:
; return 0;
016d : 210000 ld hl,0
0170 : c9 ret
0171 : cc5:
;}
0171 : c9 ret
;// send new line to the UART
;nl()
0172 : __nl:
;{
; sendbyte(13);
0172 : 210d00 ld hl,13
0175 : e5 push hl
0176 : cd3101 call __sendbyte
0179 : c1 pop bc
; sendbyte(10);
017a : 210a00 ld hl,10
017d : e5 push hl
017e : cd3101 call __sendbyte
0181 : c1 pop bc
;}
0182 : c9 ret
;// sends a string to the UART
AS80 Assembler for i8080-Z180 [1.11]. Page 10
--------------------------------- HELLO.ASM ----------------------------------
;printstr(sptr)
0183 : __printstr:
;char *sptr;
;{
; while (*sptr != 0)
0183 : cc6:
0183 : 210200 ld hl,2
0186 : 39 add hl,sp
0187 : cd0d00 call ccgint
018a : cd0700 call ccgchar
018d : e5 push hl
018e : 210000 ld hl,0
0191 : d1 pop de
0192 : cd3600 call ccne
0195 : 7c ld a,h
0196 : b5 or l
0197 : cab301 jp z,cc7
; sendbyte(*sptr++);
019a : 210200 ld hl,2
019d : 39 add hl,sp
019e : e5 push hl
019f : cd0d00 call ccgint
01a2 : 23 inc hl
01a3 : d1 pop de
01a4 : cd1500 call ccpint
01a7 : 2b dec hl
01a8 : cd0700 call ccgchar
01ab : e5 push hl
01ac : cd3101 call __sendbyte
01af : c1 pop bc
01b0 : c38301 jp cc6
01b3 : cc7:
;}
01b3 : c9 ret
;// sends a decimal value to the UART
;printdec(dval)
01b4 : __printdec:
;int dval;
;{
; if (dval<0) {
01b4 : 210200 ld hl,2
01b7 : 39 add hl,sp
01b8 : cd0d00 call ccgint
01bb : e5 push hl
01bc : 210000 ld hl,0
01bf : d1 pop de
01c0 : cd5000 call cclt
01c3 : 7c ld a,h
01c4 : b5 or l
01c5 : cae301 jp z,cc8
; sendbyte('-');
01c8 : 212d00 ld hl,45
01cb : e5 push hl
01cc : cd3101 call __sendbyte
01cf : c1 pop bc
; dval = -dval;
01d0 : 210200 ld hl,2
01d3 : 39 add hl,sp
01d4 : e5 push hl
01d5 : 210400 ld hl,4
01d8 : 39 add hl,sp
01d9 : cd0d00 call ccgint
AS80 Assembler for i8080-Z180 [1.11]. Page 11
--------------------------------- HELLO.ASM ----------------------------------
01dc : cda700 call ccneg
01df : d1 pop de
01e0 : cd1500 call ccpint
; }
; outint(dval);
01e3 : cc8:
01e3 : 210200 ld hl,2
01e6 : 39 add hl,sp
01e7 : cd0d00 call ccgint
01ea : e5 push hl
01eb : cdf001 call __outint
01ee : c1 pop bc
;}
01ef : c9 ret
;// function copied from c80dos.c
;outint(n)
01f0 : __outint:
;int n;
;{
;int q;
01f0 : c5 push bc
; q = n/10;
01f1 : 210000 ld hl,0
01f4 : 39 add hl,sp
01f5 : e5 push hl
01f6 : 210600 ld hl,6
01f9 : 39 add hl,sp
01fa : cd0d00 call ccgint
01fd : e5 push hl
01fe : 210a00 ld hl,10
0201 : d1 pop de
0202 : cdd300 call ccdiv
0205 : d1 pop de
0206 : cd1500 call ccpint
; if (q) outint(q);
0209 : 210000 ld hl,0
020c : 39 add hl,sp
020d : cd0d00 call ccgint
0210 : 7c ld a,h
0211 : b5 or l
0212 : ca2102 jp z,cc9
0215 : 210000 ld hl,0
0218 : 39 add hl,sp
0219 : cd0d00 call ccgint
021c : e5 push hl
021d : cdf001 call __outint
0220 : c1 pop bc
; sendbyte('0'+(n-q*10));
0221 : cc9:
0221 : 213000 ld hl,48
0224 : e5 push hl
0225 : 210600 ld hl,6
0228 : 39 add hl,sp
0229 : cd0d00 call ccgint
022c : e5 push hl
022d : 210400 ld hl,4
0230 : 39 add hl,sp
0231 : cd0d00 call ccgint
0234 : e5 push hl
0235 : 210a00 ld hl,10
0238 : d1 pop de
0239 : cdb300 call ccmult
AS80 Assembler for i8080-Z180 [1.11]. Page 12
--------------------------------- HELLO.ASM ----------------------------------
023c : d1 pop de
023d : cda000 call ccsub
0240 : d1 pop de
0241 : 19 add hl,de
0242 : e5 push hl
0243 : cd3101 call __sendbyte
0246 : c1 pop bc
;}
0247 : c1 pop bc
0248 : c9 ret
;// sends a hexadecimal value to the UART
;printhex(hval)
0249 : __printhex:
;int hval;
;{
;int q;
0249 : c5 push bc
; q = hval/16;
024a : 210000 ld hl,0
024d : 39 add hl,sp
024e : e5 push hl
024f : 210600 ld hl,6
0252 : 39 add hl,sp
0253 : cd0d00 call ccgint
0256 : e5 push hl
0257 : 211000 ld hl,16
025a : d1 pop de
025b : cdd300 call ccdiv
025e : d1 pop de
025f : cd1500 call ccpint
; if (q) printhex(q);
0262 : 210000 ld hl,0
0265 : 39 add hl,sp
0266 : cd0d00 call ccgint
0269 : 7c ld a,h
026a : b5 or l
026b : ca7a02 jp z,cc10
026e : 210000 ld hl,0
0271 : 39 add hl,sp
0272 : cd0d00 call ccgint
0275 : e5 push hl
0276 : cd4902 call __printhex
0279 : c1 pop bc
; q = hval-q*16;
027a : cc10:
027a : 210000 ld hl,0
027d : 39 add hl,sp
027e : e5 push hl
027f : 210600 ld hl,6
0282 : 39 add hl,sp
0283 : cd0d00 call ccgint
0286 : e5 push hl
0287 : 210400 ld hl,4
028a : 39 add hl,sp
028b : cd0d00 call ccgint
028e : e5 push hl
028f : 211000 ld hl,16
0292 : d1 pop de
0293 : cdb300 call ccmult
0296 : d1 pop de
0297 : cda000 call ccsub
029a : d1 pop de
AS80 Assembler for i8080-Z180 [1.11]. Page 13
--------------------------------- HELLO.ASM ----------------------------------
029b : cd1500 call ccpint
; if (q > 9)
029e : 210000 ld hl,0
02a1 : 39 add hl,sp
02a2 : cd0d00 call ccgint
02a5 : e5 push hl
02a6 : 210900 ld hl,9
02a9 : d1 pop de
02aa : cd3c00 call ccgt
02ad : 7c ld a,h
02ae : b5 or l
02af : cacf02 jp z,cc11
; sendbyte('A'+q-10);
02b2 : 214100 ld hl,65
02b5 : e5 push hl
02b6 : 210200 ld hl,2
02b9 : 39 add hl,sp
02ba : cd0d00 call ccgint
02bd : d1 pop de
02be : 19 add hl,de
02bf : e5 push hl
02c0 : 210a00 ld hl,10
02c3 : d1 pop de
02c4 : cda000 call ccsub
02c7 : e5 push hl
02c8 : cd3101 call __sendbyte
02cb : c1 pop bc
; else
02cc : c3e102 jp cc12
02cf : cc11:
; sendbyte('0'+q);
02cf : 213000 ld hl,48
02d2 : e5 push hl
02d3 : 210200 ld hl,2
02d6 : 39 add hl,sp
02d7 : cd0d00 call ccgint
02da : d1 pop de
02db : 19 add hl,de
02dc : e5 push hl
02dd : cd3101 call __sendbyte
02e0 : c1 pop bc
02e1 : cc12:
;}
02e1 : c1 pop bc
02e2 : c9 ret
;// program main routine
;main()
02e3 : __main:
;{
; // configure UART baud rate - set to 9600 for 30MHz
; // BAUD = round(<clock>/<baud rate>/16) = round(30e6
; UBAUDL = 195;
02e3 : 21c300 ld hl,195
02e6 : 7d ld a,l
02e7 : d381 out (129),a
; UBAUDH = 0;
02e9 : 210000 ld hl,0
02ec : 7d ld a,l
02ed : d382 out (130),a
; // print message
AS80 Assembler for i8080-Z180 [1.11]. Page 14
--------------------------------- HELLO.ASM ----------------------------------
; printstr("Hello World!!!"); nl();
02ef : 215c03 ld hl,cc1+0
02f2 : e5 push hl
02f3 : cd8301 call __printstr
02f6 : c1 pop bc
02f7 : cd7201 call __nl
; printstr("Dec value: "); printdec(tstary[1]); nl();
02fa : 216b03 ld hl,cc1+15
02fd : e5 push hl
02fe : cd8301 call __printstr
0301 : c1 pop bc
0302 : 219f03 ld hl,__tstary
0305 : e5 push hl
0306 : 210100 ld hl,1
0309 : 29 add hl,hl
030a : d1 pop de
030b : 19 add hl,de
030c : cd0d00 call ccgint
030f : e5 push hl
0310 : cdb401 call __printdec
0313 : c1 pop bc
0314 : cd7201 call __nl
; printstr("Hex value: 0x"); printhex(tstary[0]); nl()
0317 : 217703 ld hl,cc1+27
031a : e5 push hl
031b : cd8301 call __printstr
031e : c1 pop bc
031f : 219f03 ld hl,__tstary
0322 : e5 push hl
0323 : 210000 ld hl,0
0326 : 29 add hl,hl
0327 : d1 pop de
0328 : 19 add hl,de
0329 : cd0d00 call ccgint
032c : e5 push hl
032d : cd4902 call __printhex
0330 : c1 pop bc
0331 : cd7201 call __nl
; printstr("Echoing received bytes: "); nl();
0334 : 218503 ld hl,cc1+41
0337 : e5 push hl
0338 : cd8301 call __printstr
033b : c1 pop bc
033c : cd7201 call __nl
;
; // loop forever
; while (1) {
033f : cc13:
033f : 210100 ld hl,1
0342 : 7c ld a,h
0343 : b5 or l
0344 : ca5b03 jp z,cc14
; // check if a new byte was received
; if (getbyte())
0347 : cd4f01 call __getbyte
034a : 7c ld a,h
034b : b5 or l
034c : ca5803 jp z,cc15
; // echo the received byte to the UART
; sendbyte(rxbyte);
034f : 3a9e03 ld a,(__rxbyte)
0352 : cf call ccsxt
AS80 Assembler for i8080-Z180 [1.11]. Page 15
--------------------------------- HELLO.ASM ----------------------------------
0353 : e5 push hl
0354 : cd3101 call __sendbyte
0357 : c1 pop bc
; }
0358 : cc15:
0358 : c33f03 jp cc13
035b : cc14:
;}
035b : c9 ret
;//---------------------------------------------------
;// Th.. Th.. Th.. Thats all folks !!!
;//---------------------------------------------------
035c : cc1:
035c : 48656c6c6f2057.. db 72,101,108,108,111,32,87,111,114,108
0366 : 64212121004465.. db 100,33,33,33,0,68,101,99,32,118
0370 : 616c75653a2000.. db 97,108,117,101,58,32,0,72,101,120
037a : 2076616c75653a.. db 32,118,97,108,117,101,58,32,48,120
0384 : 004563686f696e.. db 0,69,99,104,111,105,110,103,32,114
038e : 65636569766564.. db 101,99,101,105,118,101,100,32,98,121
0398 : 7465733a2000 db 116,101,115,58,32,0
039e : __rxbyte:
039e : 00 ds 1
039f : __tstary:
039f : d2042e16 db -46,4,46,22
; --- End of Compilation ---
No errors in pass 2.
Go to most recent revision | Compare with Previous | Blame | View Log