It's been 17 months since ELKS v0.8.1 was released on October 15, 2024.
There has been a relative lull in activity lately, it would be nice to use this time to get a release finalized within the next little while, since there have been so many enhancements and updates. If there are bug fixes or small enhancements you'd like to see included, please comment or submit a PR.
Following are draft release notes for v0.9.0, please comment if something or someone has been left out.
Thank you to all that have contributed and are using ELKS!
ELKS v0.9.0 Downloads
Prebuilt disk images for floppy and hard disks are downloadable below from Github Assets for this release.
These images can be used to boot from PC/XT/AT or PC-98 hardware, or emulators, such as QEMU or dosbox-x.
The images are built with network support by default, supporting NE2K, WD and 3Com NICs.
See the Wiki HowTo for more information.
ELKS v0.9.0 Enhancements
Thank you to all who contributed to ELKS enhancements, bug identification, testing and fixes.
The system continues to be very stable, with no known crashes and long uptimes.
Major Enhancements
Major additions include support for:
-- Full Microwindows Project integration: full graphical desktop environment(s), with multi-process client/server connections to Nano-X.
-- C86 C compiler toolchain on ELKS: a complete 8086 toolchain running on ELKS, with the full ELKS C library ported.
-- DeSmet C (DCC): a self-compiling compiler based on the 1989 DeSmet C compiler and toolchain.
-- Large variety of external ELKS applications included on HD images. These are fully compiled from their git repo in order to stay current, and automatically made available on HD image builds.
-- New Games: Doom by @FrenkelS, Paint by @Vutshi, Elksmoria by @tyama501, along with ttypong, tetris, invaders, advent, nxtetris, nxmine, nxworld, matrix and sl.
-- New Ports: NEC V25 by @swausd, Solo/86 by @fhendrikx, WonderSwan by @asiekierka.
-- Direct ATA driver by @fhendrikx. XT-IDE hardware support. PS/2 mouse support for copy.sh/v86 by @toncho11.
-- New support for Bochs, PCem, copy.sh/v86, MartyPC, EMU86 and Swan emulators (and continuing DosBoxX and QEMU).
New Commands
Nano-X Graphical Windowing Environment
-- NXDSKTOP - A new graphical desktop environment with launcher, menus and image viewer by @toncho11
-- [Nano-X] Fix various problems with multiple client/server Nano-X by @ghaerr in #2215
-- [Nano-X] Rewrite Nano-X Makefiles for easy understanding by @ghaerr in #2221
-- [Nano-X] Speed up VGA 4-plane 16-color display output by @ghaerr in #2217
-- [nanox] Initial changes to build Server/Client mode for ELKS by @tyama501 in #2213
Updated Commands
-- [ash] Add fg command for simple job control to ash by @ghaerr in #2572
-- [basic] fix 16 color mode setting for pc-98 by @tyama501 in #2388
-- [cmds] Add 'disasm -' option to read from stdin by @ghaerr in #2118
-- [cmds] Add ^C to discard streaming input in telnet by @ghaerr in #2536
-- [cmds] Add ANSI DSR processing for dynamic window size to mined/edit by @ghaerr in #2585
-- [cmds] Add Bobcat web browser as external application by @rafael2k in #2595
-- [cmds] Add drawvhline and cleanup paint code, get C86 version working again by @ghaerr in #2278
-- [cmds] Add ekermit to distribution images by @ghaerr in #2557
-- [cmds] Add elks-viewer image viewers as external application by @rafael2k in #2588
-- [cmds] Add Kilomacs (Rafael's own version of emacs :P ) editor by @rafael2k in #2597
-- [cmds] Add Lua interpreter as external application by @rafael2k in #2594
-- [cmds] Add paint program for IA16, OWC and C86 by @ghaerr in #2259
-- [cmds] Add paintbucket fill to C86 paint by @ghaerr in #2262
-- [cmds] Add palette cache to paint bmp image drawing for speed by @ghaerr in #2281
-- [cmds] Add PPID to ps -l by @ghaerr in #2449
-- [cmds] Add simple calculator by @HelleBenjamin in #2393
-- [cmds] Add XMS total, used and free memory to meminfo display by @ghaerr in #2332
-- [cmds] Allow cp -v to work without -R by @ghaerr in #2401
-- [cmds] Always sync buffers to disk before fsync exit by @ghaerr in #2613
-- [cmds] Build fsck-dos.os2 and paint.os2 when WATCOM environment installed by @ghaerr in #2425
-- [cmds] Change 'file' to identify as86 object file instead of bcc by @ghaerr in #2114
-- [cmds] Cleanup basic stub routines by @ghaerr in #2439
-- [cmds] Display "Can't run OpenWatcom OS/2 program" when CONFIG_EXEC_OS2 not set by @ghaerr in #2164
-- [cmds] Display mouse port being opened on mouse command by @ghaerr in #2226
-- [cmds] Display offending source line on tokenization error in BASIC by @ghaerr in #2202
-- [cmds] Enhance fg command in ash shell by @ghaerr in #2574
-- [cmds] Enhance fsck-dos to work with large 32M hard drives by @ghaerr in #2399
-- [cmds] Enhance ibmpc BASIC to use EGA or VGA graphics mode by @ghaerr in #2440
-- [cmds] Enhance mv to allow renaming directories containing symlinks by @ghaerr in #2257
-- [cmds] Extend Basic MODE command for CGA, EGA and VGA by @ghaerr in #2443
-- [cmds] Fix compiler warnings based on added -Wextra flag by @ghaerr in #2111
-- [cmds] Fix makeboot -f option to use passed boot sector size by @ghaerr in #2390
-- [cmds] Fix makeboot to use proper minor number mask to get raw device using sys -M by @ghaerr in #2387
-- [cmds] Fix more not handling wrapping lines correctly on terminals sh… by @asiekierka in #2482
-- [cmds] Fix mouse release bug in paint event code by @ghaerr in #2261
-- [cmds] Fix proper operation for telnetd when no more processes by @ghaerr in #2537
-- [cmds] Fix to allow negative pid argument to kill to kill process group by @ghaerr in #2527
-- [cmds] Fix vga_drawhline in Paint by @ghaerr in #2280
-- [cmds] Get busyelks compiling again by @ghaerr in #2432
-- [cmds] Get hostdisasm working again by @ghaerr in #2115
-- [cmds] Increase ANSI DSR delay for possibly network delays by @ghaerr in #2576
-- [cmds] Increase frame rate on ttytetris by @ghaerr in #2233
-- [cmds] Introduce ability to compile and install ELKS applications outside of repo by @ghaerr in #2586
-- [cmds] Minor fixes to Paint by @ghaerr in #2423
-- [cmds] Remove ftpget, ftpput, httpget symlinks, replace w/urlget -F, -P, -H by @ghaerr in #2258
-- [cmds] Rename ttytetris -> tetris, nano-x -> nano-X for DOS FAT 8.3 compatibility by @ghaerr in #2392
-- [cmds] Set CRNL input translation in sercat by default by @ghaerr in #2525
-- [cmds] Slim down 'env' command and add back to distribution by @ghaerr in #2418
-- [cmds] Speed up Paint code drawing on slow 8088 systems by @ghaerr in #2277
-- [cmds] Update 'sys' and 'mknod' to work for updating ELKS by @ghaerr in #2186
-- [cmds] Update ecalc by @HelleBenjamin in #2394
-- [cmds] Update ecalc by @HelleBenjamin in #2397
-- [cmds] Update file cmd to recognize JPG, BMP and PPM image files by @ghaerr in #2589
-- [cmds] Update mkfat table to use cluster size 2 for 32MB hard drive by @ghaerr in #2395
-- [ekermit] Add make hostek for host gcc by @tyama501 in #2561
-- [ekermit] Adding more checks for ttyfd and org_term since usage closes without devopen by @tyama501 in #2558
-- [ekermit] Fix to accept /dev/ttyUSB device for hostek by @tyama501 in #2592
-- [ekermit] Reduce SCANSIZ since count is 16bits int by @tyama501 in #2564
-- [ekermit] Set -DNO_SCAN by @tyama501 in #2565
-- [elkscmd] Porting E-kermit, ekermit by @tyama501 in #2554
-- [elkscmd/inet] netcat-style network utility by @sepen in #2524
-- [emu86] Update access to EMU86 emulator for kernel symbolic debugging by @ghaerr in #2570
-- [ExtApp] Add ELKSmoria Roguelike game by @tyama501 in #2609
-- [paint] Cleanup XOR cursor code by @ghaerr in #2297
-- [paint] Draw XOR cursor 8 pixels at a time by @ghaerr in #2302
-- [paint] Fix cursor wrap and last line not displayed, fix keyboard ignored until mouse event by @ghaerr in #2306
-- [paint] Further optimization of ASM graphics routines by @ghaerr in #2290
-- [paint] Implement XOR cursor for testing by @ghaerr in #2296
-- [paint] Increase speed by changing ia16-elf-gcc -Os to -O2+ by @ghaerr in #2292
-- [paint] More optimization of asm graphics routines by @ghaerr in #2289
-- [paint] Move VGA access macros to vgalib.h file by @ghaerr in #2284
-- [paint] Rewrite 16x16 cursor from hexadecimal to visual, 7x7 to 8x8 by @ghaerr in #2298
-- [paint] Slight speedup in drawscanline by @ghaerr in #2288
-- [paint] Small cleanup of graphics functions for multiple compilers by @ghaerr in #2286
-- Paint add flood fill button by @Vutshi in #2283
-- Paint circle drawing by @Vutshi in #2285
-- Paint cursors update by @Vutshi in #2300
-- Paint filled shapes by @Vutshi in #2295
-- Paint fix flood fill on 'f' key by @Vutshi in #2303
-- Paint open bmp by @Vutshi in #2301
-- Paint rectangle drawing by @Vutshi in #2294
-- Paint save/read BMP improvement by @Vutshi in #2323
-- Paint update 2 by @Vutshi in #2279
-- Paint: EGA Compatibility and UI Enhancements by @Vutshi in #2275
-- Paint: Flood Fill improvement by @Vutshi in #2325
-- Paint: hardware-accelerated flood fill by @Vutshi in #2333
-- Paint: small flood fill optimization by @Vutshi in #2334
-- [tui] Decreased GUNNER_ENTRANCE in invaders.h by @tyama501 in #2108
-- [tui] Import curses invaders game from FUZIX repository by @tyama501 in #2101
Building, Boot and Runtime Configuration
-- [boot] Add FD1200 boot for PC-98 by @tyama501 in #2420
-- [boot] Create distribution /bootopts file larger than 512 bytes by @ghaerr in #2362
-- [boot] Expand /bootopts to 1023 bytes by @ghaerr in #2100
-- [boot] Fix bad MBR partition generated by setboot by @ghaerr in #2084
-- [boot] Fix mfs duplicate mknod/mkdir, default boot optimziations on by @ghaerr in #2080
-- [boot] Fix MINIX boot when /linux disk location is > 32MB on hard drives by @ghaerr in #2496
-- [build] Add bochs emulator support for IBM PC text and graphics by @ghaerr in #2614
-- [build] Add PC98 1200K floppy build to buildimage.sh standard distribution by @ghaerr in #2422
-- [build] Create 64M MBR HD image with 'make images' by @ghaerr in #2133
-- [build] Create full development disk from 8086 toolchain on /usr by @ghaerr in #2201
-- [build] Don't create duplicate /dev devices on ROMFS build by @ghaerr in #2514
-- [build] Fix build problems on macOS ARM machines by @ghaerr in #2616
-- [build] Fix CI build failing on elksemu by @ghaerr in #2212
-- [build] Fix hd64mbr-minix image build and setboot partition write bug by @ghaerr in #2143
-- [build] Fix make clean and add comments to wcenv.sh by @ghaerr in #2160
-- [build] Fix Solo/86 build by @ghaerr in #2379
-- [build] Move unused/non-compiled commands to elkscmd/unused, other small cleanups by @ghaerr in #2612
-- [build] Rename cpp, as, ld, ar, objdump in copyc86.sh by @ghaerr in #2203
-- [CI] Build Nano-X with Github Continuous Integration by @ghaerr in #2581
-- [config] Set XMS compiled in by default for IBM PC and PC-98 by @ghaerr in #2272
Kernel Enhancements
-- 286 Loadall block_move by @drachen6jp in #2324
-- [bios] Add bios_check_sector98() and removed bios call to check sector size from bios_disk_rw for PC-98 hardware. by @tyama501 in #2474
-- [bios] Supporting FD1200 mount on PC-98 by @tyama501 in #2419
-- [direct floppy] Revise cache numbering scheme for more flexibility by @ghaerr in #2096
-- [directfd] Add cache to end of cylinder option by @ghaerr in #2097
-- [directfd] Add configurable bounce and cache buffers to DF driver by @ghaerr in #2082
-- [directfd] Add semi-track caching to DF driver by @ghaerr in #2083
-- [directfd] Add track cache debug code to directfd driver by @ghaerr in #2081
-- [directfd] Disable track/cylinder cache on 32-bit CPUs by @ghaerr in #2098
-- [directfd] Update DF driver for bugs on multiple opens by @ghaerr in #2087
-- [genhd] Add incrementing drivep in show_drive_info by @tyama501 in #2378
-- [irq] Add NMI handler by @tyama501 in #2505
-- [kernel, build] Dynamically configure kernel when /bin/init not present by @ghaerr in #2431
-- [kernel,boot] Add istack option to measure timer_bh delays and calculate max interrupt stack size by @ghaerr in #2533
-- [kernel,cmds] Revise waitpid for stopped jobs, enhance ash, sash & kill signal handling by @ghaerr in #2523
-- [kernel,libc] Add _fmemfree system call and wrapper functions by @ghaerr in #2106
-- [kernel,libc] Add %#k alt option to precision timer displays by @ghaerr in #2086
-- [kernel,libc] Fix precision timer get_ptime by @ghaerr in #2088
-- [kernel,libc] Rewrite kernel brk/sbrk and stack_check, fix C library malloc by @ghaerr in #2128
-- [kernel,libc] Various small cleanups by @ghaerr in #2102
-- [kernel,Nano-X] Remove unused AF_NANO sockets, cleanup Nano-X source by @ghaerr in #2219
-- [kernel] Add controller probe function to ATA CF driver by @ghaerr in #2363
-- [kernel] Add disable= /bootopts option to disable ATA CF, BIOS FD/HD or DF drivers by @ghaerr in #2364
-- [kernel] Add partition support to ATA CF driver by @ghaerr in #2357
-- [kernel] Add preliminary support for PS/2 mouse driver /dev/psaux by @ghaerr in #2598
-- [kernel] Add proper XTIDE 8-bit I/O handling to ATA CF driver by @ghaerr in #2359
-- [kernel] Add support for loading kernel in HMA by @ghaerr in #2270
-- [kernel] Add write error checking to ATA CF driver by @ghaerr in #2376
-- [kernel] Add XMS RAM drive /dev/ssd by @ghaerr in #2268
-- [kernel] Add XMS support to ATA driver, fix ATA drive recognition by @ghaerr in #2352
-- [kernel] Add XTIDE v2 support to ATA CF driver by @ghaerr in #2360
-- [kernel] Allow stopped jobs to be killed, update sash kill/SIGTERM handling by @ghaerr in #2520
-- [kernel] Allow writes to /dev/console by all groups/users by @ghaerr in #2573
-- [kernel] Automatic re-read partition table after MBR modified by @ghaerr in #2367
-- [kernel] Change heap and stack overflow kernel error messages, cleanup by @ghaerr in #2125
-- [kernel] Change int15_fmemcpy to accept byte rather than word count by @ghaerr in #2329
-- [kernel] Clean up timer.c source code, minor speedups by @ghaerr in #2526
-- [kernel] Cleanup BIOSHD and ATA CF driver code; add /dev/cf entries to bin/sys by @ghaerr in #2373
-- [kernel] Cleanup kernel Makefiles by @ghaerr in #2433
-- [kernel] Cleanup miscellaneous source and Makefiles, no binary changes by @ghaerr in #2447
-- [kernel] Cleanup potential kernel startup issues, release more memory by @ghaerr in #2555
-- [kernel] Correct potential timing errors by using atomic jiffies access by @ghaerr in #2458
-- [kernel] Create CPU_xxx defines for arch_cpu values by @ghaerr in #2358
-- [kernel] Create UNIX named socket as regular file for FAT compatibility w/Nano-X by @ghaerr in #2218
-- [kernel] Display device name as well as number in important kernel messages by @ghaerr in #2366
-- [kernel] Document and small enhancements to new LOADALL code by @ghaerr in #2326
-- [kernel] Don't disable interrupts in block device request queue unless async I/O enabled by @ghaerr in #2515
-- [kernel] Don't prohibit using IRQ 12 on 8086 machines when opening PS/2 mouse port by @ghaerr in #2600
-- [kernel] Don't rely on BDA/INT 11 equipment config byte bit 0 for floppies present by @ghaerr in #2336
-- [kernel] Dyamically adjust ATA driver for XT-IDE port 0x300 on PC/XTs by @ghaerr in #2351
-- [kernel] Eliminate startup temp stack by @ghaerr in #2530
-- [kernel] Enable divide by zero handler on swan target by @asiekierka in #2475
-- [kernel] Enable fast serial IRQ4/IRQ3 drivers by default by @ghaerr in #2502
-- [kernel] Enable interrupts as early as possible in kernel init by @ghaerr in #2501
-- [kernel] Enhance buildimages.sh and emulator scripts, add DMASEGEND in config.h by @ghaerr in #2091
-- [kernel] Ensure interrupts disabled during kernel startup by @ghaerr in #2355
-- [kernel] Fix application errors when running XMS LOADALL by @ghaerr in #2330
-- [kernel] Fix broken NE2K driver broken from #2355 by @ghaerr in #2451
-- [kernel] Fix compilation when CONFIG_FS_XMS not set by @ghaerr in #2337
-- [kernel] Fix extraneous iput in sys_link by @ghaerr in #2244
-- [kernel] Fix FAT filesystem adding blocks when seeking past EOF by @ghaerr in #2167
-- [kernel] Fix handling of shared text segments when pointing to ROM by @asiekierka in #2489
-- [kernel] Fix incorrect BSS clearing when BSS size is zero by @ghaerr in #2122
-- [kernel] Fix kernel heap item not freed if first on list by @ghaerr in #2343
-- [kernel] Fix kernel sys_signal handling on multi-code segment executables by @ghaerr in #2113
-- [kernel] Fix LOADALL BX/DX register swap by @ghaerr in #2400
-- [kernel] Fix major speed bug in ATA CF driver by @ghaerr in #2375
-- [kernel] Fix more problems with SIGTSPT (terminal stop) by @ghaerr in #2511
-- [kernel] Fix mount ignoring passed device on ROM/ROMFS systems by @ghaerr in #2095
-- [kernel] Fix mv bug on FAT filesystems due to error in previous commit by @ghaerr in #2242
-- [kernel] Fix mv directory bug in MINIX empty directory check by @ghaerr in #2225
-- [kernel] Fix problems associated with ^Z/SIGTSTP (terminal stop) by @ghaerr in #2509
-- [kernel] Fix PS/2 mouse driver from testing on Bochs emulator by @ghaerr in #2599
-- [kernel] Fix PS/2 mouse operation on copy.sh/v86 emulator by @ghaerr in #2605
-- [kernel] Fix ROMFS chdir use count bug by @ghaerr in #2485
-- [kernel] Fix sys_kill to send to process group when pid < 0 by @ghaerr in #2519
-- [kernel] Fix sysctl parms in strace.h by @ghaerr in #2165
-- [kernel] Fix variety of PC-98 issues when using XMS by @ghaerr in #2318
-- [kernel] Fix verfy_area off-by-one user mode buffer address verification by @ghaerr in #2220
-- [kernel] Get CONFIG_TIMER_INT1C/0F options working by @ghaerr in #2553
-- [kernel] Implement bottom half interrupt handlers! by @ghaerr in #2506
-- [kernel] Implement high priority bottom half interrupt handlers by @ghaerr in #2534
-- [kernel] Implement signal handling within CONFIG_FAST_IRQx handlers by @ghaerr in #2460
-- [kernel] Implement XMS floppy I/O without bounce buffers by @ghaerr in #2339
-- [kernel] Implemented xms_fmemset for LOADALL using block clear by @ghaerr in #2331
-- [kernel] Improve ^O and ^N buffer and inode debug display by @ghaerr in #2493
-- [kernel] Increase size of max UNIX socket name to 20 by @ghaerr in #2542
-- [kernel] Introduce block device driver overlays, move ATA CF to /dev/cf0 by @ghaerr in #2348
-- [kernel] Issue BIOSHD disk reset when ATA CF driver present on boot by @ghaerr in #2411
-- [kernel] Limit accessible SD card size to 2GB in SSD driver by @ghaerr in #2448
-- [kernel] Minor cleanup to precision timer, XMS A20 boot msg, fdreg.h by @ghaerr in #2090
-- [kernel] Minor comments and variables cleanup by @ghaerr in #2503
-- [kernel] Minor header file cleanup, add arch %d to PC class by @ghaerr in #2092
-- [kernel] Miscellaneous cleanups by @ghaerr in #2341
-- [kernel] More accurate swan model reporting by @asiekierka in #2488
-- [kernel] Move CONFIG_FAST_IRQ4 to config.h by @ghaerr in #2459
-- [kernel] Move idle task out of task[] array by @ghaerr in #2531
-- [kernel] Move INT 15/1F block move to FARPROC, enable A20 gate afterwards by @ghaerr in #2320
-- [kernel] Move sys_exec subfunctions to be FARPROC by @ghaerr in #2271
-- [kernel] Move syscall vector to .text, reduce number of unused entries by @ghaerr in #2560
-- [kernel] moved not working debug() by @swausd in #2483
-- [kernel] Perform sbrk address wrap check by @ghaerr in #2134
-- [kernel] Place temporary stacks in BSS over data by @asiekierka in #2312
-- [kernel] Prevent potential hang on 16550A UART by loop-reading FIFO on each interrupt by @ghaerr in #2624
-- [kernel] Rearrange task structure to save kernel code space by @ghaerr in #2528
-- [kernel] Reduce kernel .text size for more near code space by @ghaerr in #2535
-- [kernel] Reduce wait time for ATA CF drive identification to 1 sec by @ghaerr in #2408
-- [kernel] Remove CONFIG_HW_VGA configuration option by @ghaerr in #2421
-- [kernel] Remove t_xregs struct in task struct by @ghaerr in #2529
-- [kernel] Rename loadall_block_move to loadall_block_op, move to loadall.S by @ghaerr in #2328
-- [kernel] Retab malloc.c, signal.h by @ghaerr in #2126
-- [kernel] Retire slow IBM PC serial handler, default fast handlers for all ports by @ghaerr in #2604
-- [kernel] Return standard exit status on stopped jobs by @ghaerr in #2516
-- [kernel] Revert moving block_move and enable_a20_gate to FARPROC by @ghaerr in #2322
-- [kernel] Revise kernel device name/number messages for clarity by @ghaerr in #2369
-- [kernel] Rewrite ATA CF driver timeouts to use accurate kernel timer by @ghaerr in #2361
-- [kernel] Rewrite C fast serial driver top half in ASM for speed and size by @ghaerr in #2607
-- [kernel] Set default baud rate using CONFIG_DEF_BAUD by @ghaerr in #2510
-- [kernel] Show CONFIG_FAST_IRQx status on boot screen by @ghaerr in #2603
-- [kernel] Split XMS/DMA buffer from track cache for BIOS and DF drivers by @ghaerr in #2094
-- [kernel] Store syscall table in ROM on ROM platforms by @asiekierka in #2311
-- [kernel] Support dynamic port setup for ATA, XTIDE, XTCF and SOLO/86 in ATA CF driver by @ghaerr in #2354
-- [kernel] Support modern Nano-X on ELKS by @ghaerr in #2222
-- [kernel] Support XMS unreal mode or INT 15/1F dynamically at runtime by @ghaerr in #2274
-- [kernel] Update idequery.c to same version as TLVC by @ghaerr in #2085
-- [kernel] Update syscall buffer verify FAULT to show bad address by @ghaerr in #2216
-- [kernel] Use full protected mode entry when enabling unreal mode by @ghaerr in #2308
-- [kernel] Use loop instruction in insw/outsw I/O macros for speed by @ghaerr in #2371
-- [kernel] Use optional ASM inb/out for fast I/O in ATA CF driver by @ghaerr in #2370
-- [kernel] Various small fixes, source documenation enhancements by @ghaerr in #2396
-- [kernel] XMS enhancements and fixes around new LOADALL block move by @ghaerr in #2327
-- [kernel] Yet more fixes for SIGTSTP, remove fread in sash & basic by @ghaerr in #2512
-- [kernel/libc] Rename posix_types.h to posixtyp.h for DEV86 build on FAT by @ghaerr in #2492
-- [mm, exec] Allow text segments pointing directly to ROMFS by @asiekierka in #2479
Networking
-- [ktcp] Don't delete retransmit buffers when retrans memory full by @ghaerr in #2507
-- [ktcp] recover from system hanging after lost TCP packet by @swausd in #2497
-- [net,kernel] Remove 50ms timeout in telnetd, cleanup tty_write by @ghaerr in #2579
-- [net] Add ^O to toggle discarding telnet output by @ghaerr in #2543
-- [net] Add debug_cwnd statements for TCP congestion control by @ghaerr in #2500
-- [net] Add ftp enhancements from TLVC to ELKS by @ghaerr in #2467
-- [net] Add ftpd enhancements from TLVC to ELKS by @ghaerr in #2468
-- [net] Add Interrupt Process and Abort Output telnet protocol handling by @ghaerr in #2566
-- [net] Add major enhancements to ktcp from TLVC by @ghaerr in #2452
-- [net] Add TLVC enhancements to telnetd to ELKS by @ghaerr in #2464
-- [net] Add WD8013 NIC driver enhancements from TLVC by @ghaerr in #2461
-- [net] Cleanup arp, netstat, httpd source. Reduce executable and memory sizes also by @ghaerr in #2538
-- [net] Cleanup telopt.c, move all network applications to elkscmd/inet/.c by @ghaerr in #2540
-- [net] Consolidate elkscmd/inet/ directories into inet/cmds by @ghaerr in #2539
-- [net] Don't discard output when ^C typed, use ^C^O instead by @ghaerr in #2550
-- [net] Ensure ISIG off and OPOST and ONLCR on in telnet by @ghaerr in #2545
-- [net] Fix network hang in bind() when only single TCP socket open by @ghaerr in #2267
-- [net] Fix tcp bad checksum error on localhost connections by @ghaerr in #2466
-- [net] Fix telnet ^C/^O processing to show remote prompt when complete by @ghaerr in #2546
-- [net] Fix telnet incoming DM handling by @ghaerr in #2567
-- [net] Move various WD NIC driver routines to far NICPROC by @ghaerr in #2462
-- [net] Port minor changes from TLVC telnet to ELKS by @ghaerr in #2463
-- [net] Reduce size of netcat program by @ghaerr in #2544
-- [net] Update netstat.h from TLVC by @ghaerr in #2504
C Library
-- [libc, paint] Add fmemcpy and fdstmemcpy, port drawscanline to C86 by @ghaerr in #2287
-- [libc, Watcom C] Fix gettimeofday, ctime and __amalloc debug speed by @ghaerr in #2169
-- [libc,c86] Compile all of ELKS C library with C86 by @ghaerr in #2148
-- [libc,cmds] Add arena numbers to meminfo -m, prohibit fprintf to fputs conversions by @ghaerr in #2109
-- [libc] Add __stackavail and __alloca for C86 by @ghaerr in #2152
-- [libc] Add abs() function by @ghaerr in #2099
-- [libc] Add arena-based memory allocator for OpenWatcom large model by @ghaerr in #2138
-- [libc] Add chroot, raise, and OWC getsockname, getpeername routines by @ghaerr in #2590
-- [libc] Add DEBUG_PORT= environ var for __dprintf output by @ghaerr in #2386
-- [libc] Add hexdump display routine to C library by @ghaerr in #2568
-- [libc] Add linenoise line editing routines to C library by @ghaerr in #2413
-- [libc] Add malloc_usable_size, write general-purpose realloc by @ghaerr in #2139
-- [libc] Add missing closedir to getcwd, other small cleanups by @ghaerr in #2490
-- [libc] Add modf, modff to math library by @ghaerr in #2403
-- [libc] Add proper alloca to OpenWatcom C library by @ghaerr in #2123
-- [libc] Add stack-checking alloca for GCC/IA16 by @ghaerr in #2124
-- [libc] Cleanup tcdrain, tcsendbreak, getpass library internals by @ghaerr in #2569
-- [libc] Create debug version of malloc, fix near->far malloc conversion bug by @ghaerr in #2129
-- [libc] Don't call sysctl every malloc, set DEBUG=1 default in fmalloc by @ghaerr in #2177
-- [libc] Don't require precision timer init when FTRACE disabled by @ghaerr in #2409
-- [libc] Enhance debug function tracing by @ghaerr in #2615
-- [libc] Enhance debugging output for amalloc and dmalloc by @ghaerr in #2144
-- [libc] Enhance debugging v7malloc.c debugging malloc by @ghaerr in #2107
-- [libc] Fix libc OpenWatcom memcmp routine by @ghaerr in #2145
-- [libc] Fix longstanding signal handling bug with improperly set DS register by @ghaerr in #2191
-- [libc] Fix PATH bug in execvpe, update ewcc includes, speed up amalloc by @ghaerr in #2173
-- [libc] Fixes to v7malloc.c for OpenWatcom by @ghaerr in #2131
-- [libc] Further fixes to v7malloc by @ghaerr in #2132
-- [libc] Have __dprintf try to open terminal/ttyS0 on QEMU for messages by @ghaerr in #2223
-- [libc] Initial support for OpenWatcom soft floating point by @ghaerr in #2246
-- [libc] Minor updates for 8086 toolchain commit by @ghaerr in #2142
-- [libc] More memory allocation changes for 8086 toolchain by @ghaerr in #2140
-- [libc] Properly handle max malloc (=32764 bytes) in v7malloc by @ghaerr in #2110
-- [libc] Remove stdio dependencies in linenoise lib by @ghaerr in #2417
-- [libc] Rename __amalloc -> _fmalloc, __dmalloc -> _dmalloc by @ghaerr in #2176
-- [libc] Rewrite mouse and debug console output to work together by @ghaerr in #2228
-- [libc] Update libc headers to allow compilation with -std=c99 by @ghaerr in #2243
-- [libc] Update v7malloc to use __dprintf instead of fprintf by @ghaerr in #2130
Toolchain Enhancements
-- [c86 libc] Add argc/argv/environ and exit processing to main startup by @ghaerr in #2150
-- [c86 libc] Add support for signal() for C86 programs by @ghaerr in #2227
-- [c86 libc] Correct signed compare in alloca by @ghaerr in #2153
-- [c86 libc] Ensure no data has address zero by @ghaerr in #2168
-- [c86 libc] Move ioctl and _lseek to syscall.s for smaller executables by @ghaerr in #2161
-- [c86 libc] Renumber sections in c86 startup code by @ghaerr in #2232
-- [c86, paint] Support C86 __loadreg builtin, get paint back running w/OWC and C86 by @ghaerr in #2342
-- [c86] Allow C86 to compile using most all ELKS libc header files by @ghaerr in #2120
-- [c86] Build and copy C86 toolchain automatically to ELKS /root by @ghaerr in #2163
-- [c86] Enhance 'ecc' C86 compiler front-end script by @ghaerr in #2151
-- [c86] Modify ecc compiler driver script to run directly on ELKS by @ghaerr in #2121
-- [c86] More fixes for C86 C library by @ghaerr in #2149
-- [ow libc] Build Watcom compact, small, medium and large model libraries by @ghaerr in #2260
-- [ow libc] Save DS within OpenWatcom functions by @ghaerr in #2319
-- [owc libc] Add alarm, accept, bind, connect, socket system calls for OWC libc by @ghaerr in #2255
-- [owc libc] Add floating point math library support for OpenWatcom C on ELKS by @ghaerr in #2250
-- [owc libc] Add PTC, PTS OWC support routines for huge pointers by @ghaerr in #2404
-- [OWC libc] Add Watcom headers to libc, add 'make owc c86' by @ghaerr in #2158
-- [owc libc] Cleanup math library source a bit by @ghaerr in #2252
-- [owc libc] Fix OWC link errors with small and compact models using _weaken by @ghaerr in #2238
-- [owc libc] Fix soft float emulation underflow/overflow by @ghaerr in #2248
-- [owc libc] Make signed char default for OpenWatcom C by @ghaerr in #2251
-- [tools] Add 'ecc' ELKS C86 compiler driver script by @ghaerr in #2119
-- [tools] Add disasm and nm86 to host tools build by @ghaerr in #2437
-- [tools] Add WonderSwan emulator script. by @asiekierka in #2481
-- [tools] Don't copy macOS .DS_Store files to MINIX images by @ghaerr in #2518
-- [tools] elf2elks - allow removal of unused code sections with static bss data by @ghaerr in #2596
-- [tools] Fix URL pointing to MPFR to one that passes TLS certificate c… by @asiekierka in #2486
-- [watcom libc] Add routines required for JWasm port by @ghaerr in #2104
-- [watcom libc] Improve fmemcmp by @ghaerr in #2172
-- [watcom] Save DS register across syscalls, don't set DS on NULL pointers by @ghaerr in #2171
New Ports
-- [NEC V25] Add support for DS3231 I2C Realtime Clock by @swausd in #2469
-- [NECV25] Bottom Half interrupt drivers, Fast IRQ and Network support for the NEC V25 Port by @swausd in #2521
-- [NECV25] changed a little bit more... by @swausd in #2522
-- [NECV25] New IBRK exception handler, inclusion of DIVZERO and NMI interrupt handler, current NEC V25 config by @swausd in #2582
-- [NECV25] Support for 2nd console on "Serial 0" for NEC V25 port by @swausd in #2532
-- SOLO/86 platform support (including ATA-CF driver) by @fhendrikx in #2345
-- [swan] Add 4x8 font, improve memory usage by @asiekierka in #2310
Documentation
-- [docs] Add Nano-X screenshot and update README.md by @ghaerr in #2245
-- Updated basic README and host compile by @toncho11 in #2206
-- Updated BASIC readme file by @toncho11 in #2195
-- Update BASIC README.md by @toncho11 in #2190
-- Update basic README.md by @toncho11 in #2204
Other
-- [pc98_config] Reduce XMS BUFFERS to 256 by @tyama501 in #2571
-- [reset] Adding reboot function by shutdown -r to PC-98 by @tyama501 in #2416
-- [romfs] Implement all inode mode bits in ROMFS by @ghaerr in #2494
-- [romprg] Fixed error in testing for completion with Data# Polling by @swausd in #2471
-- [screenshots] Remove EXIF GPS data from JPG screenshots by @ghaerr in #2174
-- [setup] Add 80386+ CPU testing to cputest.S by @ghaerr in #2089
-- Add -p option to mknod.c and use it with sys by @floriangit in #2181
-- Add CONFIG_APPS_WATCOM and CONFIG_APPS_C86 for automatic OWC and C86 app builds by @ghaerr in #2435
-- Add support for COMBID executables by @BinaryMelodies in #2210
-- Add system calls for networking support by @BinaryMelodies in #2209
-- Added gzip to external apps by @rafael2k in #2617
-- Added support for circle for CGA / IBM PC in Basic by @toncho11 in #2193
-- Adding new rom fonts to romfont.h driver in nano-X by @rafael2k in #2141
-- ATA changes by @fhendrikx in #2350
-- ATA: heap_alloc update by @fhendrikx in #2346
-- Bitbanged SD-Card interface for the NEC V25 port by @swausd in #2445
-- Change USER_FLAGS so it is compatible with NEC V25 microcontroller by @swausd in #2429
-- Changed erronous comment to make clear 115200 baud are used by @swausd in #2455
-- Cleanup fcntl.h by @ghaerr in #2580
-- Dockerfile: Add bison and flex to Dockerfile for successful binutils build by @sepen in #2517
-- Documentation/index.html: fix dead link to text/shell.txt by @nabijaczleweli in #2314
-- Elks sys fix warning by @floriangit in #2621
-- Enable running in a VM by @BinaryMelodies in #2211
-- Fallback to 8x16 font in case 8x14 not present in VGA ROM by @rafael2k in #2137
-- Fix build and gitignore by @hexadec1mal in #2472
-- fix check for root line by @floriangit in #2619
-- Fix flood fill stack overflow by @Vutshi in #2321
-- Fix for painting outside canvas by @Vutshi in #2282
-- Improve 8086-toolchain description in the README by @rafael2k in #2591
-- Improve paint line drawing by @Vutshi in #2276
-- Improved build instructions by @toncho11 in #2155
-- Initial WonderSwan port by @asiekierka in #2307
-- Remove . from PATH in /etc/profile by @ghaerr in #2194
-- Remove ifdef CONFIG_IMG_FD1232 in bios.c again by @tyama501 in #2427
-- remove opt_nocopyzero setting globally, since unused by @floriangit in #2187
-- removed duplicated line from copyc86.sh by @rafael2k in #2197
-- romprg for the NEC V25 port by @swausd in #2454
-- Separate strace_elksemu compilation by @BinaryMelodies in #2208
-- small build fixes by @hexadec1mal in #2368
-- Support for hardware SPI on NEC V25 port by @swausd in #2453
-- Support for the NEC V25 microcontroller by @swausd in #2436
-- Update ELKS version to 0.9.0-dev by @ghaerr in #2127
-- Update elksemu by @BinaryMelodies in #2207
-- Update Paint icons by @Vutshi in #2291
-- Update sys by @floriangit in #2611
New Contributors
Full Changelog: v0.8.1...0.9.0
It's been 17 months since ELKS v0.8.1 was released on October 15, 2024.
There has been a relative lull in activity lately, it would be nice to use this time to get a release finalized within the next little while, since there have been so many enhancements and updates. If there are bug fixes or small enhancements you'd like to see included, please comment or submit a PR.
Following are draft release notes for v0.9.0, please comment if something or someone has been left out.
Thank you to all that have contributed and are using ELKS!
ELKS v0.9.0 Downloads
Prebuilt disk images for floppy and hard disks are downloadable below from Github Assets for this release.
These images can be used to boot from PC/XT/AT or PC-98 hardware, or emulators, such as QEMU or dosbox-x.
The images are built with network support by default, supporting NE2K, WD and 3Com NICs.
See the Wiki HowTo for more information.
ELKS v0.9.0 Enhancements
Thank you to all who contributed to ELKS enhancements, bug identification, testing and fixes.
The system continues to be very stable, with no known crashes and long uptimes.
Major Enhancements
Major additions include support for:
-- Full Microwindows Project integration: full graphical desktop environment(s), with multi-process client/server connections to Nano-X.
-- C86 C compiler toolchain on ELKS: a complete 8086 toolchain running on ELKS, with the full ELKS C library ported.
-- DeSmet C (DCC): a self-compiling compiler based on the 1989 DeSmet C compiler and toolchain.
-- Large variety of external ELKS applications included on HD images. These are fully compiled from their git repo in order to stay current, and automatically made available on HD image builds.
-- New Games: Doom by @FrenkelS, Paint by @Vutshi, Elksmoria by @tyama501, along with ttypong, tetris, invaders, advent, nxtetris, nxmine, nxworld, matrix and sl.
-- New Ports: NEC V25 by @swausd, Solo/86 by @fhendrikx, WonderSwan by @asiekierka.
-- Direct ATA driver by @fhendrikx. XT-IDE hardware support. PS/2 mouse support for copy.sh/v86 by @toncho11.
-- New support for Bochs, PCem, copy.sh/v86, MartyPC, EMU86 and Swan emulators (and continuing DosBoxX and QEMU).
New Commands
Nano-X Graphical Windowing Environment
-- NXDSKTOP - A new graphical desktop environment with launcher, menus and image viewer by @toncho11
-- [Nano-X] Fix various problems with multiple client/server Nano-X by @ghaerr in #2215
-- [Nano-X] Rewrite Nano-X Makefiles for easy understanding by @ghaerr in #2221
-- [Nano-X] Speed up VGA 4-plane 16-color display output by @ghaerr in #2217
-- [nanox] Initial changes to build Server/Client mode for ELKS by @tyama501 in #2213
Updated Commands
-- [ash] Add fg command for simple job control to ash by @ghaerr in #2572
-- [basic] fix 16 color mode setting for pc-98 by @tyama501 in #2388
-- [cmds] Add 'disasm -' option to read from stdin by @ghaerr in #2118
-- [cmds] Add ^C to discard streaming input in telnet by @ghaerr in #2536
-- [cmds] Add ANSI DSR processing for dynamic window size to mined/edit by @ghaerr in #2585
-- [cmds] Add Bobcat web browser as external application by @rafael2k in #2595
-- [cmds] Add drawvhline and cleanup paint code, get C86 version working again by @ghaerr in #2278
-- [cmds] Add ekermit to distribution images by @ghaerr in #2557
-- [cmds] Add elks-viewer image viewers as external application by @rafael2k in #2588
-- [cmds] Add Kilomacs (Rafael's own version of emacs :P ) editor by @rafael2k in #2597
-- [cmds] Add Lua interpreter as external application by @rafael2k in #2594
-- [cmds] Add paint program for IA16, OWC and C86 by @ghaerr in #2259
-- [cmds] Add paintbucket fill to C86 paint by @ghaerr in #2262
-- [cmds] Add palette cache to paint bmp image drawing for speed by @ghaerr in #2281
-- [cmds] Add PPID to ps -l by @ghaerr in #2449
-- [cmds] Add simple calculator by @HelleBenjamin in #2393
-- [cmds] Add XMS total, used and free memory to meminfo display by @ghaerr in #2332
-- [cmds] Allow cp -v to work without -R by @ghaerr in #2401
-- [cmds] Always sync buffers to disk before fsync exit by @ghaerr in #2613
-- [cmds] Build fsck-dos.os2 and paint.os2 when WATCOM environment installed by @ghaerr in #2425
-- [cmds] Change 'file' to identify as86 object file instead of bcc by @ghaerr in #2114
-- [cmds] Cleanup basic stub routines by @ghaerr in #2439
-- [cmds] Display "Can't run OpenWatcom OS/2 program" when CONFIG_EXEC_OS2 not set by @ghaerr in #2164
-- [cmds] Display mouse port being opened on mouse command by @ghaerr in #2226
-- [cmds] Display offending source line on tokenization error in BASIC by @ghaerr in #2202
-- [cmds] Enhance fg command in ash shell by @ghaerr in #2574
-- [cmds] Enhance fsck-dos to work with large 32M hard drives by @ghaerr in #2399
-- [cmds] Enhance ibmpc BASIC to use EGA or VGA graphics mode by @ghaerr in #2440
-- [cmds] Enhance mv to allow renaming directories containing symlinks by @ghaerr in #2257
-- [cmds] Extend Basic MODE command for CGA, EGA and VGA by @ghaerr in #2443
-- [cmds] Fix compiler warnings based on added -Wextra flag by @ghaerr in #2111
-- [cmds] Fix makeboot -f option to use passed boot sector size by @ghaerr in #2390
-- [cmds] Fix makeboot to use proper minor number mask to get raw device using sys -M by @ghaerr in #2387
-- [cmds] Fix more not handling wrapping lines correctly on terminals sh… by @asiekierka in #2482
-- [cmds] Fix mouse release bug in paint event code by @ghaerr in #2261
-- [cmds] Fix proper operation for telnetd when no more processes by @ghaerr in #2537
-- [cmds] Fix to allow negative pid argument to kill to kill process group by @ghaerr in #2527
-- [cmds] Fix vga_drawhline in Paint by @ghaerr in #2280
-- [cmds] Get busyelks compiling again by @ghaerr in #2432
-- [cmds] Get hostdisasm working again by @ghaerr in #2115
-- [cmds] Increase ANSI DSR delay for possibly network delays by @ghaerr in #2576
-- [cmds] Increase frame rate on ttytetris by @ghaerr in #2233
-- [cmds] Introduce ability to compile and install ELKS applications outside of repo by @ghaerr in #2586
-- [cmds] Minor fixes to Paint by @ghaerr in #2423
-- [cmds] Remove ftpget, ftpput, httpget symlinks, replace w/urlget -F, -P, -H by @ghaerr in #2258
-- [cmds] Rename ttytetris -> tetris, nano-x -> nano-X for DOS FAT 8.3 compatibility by @ghaerr in #2392
-- [cmds] Set CRNL input translation in sercat by default by @ghaerr in #2525
-- [cmds] Slim down 'env' command and add back to distribution by @ghaerr in #2418
-- [cmds] Speed up Paint code drawing on slow 8088 systems by @ghaerr in #2277
-- [cmds] Update 'sys' and 'mknod' to work for updating ELKS by @ghaerr in #2186
-- [cmds] Update ecalc by @HelleBenjamin in #2394
-- [cmds] Update ecalc by @HelleBenjamin in #2397
-- [cmds] Update file cmd to recognize JPG, BMP and PPM image files by @ghaerr in #2589
-- [cmds] Update mkfat table to use cluster size 2 for 32MB hard drive by @ghaerr in #2395
-- [ekermit] Add make hostek for host gcc by @tyama501 in #2561
-- [ekermit] Adding more checks for ttyfd and org_term since usage closes without devopen by @tyama501 in #2558
-- [ekermit] Fix to accept /dev/ttyUSB device for hostek by @tyama501 in #2592
-- [ekermit] Reduce SCANSIZ since count is 16bits int by @tyama501 in #2564
-- [ekermit] Set -DNO_SCAN by @tyama501 in #2565
-- [elkscmd] Porting E-kermit, ekermit by @tyama501 in #2554
-- [elkscmd/inet] netcat-style network utility by @sepen in #2524
-- [emu86] Update access to EMU86 emulator for kernel symbolic debugging by @ghaerr in #2570
-- [ExtApp] Add ELKSmoria Roguelike game by @tyama501 in #2609
-- [paint] Cleanup XOR cursor code by @ghaerr in #2297
-- [paint] Draw XOR cursor 8 pixels at a time by @ghaerr in #2302
-- [paint] Fix cursor wrap and last line not displayed, fix keyboard ignored until mouse event by @ghaerr in #2306
-- [paint] Further optimization of ASM graphics routines by @ghaerr in #2290
-- [paint] Implement XOR cursor for testing by @ghaerr in #2296
-- [paint] Increase speed by changing ia16-elf-gcc -Os to -O2+ by @ghaerr in #2292
-- [paint] More optimization of asm graphics routines by @ghaerr in #2289
-- [paint] Move VGA access macros to vgalib.h file by @ghaerr in #2284
-- [paint] Rewrite 16x16 cursor from hexadecimal to visual, 7x7 to 8x8 by @ghaerr in #2298
-- [paint] Slight speedup in drawscanline by @ghaerr in #2288
-- [paint] Small cleanup of graphics functions for multiple compilers by @ghaerr in #2286
-- Paint add flood fill button by @Vutshi in #2283
-- Paint circle drawing by @Vutshi in #2285
-- Paint cursors update by @Vutshi in #2300
-- Paint filled shapes by @Vutshi in #2295
-- Paint fix flood fill on 'f' key by @Vutshi in #2303
-- Paint open bmp by @Vutshi in #2301
-- Paint rectangle drawing by @Vutshi in #2294
-- Paint save/read BMP improvement by @Vutshi in #2323
-- Paint update 2 by @Vutshi in #2279
-- Paint: EGA Compatibility and UI Enhancements by @Vutshi in #2275
-- Paint: Flood Fill improvement by @Vutshi in #2325
-- Paint: hardware-accelerated flood fill by @Vutshi in #2333
-- Paint: small flood fill optimization by @Vutshi in #2334
-- [tui] Decreased GUNNER_ENTRANCE in invaders.h by @tyama501 in #2108
-- [tui] Import curses invaders game from FUZIX repository by @tyama501 in #2101
Building, Boot and Runtime Configuration
-- [boot] Add FD1200 boot for PC-98 by @tyama501 in #2420
-- [boot] Create distribution /bootopts file larger than 512 bytes by @ghaerr in #2362
-- [boot] Expand /bootopts to 1023 bytes by @ghaerr in #2100
-- [boot] Fix bad MBR partition generated by setboot by @ghaerr in #2084
-- [boot] Fix mfs duplicate mknod/mkdir, default boot optimziations on by @ghaerr in #2080
-- [boot] Fix MINIX boot when /linux disk location is > 32MB on hard drives by @ghaerr in #2496
-- [build] Add bochs emulator support for IBM PC text and graphics by @ghaerr in #2614
-- [build] Add PC98 1200K floppy build to buildimage.sh standard distribution by @ghaerr in #2422
-- [build] Create 64M MBR HD image with 'make images' by @ghaerr in #2133
-- [build] Create full development disk from 8086 toolchain on /usr by @ghaerr in #2201
-- [build] Don't create duplicate /dev devices on ROMFS build by @ghaerr in #2514
-- [build] Fix build problems on macOS ARM machines by @ghaerr in #2616
-- [build] Fix CI build failing on elksemu by @ghaerr in #2212
-- [build] Fix hd64mbr-minix image build and setboot partition write bug by @ghaerr in #2143
-- [build] Fix make clean and add comments to wcenv.sh by @ghaerr in #2160
-- [build] Fix Solo/86 build by @ghaerr in #2379
-- [build] Move unused/non-compiled commands to elkscmd/unused, other small cleanups by @ghaerr in #2612
-- [build] Rename cpp, as, ld, ar, objdump in copyc86.sh by @ghaerr in #2203
-- [CI] Build Nano-X with Github Continuous Integration by @ghaerr in #2581
-- [config] Set XMS compiled in by default for IBM PC and PC-98 by @ghaerr in #2272
Kernel Enhancements
-- 286 Loadall block_move by @drachen6jp in #2324
-- [bios] Add bios_check_sector98() and removed bios call to check sector size from bios_disk_rw for PC-98 hardware. by @tyama501 in #2474
-- [bios] Supporting FD1200 mount on PC-98 by @tyama501 in #2419
-- [direct floppy] Revise cache numbering scheme for more flexibility by @ghaerr in #2096
-- [directfd] Add cache to end of cylinder option by @ghaerr in #2097
-- [directfd] Add configurable bounce and cache buffers to DF driver by @ghaerr in #2082
-- [directfd] Add semi-track caching to DF driver by @ghaerr in #2083
-- [directfd] Add track cache debug code to directfd driver by @ghaerr in #2081
-- [directfd] Disable track/cylinder cache on 32-bit CPUs by @ghaerr in #2098
-- [directfd] Update DF driver for bugs on multiple opens by @ghaerr in #2087
-- [genhd] Add incrementing drivep in show_drive_info by @tyama501 in #2378
-- [irq] Add NMI handler by @tyama501 in #2505
-- [kernel, build] Dynamically configure kernel when /bin/init not present by @ghaerr in #2431
-- [kernel,boot] Add istack option to measure timer_bh delays and calculate max interrupt stack size by @ghaerr in #2533
-- [kernel,cmds] Revise waitpid for stopped jobs, enhance ash, sash & kill signal handling by @ghaerr in #2523
-- [kernel,libc] Add _fmemfree system call and wrapper functions by @ghaerr in #2106
-- [kernel,libc] Add %#k alt option to precision timer displays by @ghaerr in #2086
-- [kernel,libc] Fix precision timer get_ptime by @ghaerr in #2088
-- [kernel,libc] Rewrite kernel brk/sbrk and stack_check, fix C library malloc by @ghaerr in #2128
-- [kernel,libc] Various small cleanups by @ghaerr in #2102
-- [kernel,Nano-X] Remove unused AF_NANO sockets, cleanup Nano-X source by @ghaerr in #2219
-- [kernel] Add controller probe function to ATA CF driver by @ghaerr in #2363
-- [kernel] Add disable= /bootopts option to disable ATA CF, BIOS FD/HD or DF drivers by @ghaerr in #2364
-- [kernel] Add partition support to ATA CF driver by @ghaerr in #2357
-- [kernel] Add preliminary support for PS/2 mouse driver /dev/psaux by @ghaerr in #2598
-- [kernel] Add proper XTIDE 8-bit I/O handling to ATA CF driver by @ghaerr in #2359
-- [kernel] Add support for loading kernel in HMA by @ghaerr in #2270
-- [kernel] Add write error checking to ATA CF driver by @ghaerr in #2376
-- [kernel] Add XMS RAM drive /dev/ssd by @ghaerr in #2268
-- [kernel] Add XMS support to ATA driver, fix ATA drive recognition by @ghaerr in #2352
-- [kernel] Add XTIDE v2 support to ATA CF driver by @ghaerr in #2360
-- [kernel] Allow stopped jobs to be killed, update sash kill/SIGTERM handling by @ghaerr in #2520
-- [kernel] Allow writes to /dev/console by all groups/users by @ghaerr in #2573
-- [kernel] Automatic re-read partition table after MBR modified by @ghaerr in #2367
-- [kernel] Change heap and stack overflow kernel error messages, cleanup by @ghaerr in #2125
-- [kernel] Change int15_fmemcpy to accept byte rather than word count by @ghaerr in #2329
-- [kernel] Clean up timer.c source code, minor speedups by @ghaerr in #2526
-- [kernel] Cleanup BIOSHD and ATA CF driver code; add /dev/cf entries to bin/sys by @ghaerr in #2373
-- [kernel] Cleanup kernel Makefiles by @ghaerr in #2433
-- [kernel] Cleanup miscellaneous source and Makefiles, no binary changes by @ghaerr in #2447
-- [kernel] Cleanup potential kernel startup issues, release more memory by @ghaerr in #2555
-- [kernel] Correct potential timing errors by using atomic jiffies access by @ghaerr in #2458
-- [kernel] Create CPU_xxx defines for arch_cpu values by @ghaerr in #2358
-- [kernel] Create UNIX named socket as regular file for FAT compatibility w/Nano-X by @ghaerr in #2218
-- [kernel] Display device name as well as number in important kernel messages by @ghaerr in #2366
-- [kernel] Document and small enhancements to new LOADALL code by @ghaerr in #2326
-- [kernel] Don't disable interrupts in block device request queue unless async I/O enabled by @ghaerr in #2515
-- [kernel] Don't prohibit using IRQ 12 on 8086 machines when opening PS/2 mouse port by @ghaerr in #2600
-- [kernel] Don't rely on BDA/INT 11 equipment config byte bit 0 for floppies present by @ghaerr in #2336
-- [kernel] Dyamically adjust ATA driver for XT-IDE port 0x300 on PC/XTs by @ghaerr in #2351
-- [kernel] Eliminate startup temp stack by @ghaerr in #2530
-- [kernel] Enable divide by zero handler on swan target by @asiekierka in #2475
-- [kernel] Enable fast serial IRQ4/IRQ3 drivers by default by @ghaerr in #2502
-- [kernel] Enable interrupts as early as possible in kernel init by @ghaerr in #2501
-- [kernel] Enhance buildimages.sh and emulator scripts, add DMASEGEND in config.h by @ghaerr in #2091
-- [kernel] Ensure interrupts disabled during kernel startup by @ghaerr in #2355
-- [kernel] Fix application errors when running XMS LOADALL by @ghaerr in #2330
-- [kernel] Fix broken NE2K driver broken from #2355 by @ghaerr in #2451
-- [kernel] Fix compilation when CONFIG_FS_XMS not set by @ghaerr in #2337
-- [kernel] Fix extraneous iput in sys_link by @ghaerr in #2244
-- [kernel] Fix FAT filesystem adding blocks when seeking past EOF by @ghaerr in #2167
-- [kernel] Fix handling of shared text segments when pointing to ROM by @asiekierka in #2489
-- [kernel] Fix incorrect BSS clearing when BSS size is zero by @ghaerr in #2122
-- [kernel] Fix kernel heap item not freed if first on list by @ghaerr in #2343
-- [kernel] Fix kernel sys_signal handling on multi-code segment executables by @ghaerr in #2113
-- [kernel] Fix LOADALL BX/DX register swap by @ghaerr in #2400
-- [kernel] Fix major speed bug in ATA CF driver by @ghaerr in #2375
-- [kernel] Fix more problems with SIGTSPT (terminal stop) by @ghaerr in #2511
-- [kernel] Fix mount ignoring passed device on ROM/ROMFS systems by @ghaerr in #2095
-- [kernel] Fix mv bug on FAT filesystems due to error in previous commit by @ghaerr in #2242
-- [kernel] Fix mv directory bug in MINIX empty directory check by @ghaerr in #2225
-- [kernel] Fix problems associated with ^Z/SIGTSTP (terminal stop) by @ghaerr in #2509
-- [kernel] Fix PS/2 mouse driver from testing on Bochs emulator by @ghaerr in #2599
-- [kernel] Fix PS/2 mouse operation on copy.sh/v86 emulator by @ghaerr in #2605
-- [kernel] Fix ROMFS chdir use count bug by @ghaerr in #2485
-- [kernel] Fix sys_kill to send to process group when pid < 0 by @ghaerr in #2519
-- [kernel] Fix sysctl parms in strace.h by @ghaerr in #2165
-- [kernel] Fix variety of PC-98 issues when using XMS by @ghaerr in #2318
-- [kernel] Fix verfy_area off-by-one user mode buffer address verification by @ghaerr in #2220
-- [kernel] Get CONFIG_TIMER_INT1C/0F options working by @ghaerr in #2553
-- [kernel] Implement bottom half interrupt handlers! by @ghaerr in #2506
-- [kernel] Implement high priority bottom half interrupt handlers by @ghaerr in #2534
-- [kernel] Implement signal handling within CONFIG_FAST_IRQx handlers by @ghaerr in #2460
-- [kernel] Implement XMS floppy I/O without bounce buffers by @ghaerr in #2339
-- [kernel] Implemented xms_fmemset for LOADALL using block clear by @ghaerr in #2331
-- [kernel] Improve ^O and ^N buffer and inode debug display by @ghaerr in #2493
-- [kernel] Increase size of max UNIX socket name to 20 by @ghaerr in #2542
-- [kernel] Introduce block device driver overlays, move ATA CF to /dev/cf0 by @ghaerr in #2348
-- [kernel] Issue BIOSHD disk reset when ATA CF driver present on boot by @ghaerr in #2411
-- [kernel] Limit accessible SD card size to 2GB in SSD driver by @ghaerr in #2448
-- [kernel] Minor cleanup to precision timer, XMS A20 boot msg, fdreg.h by @ghaerr in #2090
-- [kernel] Minor comments and variables cleanup by @ghaerr in #2503
-- [kernel] Minor header file cleanup, add arch %d to PC class by @ghaerr in #2092
-- [kernel] Miscellaneous cleanups by @ghaerr in #2341
-- [kernel] More accurate swan model reporting by @asiekierka in #2488
-- [kernel] Move CONFIG_FAST_IRQ4 to config.h by @ghaerr in #2459
-- [kernel] Move idle task out of task[] array by @ghaerr in #2531
-- [kernel] Move INT 15/1F block move to FARPROC, enable A20 gate afterwards by @ghaerr in #2320
-- [kernel] Move sys_exec subfunctions to be FARPROC by @ghaerr in #2271
-- [kernel] Move syscall vector to .text, reduce number of unused entries by @ghaerr in #2560
-- [kernel] moved not working debug() by @swausd in #2483
-- [kernel] Perform sbrk address wrap check by @ghaerr in #2134
-- [kernel] Place temporary stacks in BSS over data by @asiekierka in #2312
-- [kernel] Prevent potential hang on 16550A UART by loop-reading FIFO on each interrupt by @ghaerr in #2624
-- [kernel] Rearrange task structure to save kernel code space by @ghaerr in #2528
-- [kernel] Reduce kernel .text size for more near code space by @ghaerr in #2535
-- [kernel] Reduce wait time for ATA CF drive identification to 1 sec by @ghaerr in #2408
-- [kernel] Remove CONFIG_HW_VGA configuration option by @ghaerr in #2421
-- [kernel] Remove t_xregs struct in task struct by @ghaerr in #2529
-- [kernel] Rename loadall_block_move to loadall_block_op, move to loadall.S by @ghaerr in #2328
-- [kernel] Retab malloc.c, signal.h by @ghaerr in #2126
-- [kernel] Retire slow IBM PC serial handler, default fast handlers for all ports by @ghaerr in #2604
-- [kernel] Return standard exit status on stopped jobs by @ghaerr in #2516
-- [kernel] Revert moving block_move and enable_a20_gate to FARPROC by @ghaerr in #2322
-- [kernel] Revise kernel device name/number messages for clarity by @ghaerr in #2369
-- [kernel] Rewrite ATA CF driver timeouts to use accurate kernel timer by @ghaerr in #2361
-- [kernel] Rewrite C fast serial driver top half in ASM for speed and size by @ghaerr in #2607
-- [kernel] Set default baud rate using CONFIG_DEF_BAUD by @ghaerr in #2510
-- [kernel] Show CONFIG_FAST_IRQx status on boot screen by @ghaerr in #2603
-- [kernel] Split XMS/DMA buffer from track cache for BIOS and DF drivers by @ghaerr in #2094
-- [kernel] Store syscall table in ROM on ROM platforms by @asiekierka in #2311
-- [kernel] Support dynamic port setup for ATA, XTIDE, XTCF and SOLO/86 in ATA CF driver by @ghaerr in #2354
-- [kernel] Support modern Nano-X on ELKS by @ghaerr in #2222
-- [kernel] Support XMS unreal mode or INT 15/1F dynamically at runtime by @ghaerr in #2274
-- [kernel] Update idequery.c to same version as TLVC by @ghaerr in #2085
-- [kernel] Update syscall buffer verify FAULT to show bad address by @ghaerr in #2216
-- [kernel] Use full protected mode entry when enabling unreal mode by @ghaerr in #2308
-- [kernel] Use loop instruction in insw/outsw I/O macros for speed by @ghaerr in #2371
-- [kernel] Use optional ASM inb/out for fast I/O in ATA CF driver by @ghaerr in #2370
-- [kernel] Various small fixes, source documenation enhancements by @ghaerr in #2396
-- [kernel] XMS enhancements and fixes around new LOADALL block move by @ghaerr in #2327
-- [kernel] Yet more fixes for SIGTSTP, remove fread in sash & basic by @ghaerr in #2512
-- [kernel/libc] Rename posix_types.h to posixtyp.h for DEV86 build on FAT by @ghaerr in #2492
-- [mm, exec] Allow text segments pointing directly to ROMFS by @asiekierka in #2479
Networking
-- [ktcp] Don't delete retransmit buffers when retrans memory full by @ghaerr in #2507
-- [ktcp] recover from system hanging after lost TCP packet by @swausd in #2497
-- [net,kernel] Remove 50ms timeout in telnetd, cleanup tty_write by @ghaerr in #2579
-- [net] Add ^O to toggle discarding telnet output by @ghaerr in #2543
-- [net] Add debug_cwnd statements for TCP congestion control by @ghaerr in #2500
-- [net] Add ftp enhancements from TLVC to ELKS by @ghaerr in #2467
-- [net] Add ftpd enhancements from TLVC to ELKS by @ghaerr in #2468
-- [net] Add Interrupt Process and Abort Output telnet protocol handling by @ghaerr in #2566
-- [net] Add major enhancements to ktcp from TLVC by @ghaerr in #2452
-- [net] Add TLVC enhancements to telnetd to ELKS by @ghaerr in #2464
-- [net] Add WD8013 NIC driver enhancements from TLVC by @ghaerr in #2461
-- [net] Cleanup arp, netstat, httpd source. Reduce executable and memory sizes also by @ghaerr in #2538
-- [net] Cleanup telopt.c, move all network applications to elkscmd/inet/.c by @ghaerr in #2540
-- [net] Consolidate elkscmd/inet/ directories into inet/cmds by @ghaerr in #2539
-- [net] Don't discard output when ^C typed, use ^C^O instead by @ghaerr in #2550
-- [net] Ensure ISIG off and OPOST and ONLCR on in telnet by @ghaerr in #2545
-- [net] Fix network hang in bind() when only single TCP socket open by @ghaerr in #2267
-- [net] Fix tcp bad checksum error on localhost connections by @ghaerr in #2466
-- [net] Fix telnet ^C/^O processing to show remote prompt when complete by @ghaerr in #2546
-- [net] Fix telnet incoming DM handling by @ghaerr in #2567
-- [net] Move various WD NIC driver routines to far NICPROC by @ghaerr in #2462
-- [net] Port minor changes from TLVC telnet to ELKS by @ghaerr in #2463
-- [net] Reduce size of netcat program by @ghaerr in #2544
-- [net] Update netstat.h from TLVC by @ghaerr in #2504
C Library
-- [libc, paint] Add fmemcpy and fdstmemcpy, port drawscanline to C86 by @ghaerr in #2287
-- [libc, Watcom C] Fix gettimeofday, ctime and __amalloc debug speed by @ghaerr in #2169
-- [libc,c86] Compile all of ELKS C library with C86 by @ghaerr in #2148
-- [libc,cmds] Add arena numbers to meminfo -m, prohibit fprintf to fputs conversions by @ghaerr in #2109
-- [libc] Add __stackavail and __alloca for C86 by @ghaerr in #2152
-- [libc] Add abs() function by @ghaerr in #2099
-- [libc] Add arena-based memory allocator for OpenWatcom large model by @ghaerr in #2138
-- [libc] Add chroot, raise, and OWC getsockname, getpeername routines by @ghaerr in #2590
-- [libc] Add DEBUG_PORT= environ var for __dprintf output by @ghaerr in #2386
-- [libc] Add hexdump display routine to C library by @ghaerr in #2568
-- [libc] Add linenoise line editing routines to C library by @ghaerr in #2413
-- [libc] Add malloc_usable_size, write general-purpose realloc by @ghaerr in #2139
-- [libc] Add missing closedir to getcwd, other small cleanups by @ghaerr in #2490
-- [libc] Add modf, modff to math library by @ghaerr in #2403
-- [libc] Add proper alloca to OpenWatcom C library by @ghaerr in #2123
-- [libc] Add stack-checking alloca for GCC/IA16 by @ghaerr in #2124
-- [libc] Cleanup tcdrain, tcsendbreak, getpass library internals by @ghaerr in #2569
-- [libc] Create debug version of malloc, fix near->far malloc conversion bug by @ghaerr in #2129
-- [libc] Don't call sysctl every malloc, set DEBUG=1 default in fmalloc by @ghaerr in #2177
-- [libc] Don't require precision timer init when FTRACE disabled by @ghaerr in #2409
-- [libc] Enhance debug function tracing by @ghaerr in #2615
-- [libc] Enhance debugging output for amalloc and dmalloc by @ghaerr in #2144
-- [libc] Enhance debugging v7malloc.c debugging malloc by @ghaerr in #2107
-- [libc] Fix libc OpenWatcom memcmp routine by @ghaerr in #2145
-- [libc] Fix longstanding signal handling bug with improperly set DS register by @ghaerr in #2191
-- [libc] Fix PATH bug in execvpe, update ewcc includes, speed up amalloc by @ghaerr in #2173
-- [libc] Fixes to v7malloc.c for OpenWatcom by @ghaerr in #2131
-- [libc] Further fixes to v7malloc by @ghaerr in #2132
-- [libc] Have __dprintf try to open terminal/ttyS0 on QEMU for messages by @ghaerr in #2223
-- [libc] Initial support for OpenWatcom soft floating point by @ghaerr in #2246
-- [libc] Minor updates for 8086 toolchain commit by @ghaerr in #2142
-- [libc] More memory allocation changes for 8086 toolchain by @ghaerr in #2140
-- [libc] Properly handle max malloc (=32764 bytes) in v7malloc by @ghaerr in #2110
-- [libc] Remove stdio dependencies in linenoise lib by @ghaerr in #2417
-- [libc] Rename __amalloc -> _fmalloc, __dmalloc -> _dmalloc by @ghaerr in #2176
-- [libc] Rewrite mouse and debug console output to work together by @ghaerr in #2228
-- [libc] Update libc headers to allow compilation with -std=c99 by @ghaerr in #2243
-- [libc] Update v7malloc to use __dprintf instead of fprintf by @ghaerr in #2130
Toolchain Enhancements
-- [c86 libc] Add argc/argv/environ and exit processing to main startup by @ghaerr in #2150
-- [c86 libc] Add support for signal() for C86 programs by @ghaerr in #2227
-- [c86 libc] Correct signed compare in alloca by @ghaerr in #2153
-- [c86 libc] Ensure no data has address zero by @ghaerr in #2168
-- [c86 libc] Move ioctl and _lseek to syscall.s for smaller executables by @ghaerr in #2161
-- [c86 libc] Renumber sections in c86 startup code by @ghaerr in #2232
-- [c86, paint] Support C86 __loadreg builtin, get paint back running w/OWC and C86 by @ghaerr in #2342
-- [c86] Allow C86 to compile using most all ELKS libc header files by @ghaerr in #2120
-- [c86] Build and copy C86 toolchain automatically to ELKS /root by @ghaerr in #2163
-- [c86] Enhance 'ecc' C86 compiler front-end script by @ghaerr in #2151
-- [c86] Modify ecc compiler driver script to run directly on ELKS by @ghaerr in #2121
-- [c86] More fixes for C86 C library by @ghaerr in #2149
-- [ow libc] Build Watcom compact, small, medium and large model libraries by @ghaerr in #2260
-- [ow libc] Save DS within OpenWatcom functions by @ghaerr in #2319
-- [owc libc] Add alarm, accept, bind, connect, socket system calls for OWC libc by @ghaerr in #2255
-- [owc libc] Add floating point math library support for OpenWatcom C on ELKS by @ghaerr in #2250
-- [owc libc] Add PTC, PTS OWC support routines for huge pointers by @ghaerr in #2404
-- [OWC libc] Add Watcom headers to libc, add 'make owc c86' by @ghaerr in #2158
-- [owc libc] Cleanup math library source a bit by @ghaerr in #2252
-- [owc libc] Fix OWC link errors with small and compact models using _weaken by @ghaerr in #2238
-- [owc libc] Fix soft float emulation underflow/overflow by @ghaerr in #2248
-- [owc libc] Make signed char default for OpenWatcom C by @ghaerr in #2251
-- [tools] Add 'ecc' ELKS C86 compiler driver script by @ghaerr in #2119
-- [tools] Add disasm and nm86 to host tools build by @ghaerr in #2437
-- [tools] Add WonderSwan emulator script. by @asiekierka in #2481
-- [tools] Don't copy macOS .DS_Store files to MINIX images by @ghaerr in #2518
-- [tools] elf2elks - allow removal of unused code sections with static bss data by @ghaerr in #2596
-- [tools] Fix URL pointing to MPFR to one that passes TLS certificate c… by @asiekierka in #2486
-- [watcom libc] Add routines required for JWasm port by @ghaerr in #2104
-- [watcom libc] Improve fmemcmp by @ghaerr in #2172
-- [watcom] Save DS register across syscalls, don't set DS on NULL pointers by @ghaerr in #2171
New Ports
-- [NEC V25] Add support for DS3231 I2C Realtime Clock by @swausd in #2469
-- [NECV25] Bottom Half interrupt drivers, Fast IRQ and Network support for the NEC V25 Port by @swausd in #2521
-- [NECV25] changed a little bit more... by @swausd in #2522
-- [NECV25] New IBRK exception handler, inclusion of DIVZERO and NMI interrupt handler, current NEC V25 config by @swausd in #2582
-- [NECV25] Support for 2nd console on "Serial 0" for NEC V25 port by @swausd in #2532
-- SOLO/86 platform support (including ATA-CF driver) by @fhendrikx in #2345
-- [swan] Add 4x8 font, improve memory usage by @asiekierka in #2310
Documentation
-- [docs] Add Nano-X screenshot and update README.md by @ghaerr in #2245
-- Updated basic README and host compile by @toncho11 in #2206
-- Updated BASIC readme file by @toncho11 in #2195
-- Update BASIC README.md by @toncho11 in #2190
-- Update basic README.md by @toncho11 in #2204
Other
-- [pc98_config] Reduce XMS BUFFERS to 256 by @tyama501 in #2571
-- [reset] Adding reboot function by shutdown -r to PC-98 by @tyama501 in #2416
-- [romfs] Implement all inode mode bits in ROMFS by @ghaerr in #2494
-- [romprg] Fixed error in testing for completion with Data# Polling by @swausd in #2471
-- [screenshots] Remove EXIF GPS data from JPG screenshots by @ghaerr in #2174
-- [setup] Add 80386+ CPU testing to cputest.S by @ghaerr in #2089
-- Add -p option to mknod.c and use it with sys by @floriangit in #2181
-- Add CONFIG_APPS_WATCOM and CONFIG_APPS_C86 for automatic OWC and C86 app builds by @ghaerr in #2435
-- Add support for COMBID executables by @BinaryMelodies in #2210
-- Add system calls for networking support by @BinaryMelodies in #2209
-- Added gzip to external apps by @rafael2k in #2617
-- Added support for circle for CGA / IBM PC in Basic by @toncho11 in #2193
-- Adding new rom fonts to romfont.h driver in nano-X by @rafael2k in #2141
-- ATA changes by @fhendrikx in #2350
-- ATA: heap_alloc update by @fhendrikx in #2346
-- Bitbanged SD-Card interface for the NEC V25 port by @swausd in #2445
-- Change USER_FLAGS so it is compatible with NEC V25 microcontroller by @swausd in #2429
-- Changed erronous comment to make clear 115200 baud are used by @swausd in #2455
-- Cleanup fcntl.h by @ghaerr in #2580
-- Dockerfile: Add bison and flex to Dockerfile for successful binutils build by @sepen in #2517
-- Documentation/index.html: fix dead link to text/shell.txt by @nabijaczleweli in #2314
-- Elks sys fix warning by @floriangit in #2621
-- Enable running in a VM by @BinaryMelodies in #2211
-- Fallback to 8x16 font in case 8x14 not present in VGA ROM by @rafael2k in #2137
-- Fix build and gitignore by @hexadec1mal in #2472
-- fix check for root line by @floriangit in #2619
-- Fix flood fill stack overflow by @Vutshi in #2321
-- Fix for painting outside canvas by @Vutshi in #2282
-- Improve 8086-toolchain description in the README by @rafael2k in #2591
-- Improve paint line drawing by @Vutshi in #2276
-- Improved build instructions by @toncho11 in #2155
-- Initial WonderSwan port by @asiekierka in #2307
-- Remove . from PATH in /etc/profile by @ghaerr in #2194
-- Remove ifdef CONFIG_IMG_FD1232 in bios.c again by @tyama501 in #2427
-- remove opt_nocopyzero setting globally, since unused by @floriangit in #2187
-- removed duplicated line from copyc86.sh by @rafael2k in #2197
-- romprg for the NEC V25 port by @swausd in #2454
-- Separate strace_elksemu compilation by @BinaryMelodies in #2208
-- small build fixes by @hexadec1mal in #2368
-- Support for hardware SPI on NEC V25 port by @swausd in #2453
-- Support for the NEC V25 microcontroller by @swausd in #2436
-- Update ELKS version to 0.9.0-dev by @ghaerr in #2127
-- Update elksemu by @BinaryMelodies in #2207
-- Update Paint icons by @Vutshi in #2291
-- Update sys by @floriangit in #2611
New Contributors
Full Changelog: v0.8.1...0.9.0