Skip to content

Version 0.9.8 from December 23, 2021

Compare
Choose a tag to compare
@rexut rexut released this 05 Nov 21:47
· 69 commits to cpm4l since this release
jkcemu-src-0.9.8
6c80794
  • Command line option -l or --list added; when specifying this option, a list of profiles appears before the emulator is started, from which one can be selected. It is also possible not to select a profile and thus start the emulator with default settings.
  • DRAM areas are now always initialized with FFh 00h FFh 00h etc.
  • Info display via JKCEMU: The Java tab now also displays the state of the library that contains the native program code (DLL, only relevant under Windows relevant).
  • Added support for dragging and dropping URLs: You can now drop a file from a web browser (if it supports it) to the emulator window and release it there. In this way you can now load files from the internet directly into the emulator, without having to save them locally.
  • A5105:
    • Added emulation of GIDE at I/O base address D0h.
    • Added emulation of the K1520 sound card.
    • Disk image for RBASIC with pictures added.
  • AC1:
    • Added optional sound output via CTC channel 0.
    • Added emulation of the K1520 sound card.
    • In SCCH and 2010 mode, the TAB key now generates the code 0Fh.
  • HC900, KC85/2..5:
    • Emulation of the D008 floppy disk extension added, but without the optional DMA circuit.
    • Emulation of the following modules added:
      • M041 (2x16K EEPROM)
      • M066 (Sound)
    • Emulation of multiple M052 modules now fully supported:
      • Each M052 has its own emulated USB memory.
      • Starting with the second M052, the module version will be emulated without a network.
      • For both M052 module versions, different alternative ROM content images can be loaded.
    • Second display unit now shows the device tower (D001, D002 and D004/D008 without floppy disk drives).
  • KC85/5:
    • CAOS-ROM updated to CAOS 4.8 with thin character set.
    • USER-ROM updated.
  • KC85/1, KC87, Z9001:
    • Added emulation of the K1520 sound card.
  • KC compact:
    • Added emulation of a 512K RAM expansion.
    • Emulation of up to 15 ROM expansion modules added.
  • LLC1:
    • Option to attach an external ROM file added.
    • Option to attach an alternative character set for the alphanumeric screen added.
  • LLC2:
    • Added emulation of the K1520 sound card.
    • TAB key now generates the code 0Fh.
  • NANOS:
    • Added emulation of the K1520 sound card.
    • For the color graphics card with 64x32 and 80x24 characters option for same window size in both modes added.
  • PC/M:
    • Added emulation of the K1520 sound card.
    • Added emulation of a USB port (Vinculum VDIP module).
  • Z1013:
    • Added emulation of the K1520 sound card.
    • Emulation of the 32K ROM according to Z1013-128 added.
    • Added emulation of Heiko Poppe's color graphics card.
    • Emulation of the ZX Spectrum compatible full graphics extension according to practic 2/1988 added.
    • The graphics card of the CC Jena is now emulated as a second display unit, which means that its image output is now visible in a parallel way to the original Z1013 image output.
  • Assembler:
    • Option: translate oversized relative jumps as absolute jumps added.
    • Added the ability to generate an assembler listing; in this context there are new pseudo instructions LISTON, LISTOFF and NEWPAGE incl. synonym PAGE.
    • Assembler directives IF1 and IF2 removed.
    • Assembler directive CPU changed.
    • Assembler directives added: ALIGN, ENTRY (synonym for ENT), ERROR, EVEN, NAME, TITLE (synonym for NAME).
  • BASIC-Compiler:
    • Added option to select the type of program: BASIC programs can now also be compiled as subroutines, to be able to call them with a CALL command.
    • New DECIMAL data type (6-byte BCD with up to 11 decimal places, of which up to 7 digits after the decimal point) has been added; variable declaration is done with the DIM instruction.
    • New data type LONG (32-bit integer, value range from -2147483647 to 2147483647) added; variable declaration is done with the DIM statement.
    • New instructions: SELECT CASE and SWAP.
    • DATA statement extended: Numeric values can now also be specified as literals, i.e., in addition to whole numbers hexadecimal numbers and character constants.
    • DIM statement extended: DIM is now generally used for declaring global variables, i.e., besides field variables, also simple variables. Global DECIMAL and LONG variables must be declared with DIM.
    • Constant PEN_RUBBER renamed to PEN_ERASER.
    • New functions: CDEC, CINT, CLNG, DATETIME$, DECVAL, FRAC, INTVAL, LNGVAL, HIWORD, LOWORD, OCT$, POS, ROUND, SCALE, STRPTR, TRUNC and VARPTR.
    • Functions BIN$ and HEX$ without a second argument now always generate a fixed length string for compatibility with other BASIC dialects.
    • New system variables: CRSLIN and CRSPOS.
    • New target systems:
      • KC85_CAOS48: KC85/5 with CAOS 4.8 or higher
      • Z1013_KRT: Z1013 with KRT graphic support
      • Z1013_ZX: Z1013 with support for ZX-compatible graphics
    • Target system Z9001_KRT: With CLS now always the color memory is deleted, even if no instructions for setting the color are contained in the BASIC program.
    • Target system KC85: The compiled program now checks the CAOS version. If this is equal or greater than 4.8, the USB driver contained in the M052 module is switched to user mode with the OPEN statement and back to CAOS mode with CLOSE. Thus a possibly connected USB keyboard is not deactivated.
    • FILE driver renamed to DISK.
    • VDIP driver extended: When opening a file for writing, the timestamp is now set, provided the target system supports an RTC and it is readable (see DATETIME$ function).
  • Audio/Tape:
    • When saving a profile, the states of the audio functions are now saved and when JKCEMU is restarted, the audio functions are automatically reactivated accordingly.
    • The list of selectable audio devices now only contains the devices that are possible for the respective direction (input or output).
    • When loading an audio or tape file, the output device can now be selected for optional monitoring.
  • Audio player improved:
    • Output device is now selectable, also switchable during playback.
    • Playback position can now be changed if the audio source allows it.
  • Improved support for floppy drives connected to the emulator computer:
    • The floppy disk format is now recognized and thus no longer needs to be selected manually.
    • Provided that the floppy disk drive is mounted in the file system of the emulator computer, it is automatically unmounted when it is opened in JKCEMU for write access.
    • Under Windows, the floppy drive is now locked so that no other processes can access it in parallel with JKCEMU.
  • Improved reading and writing of image files on devices connected to the emulator computer:
    • Under Linux, the connected removable media are now recognized and displayed.
    • Under Windows, depending on the user permissions and the type of medium, partitioned removable media can now be read and written completely, that means including the boot sector. However, success depends on the specific circumstances.
  • For simple image files for floppy disks and hard disks, the file extension *.dd is now also supported.
  • Image viewer/image editing:
    • added more functions for image editing:
      • sharpening
      • blurring
      • recognize and display contours
      • change the entries in the color palette directly
    • Saving a KC85 picture as an application: It is now ensured that the byte sequence 7Fh 7Fh no longer occurs in the compressed image data and thus no incorrect menu entry can arise.
    • Saving a KC85/2..5 picture as an application: The application now clears the complete screen after displaying the picture and not only the currently set window.
    • Added support for additional information (e.g. comments in GIF, IFF/ILBM and PNG files, and EXIF data in JPEG files).
  • File selection dialog: Inaccessible network drives or network paths are detected and locked so that the dialog does not hang when clicking on them.
  • File Browser:
    • Option to open the files with the associated program (the program registered in the operating system) added.
    • Changes in the file system are now automatically detected and the screen is updated accordingly.
    • Packing and unpacking of TAR and ZIP files accelerated.
    • Added support for dropping URLs: You can now drag a file from a web browser (if it supports it) to the JKCEMU file browser and drop it there. In that case JKCEMU will download the linked file and save it to the directory in question.
    • Unreachable network drives or network paths are detected and locked so that the file browser doesn't hang when clicking on them.
    • Option to switch between virtual and physical file system structure has been removed once again. Now the physical file system structure is always displayed, but with any existing deviating directory names of the virtual users view.
  • File Converter:
    • Option for one-to-one conversion of a KC-TAP file to a sound file added; now also Multi-KC-TAP files and KC-TAP files with an irregular structure can be converted to a sound file.
    • A warning now appears if the format of the destination file expects a name in the header data, but the name field is empty.
  • File Search:
    • Directory names can now also be searched if no file size and no contained text are entered.
    • Last search texts are now remembered until the file search is closed and can be selected again.
    • Option to open the found files with the associated external program (i.e. the program registered in the operating system) added.
    • Status bar added.
  • Debugger:
    • Option to save and load the break/log points and variables added.
    • The display sizes of the lists for the break/log points can now be changed by moving the bars between them.
    • Break/log points to a program address:
      • Optionally, a name can now also be assigned interactively. This name is used to update the break/log point after an assembler run if the "Use markers" in debugger option is enabled.
      • Optionally, a flag condition can now be specified.
    • Context menu of a variable: option to create a break/log point on the variable's memory area added.
  • Disk Image File Inspector:
    • When loading an image file, and its contents have been automatically repaired by JKCEMU, you can now choose whether to display the repaired or the original file contents.
    • Option to export the contents of any track added.
  • GIDE:
    • For write accesses after the end of the disk image file, the intermediate area is now filled with E5h bytes instead of zero bytes.
  • Hex and Memory Editor:
    • Direct input mode added; this now allows the bytes to be changed directly in the display. This mode is switched off by default and can be activated via a menu entry.
  • Text Editor:
    • Character selection dialog added.
    • Added support for new page break characters (Form Feed, code 0Ch):
      • These characters can be inserted and removed in the editor.
      • When printing, and only then, these characters cause a new page to be inserted.
  • Loading IFF/ILBM files:
    • Added support for Hold-And-Modify mode.
    • Added support for Extra-Half-Bright mode.
  • Loading a profile: It is now checked whether it was saved with the same JKCEMU version. If not, a note appears that the profile may not be applied completely.
  • Saving a memory image file: If the selected file format supports a name in the header data but none is specified, a warning now appears.
  • Unpacking floppy disks and disk image files: automatic format detection (especially block size detection) improved.
  • Emulation of a printer: added possibility to set a character set.
  • Recording screen videos:
    • Added option to delete the recorded video.
    • Option added to generate the output file always with a color palette of 256 colors. This is useful when switching to another emulated system or switching to a graphics mode with a different color palette in the emulated system during recording.
  • Settings: Added button to open the configuration directory.
  • Main Window: Toolbar and status bar can now be hidden.
  • Help Window:
    • Help pages can now be copied to the clipboard as a whole with and without hyperlinks.
    • Ability to browse the help (all help pages) added, accessible also from the emulator window.
    • Added context menu.
  • HEX File Comparator: context menu added.
  • Reassembler: When creating an assembler source code, an arbitrary prefix can now be specified for the labels.
  • Exporting and importing profiles added.
  • VDIP-Emulation: Added optional support for long file names.
  • Directory Selection Dialog:
    • Unreachable network drives (Windows only) are hidden so that the dialog does not hang when clicking on them.
    • Ability to switch between virtual and physical file system structure removed. Now the physical file system structure is always displayed, but with possibly existing deviating directory names of the virtual user view.
  • Added support for COM files (CP/M program files): When loading COM files, the start address 0100h is automatically assumed. With HC900 and KC85/2..5 the loading of COM files is done into the D004 or D008 (if their emulation is activated) and with KC compact into the RAM of the Floppy Disk Station, because usually these memory areas are used as working memory with a CP/M compatible operating system.
  • All included floppy disk images for CP/M compatible operating systems now contain the empty file GO.COM (with MicroDOS additionally G.COM), which is used to start CP/M programs already in the working memory. Thus e.g. after loading a COM file this can be started with GO.
  • Emulated Joysticks can now also be operated with the keyboard (Alt or Command key together with Cursor, Enter, F1 or F2 key).
  • Options added to improve display on high-resolution screens, on which JKCEMU is sometimes displayed quite small:
    • Added window scaling settings (requires at least Java 9).
    • Option to change the font, including the font size, added.
    • Icons are now available in two sizes and you can switch between them in the settings.
  • Improved support for macOS:
    • On a Mac, the menu bar can now optionally be fixed to the top of the screen. For this purpose, there is the option Fix menu bar at top of screen in the Appearance tab of the JKCEMU settings. This option is only visible on a Mac.
    • Shortcuts for menu functions now use the Command key.
    • When using a Java Runtime Environment version 9 or higher, the Mac menu is customized and the DOK icon is set.
  • Java source code:
    • Unnecessary imports removed.
    • Removing LZWEncoder; animated GIF file generation is now done with ImageIO..
  • Bug Fixes:
    • When loading a KCB file, the system cells of the KC-BASIC interpreter were not adjusted.
    • Loading a non-KCB file as KCB file could cause a program crash.
    • Audio files were read only up to 16 MByte.
    • Emulation of the input side tape interface: Wrong values were read in for signed audio data.
    • Audio/tape generally: audio data were not fully 100% time synchronous to the CPU emulation generated or read. In particular with high sample rates the generated tones had not exactly tuned in their frequency.
    • BASIC compiler:
      • When exiting a FOR loop with EXIT, the stack was not cleaned up. This affected FOR loops whose end value or step size was specified with a variable.
      • Assignment of a string variable to an element of a field variable with variable index was not possible.
      • In user-defined functions and procedures, the dynamic memory eventually allocated for passing parameters with the STRING data type was not released.
    • Image Viewer:
      • An incorrect start address was written to the file when saving a KC85/2..5 image as an application.
      • When saving a KC85/4..5 color image as an application, the application was faulty in that it did not switch off the blinking.
      • When saving an image previously rotated with the arrow keys in the toolbar, an incorrect image file may have been created.
    • File Browser:
      • Copying a single file as filename or URL was not possible.
      • Paste of copied files failed.
    • File Converter: When converting a KC-BASIC file (*.sss) to a KC-TAP file, the first block got the number FFh instead of 1 when the file was only one block in total.
    • File Search: Copying a single file as filename or URL was not possible.
    • Debugger: Re-import break/log points menu item had no effect.
    • HEX-Editor: Search did not work.
    • Memory Editor: Search did not work.
    • Settings: Changes to the brightness of the screen output were not applied to all emulated systems.
    • Unpacking TAR files: The individual unpacked files were each one byte too small.
    • Emulation of the sound chip AY-3-8910 was not correct: In certain cases, when writing to the envelope registers, the running envelope was aborted, resulting in scratching noises.
    • Custom computer:
      • Control codes could not be entered from the keyboard.
      • GIDE did not work.
      • In case of multiple ROM areas, only the first one was usable.
      • Settings for FDC Terminal Count with single line bit were not accepted.
    • BCS3:
      • With BASIC-SE 3.1 and S/P-BASIC 3.3 the character set of BASIC-SE 2.4 was used.
      • On the keyboard view the dot was missing.
    • HC900, KC85/2..3: The connection from PIO A10 to NMI was not emulated.
    • HC900, KC85/2..5:
      • In certain situations a NullPointerException occurred.
      • In some cases, when applying a profile, the ROMs were not loaded, causing the KC85 emulation to hang.
      • Structure byte of module M006 corrected from FBh to FCh.
    • NANOS:
      • GIDE did not work.
      • Character set switching at the color graphics card did not work.
    • Kramer-MC: The spacing between the lines was missing in the screen output.
    • Z1013: GIDE did not work.
    • ZX Spectrum: The Bright attribute was ignored for background colors.
    • Plotter: No content was displayed in the plotter window.
    • Reading a TeleDisk file: If sectors were contained multiple times in the file on the first track, an incorrect disk format was detected.
    • Writing a simple image file to a physical disk resulted in an error under Windows if the disk was mounted in the Windows file system. Now the disk is unmounted beforehand and the drive is locked during writing.
    • Assembler: In certain cases marks with forward references were calculated incorrectly.
    • Reassembler: The offset of IX/IY commands is now negative if the offset byte is >= 80h, e.g. DD 36 E0 12 is now translated to LD (IX-20H),12H instead of LD (IX+E0H),12H.
    • U82720: Loading a single byte into the upper 8 bits of the VRAM with the WDAT command did not work.
    • Z80CPU:
      • HALT command was not emulated correctly.
      • PV flag was not set correctly for ADC and SBC instructions with 16 bits.
    • Z80PIO:
      • The behavior after RESET to the first control word did not correspond to the original.
      • In bit input/output mode bits programmed to output could not trigger interrupts.
      • The level states at the port connectors were not always emulated correctly when the port outputs were in a high impedance state.

Originated-by: jkcemu-src-0.9.8.zip
Originated-md5: db93529fbd9f9d008f54348fcb033619
Originated-URL: http://www.jens-mueller.org/jkcemu/download/jkcemu-src-0.9.8.zip