Skip to content

@mist64 mist64 released this Oct 12, 2019 · 8 commits to master since this release

Main differences:

BREAKING CHANGE: The contents of the ROM banks have changed: KERNAL: 0, KEYBD: 1, CBDOS: 2, GEOS: 3, BASIC: 4.

Emulator:

  • significant performance optimizations
  • VERA
    • enabled all 128 sprites
    • correct sprite zdepth
    • support for raster IRQs
  • SDL controller support using -joy1 and -joy2 [John J Bliss]
  • 65C02 BSD fixes [Norman B. Lancaster]
  • feature parity with new LOAD/VLOAD features [John-Paul Gignac]
  • default RAM and ROM banks are now 0, matching the hardware
  • GIF recording can now be controlled from inside the machine [Randall Bohn]
  • Debugging
    • Major enhancements to the debugger [kktos]
    • -echo will now encode non-printable characters like this: \X93 for CHR$(93), -bas as well as pasting accepts this convention again
    • -echo raw for the original behavior
    • -echo iso to for correct character encoding in ISO mode
    • -ram to specify RAM size; now defaults to 512

ROM:

  • BASIC
    • additional LOAD syntax to load to a specific address LOAD [filename[,device[,bank,address]]]
    • LOAD into banked RAM will auto-wrap into successive banks
    • LOAD allows trailing gargabe; great to just type "LOAD" into a directory line [John-Paul Gignac]
    • new BASIC statement: VLOAD to load into video RAM: VLOAD [filename[,device[,bank,address]]] [John-Paul Gignac]
    • complete jump table bridge
  • KERNAL: memory size detection
  • KERNAL: faster IRQ entry
  • GEOS: converted graphics library to VERA 320x200@256c

Known Issues:

  • Emulator: LOAD"$ (and LOAD"$",1) will show host uppercase filenames as garbage. Use Ctrl+o to switch to ISO mode for a workaround.
  • Shift+AltGr keyboard combinations don't work
Assets 5

@mist64 mist64 released this Sep 27, 2019 · 35 commits to master since this release

Main differences:

BREAKING CHANGE: ROM banking now follows the updated specification: All of $C000-$FFFF is bankable ROM (8 banks, 16 KB each, for a total of 128 KB), and there is no more fixed ROM. Machine language programs started with "SYS" will have the BASIC ROM mapped at $C000-$FFFF and have to write #7 to $9F61 to switch to the KERNAL ROM. The KERNAL API $FF81+ is supported both from the BASIC ROM and the KERNAL ROM, but it's faster from the KERNAL ROM, and the extended API is only available from the KERNAL ROM.

Emulator:

  • correct ROM banking
  • VERA emulation optimizations [Stephen Horn]
  • added -dump option to allow writing RAM, CPU state or VERA state to disk [Nils Hasenbanck]
  • added -quality option to change scaling algorithm; now defaults to "best" [Maurizio Porrato]
  • output of -echo can now be fed into UNIX pipes [Anonymous Maarten]
  • relative speed of emulator is shown in the title if host can't keep up [Rien]
  • fix: 6502 BCD arithmetic [Rien]
  • fix: colors (white is now white) [Rien]
  • fix: sprite flipping [jjbliss]

ROM:

  • correct ROM banking:
    • BASIC and KERNAL now live on separate 16 KB banks ($C000-$FFFF)
    • BASIC "PEEK" will always access KERNAL ROM
    • BASIC "SYS" will have BASIC ROM enabled
  • added GEOS statement
  • added OLD statement to recover deleted BASIC program after NEW or RESET
  • removed software RS-232, will be replaced by VERA UART later
  • Full ISO mode support in Monitor

Known Issues:

  • F4 to switch between 40 and 80 column has no effect
  • Emulator: LOAD"$ (and LOAD"$",1) will show host uppercase filenames as garbage. Use Ctrl+o to switch to ISO mode for a workaround.
  • Shift+AltGr keyboard combinations don't work
Assets 5

@mist64 mist64 released this Sep 20, 2019 · 63 commits to master since this release

Main differences:

  • BREAKING CHANGE: VERA 0.8 register layout. All programs accessing VERA (VPOKE, vera_lo/mid/hi) need to be updated! Check the VERA Reference for more info: https://github.com/commanderx16/x16-docs/blob/master/VERA%20Programmer's%20Reference.md
  • ISO mode: hit Ctrl+o to switch to ISO mode: the character encoding is now ASCII/ISO-8859-15, and you can enter and print the following characters: "¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ". You will need to enter BASIC keywords in upper case!

Emulator:

  • VERA 0.8 register layout
  • removed "-char" (character ROM is now part of rom.bin)
  • GIF recording using -gif [Neil Forbes-Richardson]
  • numpad support [Maurizio Porrato]
  • fake support of VIA timers to work around BASIC RND(0)
  • default ROM is taken from executable's directory [Michael Watters]
  • emulator window has a title [Michael Watters]
  • -debug allows specifying a breakpoint [Frank Buss]
  • package contains the ROM symbols in rom.txt
  • support for VERA SPI

ROM:

  • switched to VERA 0.8 register layout; character ROM is uploaded on startup
  • ISO mode: ISO-8859-15 character set, standard ASCII keyboard
  • keyboard
    • completed US and UK keymaps so all C64 characters are reachable
    • support for AltGr
    • support for F9-F12
  • allow hex and binary numbers in DATA statements [Frank Buss]
  • switched SD card from VIA SPI to VERA SPI (works on real hardware!)
  • fix: VPEEK overwriting POKER ($14/$15)
  • fix: STOP sometimes not registering in BASIC programs

Known Issues:

  • Emulator: LOAD"$ (and LOAD"$",1) will show host uppercase filenames as garbage. Use Ctrl+o to switch to ISO mode for a workaround.
  • Shift+AltGr keyboard combinations don't work
Assets 5

@mist64 mist64 released this Sep 12, 2019 · 100 commits to master since this release

Emulator:

  • VERA can now generate VSYNC interrupts
  • added -keymap for setting the keyboard layout
  • added -scale for integer scaling of the window [Stephen Horn]
  • added -log to enable various logging features (can also be enabled at runtime (POKE $9FB0+) [Randall Bohn])
  • changed -run to be an option to -prg and -bas
  • emulator detection: read $9FBE/$9FBF, must read 0x31 and 0x36
  • fix: -prg and -run no longer corrupt BASIC programs.
  • fix: LOAD,1 into RAM bank [Stephen Horn]
  • fix: 2bpp and 4bpp drawing [Stephen Horn]
  • fix: 4bpp sprites [MonstersGoBoom]
  • fix: build on Linux/ARM

ROM:

  • support for 13 keyboard layouts; cycle through them using F9
  • GETJOY call will fall back to keyboard (cursor/Ctrl/Alt/Space/Return), see Programmer's Reference Guide on how to use it
  • startup message now shows ROM revision
  • $FF80 contains the prerelease revision (negated)
  • the 60 Hz IRQ is now generated by VERA VSYNC
  • fix: VPEEK tokenization
  • fix: CBDOS was not correctly preserving the RAM bank
  • fix: KERNAL no longer uses zero page $FC-$FE

Known Issues:

  • Emulator: LOAD"$ (and LOAD"$",1) will show host uppercase filenames as garbage. Use Ctrl+N to switch to the X16 upper/lower character set for a workaround.
  • BASIC: $ and % prefixes don't work for DATA entries
  • RND(0) always returns 0
Assets 5

@mist64 mist64 released this Sep 6, 2019 · 123 commits to master since this release

Emulator:

  • better keyboard support: if you pretend you have a US keyboard layout when typing, all keys should now be reachable [Paul Robson]
  • -debug will enable the new debugger [Paul Robson]
  • runs at the correct speed (was way too slow on most machines)
  • keyboard shortcuts work on Windows/Linux: Ctrl + F/R/S/V
  • Ctrl + V pastes the clipboard as keypresses
  • -bas file.txt loads a BASIC program in ASCII encoding
  • -echo prints all BASIC/KERNAL output to the terminal, use it with LIST to convert a BASIC program to ASCII
  • -run acts like -prg, but also autostarts the program
  • JMP $FFFF and SYS 65535 exit the emulator and save memory the host's storage
  • the packages now contain the current version of the Programmer's Reference Guide (HTML)
  • fix: on Windows, some file load/saves may be been truncated

ROM:

  • fixed BRK handling in the monitor

Known issues:

  • Emulator: LOAD"$ (and LOAD"$",1) will show host uppercase filenames as garbage. Use Ctrl+N to switch to the X16 upper/lower character set for a workaround.
  • Emulator: -prg and -run may corrupt BASIC programs. Use the LOAD command in BASIC instead.
  • BASIC: $ and % prefixes don't work for DATA entries
  • KERNAL: The LOAD KERNAL API ignores the current RAM bank.
  • VPEEK might print errors in certain cases.
Assets 5

@mist64 mist64 released this Sep 4, 2019 · 146 commits to master since this release

  • support for 65C02 opcodes [Paul Robson]
  • keep aspect ratio when resizing window [Sebastian Voges]
  • updated sprite logic to VERA 0.7 – the layout of the sprite data registers has changed, you need to change your code!
Assets 5

@mist64 mist64 released this Sep 3, 2019 · 156 commits to master since this release

First public release. Available for macOS and Windows. Make sure to read the documentation included in the ZIP files.

Assets 5
You can’t perform that action at this time.