Continuum 93 V 0.3.7
0.3.7 - 10.09.2023
==================
Features
--------
- Replaced the original OS with one more visual and friendly to use;
- Refactored the keyboard sample assembly file;
- Improved the DrawString interrupt. Now if any pixel exceeds the screen X or Y while
drawing a string, that pixel will be skipped. This allows a more clean approach;
- Added ListDirectoriesAndFilesInDirectory interrupt to offer a faster unified method
of getting the full contents of a directory;
- Added Get File Size interrupt function to the FileSystem suite;
- Improved the Video/Draw String interrupt to take a parameter as max width to be drawn
and also returns an additional flag signaling whether that width was exceeded when
drawing;
- Added repetition macro to the #db directive;
- Added the #include <relative path> directive which allows splitting your code in
several files. Labels must STILL be unique across files;
- Enabled log output, single file source output and assembled file for .asm files
compiled through the Machine interrupt. Those are automatically created in the debug
directory, right next to the main .asm source entry point file;
- When the user resizes the window the display ratio will snap to 16:9 while keeping the
new intended size;
- Fixed the icons for both the Emulator and Tools;
- Startup scaled resolution is now 2x for better visibility;
- Improved the logging system;
- Fixed a bug that prevented the debug mode to switch off due to an aggressive
forced optimization;
- Fixed CPU running speed which was behaving poorly;
- Added a logging setting to the config file allowing the user to turn it off or on;
- Implemented a benchmarking class that calculates the relative duration of all
Continuum assembly instructions;
- Implemented a few visual shaders, but will postpone a released feature in this sense
until a unified strategy and API is established;
- Fixed a problem with logging in between async processes.
Continuum Tools
---------------
- Removed the "0x" prefix on all hex representations. This cleared the clutter quite a bit;
- Changed how the registers are shown in Continuum Tools and included a preview for the 24 bit
registers to briefly glance at the memory they can point to;
- Implemented a hex memory viewer that is able to take clickable input from the debugger
(when clicking on address labels) or from instructions, if the instructions do manipulate
a valid address. It also takes input from clicking on any 24 bit register in the register
view. It also takes input from mousewheel to scroll back and forth from current position;
- Changed slightly the design of the Stacks View in the Continuum Tools to be more efficient;
- Fixed a bug in Continuum Tools that was crashing when going over certain illegal instructions;
- Added the ability of Continuum Tools to enter step by step debugging mode as soon as the
client (Continuum Emulator) steps over a DEBUG assembly instruction;
- Added a mechanism for Continuum Tools to release the Emulator from step-by-step mode if
Tools is closed in the middle of the step-by-step session;
- Added the ability of Continuum Tools to resume execution (i.e. disable step by step and continue)
when pressing the F8 key in Continuum Tools;
- Added proper visualization for both Continuum Tools and Continuum Emulator to distinguish
whether you are or not in step-by-step mode;
- Added hovering effects and a lot of UX/UI improvements;
- Fixed a bug that could have sent null commands through the network if the queue would have
been throttled;
- Fixed a small bug that was allowing Continuum Tools to register mouse input even if the
window was not active;
- Fixed a bug that showed wrong addresses for CALLR and JR (since they are relative). As
such, the relative AND resulting addresses are now shown;
- Improved a font slightly;
Bugfixes
--------
- fixed several wrongfully reported errors showing up at compile time in the log;
- fixed a bug of the compiler that had all LD16, LD24 and LD32 instructions ignore labels;
- fixed a bug that did not allow includes to be properly attached when program is compiled from interrupt;
- fixed a bug that considered as error the definition of an empty string in a #db, such as #DB "". Now,
empty strings are ignored;
- fixed the SettingsManager not showing the bootProgram option when new default setting file was created;
Misc
----
- Updated the user manual adding all video layer combinations for memory mapping;
- Updated the interrupts manual with ListDirectoriesAndFilesInDirectory;
- Updated the interrupts manual with the improvements on Video/Draw String;
- Updated the user manual with the #DB repeat operation;
- Improved and updated the assembly reference manual with missing definitions;
- Added code to generate example instructions of all supported instructions. Those will
be included as example text file in the Support folder, on release;
- Discovered a new bug. There are some instructions that theoretically accept two labels
as references, for instance "LD24 (.StringSource), .Title". However, that is not currently
possible due to an ommision in the assembler. This needs to be repaired, however until
then, the workaround is: "LD ABC, .Title", "LD24 (.StringSource), ABC". This will be
fixed in another release;
- Refactored the hardcoded resolution in Constants;
- Refactored most sample programs to return to the OS when the user presses Esc.
0.2.5 - 25.05.2023
==================
Features
--------
- Added client/server protocols to enable a separate application to act as a debugger;
- Created a separate working "debugger" application to make use of those protocols. See
Continuum Tools manual;
- Set up a debug trap to the Machine class that enables step by step debugging, if enabled
from the debugger;
- Removed all remaining key bindings. Now fullscreen and loading examples can be achieved
from the operating system that is provided with Continuum.
Misc
----
- Updated readme, version history, manuals, added new manual, covers, icons;
0.1.5 - 21.03.2023
==================
Features
--------
- Added the '#RUN <address>' compiler directive. It is used to expose an address entry point that
can later be used by an OS to know where to start the compiled application. This is an optional
directive. If it's missing, the first #ORG directive will represent the start address;
- Added a new interrupt function, the Build, accessible at Machine/Build (INT 0x00, 0xC0). It can
be used to compile assembly source files directly from an assembly program. This is an enabler for
a future simplistic OS that will be able to RUN source files. Once this is in effect, Function
keys that load sample files (F1-F8) will be removed;
- Added a rudimentary but functional operating system able to compile and execute *.asm files.
type "run <filepath\name>.asm" to run a specific program, but better read the manual specifically
the 'Operating system' section for further commands.
- Improved interrupts ListFilesInDirectory and ListDirectoriesInDirectory. Initially they would
crash if the provided path could not be found. Now they return 0xFFFFFF instead of the number of
items found if error. Since there's little chance for a directory to hold 16 milion files, that
should be a proper workaround to not use another register or flag.
Misc
----
- Updated readme.txt;
- Removed the Esc key behavior of exiting the emulator with no warning. This should be delegated to
the operating system. In the meantime, the user can close the emulator from the X while in window mode;
- Removed all quick load from the function keys F1-F8. Since there's an OS able to do that, these are
no longer needed and they occupy useful keys;
- Temporarely assigned the fullscreen functionality from F12 to F1. This will be removed in the future.
Documentation
-------------
- Updated the user manual, Keyboard section and Video section, added Compiler and Operating system sections;
- Updated interrupt reference with the newly added interrupt.
Samples
-------
- Added an example application (with sourcecode) able to monitor keypresses.
Files
Get Continuum 93
Continuum 93
A retro-computer emulator designed specifically for game development... In assembly!!
Status | In development |
Category | Other |
Author | Enthusiast Guy |
Tags | assembly, computer, game-development, games, Retro, retro-emulator, virtual-computer |
More posts
- Continuum 93 V 1.0.13543 days ago
- Continuum 93 V 0.7.116Feb 14, 2024
- Continuum 93 V 0.7.114Feb 12, 2024
- Continuum 93 V 0.6.8Jan 26, 2024
- Continuum 93 V 0.1.4Mar 16, 2023
Leave a comment
Log in with itch.io to leave a comment.