Hi65 (High Level Commodore c65 emulator) autorstwa Devil Master pozwala nam przynajmniej trochę poczuć się jak właściciel Commodore C65. Nowa wersja zapewne poprawia działanie nakładki "Hi65 Edit and Launch Tool.exe"
Hi65 05/07/19 Version 6.1:
→ NOWSZY [c65] Hi65: a high-level Commodore 65 emulator v7 05/10/19
Hi65 05/07/19 Version 7:
- Changed the types of the program counter, data counter and expression counter from unsigned integer to unsigned long to allow for longer programs.
- Modified the keyboard handling functions so that they yield CPU time every time they are called
- Fixed a bug in the INPUT# function that used to leave the file open after the program terminates for attempting to read past EOF.
- Added a check in the LET function that stops the execution of a program if a string is over 255 characters long.
- Implemented string chaining with the operator +, with an arbitrary number of strings (up to the limit of 255 characters).
- Fixed a bug in the PRINT function that prevented the cursor from going to the next line when a single instruction displays more characters than a line can fit.
- Implemented the LEN instruction, to know the length of a string or chain of strings.
- Implemented the RESTORE instruction, to move the data counter to the desired line or to the beginning of the data section.
- Added checks in both the frontend and the main executable to force the emulator to run in full screen when launched from the frontend, to avoid an "invalid video mode" error.
- Added a check that recognizes attempts to execute an empty program file and skips them.
→ [c65] Hi65: a high-level Commodore 65 emulator v6.0 16/04/15
Hi65 16/04/15 Version 6:
- Included a fix for a COMDLG32.OCX error that happens on certain Windows systems when attempting to run Hi65 Edit and Launch Tool. Note that the fix must be installed manually, following the included instructions.
- Fixed a bug in the text wraparound check that used to crash Hi65 if text reached the bottom of the screen in certain resolutions.
- Implemented the CLR instruction, to clear all variables, loop stacks, open streams and data pointer during the course of a program.
- Implemented the EXP mathematical function (the mathematical expression exp(x) equals to e^x).
- Implemented the HELP instruction (only as an immediate command, to display the line that returned an error during the execution).
- Implemented the CHR$, HEX$, LEFT$, MID$ and RIGHT$ string operations (note: for now, they only work in variable assigns, not as part of a PRINT command).
→ [c65] Hi65 v5.0 18/08/14
Hi65 18/08/14Version 5:
- Incorporated Ingo Berg's MuParser routines into Hi65. They form an open source evaluator of mathematical expressions, that enables Hi65 to evaluate and calculate expressions (e.g. for variable assigns) with an even higher complexity than what a physical Commodore 65 could do. However, they are disabled by default in Hi65 for speed reasons (the native Hi65 expression evaluator is limited to expressions with at most two operands, but is over 275 times faster to evaluate them). The MuParser routines can be toggled on or off with the Hi65cfg utility, from the Hi65 Edit and Launch Tool, or directly from Hi65 with the MUPARSER pseudocommand (see below).
- Implemented a pseudocommand to enable, disable or verify the status of MuParser within Hi65. The syntax is: MUPARSER 0 to disable it, MUPARSER 1 to enable it, and just MUPARSER to display a message telling you whether it's currently on or off. It works either from the command line or from within a BASIC 10 program.
- Added 36 new error messages that do not appear in the physical Commodore 65, that are triggered whenever MuParser fails to evaluate an expression for some reason. This does not affect compatibility and makes debugging programs easier because they are more specific than a generic "SYNTAX ERROR" could ever be.
→ [c65] Hi65 v4.01
- Implemented the SPC and TAB parameters in the PRINT function (respectively, to display the specified amount of spaces and move the cursor to the specified column).
- Fixed a bug in the LOCATE function that used to add the screen border twice instead of once to the cursor position.
- Fixed a bug in the DLOAD function that used to hang the emulator if a syntax error was made when entering the command.
- Fixed a bug in the LET function that used to leave residual characters of a previous string initialization, if the new value was shorter than the older one.
- Implemented the system timer. This counts the 60ths of a second elapsed since the C65 was switched on (or, in this case, since the emulator was launched) and stores the value into the numeric variable TI. Instead, the string variable TI$ contains the system time, like it would in a C65 with a real-time clock.
- Implemented the SCNCLR function.
- Implemented the support of sequential files, with the functions DOPEN, APPEND, DCLOSE, INPUT# and PRINT#. This makes it possible to read and write files from within a BASIC 10 program.
- Added a new feature to the Windows frontend: a menu called Paths, from which you can now tell the frontend where the Hi65 and VICE executables are located. The default is that both are located in the same directory as the frontend, which is true for Hi65, but if you want to use the frontend with VICE without moving files around, you'll have to use the appropriate option of the Paths menu to specify the VICE directory.
- Fixed a bug in the frontend that used to make the "Launch with current program" button work incorrectly.
- Optimized and debugged the INPUT function, to prevent it from corrupting the data when reading a negative non-integer.
→ [c65] Hi65 v3
- Fixed a resizing bug in the frontend. Corrected the icons when another version of Commodore BASIC is selected
→ [c65] Hi65 v3
What's new in version 3:
- Fixed a bug in the function that loads the configuration: if a configuration file was not found, the program used to crash; now instead it creates a default configuration file.
- Rewrote the part of the PRINT function that deals with numbers, to make it display non-integers correctly.
- Modified the functions that work on non-integers so that they use doubles instead of floats, to increase precision.
- Made a major overhaul to the Windows frontend, which now allows you to write and modify BASIC 10 programs directly, instead of relying on an external text editor. The GUI of the frontend is now different too, more complete and professional. To reflect the change, the name of the frontend is now Hi65 Edit and Launch Tool.
→ [c65] Hi65 v2
What's new in version 2:
- Fixed a bug in the expression evaluator, so that goniometric functions also accept variables (only numeric, of course).
- Fixed a bug in the CHAR function, so that it also accepts variables (only strings - a limitation of the original instruction on the C65).
- Fixed a bug in the function that reads the instruction end address, so that it is also read correctly whenever its least significant byte happens to be zero.
- Added the support for more HD resolutions.
- Added the support for windowed mode. Note that running Hi65 from the launch tool will modify the configuration file to force it to full screen anyway, because launching it in windowed mode from the launch tool would cause it to crash. Instead, configuring it to any mode (windowed or full screen) with hi65cfg.exe and then running hi65.exe will run it correctly in whatever mode you select.
- Added a flashing cursor whenever Hi65 is accepting keyboard input.
- Added a wraparound check that returns the text cursor to the top of the screen whenever the bottom of the screen is reached.
- Implemented 1-dimensional arrays for numbers and strings, with a maximum number of 256 elements (from 0 to 255). This also includes the ability to use an element of an array as an index in a FOR cycle, which was not possible in an actual C65.
- Just for fun, added alternative interfaces to the emulator, resembling screens of other Commodore computers. To try them, use the following commands: GO64, GO128, GO16, GO20, GOPET. To return to the classic interface: GO65. Note that the changes are merely aesthetical, with no difference in functionality or scope of the emulator.
What's new in version 1:
- It can load programs at launch time, by specifying the name of the program as a parameter in the command line
- It can load programs at run time, by using the DLOAD command
- It can run a consistent subset of BASIC 10 instructions, although, for now, mathematical expressions need to have at most one operator
- It can perform extremely fast graphical operations, with an accuracy and speed exceeding those on MESS or on a physical Commodore 65 of various orders of magnitude.