| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
This is a complete redesign of the file device. The most notable
addition is the ability to ascend and descend the file tree.
|
|
|
|
|
| |
The stream device pointers now use wrapping semantics in order to
prevent overflow errors.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
An effort to make the code shorter and more readable. This mostly
affects the code for the clock device.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The bedrock_core update is a significant breaking change, so the
version number needs to be incremented.
|
|
|
|
|
|
|
| |
Version 2 of bedrock_core contains updated to the Bedrock instruction
set, reflecting a recent change to the Bedrock specifications. Updating
the dependency allows bytecode assembled by the most recent version of
the assembler to evaluate correctly on this emulator.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This method was exceeding the 80-character line limit, which was
interfering with the centering behaviour of my text editor.
|
|
|
|
|
| |
The method was between the two draw_sprite methods, but it fits better
just after draw_pixel.
|
|
|
|
|
|
|
| |
The vector+size draw operations of the screen device draw textured and
untextured rectangles. The emulator now interprets the coordinates of
a rectangle as signed values, to allow for the correct rendering of
rectangles where the coordinates of the left or top edges are off-screen.
|
|
|
|
|
|
|
| |
The vector+size+sprite draw operation of the screen device has been
changed in the specification from drawing a 1-bit textured triangle to
drawing a 1-bit textured line. This draw operation had not yet been
implemented, so this commit does not affect emulator functionality.
|
|
|
|
|
| |
The Cargo.lock file previously referred to a commit of the geometry
crate which had been overwritten and did not exist in the repository.
|
|
|
|
|
|
| |
The order of the two result values from the widening multiply operation
in Rust was reversed, leading to incorrect multiplication results when
using the math device.
|
|
|