Skip to content

Version 0.9.4 from March 22, 2016

Compare
Choose a tag to compare
@rexut rexut released this 17 Jan 11:14
· 73 commits to cpm4l since this release
jkcemu-src-0.9.4
  • Porting to Java 7.
  • Emulation of the NANOS system added.
  • Dialog "About JKCEM"U: Display of Java Runtime Environment properties added.
  • A5105:
    • VDIP is now also emulated at I/O base address 2Ch.
    • Files to be loaded into RAM using the emulator functions are now loaded into RAM even if ROM is currently displayed. This is necessary for safe loading, since in SCPX mode the ROM is always cyclically inserted.
  • AC1, Hübler-Grafik-MC, Kramer-MC, LLC2: File type BASIC program file (*.bas) added for saving and loading BASIC programs.
  • AC1:
    • Emulation of optional connection from /M1 to CTC channel 2 added.
    • VDIP is now also emulated at I/O base address DCh.
    • Start address of the SCCH-BASIC-ROM when including an external ROM file now switchable between 2000h and 4000h.
    • Support for AC1-BASIC6 by Rolf Weidlich including the corresponding file type for BASIC programs (*.abc) added.
    • Added support for BACOBAS 3.
  • KC85/1, KC87, Z9001:
    • Emulation of the real time clock module added.
    • GIDE emulation added.
  • KC85/2..5, HC900:
    • Emulation of the following modules added:
      • M045 (4x8K Segmented User PROM)
      • M046 (8x8K Segmented User PROM)
      • M047 (16x8K Segmented User PROM)
      • M048 (16x16K Segmented User PROM)
    • Loading files: If files are to be loaded into the address range from 8000h, the system now checks whether the file is a KC-BASIC file. If yes and the IRM is currently displayed, the file is not loaded into the IRM, but into the RAM behind it (e.g. RAM 8), i.e. exactly as the CLOAD command in the BASIC interpreter does. In all other cases, the file is loaded into the memory just inserted, if necessary also into the IRM, i.e. exactly as the CAOS command LOAD does.
    • Output of the tone generators optionally now also possible in stereo.
    • Key mapping improved: Among other things, the PC mode (e.g. MicroDOS) is now automatically recognized and some keys are mapped differently. This makes the option to write Ctrl-A...Z, ESC and TAB directly into the keyboard buffer obsolete.
    • Key mapping extended by the keys: End, Page Down, Page Up, F11 and F12.
  • KC85/4: By including a correspondingly large ROM file, it is now possible to emulate the CAOS ROM C, which is normally only 4 KByte in size, with 8 KByte. This means that CAOS 4.5 can now also be used in the KC85/4 emulation.
  • KC85/5: When an external ROM file for the 32 KByte USER ROM is included, the middle two segments no longer have to be swapped, i.e. an original ROM file can now be included unchanged.
  • KC compact:
    • Sound output of the sound generator optionally now also available in stereo.
    • Option to integrate an external operating system and BASIC ROM added.
  • LLC2:
    • Option to display the screen output in 4:3 format added.
    • Option to quickly paste text from the clipboard by intercepting the system call added.
    • Added emulation of the connection from the picture sync pulse to CTC channel 2, allowing the so-called split screen mode.
    • Added support for including 8 KByte double HIRES character set files.
    • Start address and size of the SCCH-BASIC-ROM when including an external ROM file now switchable between 2000h (16 KByte large) and 4000h (8 KByte large).
    • Mapping for the keys Insert, Page Up, Page Down, Pos1/Home and End added.
  • PC/M:
    • separate boot disks for 64x16 and 80x24 characters
    • The ROM can now be enlarged to up to 32 KByte by including a correspondingly large external ROM file.
  • Chess computer SC2: Software in the ROM replaced by the later released bugfixed version.
  • Z1013: GIDE is now emulated at the I/O base address 40h in addition to 80h.
  • ZX Spectrum:
    • ZX Spectrum+ 128K emulation added.
    • Added possibility to include an external operating system ROM.
  • AutoLoad and AutoInput added: After power-on and after RESET, files can be automatically loaded into memory and keyboard input can be performed automatically.
  • Added storage of KCC and KC-TAP files: If the file contains a program for KC85/1, KC87 or Z9001, enter the file name and file type in separate fields. This means that such a file is now also generated in conformity with Z9001-OS.
  • Tools added:
    • Audio recorder.
    • File search, can also be called via the file browser, if a directory is selected there.
    • Disk image file inspector.
  • Audio/tape:
    • Volume control replaced by level meter.
    • Added support for ZX-Tape files (CSW and TZX files read and write, ZX-TAP files read only).
    • Audio function Output Tones now uses 44100 Hz sampling rate instead of 22050 Hz by default.
    • Error message made more meaningful: If the audio channel cannot be opened because it is already being used by another application, this will now also appear in the error message.
  • Assembler:
    • Pseudo commands INCLUDE and BINCLUDE added.
    • Structure commands for conditional assembly added: IF, IFT, IFE, IFF, IF1, IF2, IFDEF, IFNDEF, ELSE, ENDIF
    • Numerical expressions extended by comparison operations, multiplication, division, modulo, shift operations, bitwise AND, OR and XOR as well as the dollar sign for the current address.
    • Relative jump destinations can now also be specified with the syntax .
    • Spaces between arguments are now also accepted.
    • Command line: Added -D option to define markers.
  • BASIC compiler:
    • Network functions removed: statements: ACCEPT, CONNECT, DATGRAM, FLUSH and SEND functions: DNSSERVER, GATEWAY, HOSTBYNAME, LOCALADDR, LOCALPORT, MACADDR, NETMASK, REMOTEADDR and REMOTEPORT
    • new instructions: INCLUDE, PAINT
    • Macro functionality added to the DRAW statement.
    • PAUSE statement now also possible without time specification.
    • SPC function added to PRINT statement.
    • OPEN statement:
      • When opening a file on a USB memory device, a path can now also be specified.
      • File system access added (CP/M only).
    • JOYST function optimized: The return value of the function now differs between target systems and must therefore be evaluated using the following newly defined constants: JOYST_LEFT, JOYST_RIGHT, JOYST_UP, JOYST_DOWN, JOYST_BUTTON1, JOYST_BUTTON2, JOYST_BUTTONS.
    • POINT function changed: It no longer returns the status but the color of the pixel. For the status there is still the function PTEST.
    • System variable TARGETID$ replaced by function IS_TARGET. In this context, constants were defined for the target systems.
    • System variable TARGETADDR removed.
    • Constants defined for the graphics pens (PEN statement): PEN_NONE, PEN_NORMAL, PEN_RUBBER, PEN_XOR.
    • The drivers to be included for the OPEN statement can now be specified individually in the options.
    • USB/VDIP driver: timeout time for read accesses increased.
    • New target system for KC85/4..5 with support of both IRM banks added.
    • Target system AC1: VDIP is now also supported at PIO2, i.e. the following I/O base addresses are tested for the presence of a VDIP module in sequence: DCh, FCh and 08h.
    • Target system CP/M-compatible: File system driver added (see OPEN instruction).
    • Target system LLC2: VDIP is now also supported at PIO2, i.e. the following I/O base addresses are tested for the presence of a VDIP module in sequence: DCh, FCh and E4h.
    • Added an option to specify the start address for the BSS area (variables and memory cells). This now also allows the generation of ROM-enabled program code.
    • Added option to omit comments with BASIC lines in the generated assembly code.
    • Improved code generation by using a global optimizer.
  • File browser:
    • Copy and paste of whole directory trees now possible.
    • Cut and paste added.
    • Support for symbolic links added.
    • Manual setting of the modification time point now also possible without specifying the seconds.
    • TAR unpacker: Support for PaxHeaders added.
  • Debugger:
    • Log functionality added to breakpoints.
    • Creation of breakpoints/log points on program addresses now also possible via the context menu of the program code display.
    • Variables added.
    • Program can now also be executed slowly in three speed levels.
  • Reassembler: Context menu with possibility to create breakpoints/logpoints on program addresses in the debugger added.
  • Text editor: Support for WordStar files changed: The conversion to a plain text file is no longer done when opening the file, but manually using the menu item Remove WordStar formatting. This allows the conversion of WordStar files that were not recognized as such when opening them.
  • Hex file comparator: Adding/removing several files at once is now possible.
  • JKCEMU file selection dialog extended:
    • Context menu added, so renaming, deleting and updating is now possible.
    • File name field activated as drop target, i.e. a file can now be dragged and dropped into the file name field.
  • Joystick: Joysticks connected to the emulator computer are now only queried if a JKCEMU input window (emulator/screen, keyboard or joystick window) is currently active. This avoids malfunctions if the joystick is also queried by another currently running program.
  • Dialog for directory selection extended:
    • Added possibility to create a directory.
    • Symbolic links are now displayed as such.
    • Last selected directory is now pre-selected.
  • Insert text in emulator window: Non-breakable spaces are now converted to regular spaces.
  • GIDE/hard disk emulation:
    • GIDE can now be emulated without hard drives. This is useful if only the real time clock is needed.
    • Besides hard disk image files with a 256 byte header, RAW files without header are now supported. The correct format is recognized by the file size.
  • Included disk image files replaced with original Interleave.
  • Create image file from disk / write to disk renamed to Create image file from disk / write to disk, as these two functions work for all physical drives. In addition, when writing a disk image file to a medium, the file type is now also recognized (with or without a 256-byte header) and the 256-byte header is skipped.
  • Unpack diskettes and disk image files:
    • Added support for DateStamper.
    • In the format selection dialog the automatically detected values are now marked accordingly.
  • Manual creation of disk image files:
    • Added support for DateStamper.
    • Added support for Interleave.
    • Multiple files can now be added at once in the file selection dialog.
    • Directories named 1 to 15 can be added. The files contained in these directories are then added to the user level with the same name.
    • File attributes can now be changed for multiple files at once.
    • Multiple files can now be moved up or down at once.
  • Emulation of a disk based on a directory:
    • Added support for DateStamper.
    • Automatic update now also possible when the directory is open for writing.
  • Added write support for CopyQM files: CopyQM files can now be created in the file converter and when manually creating disk image files.
  • Improved support for TeleDisk files:
    • In certain cases JKCEMU tries to repair sectors contained in the TeleDisk file and not read correctly. This is indicated by a message.
    • Write support added: TeleDisk files can now be created in the File Converter and when creating disk image files manually.
  • Calculator: ROUND and SIG/SIGNUM functions described in the help.
  • Z80CTC: Time behaviour of the CTC in connection with IO commands improved.
  • Bug Fixes:
    • Saving a file via JKCEMU file selection dialog: In case of automatic file name extension, the warning on file existence did not work.
    • When saving an RMC file, an incorrect file was created.
    • Loading of KC-BASIC files: If the first BASIC line is very long, an incorrect start address was determined.
    • Files in KCC format and the extension *.852 to *.855 were not recognized as KCC files.
    • A5105, AC1, C80, LC80, LLC2, PC/M, Poly880, Z1013: No interrupts could be triggered by phase change at the cassette recorder input. Now that this has been fixed, special cassette list programs are also working.
    • A5105: The wait states generated by the SVG were not emulated. Now that this has been fixed, the emulated cassette interface will also work.
    • BCS3: Fixed letter b in the character generator of S/P-BASIC 3.3.
    • HC900, KC85/2..5:
      • The Save BASIC Program function... function worked incorrectly if the end of the BASIC program is in the address range >= 8000h.
      • Labels of the second assignment of the +, _ and ^ keys were missing in the keyboard view.
      • Mapping of some key codes was faulty.
      • When reassembling a call to system function OSTR, the following character string was not reassembled as such.
    • KC85/1, KC87, Z9001: Emulation of the loudspeaker control did not quite match the original. Now that this has been corrected, the output of 1-bit music now also works.
    • LLC2:
      • VDIP did not work on I/O base address FCh.
      • Switching the ROM disk start address of SCCH module 1 did not work.
    • PC/M:
      • CTC was not connected to the system clock.
      • Hardware for drive selection was emulated incorrectly.
    • KCNet was not completely reset during a software reset.
    • Assembler: EQU statements that contained a marker declared further down in the source code as a value generated incorrect code.
    • BASIC compiler:
      • Statement INPUT # worked incorrectly with local integer variables.
      • LINE statement did not work correctly with start point and end point.
      • When using the VAL function, syntactically incorrect assembler code was generated in certain cases.
      • A program crash occurred when drawing a line with negative coordinates (i.e., outside the visible area).
      • The INSTR function crashed when the optional start position was greater than the string length.
      • A program crash occurred when calling a USR function without previous DEFUSR. Now an error message appears.
      • When calling the compiler via command line no program could be compiled for the target system CP/M.
      • Target systems CP/M, Hübler/Grafik-MC, Z9001: Function INKEY$ did not return any values if option CTRL-C was enabled.
    • File converter: KC audio files created with the converter were faulty.
    • Debugger:
      • Breakpoint on output gate could not be created with a 16-bit address.
      • The Jump Call function did not work correctly if certain stack operations were performed in the skipped function.
    • Print jobs: Double entry Open in text editor... in the context menu was added to Open in Hex Editor... has been changed.
    • Save settings as profile: It was not saved whether a window is iconized or maximized.
    • RAM floppy window: The window did not update and always displayed the hardware that was set when it was first opened.
    • Key mapping: CTRL-M returned either code 10 or 13, depending on the operating system JKCEMU was running on. Now CTRL-M is always mapped to code 13.
    • Text Editor: When loading a project file, in some cases the corresponding source code file was not found.
    • Input/output via sound system: When restarting input/output after a pause, the emulation hung for a while.

Originated-by: jkcemu-src-0.9.4.zip
Originated-md5: 78a74d7de0ef3cac04c3cb2884087da6
Originated-URL: http://www.jens-mueller.org/jkcemu/download/jkcemu-src-0.9.4.zip