<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: LOAD&#8221;$&#8221;,8</title>
	<atom:link href="http://www.pagetable.com/?feed=rss2&#038;p=273" rel="self" type="application/rss+xml" />
	<link>http://www.pagetable.com/?p=273</link>
	<description>Some Assembly Required</description>
	<lastBuildDate>Thu, 09 Sep 2010 09:36:59 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: gpz</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100809</link>
		<dc:creator>gpz</dc:creator>
		<pubDate>Sun, 23 Aug 2009 14:32:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100809</guid>
		<description>that listing is so wrong on multiple levels :) typical example of &quot;lets optimize it to death&quot; ... and here is why:

- no error checking or handling whatsoever
- direct calls into kernal, will not work with one of the various kernal replacements
- even worse, direct calls into basic. thats just yuckidiyuck =P

you can do a proper routine without these flaws in just a few bytes more, no need to use something that stops working on half of the existing c64s :)

http://codebase64.org/doku.php?id=base:reading_the_directory

is much better already, with the only problem of calling bdcd - which can easily be avoided too.</description>
		<content:encoded><![CDATA[<p>that listing is so wrong on multiple levels :) typical example of &#8220;lets optimize it to death&#8221; &#8230; and here is why:</p>
<p>- no error checking or handling whatsoever<br />
- direct calls into kernal, will not work with one of the various kernal replacements<br />
- even worse, direct calls into basic. thats just yuckidiyuck =P</p>
<p>you can do a proper routine without these flaws in just a few bytes more, no need to use something that stops working on half of the existing c64s :)</p>
<p><a href="http://codebase64.org/doku.php?id=base:reading_the_directory" rel="nofollow">http://codebase64.org/doku.php?id=base:reading_the_directory</a></p>
<p>is much better already, with the only problem of calling bdcd &#8211; which can easily be avoided too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rhialto</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100794</link>
		<dc:creator>Rhialto</dc:creator>
		<pubDate>Wed, 19 Aug 2009 13:26:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100794</guid>
		<description>Strik is nearly correct about $0401. PETs could fix the link pointer chain (and I think they even did) but they would not load a program at a different address than where it was saved from. So the directory listing had to have $0401 as start address. (The first PET rom even saved programs from $0400 onward, which was not a problem for newer PETs but would be for VIC-20, 64, etc due to the extra initial byte).
Also: the &quot;0&quot; in the first line, before the disk name, is the drive number. Always 0 on single drives, but could of course be 1 on double drives.</description>
		<content:encoded><![CDATA[<p>Strik is nearly correct about $0401. PETs could fix the link pointer chain (and I think they even did) but they would not load a program at a different address than where it was saved from. So the directory listing had to have $0401 as start address. (The first PET rom even saved programs from $0400 onward, which was not a problem for newer PETs but would be for VIC-20, 64, etc due to the extra initial byte).<br />
Also: the &#8220;0&#8243; in the first line, before the disk name, is the drive number. Always 0 on single drives, but could of course be 1 on double drives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bernz</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100731</link>
		<dc:creator>bernz</dc:creator>
		<pubDate>Fri, 07 Aug 2009 17:52:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100731</guid>
		<description>&gt; &quot;Nice, but where were you...&quot;

Not sure if this is directed at me, but perhaps my comment inadvertently gives the impression I was just using the C64 recently. I meant when I was between 8 and 10 years old (my earliest computing experience). Looking back, I can&#039;t believe I understood that stuff as well as I did (eventually). I think I was a lot smarter back then. :-)</description>
		<content:encoded><![CDATA[<p>&gt; &#8220;Nice, but where were you&#8230;&#8221;</p>
<p>Not sure if this is directed at me, but perhaps my comment inadvertently gives the impression I was just using the C64 recently. I meant when I was between 8 and 10 years old (my earliest computing experience). Looking back, I can&#8217;t believe I understood that stuff as well as I did (eventually). I think I was a lot smarter back then. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: strik</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100702</link>
		<dc:creator>strik</dc:creator>
		<pubDate>Wed, 29 Jul 2009 17:48:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100702</guid>
		<description>0821  21 08    - next line starts at 0x0821

Of course, this is wrong. The next line will not start at $0821. More probably, it would be:

0821  41 08    - next line starts at 0x0841

It seems to be a copy-n-paste error, though.


Furthermore, where did you get the line length from? With my test images, I always get $081F as first link pointer, not $0821. And counting it by hand, it makes sense. Did you count the two extra &quot;&#039;&quot; characters you added for marking the string?


&quot;The VIC-20 had BASIC RAM at 0Ă0401&quot;

Well, not really. An unexpanded VIC-20 has BASIC RAM at $1001, a VIC-20 with 3 KB RAM extension had it at $0401. If we had more than 3 KB RAM extension, BASIC start was at $1201.
(cf. http://www.zimmers.net/cbmpics/cbm/vic/memorymap.txt or the disassembly of RAMTAS in the VIC-20 at $FD8D-FDDC).

The hard-coded $0401 is there because of the fact that PETs were not able to relocate BASIC. That is, they could not fix the link pointer themselves. And in the PET, BASIC began at $0401.

The 1541 is a 1540 with timing fixes, right. And a 1540 is just a 2031LP with the (parallel) IEEE 488 bus removed and replaced by the (serial) Commodore bus. The ROMs are almost the same.

The 2031 and the 2031LP is a descendant of the 4040, and the 2xxx and 4xxx drives were all designed for the PETs. And the PETs had BASIC start at $0401, and they could not relocate.

Thus, the floppy generates valid linking, for the case that BASIC starts at $0401.

 Spiro</description>
		<content:encoded><![CDATA[<p>0821  21 08    &#8211; next line starts at 0&#215;0821</p>
<p>Of course, this is wrong. The next line will not start at $0821. More probably, it would be:</p>
<p>0821  41 08    &#8211; next line starts at 0&#215;0841</p>
<p>It seems to be a copy-n-paste error, though.</p>
<p>Furthermore, where did you get the line length from? With my test images, I always get $081F as first link pointer, not $0821. And counting it by hand, it makes sense. Did you count the two extra &#8220;&#8216;&#8221; characters you added for marking the string?</p>
<p>&#8220;The VIC-20 had BASIC RAM at 0Ă0401&#8243;</p>
<p>Well, not really. An unexpanded VIC-20 has BASIC RAM at $1001, a VIC-20 with 3 KB RAM extension had it at $0401. If we had more than 3 KB RAM extension, BASIC start was at $1201.<br />
(cf. <a href="http://www.zimmers.net/cbmpics/cbm/vic/memorymap.txt" rel="nofollow">http://www.zimmers.net/cbmpics/cbm/vic/memorymap.txt</a> or the disassembly of RAMTAS in the VIC-20 at $FD8D-FDDC).</p>
<p>The hard-coded $0401 is there because of the fact that PETs were not able to relocate BASIC. That is, they could not fix the link pointer themselves. And in the PET, BASIC began at $0401.</p>
<p>The 1541 is a 1540 with timing fixes, right. And a 1540 is just a 2031LP with the (parallel) IEEE 488 bus removed and replaced by the (serial) Commodore bus. The ROMs are almost the same.</p>
<p>The 2031 and the 2031LP is a descendant of the 4040, and the 2xxx and 4xxx drives were all designed for the PETs. And the PETs had BASIC start at $0401, and they could not relocate.</p>
<p>Thus, the floppy generates valid linking, for the case that BASIC starts at $0401.</p>
<p> Spiro</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dude</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100698</link>
		<dc:creator>dude</dc:creator>
		<pubDate>Tue, 28 Jul 2009 21:40:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100698</guid>
		<description>I mean 28 years ago.  geez, I&#039;m old.</description>
		<content:encoded><![CDATA[<p>I mean 28 years ago.  geez, I&#8217;m old.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dude</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100697</link>
		<dc:creator>dude</dc:creator>
		<pubDate>Tue, 28 Jul 2009 21:39:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100697</guid>
		<description>Nice, but where were you 18 years ago?</description>
		<content:encoded><![CDATA[<p>Nice, but where were you 18 years ago?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bernz</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100696</link>
		<dc:creator>bernz</dc:creator>
		<pubDate>Tue, 28 Jul 2009 20:29:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100696</guid>
		<description>Hah! I remember my first faltering steps at computing on a C64...

I had finished entering my first major program, and wanted to save it, so I inserted a disk to &quot;just take a quick look&quot; at the directory to see where I might save the program. Satisfied that the disk had ample free space, I decided to confirm that the program listing was ready for storage.

I typed &#039;L&#039;, and as I held shift (yes, I&#039;d already learned a few cool tricks), it dawned on me that I had just used the same command to look at a directory listing. Although I wasn&#039;t able to understand the finer points (as this article illustrates) at the time, I was able to make the connection that only one listing (of whatever type) could be held in memory at a time.

I never lost another program listing that way. :-)</description>
		<content:encoded><![CDATA[<p>Hah! I remember my first faltering steps at computing on a C64&#8230;</p>
<p>I had finished entering my first major program, and wanted to save it, so I inserted a disk to &#8220;just take a quick look&#8221; at the directory to see where I might save the program. Satisfied that the disk had ample free space, I decided to confirm that the program listing was ready for storage.</p>
<p>I typed &#8216;L&#8217;, and as I held shift (yes, I&#8217;d already learned a few cool tricks), it dawned on me that I had just used the same command to look at a directory listing. Although I wasn&#8217;t able to understand the finer points (as this article illustrates) at the time, I was able to make the connection that only one listing (of whatever type) could be held in memory at a time.</p>
<p>I never lost another program listing that way. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100695</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Tue, 28 Jul 2009 20:15:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100695</guid>
		<description>&quot;All this functionality, as well as the file system implementation, was part of the firmware of the disk drives.&quot;

This maybe isn&#039;t quite as crazy as you make it sound, since the disk drive had the same amount of processing power (~1MHz 6502-class CPU) as the computer itself.  :-)</description>
		<content:encoded><![CDATA[<p>&#8220;All this functionality, as well as the file system implementation, was part of the firmware of the disk drives.&#8221;</p>
<p>This maybe isn&#8217;t quite as crazy as you make it sound, since the disk drive had the same amount of processing power (~1MHz 6502-class CPU) as the computer itself.  :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hespos.com &#187; Blog Archive &#187; Remember the Commodore 64?</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100694</link>
		<dc:creator>Hespos.com &#187; Blog Archive &#187; Remember the Commodore 64?</dc:creator>
		<pubDate>Tue, 28 Jul 2009 19:29:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100694</guid>
		<description>[...] and end up accidentally causing a cavalcade of junk characters to end up all over the screen.Â  This article does an awesome job of explaining why that happened, as well as some other interesting things about how the C-64 [...]</description>
		<content:encoded><![CDATA[<p>[...] and end up accidentally causing a cavalcade of junk characters to end up all over the screen.Â  This article does an awesome job of explaining why that happened, as well as some other interesting things about how the C-64 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: popurls.com // popular today</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100693</link>
		<dc:creator>popurls.com // popular today</dc:creator>
		<pubDate>Tue, 28 Jul 2009 17:00:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100693</guid>
		<description>[...] have to work on a Rails project for my job, and it makes me want to kill myself.&#160;LOAD$,8&#160;Dutch answer to O&#039;Reilly&#039;s &quot;Amsterdam is a cesspool&quot; claim.&#160;I hope health care [...]</description>
		<content:encoded><![CDATA[<p>[...] have to work on a Rails project for my job, and it makes me want to kill myself.&nbsp;LOAD$,8&nbsp;Dutch answer to O&#8217;Reilly&#8217;s &quot;Amsterdam is a cesspool&quot; claim.&nbsp;I hope health care [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Niclas</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100691</link>
		<dc:creator>Niclas</dc:creator>
		<pubDate>Tue, 28 Jul 2009 14:52:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100691</guid>
		<description>An excellent and very interesting article.

Brought back a lot of old memories from the days, long before I had any form of internet connection, when I was myself investigating these very topics on my old C64, using the trusty old TFC-III monitor (wich conveniently enough had build in simple commands to comunicate with the 1541 and also display the directory without having BASIC-RAM destroyed).

Back then information was not easy to come by, but by exploring and testing a lot and eagerly reading the few articles on assembler and machine-coding that every now and the appeared in the old swedish magazine &quot;DatorMagazin&quot;, plus some disks with Public Domain software compiled by and bought from the same magazine, I actually managed to make myself a nice text-scroller that used sprites to display text in the bottom border while displaying a static background and playing music. It also had some raster-bars in the side borders.

I should really get the old 64 up from the basement some day and continue my journey inside it. Maybe it&#039;s not to late to create that masterpiece demo I always wanted to. :-)

I wonder if my old disks will still read ok ...</description>
		<content:encoded><![CDATA[<p>An excellent and very interesting article.</p>
<p>Brought back a lot of old memories from the days, long before I had any form of internet connection, when I was myself investigating these very topics on my old C64, using the trusty old TFC-III monitor (wich conveniently enough had build in simple commands to comunicate with the 1541 and also display the directory without having BASIC-RAM destroyed).</p>
<p>Back then information was not easy to come by, but by exploring and testing a lot and eagerly reading the few articles on assembler and machine-coding that every now and the appeared in the old swedish magazine &#8220;DatorMagazin&#8221;, plus some disks with Public Domain software compiled by and bought from the same magazine, I actually managed to make myself a nice text-scroller that used sprites to display text in the bottom border while displaying a static background and playing music. It also had some raster-bars in the side borders.</p>
<p>I should really get the old 64 up from the basement some day and continue my journey inside it. Maybe it&#8217;s not to late to create that masterpiece demo I always wanted to. :-)</p>
<p>I wonder if my old disks will still read ok &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: retro linkfest 2009-07-28 &#171; Jamtronix</title>
		<link>http://www.pagetable.com/?p=273&#038;cpage=1#comment-100689</link>
		<dc:creator>retro linkfest 2009-07-28 &#171; Jamtronix</dc:creator>
		<pubDate>Tue, 28 Jul 2009 11:08:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.pagetable.com/?p=273#comment-100689</guid>
		<description>[...] a vaguely related not, the latest post on almost-always-intriguing pagetable.comÂ is a discourse on LOADâ$â,8Â - the somewhat unusual method that C64s used to catalogue the contents of [...]</description>
		<content:encoded><![CDATA[<p>[...] a vaguely related not, the latest post on almost-always-intriguing pagetable.comÂ is a discourse on LOADâ$â,8Â - the somewhat unusual method that C64s used to catalogue the contents of [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
