<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="http://smartbasic.net/forum/app.php/feed/topic/12" />

	<title>SmartBASIC - A Coleco Adam Forum</title>
	<subtitle>Let's Talk Adam</subtitle>
	<link href="http://smartbasic.net/forum/index.php" />
	<updated>2019-07-27T10:46:20-04:00</updated>

	<author><name><![CDATA[SmartBASIC - A Coleco Adam Forum]]></name></author>
	<id>http://smartbasic.net/forum/app.php/feed/topic/12</id>

		<entry>
		<author><name><![CDATA[Wmaalouli]]></name></author>
		<updated>2019-07-27T10:46:20-04:00</updated>

		<published>2019-07-27T10:46:20-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=103#p103</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=103#p103"/>
		<title type="html"><![CDATA[Re: Assembly with Turbo Pascal 3]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=103#p103"><![CDATA[
So I managed to get a simple Hello World test program working with the INLINE function:<br><div class="codebox"><p>CODE: </p><pre><code>program test;varHello : String[255];beginHello := 'Hello World!$';inline ($0E/9/{mvi c,9}   $11/Hello/{lxi d,Hello}   $CD/5/0/{call 5}   $C3/0/0);{jmp 0}end.</code></pre></div>This test verifies that TP3 does indeed support 8080 assembly and that bdos calls from TP3 work.<br>That said, it's a royal pain to enter assembly programs that way, so better keep it short!<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=51">Wmaalouli</a> — Sat Jul 27, 2019 10:46 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Wmaalouli]]></name></author>
		<updated>2019-07-24T22:17:06-04:00</updated>

		<published>2019-07-24T22:17:06-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=96#p96</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=96#p96"/>
		<title type="html"><![CDATA[Re: Assembly with Turbo Pascal 3]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=96#p96"><![CDATA[
Correct, but it's likely slower than direct access, which is why I rolled my own with ADAMED. That said, they may he perfectly serviceable depending on the application.<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=51">Wmaalouli</a> — Wed Jul 24, 2019 10:17 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Milli]]></name></author>
		<updated>2019-07-24T21:48:14-04:00</updated>

		<published>2019-07-24T21:48:14-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=94#p94</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=94#p94"/>
		<title type="html"><![CDATA[Re: Assembly with Turbo Pascal 3]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=94#p94"><![CDATA[
Cpm has all the vdp routines on it same as eos - you can call them via BDOS<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=2">Milli</a> — Wed Jul 24, 2019 9:48 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Wmaalouli]]></name></author>
		<updated>2019-07-24T21:04:27-04:00</updated>

		<published>2019-07-24T21:04:27-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=92#p92</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=92#p92"/>
		<title type="html"><![CDATA[Re: Assembly with Turbo Pascal 3]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=92#p92"><![CDATA[
If I am going to use the INLINE feature, I suppose I could just copy the HEX object code generated by ASM and add the / separator between each byte as required by TP3. A pain to say the least, but doable, at least for short routines.<br>I'll run some tests over the next few days and see how it goes.<br>The object of all my inquiries on this is that I want to add low-level routines to TP3 that allow easy access to the VDP for graphics and such. There is a PORT function in TP3 that allows access to the Z80 ports, but I suspect it will be slow, although this will need testing as well.<br>Should keep me busy for a while <img class="smilies" src="http://smartbasic.net/forum/images/smilies/icon_e_smile.gif" width="15" height="17" alt=":)" title="Smile"><p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=51">Wmaalouli</a> — Wed Jul 24, 2019 9:04 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[lotonah]]></name></author>
		<updated>2019-07-24T03:13:34-04:00</updated>

		<published>2019-07-24T03:13:34-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=83#p83</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=83#p83"/>
		<title type="html"><![CDATA[Re: Assembly with Turbo Pascal 3]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=83#p83"><![CDATA[
I would suspect that TP3 for DOS had a lot more going for it than CP/M (TP3 was the last version Borland made for it).  You are right, there is a ton of documentation for MS-DOS, little for CP/M.  I don't have proof, but I think that TP3 for MS-DOS outsold the CP/M edition by a pretty wide margin.<br><br>As far as I know, the INLINE command is the only way to do it (although you can compile code into a library and call it that way).<br><br>I can't do it today, but I'll try to dig out some of my old code to show you how to get underway.<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=56">lotonah</a> — Wed Jul 24, 2019 3:13 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Wmaalouli]]></name></author>
		<updated>2019-07-23T08:12:09-04:00</updated>

		<published>2019-07-23T08:12:09-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=80#p80</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=80#p80"/>
		<title type="html"><![CDATA[Re: Assembly with Turbo Pascal 3]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=80#p80"><![CDATA[
<blockquote class="uncited"><div>I'm not sure if you have it yet, but here's the manual:<br><br><a href="https://archive.org/details/bitsavers_borlandturReferenceManualCPMVersion3Dec88_6578073" class="postlink">https://archive.org/details/bitsavers_b ... 88_6578073</a><br><br>On page 157 they talk about the INLINE command, that's how I used to do it.</div></blockquote>I actually do have the manual. The inline command is not very practical for more than a few assembly lines because everything has to be converted to bytes manually. The 'external' identifier for procedures (mentioned just before the inline command entry for CPM 80 in the manual) is what I am interested in because it allows you to use full assembly routines, a far more practical feature.<br>It requires the address of the routine in memory, but there is no mention as to how to set up the registers or the stack in the routine nor how to return from the routine in assembly. I tried a few tests and could not get it to work. I am also not clear how you would load an assembly routine into memory before launching a Turbo Pascal program... The process for the DOS version of TP3 is simpler and well documented online, but no so for the CPM 80 version unfortunately.<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=51">Wmaalouli</a> — Tue Jul 23, 2019 8:12 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[lotonah]]></name></author>
		<updated>2019-07-23T05:05:33-04:00</updated>

		<published>2019-07-23T05:05:33-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=77#p77</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=77#p77"/>
		<title type="html"><![CDATA[Re: Assembly with Turbo Pascal 3]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=77#p77"><![CDATA[
I'm not sure if you have it yet, but here's the manual:<br><br><a href="https://archive.org/details/bitsavers_borlandturReferenceManualCPMVersion3Dec88_6578073" class="postlink">https://archive.org/details/bitsavers_b ... 88_6578073</a><br><br>On page 157 they talk about the INLINE command, that's how I used to do it.<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=56">lotonah</a> — Tue Jul 23, 2019 5:05 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Wmaalouli]]></name></author>
		<updated>2019-07-22T09:34:15-04:00</updated>

		<published>2019-07-22T09:34:15-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=48#p48</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=48#p48"/>
		<title type="html"><![CDATA[Assembly with Turbo Pascal 3]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=12&amp;p=48#p48"><![CDATA[
I'm trying to figure out how to use external assembly language routines with TP3 under CP/M. The manual is extremely sparse on details when it comes to that, particularly as to how the external assembly routine is to be set up. Does anyone have any experience with this? <br>I did find a reference online, but it's pertaining to MS-DOS only.<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=51">Wmaalouli</a> — Mon Jul 22, 2019 9:34 am</p><hr />
]]></content>
	</entry>
	</feed>
