<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wikidot="http://www.wikidot.com/rss-namespace">

	<channel>
		<title>z80 Heaven - new forum posts</title>
		<link>http://z80-heaven.wikidot.com/forum/start</link>
		<description>Posts in forums of the site &quot;z80 Heaven&quot; - A place for all the z80 info you&#039;ll want</description>
				<copyright></copyright>
		<lastBuildDate>Sun, 06 Sep 2026 06:11:42 +0000</lastBuildDate>
		
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1772643#post-7014544</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-1772643/help-to-understand-what-the-program-do#post-7014544</link>
				<description></description>
				<pubDate>Sat, 24 May 2025 09:36:52 +0000</pubDate>
				<wikidot:authorName>Merilix</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>It doesnt even look like valid code but some data.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1772643/help-to-understand-what-the-program-do">Help to understand what the program do</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1757944#post-7014535</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-1757944/weird-z80-behavior#post-7014535</link>
				<description></description>
				<pubDate>Sat, 24 May 2025 09:23:22 +0000</pubDate>
				<wikidot:authorName>Merilix</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>It looks like you're catching refresh cycles indicated by _MREQ=0, _RD=1, _RFSH=0.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1757944/weird-z80-behavior">Weird Z80 behavior</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-17034421#post-6810311</guid>
				<title>got an EEPROM, need to de-assemble</title>
				<link>http://z80-heaven.wikidot.com/forum/t-17034421/got-an-eeprom-need-to-de-assemble#post-6810311</link>
				<description></description>
				<pubDate>Mon, 10 Feb 2025 19:05:43 +0000</pubDate>
				<wikidot:authorName>Ramon Bacardi</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Hi. I got an old board I wrote some code for, with a Z80A CPU, a SIO and a CTC.</p> <p>Program is in EEPROM (27C64) - I dumped it using a TL866 into a BIN file (have also the HEX)</p> <p>(1) what de-assembler would you recomend me to get the code in assembler format ?</p> <p>(2) is there any good &quot;emulator&quot; so I can feed the BIN and execute instructions one by one, see the register, the memory, etc ?</p> <p>Thanks. Ramon.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-17034421/got-an-eeprom-need-to-de-assemble">got an EEPROM, need to de-assemble</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-6083139#post-6476835</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-6083139/ex#post-6476835</link>
				<description></description>
				<pubDate>Thu, 11 Apr 2024 15:09:30 +0000</pubDate>
				<wikidot:authorName>test</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>ex (sp),ix ex (sp),iy 19 Tstates ?<br /> no, 23 Tstates.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-6083139/ex">EX</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-642484#post-6464944</guid>
				<title>Re: Wrong description</title>
				<link>http://z80-heaven.wikidot.com/forum/t-642484/push#post-6464944</link>
				<description></description>
				<pubDate>Mon, 25 Mar 2024 13:55:34 +0000</pubDate>
				<wikidot:authorName>MattiWens</wikidot:authorName>				<wikidot:authorUserId>9078397</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>This is wrong, the page needs editing.</p> <p>&quot;If you use push hl, first the value of SP is decremented by two, then virtually an ld (sp),hl happens&quot;.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-642484/push">PUSH</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-16607134#post-6341465</guid>
				<title>Correction to PUSH descriptions</title>
				<link>http://z80-heaven.wikidot.com/forum/t-16607134/correction-to-push-descriptions#post-6341465</link>
				<description></description>
				<pubDate>Thu, 04 Jan 2024 09:04:12 +0000</pubDate>
				<wikidot:authorName>Andrew Potts</wikidot:authorName>				<wikidot:authorUserId>8968302</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Hi. Firstly, great Website, very helpful!</p> <p>Just a note on the PUSH descriptions - shouldn't it say the stack pointer is DEcremented by 2 bytes?</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4467">General Forums / Site Feedback</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-16607134/correction-to-push-descriptions">Correction to PUSH descriptions</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1340247#post-6243117</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-1340247/hello-world-program-not-working-on-ti-84#post-6243117</link>
				<description></description>
				<pubDate>Thu, 09 Nov 2023 11:05:49 +0000</pubDate>
				<wikidot:authorName>filoche</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Salut, j'ai moi même une Ti83+ ; je me suis programmé un petit assembleur pour traduire les<br /> codes z80 sur ma machine .<br /> Si tu le souhaites je peux t'envoyer le code héxadécimal de ton programme</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1340247/hello-world-program-not-working-on-ti-84">&quot;Hello World&quot; program not working on TI-84</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-16351572#post-6205132</guid>
				<title>Z80 INT pin, connected to GND</title>
				<link>http://z80-heaven.wikidot.com/forum/t-16351572/z80-int-pin-connected-to-gnd#post-6205132</link>
				<description></description>
				<pubDate>Wed, 20 Sep 2023 16:43:40 +0000</pubDate>
				<wikidot:authorName>Andrei</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Using IM2 mode, jump table is correct (tested without connecting INT to GND), and I=00h.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-16351572/z80-int-pin-connected-to-gnd">Z80 INT pin, connected to GND</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2308294#post-6046913</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-2308294/out#post-6046913</link>
				<description></description>
				<pubDate>Tue, 04 Apr 2023 11:03:16 +0000</pubDate>
				<wikidot:authorName>Craig</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Incorrect. Works on any X89. Is ised in the keyboard scanning on the ZX81 for example.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2308294/out">OUT</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1772657#post-5311869</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-1772657/ld#post-5311869</link>
				<description></description>
				<pubDate>Fri, 13 May 2022 10:20:27 +0000</pubDate>
				<wikidot:authorName>Brian</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>I also noticed the timings for LD (HL),r is also missing (7&#160;T States).</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1772657/ld">LD</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-14037849#post-4939238</guid>
				<title>Anybody out there?</title>
				<link>http://z80-heaven.wikidot.com/forum/t-14037849/anybody-out-there#post-4939238</link>
				<description></description>
				<pubDate>Tue, 30 Mar 2021 11:38:00 +0000</pubDate>
				<wikidot:authorName>Carlos</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>I'm just curious to how dead this site is. Anyone else out there?</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4466">General Forums / General Discussion</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-14037849/anybody-out-there">Anybody out there?</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-14024737#post-4921074</guid>
				<title>Question About this Site</title>
				<link>http://z80-heaven.wikidot.com/forum/t-14024737/question-about-this-site#post-4921074</link>
				<description></description>
				<pubDate>Tue, 09 Mar 2021 01:07:21 +0000</pubDate>
				<wikidot:authorName>J_Walker87</wikidot:authorName>				<wikidot:authorUserId>6818760</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Hey, I use this site to try and learn z80 asm on my Ti-83+. Just wondering if this site currently has an active community of developers centered around it.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4466">General Forums / General Discussion</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-14024737/question-about-this-site">Question About this Site</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1772859#post-4867272</guid>
				<title>Typo.</title>
				<link>http://z80-heaven.wikidot.com/forum/t-1772859/cpir#post-4867272</link>
				<description></description>
				<pubDate>Mon, 11 Jan 2021 04:15:48 +0000</pubDate>
				<wikidot:authorName>nn a d r a nn</wikidot:authorName>				<wikidot:authorUserId>1860185</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>ASIS: if A = (HL) <strong>before</strong> HL is decremented.<br /> TOBE: if A = (HL) <strong>before</strong> BC is decremented.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1772859/cpir">CPIR</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-9847133#post-4798935</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-9847133/math#post-4798935</link>
				<description></description>
				<pubDate>Sun, 18 Oct 2020 14:46:19 +0000</pubDate>
				<wikidot:authorName>megatokio</wikidot:authorName>				<wikidot:authorUserId>6940652</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>also:<br /> DEHL_div_C is broken.<br /> DEHL_times_A is broken.</p> <p>just those which i tested.</p> <p>i joined wikidot and applied for membership in Z80-heaven to corret it.<br /> yesterday i had the impression i could edit the page but today i seem to be no longer a member of Z80-heaven.</p> <p>links to this wiki can only be placed with a big warning ahead. :-(</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-9847133/math">Math</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-13054073#post-4505355</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-13054073/sra#post-4505355</link>
				<description></description>
				<pubDate>Tue, 18 Feb 2020 03:33:36 +0000</pubDate>
				<wikidot:authorName>shram86</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Slight error, bit 7 is not &quot;unchanged&quot;, it is replaced with a 0.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-13054073/sra">SRA</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-143129#post-4449228</guid>
				<title>Re: new members!!!</title>
				<link>http://z80-heaven.wikidot.com/forum/t-143129/new-members#post-4449228</link>
				<description></description>
				<pubDate>Wed, 18 Dec 2019 14:20:28 +0000</pubDate>
				<wikidot:authorName>David Ellwood</wikidot:authorName>				<wikidot:authorUserId>5958604</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Hi All</p> <p>New member here, An old Trs-80 user from 1979 and more recently an N8VEM and S100 DIYer.</p> <p>Interested in TRS-80 Graphics programming and generally messing around.</p> <p>Having fun with the Oshon Z80 Simulator IDE!</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4466">General Forums / General Discussion</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-143129/new-members">new members!!!</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-642484#post-4413670</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-642484/push#post-4413670</link>
				<description></description>
				<pubDate>Sun, 03 Nov 2019 11:03:15 +0000</pubDate>
				<wikidot:authorName>error</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>It is incorrect that PUSH &quot;Copies the operand into (SP), then increments SP by 2.&quot;</p> <p>From the Zilog Z80 manual:</p> <p>Operation<br /> (SP – 2) ← qqL, (SP – 1) ← qqH</p> <p>Description<br /> The contents of the register pair qq are pushed to the external memory last-in, first-out<br /> (LIFO) stack. The Stack Pointer (SP) Register pair holds the 16-bit address of the current<br /> top of the Stack. <strong>This instruction first decrements SP</strong> and loads the high-order byte of register<br /> pair qq to the memory address specified by the SP. <strong>The SP is decremented again</strong> and<br /> loads the low-order byte of qq to the memory location corresponding to this new address<br /> in the SP. The operand qq identifies register pair BC, DE, HL, or AF, assembled as follows<br /> in the object code:</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-642484/push">PUSH</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2518563#post-4334079</guid>
				<title>Re: Z80 Address Line Functioning (Edit)</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2518563/z80-address-line-functioning#post-4334079</link>
				<description></description>
				<pubDate>Sun, 18 Aug 2019 21:48:46 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I'm not the OP, but I found your reply useful so thanks!</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4466">General Forums / General Discussion</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2518563/z80-address-line-functioning">Z80 Address Line Functioning</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2174792#post-4333831</guid>
				<title>Re: Z80 Assembly - Changes to Microsoft Basic v4.7</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2174792/z80-assembly-changes-to-microsoft-basic-v4-7#post-4333831</link>
				<description></description>
				<pubDate>Sun, 18 Aug 2019 14:26:50 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>It has been almost 2 and a half years, sorry. I don't know what registers OUTC destroys, but I'm assuming it preserves HL. If that is the case, you can just move the <strong><tt>add hl,de</tt></strong> up a few lines in this section:</p> <div class="code"> <pre><code> LD HL,ERRORS ; Point to error codes LD D,A ; D = 0 (A is 0) LD A,'?' CALL OUTC ; Output '?' ADD HL,DE ; Offset to correct error code</code></pre></div> <br /> And turn it into: <div class="code"> <pre><code> LD HL,ERRORS ; Point to error codes LD D,A ; D = 0 (A is 0) ADD HL,DE ; Offset to correct error code LD A,'?' CALL OUTC ; Output '?'</code></pre></div> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2174792/z80-assembly-changes-to-microsoft-basic-v4-7">Z80 Assembly - Changes to Microsoft Basic v4.7</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-5323159#post-4333824</guid>
				<title>Re: What programming is this?</title>
				<link>http://z80-heaven.wikidot.com/forum/t-5323159/what-programming-is-this#post-4333824</link>
				<description></description>
				<pubDate>Sun, 18 Aug 2019 14:19:13 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>It's a year-and-a-half late, but that looks like code to disable [ON] breaking in TI-BASIC. Here is a more optimized routine, though:</p> <div class="code"> <pre><code>#include &quot;ti83plus.inc&quot; .org userMem-2 .db $BB,$6D .list bcall(_RclAns) bcall(_ConvOp1) or a jr z,Install_Interrupt dec a ret nz Uninstall_Interrupt: im 1 ret Install_Interrupt: di ld a,$99 ld bc,256 ld d,a ld e,b ld h,a ld l,c ld i,a inc a ld (hl),a ldir ld hl,interrupt_start ld d,a ld e,a ld c,interrupt_end-interrupt_start ldir im 2 ;switch to mode 2 ei ;enable interrupts ret Interrupt_Start: ex af,af' exx in a,($03) and %11111110 out ($03),a jp $003A Interrupt_End:</code></pre></div> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-5323159/what-programming-is-this">What programming is this?</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2518563#post-4321488</guid>
				<title>Re: Z80 Address Line Functioning (Edit)</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2518563/z80-address-line-functioning#post-4321488</link>
				<description></description>
				<pubDate>Sat, 03 Aug 2019 18:26:13 +0000</pubDate>
				<wikidot:authorName>Russell Sher</wikidot:authorName>				<wikidot:authorUserId>5558955</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Hi, just joined so I'm not sure if this post is even active. Could the reason be that the Z80 is putting out a refresh address which is at the point after M1 is deasserted? Although this is supposed to be on A0 to A7 so not too sure why you would see this.<br /> Edit - this is the reason. The top 8 bits are basically inactive.<br /> See on YouTube zilog z80 cpu running at 1hz. (Sorry this forum doesn't allow a new user to put a url on this post).</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4466">General Forums / General Discussion</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2518563/z80-address-line-functioning">Z80 Address Line Functioning</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-92744#post-4318424</guid>
				<title>Re: Advanced Math</title>
				<link>http://z80-heaven.wikidot.com/forum/t-92744/advanced-math#post-4318424</link>
				<description></description>
				<pubDate>Wed, 31 Jul 2019 00:57:57 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Almost two years later, I remembered I still had a draft for this page. I worked on it a bit and it isn't as complete as I hope for it to eventually be, but at least it is better :)</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-92744/advanced-math">Advanced Math</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1772657#post-4195273</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-1772657/ld#post-4195273</link>
				<description></description>
				<pubDate>Sun, 24 Mar 2019 08:46:49 +0000</pubDate>
				<wikidot:authorName>Lars</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Indeed the LD (HL),n is missing but unfortunately the page has not been updated yet.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1772657/ld">LD</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-9847133#post-4109911</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-9847133/math#post-4109911</link>
				<description></description>
				<pubDate>Sun, 06 Jan 2019 01:15:47 +0000</pubDate>
				<wikidot:authorName>Stefan Noack</wikidot:authorName>				<wikidot:authorUserId>5042604</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>There is a bug in the HL_Div_C routine that gives wrong results, for example 37901 / 149 should be 254 but the routine yields 34, fixed code below:</p> <div class="code"> <pre><code>HL_Div_C: ;Inputs: ; HL is the numerator ; C is the denominator ;Outputs: ; A is the remainder ; B is 0 ; C is not changed ; DE is not changed ; HL is the quotient ; ld b,16 xor a add hl,hl rla jr c,$+5 ; this line is missing cp c jr c,$+4 inc l sub c djnz $-9 ; this needs to be adjusted for the added code ret</code></pre></div> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-9847133/math">Math</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-7498472#post-3971038</guid>
				<title>correction to the definition of &#039;res&#039;</title>
				<link>http://z80-heaven.wikidot.com/forum/t-7498472/correction-to-the-definition-of-res#post-3971038</link>
				<description></description>
				<pubDate>Sat, 15 Sep 2018 07:50:15 +0000</pubDate>
				<wikidot:authorName>Allan</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>hi there - on your site when you search for the definition of the 'RES' operator, it says 'reset the specific byte to zero'. In fact it should say 'reset the specific bit to zero'. Just thought I'd mention it as I was learning Z80 and this confused me initially.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4467">General Forums / Site Feedback</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-7498472/correction-to-the-definition-of-res">correction to the definition of 'res'</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-6450547#post-3889088</guid>
				<title>Re: Compile to Assembly</title>
				<link>http://z80-heaven.wikidot.com/forum/t-6450547/compile-to-assembly#post-3889088</link>
				<description></description>
				<pubDate>Sat, 28 Jul 2018 18:18:25 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p><a href="https://www.omnimaga.org/the-axe-parser-project/latest-updates-(***do-not-post-here!***)/msg364694/#msg364694">Axe Parser</a> is a great alternative that compiles on-calc. If you don't have assembly experience, it will be a bit of a learning curve, but it's powerful and fast.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-6450547/compile-to-assembly">Compile to Assembly</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-6450547#post-3877289</guid>
				<title>Compile to Assembly</title>
				<link>http://z80-heaven.wikidot.com/forum/t-6450547/compile-to-assembly#post-3877289</link>
				<description></description>
				<pubDate>Wed, 18 Jul 2018 01:06:16 +0000</pubDate>
				<wikidot:authorName>Benjamin Brownlee</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>I was curious if anyone is a aware of another language that can be compiled to z80 assembly and uploaded to a calculator. I know Ti-Basic exists, but (Ti-Basic is slow and limited and) I was looking for something that would be compiled once and then run on the calculator as assembly.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-6450547/compile-to-assembly">Compile to Assembly</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1772657#post-3851838</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-1772657/ld#post-3851838</link>
				<description></description>
				<pubDate>Wed, 27 Jun 2018 05:23:19 +0000</pubDate>
				<wikidot:authorName>Witerat</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>I'm pretty sure the table on this page is missing these operations<br /> 36 n LD (HL),n ;10&#160;T-states<br /> DD 36 d n LD (iX+d),n ;19&#160;T-states<br /> FD 36 d n LD (IY+d),n ;19&#160;T-states</p> <p>Note that LD (HL),n does appear on opcode reference chart [url]/opcode-reference-chart[/url].<br /> Source: pp211-214 Z80 Reference Guide; ISBN 0-86161-162-4; 1984 Melbourne House Publishers; Alan Tully Author</p> <hr /> <p>Real noodles don't try to rule the waves.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1772657/ld">LD</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-5902789#post-3804481</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-5902789/res#post-3804481</link>
				<description></description>
				<pubDate>Fri, 18 May 2018 13:16:30 +0000</pubDate>
				<wikidot:authorName>Derek</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Agreed. It resets a BIT, not a BYTE!</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-5902789/res">RES</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-5902789#post-3796339</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-5902789/res#post-3796339</link>
				<description></description>
				<pubDate>Thu, 10 May 2018 17:28:23 +0000</pubDate>
				<wikidot:authorName>Seiign</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>It says &quot;Resets the specified byte to zero&quot;, It should be &quot;bit&quot; instead of byte.<br /> Also, on another note &quot;Resets to zero&quot; isn't a little redundant? wouldn't be better either just &quot;Resets &#8230;&quot; or &quot;Sets &#8230; to zero&quot;.<br /> Other than that great page for fast info, good job.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-5902789/res">RES</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-5323159#post-3717588</guid>
				<title>What programming is this?</title>
				<link>http://z80-heaven.wikidot.com/forum/t-5323159/what-programming-is-this#post-3717588</link>
				<description></description>
				<pubDate>Wed, 21 Feb 2018 15:26:36 +0000</pubDate>
				<wikidot:authorName>GatoradeDC</wikidot:authorName>				<wikidot:authorUserId>3688735</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <div class="code"> <pre><code>.nolist #include &quot;ti83plus.inc&quot; .org userMem-2 .db $BB,$6D .list bcall(_RclAns) bcall(_ConvOp1) ld a,e or a jr z,Install_Interrupt dec a ret nz Uninstall_Interrupt: im 1 ret Install_Interrupt: di ld hl,$9900 ld de,$9901 ld bc,256 ld (hl),$9a ldir ld hl,interrupt_start ld de,$9a9a ld bc,interrupt_end-interrupt_start ldir ld a,$99 ld i,a im 2 ;switch to mode 2 ei ;enable interrupts ret Interrupt_Start: ex af,af' exx in a,($03) and %11111110 out ($03),a call $003A reti Interrupt_End: .end</code></pre></div> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-5323159/what-programming-is-this">What programming is this?</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1757944#post-3677219</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-1757944/weird-z80-behavior#post-3677219</link>
				<description></description>
				<pubDate>Tue, 09 Jan 2018 05:21:40 +0000</pubDate>
				<wikidot:authorName>Aaron</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>I have this exact same problem, I followed through and instruction by instruction and get the same result. I noticed after the jmp and the weird counting it only takes 2 clock cycles to increase the address where as before the jump it was 4 clock cycles. Did you ever figure this out and get yours working normally?</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1757944/weird-z80-behavior">Weird Z80 behavior</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-92744#post-3567854</guid>
				<title>Re: Advanced Math</title>
				<link>http://z80-heaven.wikidot.com/forum/t-92744/advanced-math#post-3567854</link>
				<description></description>
				<pubDate>Wed, 09 Aug 2017 17:05:39 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I've begun the process of updating it. It's going to be a total overhaul, so I've been editing a draft of the new page. It is going to be a while :|</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-92744/advanced-math">Advanced Math</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-3211891#post-3567096</guid>
				<title>Re: The Application Header</title>
				<link>http://z80-heaven.wikidot.com/forum/t-3211891/the-application-header#post-3567096</link>
				<description></description>
				<pubDate>Tue, 08 Aug 2017 13:54:41 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I started this, it is not yet complete, but I submitted what I have completed.</p> <p><strong>Edit:</strong> For the most part, complete.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-3211891/the-application-header">The Application Header</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-3211891#post-3566135</guid>
				<title>The Application Header</title>
				<link>http://z80-heaven.wikidot.com/forum/t-3211891/the-application-header#post-3566135</link>
				<description></description>
				<pubDate>Mon, 07 Aug 2017 01:33:09 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I'm sorry, I'm strapped for time so I can't help just yet&#8212; maybe in a few weeks.</p> <p>This page is in need of an overhaul and while I want to keep the cheeky language, it's absolutely incorrect about a few key points. Application headers are restricted to 128 bytes, but only as an upper limit. A minimum header is a few dozen bytes. An example here is 32 bytes and could be less depending on the size of the app name.:</p> <div class="code"> <pre><code>.org $4000 .db $80,$0F, 0,0,0,0 .db $80,$12, $01,$04 ;signing key ID .db $80,$47, &quot;AppName&quot; ;change the $47 according to name len (last nibble is the length). .db $80,$81, 1 ;num pages .db $80,$90 ;no splash .db $03,$22,$09,$00 ;date stamp .db $02,$00 ;date stamp signature .db $80,$70 ;final field appstart:</code></pre></div> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-3211891/the-application-header">The Application Header</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-92744#post-3564351</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-92744/advanced-math#post-3564351</link>
				<description></description>
				<pubDate>Thu, 03 Aug 2017 19:23:02 +0000</pubDate>
				<wikidot:authorName>Zeda Thomas</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>It has been years since I updated this and some of these routines are making me cringe (and some I'm fairly sure are wrong). This page needs a serious update at some point when I get time and I'm not using a phone.</p> <p>I must have been practically a heathen when I made these routines XD</p> <p>I have better algorithms and faster codes, comment if you need something or if I forget to edit.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-92744/advanced-math">Advanced Math</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2518563#post-3045433</guid>
				<title>Re: Z80 Address Line Functioning (Edit)</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2518563/z80-address-line-functioning#post-3045433</link>
				<description></description>
				<pubDate>Sat, 01 Jul 2017 18:25:34 +0000</pubDate>
				<wikidot:authorName>ajward</wikidot:authorName>				<wikidot:authorUserId>3218039</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Replying to my own post! :-) Seems I can't edit it.</p> <p>Anyhow I was in error about the flashing address lines begining at 256&#8230; actually 128 . Still stumped. :-)</p> <p>Amanda</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4466">General Forums / General Discussion</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2518563/z80-address-line-functioning">Z80 Address Line Functioning</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2518563#post-3045293</guid>
				<title>Z80 Address Line Functioning</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2518563/z80-address-line-functioning#post-3045293</link>
				<description></description>
				<pubDate>Sat, 01 Jul 2017 18:16:41 +0000</pubDate>
				<wikidot:authorName>ajward</wikidot:authorName>				<wikidot:authorUserId>3218039</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Hi All! I just joined the site to hopefully gain some insight into the workings of the Z80. I'm hoping I can build a basic computer around the Z80.<br /> To this point, I've bread-boarded a circuit to verify the CPU iis functioning properly. So far this seems to be the case.<br /> The data lines are all tied low to effect a NOP instruction. All the address lines are driving LEDs through 74LS244 driver ICs.</p> <p>However, there is something that puzzles me. The address lines count up normally to 65535, but when the count passes 255 any active line from A8 through A15 flashes. The flashing is the same frequency as M1, but opposite&#8230; M1 on, A8 - A15 off and vice versa.</p> <p>I'm stumped. I've downloaded about a ream of documents on the Z80, but I'll be darned if I can see anything to unravel this. I've watched numerous videos about testing the CPU, but no one ever seems to monitor more than 4 or 5 address lines.<br /> I suppose this is normal behavior for some reason given the limited setup I'm using.</p> <p>Anyone have any thought on this? I'd be grateful!</p> <p>Amanda - Have a great 4th!<br /> (July 4th - alcohol and explosives. What could wrong?) :-)</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4466">General Forums / General Discussion</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2518563/z80-address-line-functioning">Z80 Address Line Functioning</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-143129#post-3044651</guid>
				<title>Re: new members!!!</title>
				<link>http://z80-heaven.wikidot.com/forum/t-143129/new-members#post-3044651</link>
				<description></description>
				<pubDate>Sat, 01 Jul 2017 17:34:36 +0000</pubDate>
				<wikidot:authorName>ajward</wikidot:authorName>				<wikidot:authorUserId>3218039</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>new members!!! Well, that'd be me I guess! I just joined in the hope of learning more about the Z80.<br /> I've started to explore the possibility of building a basic computer using the Z80. So far, I've built a tester to verify the CPU is functioning correctly and I &quot;think&quot; everything is okay. I'll have questions tho', but I'll address those in another area.</p> <p>Happy to be here.</p> <p>Amanda</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4466">General Forums / General Discussion</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-143129/new-members">new members!!!</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2128911#post-2927903</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-2128911/read-back-program-memory#post-2927903</link>
				<description></description>
				<pubDate>Tue, 27 Jun 2017 03:59:45 +0000</pubDate>
				<wikidot:authorName>Zilch</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Older processors such as the Z80 did not have any onboard memory, so there is nothing to &quot;read back&quot;.</p> <p>If your system has EPROM (separate non-volatile memory chips, then the contents of these can easily be read out.</p> <p>Zilch</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2128911/read-back-program-memory">Read Back program memory</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2308294#post-2842074</guid>
				<title>Re: Could add the role of B</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2308294/out#post-2842074</link>
				<description></description>
				<pubDate>Mon, 05 Jun 2017 01:22:19 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>If you would like, you can add that to the end. It only applies to the eZ80, though (not the Z80).</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2308294/out">OUT</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2308294#post-2841792</guid>
				<title>Could add the role of B</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2308294/out#post-2841792</link>
				<description></description>
				<pubDate>Sun, 04 Jun 2017 18:38:29 +0000</pubDate>
				<wikidot:authorName>Piala Alice</wikidot:authorName>				<wikidot:authorUserId>1908468</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>This could add a note that the contents of the B register are used as the upper byte of the port number for the (C) version, and the contents of A used as the upper byte for the fixed port version.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2308294/out">OUT</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2244865#post-2801001</guid>
				<title>Re: Calculator Compatibility</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2244865/calculator-compatibility#post-2801001</link>
				<description></description>
				<pubDate>Tue, 25 Apr 2017 11:28:18 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>On the newer models there is:</p> <ul> <li>More RAM</li> <li>More Flash</li> <li>A different screen</li> <li>An eZ80 processor</li> </ul> <p>As a result, you'll need to use different graphics routines, and you'll need to use an updated list of addresses for built-in routines (which are now called instead of bcalled).</p> <p>For the most part, the instruction set is backwards compatible (including an on-chip Z80 mode). However, instruction timings are different and with the introduction of new and more efficient instructions, many of the routines found here can be further optimized.</p> <p>For the new system calls and addresses, you'll want to check out wikiti.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2244865/calculator-compatibility">Calculator Compatibility</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2244865#post-2800900</guid>
				<title>Calculator Compatibility</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2244865/calculator-compatibility#post-2800900</link>
				<description></description>
				<pubDate>Tue, 25 Apr 2017 05:18:25 +0000</pubDate>
				<wikidot:authorName>Benjamin</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>I noticed in your basic tutorials on assembly programming that you often reference the TI-83 Plus in set-up downloads and programming but alternate paths for newer calculators are not clear. I was wondering how cross-compatible these tutorials were to newer calculators &#8212; especially the TI-84 CE &#8212; and what modifications if any were necessary to begin programming in assembly.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2244865/calculator-compatibility">Calculator Compatibility</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2174792#post-2772653</guid>
				<title>Z80 Assembly - Changes to Microsoft Basic v4.7</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2174792/z80-assembly-changes-to-microsoft-basic-v4-7#post-2772653</link>
				<description></description>
				<pubDate>Tue, 21 Mar 2017 21:43:46 +0000</pubDate>
				<wikidot:authorName>nockieboy</wikidot:authorName>				<wikidot:authorUserId>3020831</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Hi,</p> <p>Firstly, I haven't looked at Z80 assembly since my childhood back in the late 80's. Whilst I'm quite competent in modern languages, Z80 assembly is something I've never revisited until I recently built a Z80-based single board computer. This runs a version of NASCOM BASIC, which is itself based on Microsoft BASIC from way back in '78.</p> <p>Now I've got the computer up and running, I'm taking a break from building the next piece of hardware to add to it and instead focusing on the software for the moment. I'd like to make a few (relatively minor) changes to the BASIC interpreter running on the ROM, and in the process learn something about Z80 assembly etc.</p> <p>What I'm currently trying to do is make the error messages a little more verbose. My first computer was an Amstrad CPC464, so naturally I'm trying to make the BASIC a little more like what I'm used to (already changed the OK prompt to READY.)</p> <p>I'm hitting a problem with the error messages though. In its untouched form, the error messages are two-character bytes, like so:</p> <div class="code"> <pre><code>ERRORS: .BYTE &quot;NF&quot; ; NEXT without FOR .BYTE &quot;SN&quot; ; Syntax error .BYTE &quot;RG&quot; ; RETURN without GOSUB</code></pre></div> <p>Now the following lines of code handles printing a message:</p> <div class="code"> <pre><code>ERROR: CALL CLREG ; Clear registers and stack LD (CTLOFG),A ; Enable output (A is 0) CALL STTLIN ; Start new line LD HL,ERRORS ; Point to error codes LD D,A ; D = 0 (A is 0) LD A,'?' CALL OUTC ; Output '?' ADD HL,DE ; Offset to correct error code LD A,(HL) ; First character CALL OUTC ; Output it CALL GETCHR ; Get next character CALL OUTC ; Output it LD HL,ERRMSG ; &quot;Error&quot; message ERRIN: CALL PRS ; Output message</code></pre></div> <p>Now initially (and somewhat naively) I thought I could just change the 2-character bytes in ERRORS: from, e.g. &quot;SN&quot; to &quot;Syntax&quot; - the word &quot; Error&quot; is added after each error message. I soon realised that this wasn't working, as there's a lookup table listing the location of each error message. Once I found that, all seemed to be roses for a while. I changed the code above so that instead of printing 2 characters and then moving on, it would loop through printing characters until it hit a 0.</p> <div class="code"> <pre><code>; BASIC ERROR CODE VALUES NF .EQU 00H ; NEXT without FOR SN .EQU 02H ; Syntax error RG .EQU 04H ; RETURN without GOSUB OD .EQU 06H ; Out of DATA FC .EQU 08H ; Function call error OV .EQU 0AH ; Overflow OM .EQU 0CH ; Out of memory</code></pre></div> <p>I added a zero to the end of each message in ERRORS: and changed the 2-char message to a more verbose one (so .BYTE &quot;NF&quot; became .BYTE &quot;NEXT without FOR&quot;,0). I then amended the BASIC ERROR CODE VALUES lookup table (above) to take the length of the verbose error messages into account.</p> <p>Everything was fine for the first few error messages. I'd tested the system and it worked. So I changed the rest of the error messages and updated the lookup table. Some of the values went as high as 124H etc, and I found I had to add a 0 to the lower offsets to avoid errors in TASM. However, I then started getting other errors - unused MS data errors in lines like LD E,(OS). I suspected this was because the offset was too large for a single 8-bit register like E, so where the errors came up I changed the code to LD DE,(&lt;error msg offset label&gt;) to make use of the full 16-bit DE register.</p> <p>Obviously that didn't work - it stopped my ROM completely and locked the computer up. So, my long-winded question is winding to its conclusion - I don't currently know enough about assembly or the Z80 registers or the BASIC code I'm editing to know what I did wrong and why it was locking up the computer. I suspect this next bit of code is the culprit - taken from the message printing code further up:</p> <div class="code"> <pre><code>LD D,A ; D = 0 (A is 0) LD A,'?' CALL OUTC ; Output '?' ADD HL,DE ; Offset to correct error code</code></pre></div> <p>If the error offset is loaded into E, then the first line above doesn't mess with it. But if, after I changed it to load into DE, D is then changed by the above code snippet, then the offset is going to be corrupted. Should I just remove the LD D,A line and the two after it as I'm not bothered about having the ? mark at the start of the error message either&#8230;</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2174792/z80-assembly-changes-to-microsoft-basic-v4-7">Z80 Assembly - Changes to Microsoft Basic v4.7</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2153480#post-2764649</guid>
				<title>Re: Z80 compiler question</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question#post-2764649</link>
				<description></description>
				<pubDate>Fri, 10 Mar 2017 18:00:46 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I honestly can't find anything. I know it's a pain, but you might have to find a more current compiler and port the code. It can't be that much different syntax. I hope it's not :/</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question">Z80 compiler question</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2153480#post-2764634</guid>
				<title>Re: Z80 compiler question</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question#post-2764634</link>
				<description></description>
				<pubDate>Fri, 10 Mar 2017 17:41:16 +0000</pubDate>
				<wikidot:authorName>DB123</wikidot:authorName>				<wikidot:authorUserId>3003081</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>The compiler I need is the Archimedes C ver3.1.</p> <p>Does anyone know where I can get that version?</p> <p>Thanks,</p> <p>Doug</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question">Z80 compiler question</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2153480#post-2761361</guid>
				<title>Re: Z80 compiler question</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question#post-2761361</link>
				<description></description>
				<pubDate>Mon, 06 Mar 2017 15:42:39 +0000</pubDate>
				<wikidot:authorName>DB123</wikidot:authorName>				<wikidot:authorUserId>3003081</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I have some more clues.</p> <p>The compiler command was &quot;cz80 sourceFileName&quot;<br /> The linker command was &quot;linkz80 sourceFileName&quot;</p> <p>Does that help identify the toolchain that was used originally in the real early 90's?</p> <p>Doug</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question">Z80 compiler question</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2153480#post-2761337</guid>
				<title>Re: Z80 compiler question</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question#post-2761337</link>
				<description></description>
				<pubDate>Mon, 06 Mar 2017 14:50:51 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Ooooh, yes. When you said 'compile assembly' I took that as an assembler XD um, I think small-C had a variant for the Z80 called Z88DK. Small-C is from the early 80s.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question">Z80 compiler question</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2153480#post-2761333</guid>
				<title>Re: Z80 compiler question</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question#post-2761333</link>
				<description></description>
				<pubDate>Mon, 06 Mar 2017 14:47:08 +0000</pubDate>
				<wikidot:authorName>DB123</wikidot:authorName>				<wikidot:authorUserId>3003081</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I went to: z80.info and downloaded the TASM V2.9 from March 92. It looks like TASM is for assembly code and not C code. I should have mentioned that the source code I have is C code. Did Borland support the Z80 processor in 93? Any idea what compilers for C code would have been available in 1993?</p> <p>Thanks,<br /> Doug</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question">Z80 compiler question</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2153480#post-2760851</guid>
				<title>Re: Z80 compiler question</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question#post-2760851</link>
				<description></description>
				<pubDate>Sun, 05 Mar 2017 21:57:00 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I can't remember when TASM was released, but that is a likely candidate. I think Zilog's site has a list of assemblers. Sorry, I'm on mobile so it's a pain to verify.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question">Z80 compiler question</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2153480#post-2760837</guid>
				<title>Z80 compiler question</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question#post-2760837</link>
				<description></description>
				<pubDate>Sun, 05 Mar 2017 21:32:24 +0000</pubDate>
				<wikidot:authorName>Doug B</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>I have piece of hardware with a functioning Z80 that was first created in in early 1993. I do have the source code but no documentation. Would anyone know how many compilers there would have been in 1993 for a PC that would compile Z80? I want to be able to compile this project and make some changes to it but I have no idea what it was created with.</p> <p>Thanks,<br /> Doug</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2153480/z80-compiler-question">Z80 compiler question</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-2128911#post-2748367</guid>
				<title>Read Back program memory</title>
				<link>http://z80-heaven.wikidot.com/forum/t-2128911/read-back-program-memory#post-2748367</link>
				<description></description>
				<pubDate>Thu, 16 Feb 2017 15:31:16 +0000</pubDate>
				<wikidot:authorName>jediengineer</wikidot:authorName>				<wikidot:authorUserId>2984466</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Does anyone know how to, or has anyone successfully retrieved the program memory from a Z80 or Z80A? I have one, and would like to retrieve the code from it, not sure if it's possible or not, but because it's an older chip, I'm assuming that the failsafes we have in today's newer processors are not there.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-2128911/read-back-program-memory">Read Back program memory</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1930045#post-2672359</guid>
				<title>Re: incremental loop in Z80</title>
				<link>http://z80-heaven.wikidot.com/forum/t-1930045/incremental-loop-in-z80#post-2672359</link>
				<description></description>
				<pubDate>Tue, 18 Oct 2016 00:02:56 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Suppose you want an 8-bit counter, ideally in A:</p> <div class="code"> <pre><code> xor a ;performs 'ld a,0', but does affect flags, which isn't a problem here. loop: ;Do stuff, but return with A unchanged ;Probably requires 'push af \ do stuff \ pop af' ;or 'ld (var_A),a \ do stuff \ ld a,(var_A)' inc a cp 10 jr nz,loop ;use jp if the loop is too far ;loop is finished, so return or do whatever you were going to do.</code></pre></div> <br /> If you need a 16-bit counter, ideally in HL, it is a similar process: <div class="code"> <pre><code> ld hl,0 loop: ;Do stuff, but return with HL unchanged ;Probably requires 'push hl \ do stuff \ pop hl' ;or 'ld (var_HL),hl \ do stuff \ ld hl,(var_HL)' inc hl ;push de ;use if you need to preserve DE ld de,10 or a ;\ sbc hl,de ; |This essentially compares HL and DE. add hl,de ;/ ;pop de ;use if you need to preserve DE jr nz,loop ;use 'jp' if the jump is too far. ;loop is finished, so return or do whatever you were going to do.</code></pre></div> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1930045/incremental-loop-in-z80">incremental loop in Z80</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1930045#post-2672152</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-1930045/incremental-loop-in-z80#post-2672152</link>
				<description></description>
				<pubDate>Mon, 17 Oct 2016 19:20:03 +0000</pubDate>
				<wikidot:authorName>John</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Well, it has been about 35 years&#8230; but from memory&#8230;</p> <p>When any subtract (including compare and decrement) operation takes the register to zero you get your zero flag set and then you can jump or jump relative based on that. But when you are going up to a specified valume then you are going to have to do an explicit compare each time.<br /> If it is an 8 bit value then you need to compare (&quot;cp&quot;) with the value which you are testing if you are going up to; the compare is actually a subrtact but it throws the result away, just leaving the flags. You have to do the compare against the accumulator (&quot;a&quot;). So while &quot;a&quot; is different (non-zero flag set) to the value being tested against &quot;jr&quot; (or &quot;jp&quot;) to the top of the loop. I think there are also sign bits you can check with &quot;jp&quot; which you could achieve a &quot;&lt;&quot; operation with (remeber you are subtracting the value you are testing against from the &quot;a&quot; register, so if the result is negative (&quot;m&quot; flag) then you have not got there yet); this would have to be a signed computation, so take care if your values are over 127.<br /> Αre you dealing with a 16 bit value? If so that is particularly difficult. Because if it is a 16 bit value then there is NO 16 bit compare operation. You'd be doing this against the &quot;hl&quot; pair probably (or else it gets even more complicated) I think I would probably be tempted to push &quot;hl&quot;, subtract the value to test against and then pop &quot;hl&quot; again (the pop shouldn't affect the flags) then &quot;jr&quot; or &quot;jp&quot; based on the flags. The alternative is to compare the &quot;h&quot; and the &quot;l&quot; registers seperately. Discussion of what to do with the flags is as above&#8230; Though you'll have to have a jp or jr after each 8bit test&#8230;..<br /> Hm. why not keep it simple and work out how many bytes, then use &quot;djnz&quot;?<br /> Incidentally, I just noticed the page instructions-set:jr has &quot;jp&quot; in several places it should have &quot;jr&quot;, if someone wants to fix that.<br /> Hope this all makes sense; please don't flame me if I got something wrong&#8230; I was a teenager when I did any of this last.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1930045/incremental-loop-in-z80">incremental loop in Z80</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1930045#post-2662897</guid>
				<title>incremental loop in Z80</title>
				<link>http://z80-heaven.wikidot.com/forum/t-1930045/incremental-loop-in-z80#post-2662897</link>
				<description></description>
				<pubDate>Thu, 29 Sep 2016 20:41:58 +0000</pubDate>
				<wikidot:authorName>bruno</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>DJNZ can be used to test a counter and loop until it reaches 0, but is there an easy way to loop until a counter reaches a certain value? Like in the following C code:<br /> for (int i=0; i&lt;10;i++) {<br /> // do something with i<br /> }</p> <p>Thank you.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1930045/incremental-loop-in-z80">incremental loop in Z80</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1772643#post-2566274</guid>
				<title>Re: Help to understand what the program do</title>
				<link>http://z80-heaven.wikidot.com/forum/t-1772643/help-to-understand-what-the-program-do#post-2566274</link>
				<description></description>
				<pubDate>Thu, 18 Aug 2016 12:16:51 +0000</pubDate>
				<wikidot:authorName>philsimmons</wikidot:authorName>				<wikidot:authorUserId>2815850</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Hi,</p> <p>It's not possible to say what this code fragment does because there is no context and you have given no information about it.<br /> As pure code it's very straight forward but meaningless on it's own.</p> <p>You mentioned it is to do with a game and about finding a place in France. So my best guess is that this is a patch file to add or change that feature in the game.</p> <p>You should try and contact the game creators or a game players forum to find out what to do with it. Hope that helps :-)</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1772643/help-to-understand-what-the-program-do">Help to understand what the program do</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1797364#post-2565681</guid>
				<title>Re: Which of these is better?</title>
				<link>http://z80-heaven.wikidot.com/forum/t-1797364/which-of-these-is-better#post-2565681</link>
				<description></description>
				<pubDate>Wed, 17 Aug 2016 16:06:46 +0000</pubDate>
				<wikidot:authorName>Xeda Elnara</wikidot:authorName>				<wikidot:authorUserId>595803</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>In terms of size or speed, they are identical. I opt for ld de,() as it doesn't destroy HL and it it's more clear what outs going on. With that said, if DE already contains a value that you want in HL, definitely do it the other way.</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1797364/which-of-these-is-better">Which of these is better?</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1797364#post-2565498</guid>
				<title>Which of these is better?</title>
				<link>http://z80-heaven.wikidot.com/forum/t-1797364/which-of-these-is-better#post-2565498</link>
				<description></description>
				<pubDate>Wed, 17 Aug 2016 10:02:22 +0000</pubDate>
				<wikidot:authorName>Ross</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Hello,</p> <p>So what I was wondering was if there were any disadvantages/advantages when it comes to LD DE,(xxxx) and LD HL,(xxxx) / EX HL,DE</p> <p>I've used:</p> <p>LD HL,(xxxx)<br /> EX HL,DE</p> <p>to get my Data into the DE register first, followed by getting the Data HL requires last, which saves using LD DE,(xxxx). At the end of it all it appears the same amount of opcodes are used as well as clock cycles, but was wondering if anyone knows any different?</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4468">Coding Forums / z80 programming</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1797364/which-of-these-is-better">Which of these is better?</a>
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://z80-heaven.wikidot.com/forum/t-1772859#post-2546134</guid>
				<title></title>
				<link>http://z80-heaven.wikidot.com/forum/t-1772859/cpir#post-2546134</link>
				<description></description>
				<pubDate>Sun, 31 Jul 2016 06:35:40 +0000</pubDate>
				<wikidot:authorName>borilla</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>A very minor point but shouldn't the line <tt>A = HL</tt> (near the top of the article) read <tt>A = (HL)</tt>, or perhaps even <tt>(HL) = A</tt>?</p> <p>Likewise with CPDR</p> <br/>Forum category: <a href="http://z80-heaven.wikidot.com/forum/c-4461">Hidden / Per page discussions</a><br/>Forum thread: <a href="http://z80-heaven.wikidot.com/forum/t-1772859/cpir">CPIR</a>
				 	]]>
				</content:encoded>							</item>
				</channel>
</rss>