x16-emulator-r36 ("Berlin")
Main differences:
BREAKING CHANGES:
- The host filesystem interface is now on device 8, also, device 8 is the default for LOAD and SAVE. So if you don't specify a device number, LOAD and SAVE behave as before. If an SD card is attached (
-sdcard
), the host filesystem interface is disabled, and the SD card is used instead. - GRAPH_init needs to be called with r0 = 0 for the r35 behavior.
- GRAPH_get_char_size behaves differently for control characters. See documentation for details.
A lot of new APIs have been added:
- sprites
- console
- memory
See the Programmer's Reference Guide for details on the new and changed APIs:
https://github.com/commanderx16/x16-docs
Emulator:
- added VERA UART emulation (
-uart-in
,-uart-out
) - correctly emulate missing SD card
- moved host filesystem interface from device 1 to device 8, only available if no SD card is attached
- require numeric argument for
-test
to auto-run test - fixed JMP (a,x) for 65c02
- Fixed ESC as RUN/STOP [Ingo Hinterding]
ROM:
-
API Features
- added console API for text-based interfaces with proportional font and styles support: console_init, console_put_char, console_get_char
- added memory API:
- memory_fill
- memory_copy
- memory_crc
- memory_decompress (LZSA2)
- added sprite API: sprite_set_image, sprite_set_position
- renamed GRAPH_LL to FB (framebuffer)
- GRAPH_init takes an FB graphics driver as an argument
-
KERNAL features
- detect SD card on TALK and LISTEN, properly fall back to serial
- joystick scanning is done automatically in VBLANK IRQ; no need to call it manually any more
- added VERA UART driver (device 2)
- bank 1 is now the default after startup; KERNAL won't touch it
- sprites and layer 0 are cleared on RESET
- changed F5 to LOAD":* (filename required for IEEE devices)
- GRAPH_move_rect supports overlapping [gaekwad]
-
BASIC
- default LOAD/SAVE device is now 8
- added RESET statement [Ingo Hinterding]
- added CLS statement [Ingo Hinterding]
-
CHARSET
- fixed capital Ö [Ingo Hinterding]
- Changed Û, î, ã to be more consistent [Ingo Hinterding]
-
bug fixes
- COLOR statement with two arguments
- PEEK for ROM addresses
- keyboard code no longer changes RAM bank
- fixed clock update
- fixed side effects of Ctrl+A and color control codes [codewar65]
-
misc
- added 3 more tests, start with "TEST1"/"TEST2"/"TEST3" in BASIC:
- TEST0: existing misc graphics test
- TEST1: console text rendering, character wrapping
- TEST2: console text rendering, word wrapping
- TEST3: console text input, echo