<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bedrock-pc/src, branch v0.3.1</title>
<subtitle>Bedrock emulator and assembler for Windows and Linux
</subtitle>
<id>https://code.benbridle.com/bedrock-pc/atom?h=v0.3.1</id>
<link rel='self' href='https://code.benbridle.com/bedrock-pc/atom?h=v0.3.1'/>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/'/>
<updated>2024-04-16T03:29:12Z</updated>
<entry>
<title>Fix memory, input, screen, and file devices</title>
<updated>2024-04-16T03:29:12Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-04-16T03:27:45Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/commit/?id=a07d1585deb41bc40777045ac36b1643d2574980'/>
<id>urn:sha1:a07d1585deb41bc40777045ac36b1643d2574980</id>
<content type='text'>
The memory device was never being allocated any memory, the input device 
wasn't scrolling correctly, the screen device was rendering sprites 
incorrectly, and the device ID of the file device had not been changed 
over from 0xA to 0x9.
</content>
</entry>
<entry>
<title>Update devices to match new specifications</title>
<updated>2024-04-15T22:51:26Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-04-15T22:51:13Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/commit/?id=6b3796c9a0d3a2f1422bcbde4790c43417659722'/>
<id>urn:sha1:6b3796c9a0d3a2f1422bcbde4790c43417659722</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement new file device interface</title>
<updated>2024-01-30T18:39:07Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-01-30T18:38:50Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/commit/?id=28101de56231252ca0cfa6a9f107b75112c9acad'/>
<id>urn:sha1:28101de56231252ca0cfa6a9f107b75112c9acad</id>
<content type='text'>
This is a complete redesign of the file device. The most notable
addition is the ability to ascend and descend the file tree.
</content>
</entry>
<entry>
<title>Prevent overflow errors on stream device pointers</title>
<updated>2024-01-30T18:37:54Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-01-29T05:33:58Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/commit/?id=30d2f099c9edf4f59fbbdd6686988ae7b0622ba2'/>
<id>urn:sha1:30d2f099c9edf4f59fbbdd6686988ae7b0622ba2</id>
<content type='text'>
The stream device pointers now use wrapping semantics in order to
prevent overflow errors.
</content>
</entry>
<entry>
<title>Change stream device to use buffered streams</title>
<updated>2024-01-30T18:37:54Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-01-29T05:31:45Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/commit/?id=e4cdcf4f5082f90abd9e259ccc215ecbb1973ab5'/>
<id>urn:sha1:e4cdcf4f5082f90abd9e259ccc215ecbb1973ab5</id>
<content type='text'>
Wrapping stdin and stdout with BufReader and BufWriter makes reads and
writes more efficient by bundling multiple characters into a single
read or write operation. In practice, this hasn't made a difference to
running the numbers demo, but that demo spends the majority of processor
time converting values to decimal strings.
</content>
</entry>
<entry>
<title>Refactor code without changing functionality</title>
<updated>2024-01-30T18:37:54Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-01-28T01:31:12Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/commit/?id=521e525763723cbc5d65b37ff47f34af48f50a2f'/>
<id>urn:sha1:521e525763723cbc5d65b37ff47f34af48f50a2f</id>
<content type='text'>
An effort to make the code shorter and more readable. This mostly 
affects the code for the clock device.
</content>
</entry>
<entry>
<title>Change clock cumulative timer to use 256th ticks instead of seconds</title>
<updated>2024-01-30T18:37:54Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-01-28T01:20:59Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/commit/?id=a4d06fd54ab22bbdd6b0dc9d5af199fc8be13591'/>
<id>urn:sha1:a4d06fd54ab22bbdd6b0dc9d5af199fc8be13591</id>
<content type='text'>
The "Cumulative seconds" port of the CLOCK device has been changed
to be called "Cumulative timer", with the units changing from seconds
to 1/256 second ticks.
</content>
</entry>
<entry>
<title>Make orthogonal line drawing operations work with signed coordinates</title>
<updated>2024-01-05T23:22:17Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-01-05T23:22:17Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/commit/?id=03023ea0aa987ec7bbcf2ca5019a1db2dedc3493'/>
<id>urn:sha1:03023ea0aa987ec7bbcf2ca5019a1db2dedc3493</id>
<content type='text'>
The vector line drawing operation of the screen device uses optimised
methods when drawing horizontal and vertical lines. The emulator now
interprets the coordinates of these lines as signed values, to allow for
the correct rendering of orthogonal lines where the coordinates of the
left or top edges are off-screen. Diagonal lines are yet to be tackled.

The bounding-box calculations shared by the rectangle and orthogonal
line drawing methods have also been split off into their own method,
significantly reducing the code duplication between all four of the
methods which require this functionality.

This commit also makes aesthetic changes to the code in the
draw_diagonal_line method to improve readability and brevity, as a part
of the changes made to the draw_line method when the points parameter
was removed from each of the three lower line-drawing methods.
</content>
</entry>
<entry>
<title>Reduce width of ScreenDevice::draw_sprite method</title>
<updated>2024-01-05T23:11:03Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-01-05T23:11:03Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/commit/?id=4735200272ac8a8165bd43784a41ca5b3725bc16'/>
<id>urn:sha1:4735200272ac8a8165bd43784a41ca5b3725bc16</id>
<content type='text'>
This method was exceeding the 80-character line limit, which was
interfering with the centering behaviour of my text editor.
</content>
</entry>
<entry>
<title>Move ScreenDevice::fill_layer method</title>
<updated>2024-01-05T22:31:48Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-01-05T22:31:48Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/bedrock-pc/commit/?id=f82cda3c621c4efcaab040a9c11029fa11e53b05'/>
<id>urn:sha1:f82cda3c621c4efcaab040a9c11029fa11e53b05</id>
<content type='text'>
The method was between the two draw_sprite methods, but it fits better
just after draw_pixel.
</content>
</entry>
</feed>
