Continuum 93 V 0.3.7

0.3.7 - 10.09.2023




- 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


- 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;



- 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;



- 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




- 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.



- Updated readme, version history, manuals, added new manual, covers, icons;

0.1.5 - 21.03.2023




- 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.



- 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.



- Updated the user manual, Keyboard section and Video section, added Compiler and Operating system sections;

- Updated interrupt reference with the newly added interrupt.



- Added an example application (with sourcecode) able to monitor keypresses.


2023.09.10 - Continuum 93 V 13 MB
Sep 11, 2023

Get Continuum 93

Download NowName your own price

Leave a comment

Log in with to leave a comment.