<?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/104" />

	<title>SmartBASIC - A Coleco Adam Forum</title>
	<subtitle>Let's Talk Adam</subtitle>
	<link href="http://smartbasic.net/forum/index.php" />
	<updated>2020-07-30T06:58:17-04:00</updated>

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

		<entry>
		<author><name><![CDATA[Milli]]></name></author>
		<updated>2020-07-30T06:58:17-04:00</updated>

		<published>2020-07-30T06:58:17-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=392#p392</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=392#p392"/>
		<title type="html"><![CDATA[Re: Cbasic]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=392#p392"><![CDATA[
<blockquote class="uncited"><div>Hah! It might be an interesting challenge, but I have way too much on my plate currently to even consider it. That said, if there is a way to embed machine language in CBASIC, then it should be relatively trivial to add the extensions since the routines already exist with my TP3 extensions.<br>Can CBASIC use external modules?</div></blockquote>Yes it can use REL files. I have yet to figure it out. It doesn't have a CALL or USR function that lets you jump to an ML address. From what I can determine when you compile a module to an REL file it somehow knows labels and then you can use the CALL function to jump to the code. It is confusing.<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=2">Milli</a> — Thu Jul 30, 2020 6:58 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Wmaalouli]]></name></author>
		<updated>2020-07-29T08:32:13-04:00</updated>

		<published>2020-07-29T08:32:13-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=391#p391</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=391#p391"/>
		<title type="html"><![CDATA[Re: Cbasic]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=391#p391"><![CDATA[
Hah! It might be an interesting challenge, but I have way too much on my plate currently to even consider it. That said, if there is a way to embed machine language in CBASIC, then it should be relatively trivial to add the extensions since the routines already exist with my TP3 extensions.<br>Can CBASIC use external modules?<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=51">Wmaalouli</a> — Wed Jul 29, 2020 8:32 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Milli]]></name></author>
		<updated>2020-07-28T21:21:58-04:00</updated>

		<published>2020-07-28T21:21:58-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=390#p390</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=390#p390"/>
		<title type="html"><![CDATA[Re: Cbasic]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=390#p390"><![CDATA[
<blockquote class="uncited"><div>Nice. I have never really messed with compiled Basic under CP/M since I had Turbo Pascal at may disposal.<br>I would be cool to see if you can get it to access the graphic and sound resources of the Adam. <br>My main beef with the Adam SmartBasic and variants is that it relies heavily on pokes and peeks to do anything interesting, which in my view makes the code difficult to read as well as write.</div></blockquote>You should do it<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=2">Milli</a> — Tue Jul 28, 2020 9:21 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Wmaalouli]]></name></author>
		<updated>2020-07-28T09:46:38-04:00</updated>

		<published>2020-07-28T09:46:38-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=389#p389</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=389#p389"/>
		<title type="html"><![CDATA[Re: Cbasic]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=389#p389"><![CDATA[
Nice. I have never really messed with compiled Basic under CP/M since I had Turbo Pascal at may disposal.<br>I would be cool to see if you can get it to access the graphic and sound resources of the Adam. <br>My main beef with the Adam SmartBasic and variants is that it relies heavily on pokes and peeks to do anything interesting, which in my view makes the code difficult to read as well as write.<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=51">Wmaalouli</a> — Tue Jul 28, 2020 9:46 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[joltguy]]></name></author>
		<updated>2020-07-26T07:17:50-04:00</updated>

		<published>2020-07-26T07:17:50-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=387#p387</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=387#p387"/>
		<title type="html"><![CDATA[Re: Cbasic]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=387#p387"><![CDATA[
Very nice code! Really clean and well structured which is not something that can be said about a lot of BASIC programs.  <img class="smilies" src="http://smartbasic.net/forum/images/smilies/icon_e_geek.gif" width="17" height="17" alt=":geek:" title="Geek"> <br><br>It is pretty cool to have a compiler for BASIC. Thanks for uploading it to the archive... I've downloaded and imported it into CP/M (using wrdisk + ADAM.COM) so I can mess around with it later.<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=198">joltguy</a> — Sun Jul 26, 2020 7:17 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Milli]]></name></author>
		<updated>2020-07-25T08:31:54-04:00</updated>

		<published>2020-07-25T08:31:54-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=386#p386</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=386#p386"/>
		<title type="html"><![CDATA[Re: Cbasic]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=386#p386"><![CDATA[
I'm actually using CB80 which was an upgraded version of CBasic. I have upload a zip file with the compiler, linker and the manuals to the archive at: <a href="http://adamarchive.org/archive/CPM/CB80.zip" class="postlink">http://adamarchive.org/archive/CPM/CB80.zip</a><br><br>I have yet to determine how to add assembly language routines to it but so far I really like the way it works. Here is a sample of a game I am working on that is in CB80<br><div class="codebox"><p>CODE: </p><pre><code>        randomize        dim board$(21)        ESC$ = chr$(27)        CLS$ = chr$(26)        CLEOL$ = chr$(24)        BKS$ = chr$(8)        GOR$ = chr$(12)        HOME$ = chr$(30)        DMODE$ = chr$(2)        BMODE$ = chr$(1)        SPINNER% = 1        width% = 80        x% = 15        y% = 11        ox% = -1        oy% = -1        def FN.CENTER(a$)            w% = int(width% - len(a$)) / 2            while w%                  print GOR$;                  w% = w% - 1            wend            print a$;            FN.CENTER = 0        fend        def FN.SPINNER            print BKS$;mid$("\|/-",SPINNER%,1);            SPINNER% = SPINNER% + 1            if SPINNER% = 5 then SPINNER% = 1            FN.SPINNER = 0        fend        gosub ShowTitle        gosub NewBoard        print CLS$;Loop:        gosub UpdatePlayer        gosub ShowBoard        gosub GetMove        if key$ = "Q" then stop        if key$ = "U" then y% = y% - 1        if key$ = "D" then y% = y% + 1        if key$ = "L" then x% = x% - 1        if key$ = "R" then x% = x% + 1        goto LoopShowBoard:        REM Home screen and display board        print HOME$;DMODE$;        null% = FN.CENTER("+-----------------------------+")        print ""        for r%=1 to 21            null% = FN.CENTER("|"+board$(r%)+"|")            print ""        next r%        null% = FN.CENTER("+-----------------------------+")        print ""        returnNewBoard:        REM Create a new board        print CLS$;"Creating board  ";        for r%=1 to 21            board$(r%) = ""            for c%=1 to 29                board$(r%) = board$(r%) + chr$(48 + int(rnd * 7) + 2)            next c%            null% = FN.SPINNER        next r%        print ""        returnShowTitle:            REM Title screen and instructions        print CLS$:print:print:print        null% = FN.CENTER("Greed")        print:print:print        null% = FN.CENTER("Press any key to begin...")        gosub WaitKey        returnMoveCursor:        REM Move cursor to x%,y%        print ESC$;"=";chr$(32 + y%);chr$(32 + x% + (width% / 4));BMODE$;"@";        returnWaitKey:        REM Wait for a key and return it in key$. Also modifies the RND seed        null% = rnd * 4        if constat% = 0 then goto WaitKey        key$ = chr$(inkey)        returnUpdatePlayer:        REM Update player in the board        if ox% &lt;&gt; -1 then \            board$(oy%) = left$(board$(oy%),ox% - 1)+ " " + mid$(board$(oy%),ox% + 1,40)        ox% = x%        oy% = y%        board$(y%) = left$(board$(y%),x% - 1)+ "@" + mid$(board$(y%),x% + 1,40)        returnGetMove:        REM Determine possible moves and get players input returned in key$        pos$ = ""        if y% &gt; 1 and mid$(board$(y% - 1),x%,1) &lt;&gt; " " then pos$ = pos$ + "U,"        if y% &lt; 21 and mid$(board$(y% + 1),x%,1) &lt;&gt; " " then pos$ = pos$ + "D,"        if x% &gt; 1 and mid$(board$(y%),x% - 1,1) &lt;&gt; " " then pos$ = pos$ + "L,"        if x% &lt; 29 and mid$(board$(y%),x% + 1,1) &lt;&gt; " " then pos$ = pos$ + "R,"        pos$ = pos$ + "Q"        print CLEOL$;pos$;" ? ";GetMoveLoop:        gosub WaitKey        key$ = ucase$(key$)        if match(key$,pos$,1) &lt;&gt; 0 and key$ &lt;&gt; "," then print key$:return        goto GetMoveLoop</code></pre></div><p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=2">Milli</a> — Sat Jul 25, 2020 8:31 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Milli]]></name></author>
		<updated>2020-07-22T17:23:23-04:00</updated>

		<published>2020-07-22T17:23:23-04:00</published>
		<id>http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=383#p383</id>
		<link href="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=383#p383"/>
		<title type="html"><![CDATA[Cbasic]]></title>

		
		<content type="html" xml:base="http://smartbasic.net/forum/viewtopic.php?t=104&amp;p=383#p383"><![CDATA[
I’ve been tinkering with cbasic under cpm. It creates some nice code and it’s relocatable. I believe with a header file I can create a ColecoVision game using cbasic. It won’t be able to use the I/O commands (print, input) or the file commands since these rely on CPM but the rest should be usable and you  can access CV ROM routines via the call command.<p>Statistics: Posted by <a href="http://smartbasic.net/forum/memberlist.php?mode=viewprofile&amp;u=2">Milli</a> — Wed Jul 22, 2020 5:23 pm</p><hr />
]]></content>
	</entry>
	</feed>
