v0.8.0
We are proud to announce ELKS v0.8.0 released on September 24, 2024.
Thank you to all that have contributed and are using ELKS, and enjoy!
ELKS v0.8.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.8.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:
- Application development using the Open Watcom C compiler and OS/2 executable format, allowing for
large multisegment programs to run, using all available memory if necessary. Doom was recently ported. - Add NE2K, WD and 3COM networking support to default build.
- Compressed executables by default allowing for many more applications per floppy image.
- Asynchronous I/O was added to the kernel along with @Mellvik's Direct Floppy disk driver, which
allows for other applications to run while waiting for floppy disk I/O. - All kernel resources dynamically adjustable at boot, allowing for the kernel heap, tasks,
inode and file allocations to be adjusted as required for min or max memory usage. - Increased symbolic debugging capabilities with enhancements to the symbolic disassembler,
system call and function tracing capabilities within running applications. - Rewrite of L1/L2 buffer cache operation allowing for faster operation using fewer buffers.
- Precision timing routines and removal of most all long division in the kernel and C library for
fastest operation and better elapsed time measurements.
New Commands
- [cmds] Port ttyclock to ELKS by @ghaerr in #1855
- [cmds] Port ttypong to ELKS by @ghaerr in #1864
- [cmds] Port ttytetris to ELKS by @ghaerr in #1858
- [cmds] Port md5 from Minix/NetBSD to ELKS as md5sum by @ccoffing in #1656
- [kernel,cmds] Add sysctl system call and option get/set command by @ghaerr in #1897
- [beep] Add -f and -l option by @tyama501 in #1812
- [beep] make it round by @floriangit in #1813
Updated Commands
- [cmds] Add "mouse r" for raw mouse output debugging by @ghaerr in #1888
- [cmds] Add -s, -r, and -p options to shutdown, remove reboot, poweroff by @ghaerr in #2000
- [cmds] Add accurate train timing to sl by @ghaerr in #1723
- [cmds] Add decomp - ELKS executable decompressor by @ghaerr in #1866
- [cmds] Add fsck-dos FAT filesystem checker to build by @ghaerr in #1820
- [cmds] Changes to basic.c for OpenWatcom C compilation by @ghaerr in #1903
- [cmds] Cleanup fsck-dos messages and reduce memory requirement by @ghaerr in #1823
- [cmds] Display usage on invalid mount -t parameter by @ghaerr in #1700
- [cmds] Enable more to recognize line wrapping by @ghaerr in #1714
- [cmds] Enhance ps to better recognize task struct size mismatches by @ghaerr in #1695
- [cmds] Finish fsck-dos port to ELKS, add to distribution by @ghaerr in #1821
- [cmds] Fix ELKS_VERSION= on application builds by @ghaerr in #1739
- [cmds] Fix man page reader for filenames > 14 (MINIX max) by @ghaerr in #1682
- [cmds] Fix more to display correct number of lines w/man by @ghaerr in #2030
- [cmds] Fix off-by-one bug in getty @t command by @vkoskiv in #2021
- [cmds] Fix open file on spawn of programs from /etc/inittab by @ghaerr in #1885
- [cmds] Fix rmdir -p by @ghaerr in #1643
- [cmds] Get ttyclock working with keyboard commands by @ghaerr in #1857
- [cmds] Improve fsck output formatting for -lvv and -lvvv options by @ghaerr in #1668
- [cmds] Meminfo and ps updates, small fixes by @ghaerr in #1849
- [cmds] Reduce size of ps to 6k by @ghaerr in #1691
- [cmds] Reduce size of ramdisk app, fix error messages by @ghaerr in #1669
- [cmds] Remove fsck-dos FAT32 support allowing it to work on floppies by @ghaerr in #1822
- [cmds] Reorganize clock.c source code, add AST hardware RTC support by @ghaerr in #1891
- [cmds] Replace ifdef ia16 with ifdef _M_I86 by @ghaerr in #2029
- [cmds] Replace use of non-standard malloc.h header with stdlib.h by @ghaerr in #1804
- [cmds] Rewrite kill to reduce size by @ghaerr in #1876
- [cmds] Show usage on bad options to mount command by @ghaerr in #1666
- [cmds] Speed up 'sl' - let her rip full speed by @ghaerr in #1707
- [cmds] Speed up the sl choo choo train for slow systems by @ghaerr in #1720
- [cmds] Unmount all volumes in shutdown & reboot by @vkoskiv in #1978
- [cmds] Update fsck to work with max size 64Mb HD, enhance verbose output by @ghaerr in #1671
- [cmds] Update sys command with new device numbers by @ghaerr in #1838
- [cmds] meminfo enhancements and man page by @ghaerr in #1847
- [cmds,kernel] Add meminfo -m option to display sorted main memory segments by @ghaerr in #2023
- [libc/cmds] Fix time command hour wrapping problem by @ghaerr in #1722
- [nx] Adding monochrome CGA nano-X driver. Modifying nxtetris parameter for CGA. by @tyama501 in #1957
- [disasm] Fix sign extension bug when disassembling large RAM segment offsets by @ghaerr in #1985
- screen: modernize prototypes by @ccoffing in #1781
- lp and misc cleanups by @ccoffing in #1811
- Printing by @ccoffing in #1809
- Size reductions by @ccoffing in #1783
- Tidy cal by @ccoffing in #1769
- smaller which by @ccoffing in #1776
Networking
- [net] Fix connection hang on lost SYN packet by @ghaerr in #1908
- [net] Temp fix ftpd startup with QEMU=1 set by @ghaerr in #1925
Boot and Runtime Configuration
- [config] Add CONFIG_ASYNCIO config option, cleanup INIT_REQUEST by @ghaerr in #1650
- [config] Build distribution images using CONFIG_APPS_xxx image size by @ghaerr in #1853
- [config] Do not read MK_ARCH & MK_CPU if already defined by @and3rson in #1760
- [config] Fix duplicate CONFIG_EXEC_MMODEL=y output by @ghaerr in #1883
- [config] Update config files from recent changes by @ghaerr in #1744
- [config] Update configurations for standard IBM PC build by @ghaerr in #1841
- [boot] Add enhanced debug display to setup.S for early startup debugging by @ghaerr in #1981
- [boot] Add media descriptor 0xfe and boot signature in image FD1232 for PC-98 by @tyama501 in #1851
- [boot] Allow separate EXT/L2 and XMS buffer overrides to compiled configuration by @ghaerr in #1672
- [boot] Fix boot issues when /linux or /bootopts deleted by @ghaerr in #1681
- [boot] Remove /bootopts requirement for booting from direct floppy driver by @ghaerr in #1738
- [boot] Replace panic with printk when bootopts argv/envp overflow by @ghaerr in #1986
- [bootopts] Add heap= option for dynamic sizing of kernel heap by @ghaerr in #1993
PC-98 Port
- [bioshd] 720KB 2DD support for PC-98 2HD/2DD common drive by @tyama501 in #1779
- [menuconfig] Fix PC98-1232k typo that makes error by @tyama501 in #1874
- [pc98_config] Fix typo of capital Y by @tyama501 in #1882
- PC-98 beep support by @tyama501 in #1806
Kernel Enhancements and Fixes
- [kernel,build] Small L1 buffer enhancement, add man4, cleanups by @ghaerr in #1680
- [kernel,cmds] Fix tty SIGINT not handled when using sercat by @ghaerr in #2001
- [kernel,cmds] Small fixes to ps, mkfs and ramdisk driver by @ghaerr in #1845
- [kernel,docs] Small updates, process format doc, check odd address in structs, names by @ghaerr in #1955
- [kernel,libc] Enhance debug output in kernel and printf %p by @ghaerr in #1896
- [kernel,libc] Rename u_ino_t to ino_t by @ghaerr in #1844
- [kernel/libc] Allow for concurrent operation of libc and kernel precision timer by @ghaerr in #1964
- [kernel] Add %P to printk to display process ID by @ghaerr in #1698
- [kernel] Add @Mellvik's direct floppy driver by @ghaerr in #1716
- [kernel] Add DF driver to standard IBMPC build by @ghaerr in #1829
- [kernel] Add capability to load and execute OS/2 binary executables by @ghaerr in #1924
- [kernel] Add char and network driver init routines to INITPROC by @ghaerr in #1667
- [kernel] Add consistency checks to buffer I/O, kernel stacks and scheduler by @ghaerr in #1637
- [kernel] Add kernel and user mode divide by zero handling by @ghaerr in #1969
- [kernel] Add optional display of kernel buffer status by @ghaerr in #1655
- [kernel] Add physaddr 64k I/O overlap checking to BIOS driver by @ghaerr in #1673
- [kernel] Add precision time measurement routines with printk formatting by @ghaerr in #1953
- [kernel] Add working async I/O for SSD driver by @ghaerr in #1649
- [kernel] Automate detection of QEMU for ftp, ftpd and DF driver by @ghaerr in #1842
- [kernel] Calculate then reduce kernel temp startup stack size by @ghaerr in #1995
- [kernel] Change bioshd minor numbering scheme to conserve kernel data size by @ghaerr in #1710
- [kernel] Cleanup /dev/mem source code by @ghaerr in #1686
- [kernel] Cleanup USE_GETBLK source by @ghaerr in #1658
- [kernel] Cleanup and shorten panic messages to save kernel data space by @ghaerr in #1996
- [kernel] Cleanup basic types by @ghaerr in #1832
- [kernel] Cleanup block driver blk_size code by @ghaerr in #1712
- [kernel] Cleanup ifdefs and unused code in direct floppy driver by @ghaerr in #1719
- [kernel] Cleanup inode code and fix inode count on execve by @ghaerr in #1654
- [kernel] Cleanup register decls in console*.c, cleanup init/main.c, strace by @ghaerr in #2019
- [kernel] Cleanup various casts and types in kernel source by @ghaerr in #1926
- [kernel] Cleanup various kernel sources by @ghaerr in #1639
- [kernel] Consolidate reboot, shutdown and poweroff into single program by @ghaerr in #1999
- [kernel] Determine kernel stack usage when allowing async I/O by @ghaerr in #1641
- [kernel] Disable track caching for hard drives by @ghaerr in #1717
- [kernel] Disallow reschedule during kernel startup by @ghaerr in #1827
- [kernel] Display number of tasks, files and inodes at boot by @ghaerr in #1987
- [kernel] Don't allocate IRQ trampolines from heap by @ghaerr in #1837
- [kernel] Don't lock Z-map and I-map buffers on MINIX fs mounts by @ghaerr in #1675
- [kernel] Don't mark inode dirty in fchown unless uid or gid changed, cleanup by @ghaerr in #1685
- [kernel] Don't use map_buffer for memset on new filesystem blocks by @ghaerr in #1664
- [kernel] Dynamically allocate L1 cache, use /bootopts cache= to override by @ghaerr in #1674
- [kernel] Dynamically allocate inode and file table from bootopts by @ghaerr in #1840
- [kernel] Dynamically allocate task array from bootopts by @ghaerr in #1839
- [kernel] Eliminate compiler warnings during kernel compilation by @ghaerr in #1983
- [kernel] Eliminate tabs from some kernel source files by @ghaerr in #1689
- [kernel] Ensure all words aligned on word boundaries by @ghaerr in #1947
- [kernel] Finalize precision timing routines by @ghaerr in #1961
- [kernel] First pass at adding media change support to kernel by @ghaerr in #1742
- [kernel] Fix /bootopts root=df0 failing by @ghaerr in #2002
- [kernel] Fix MINIX fs indirect block allocation by @ghaerr in #1651
- [kernel] Fix crash when accessing 15+ character filename on FAT by @ghaerr in #2009
- [kernel] Fix kernel crash calling get_ide_data by @ghaerr in #1954
- [kernel] Fix kernel data overwrite bug while parsing /bootopts by @ghaerr in #1976
- [kernel] Fix sys_rename inode count bug on FAT filesystems by @ghaerr in #1824
- [kernel] Fix to allow booting 2.88M floppy on dosbox by @ghaerr in #1711
- [kernel] Implement full track caching and fix track retry error by @ghaerr in #1704
- [kernel] Implement setitimer system call by @ghaerr in #1859
- [kernel] Improve ^N system inode status listing by @ghaerr in #1702
- [kernel] Increase parsed ANSI sequence length to 28 by @ghaerr in #1699
- [kernel] Invalidate L1 buffers properly, update block drivers to sync by @ghaerr in #1661
- [kernel] Kernel buffers tune and cleanup by @ghaerr in #1678
- [kernel] Minor reformatting for readability by @ghaerr in #1726
- [kernel] Misc cleanups by @ghaerr in #1718
- [kernel] More cleanup of ifdefs by @ghaerr in #1828
- [kernel] More source reformatting for maintainability by @ghaerr in #1703
- [kernel] More source reformatting, slightly refactor kdev_t.h by @ghaerr in #1706
- [kernel] Move bios_disk_park_all to be PFPROC function by @ghaerr in #1997
- [kernel] Move hd/fd bios driver routines into far BFPROC to free up .text space by @ghaerr in #1956
- [kernel] Prohibit reading from /dev/ssd until initialized by @ghaerr in #1670
- [kernel] Rearrange/cleanup types.h and arch/types.h by @ghaerr in #1907
- [kernel] Reduce precision time routines single routine by @ghaerr in #1962
- [kernel] Reduce size of system buffer headers by 4-6 bytes by @ghaerr in #1665
- [kernel] Refactor bioshd driver in preparation for other block devices by @ghaerr in #1705
- [kernel] Refactor debug events, add display inode table with ^N by @ghaerr in #1657
- [kernel] Release .fartext.init code section to free memory after init by @ghaerr in #1646
- [kernel] Release /bootopts parsing and kernel init_task code after init by @ghaerr in #1693
- [kernel] Release L1 buffers in get_free_buf on second pass by @ghaerr in #1662
- [kernel] Remove CONFIG_APM by @ghaerr in #1830
- [kernel] Remove dedicated buffer for MINIX super block by @ghaerr in #1676
- [kernel] Remove include config.h from types.h by @ghaerr in #1833
- [kernel] Replace CURRENT_TIME macro with function call by @ghaerr in #1688
- [kernel] Replace atoi in ANSI console with very fast version by @ghaerr in #2018
- [kernel] Replace kdevname() with printk %D by @ghaerr in #1653
- [kernel] Retab some source files - no functional changes by @ghaerr in #2006
- [kernel] Retab various kernel source files by @ghaerr in #1910
- [kernel] Rewrite FAT filesystem file read/write to not use L1 buffers by @ghaerr in #1652
- [kernel] Rewrite block requests to use start sector and count rather than block number by @ghaerr in #1660
- [kernel] Rewrite printk for speed, add __divmod fast 32/16-bit divide by @ghaerr in #2008
- [kernel] Rewrite wait_on_buffer for async I/O, trace fixes by @ghaerr in #1640
- [kernel] Show open filenames with ^N kernel inode listing by @ghaerr in #1701
- [kernel] Slightly reorganize boot and kernel messages by @ghaerr in #1696
- [kernel] Small cleanups, add disasm to 1440k distribution by @ghaerr in #2022
- [kernel] Small code cleanups by @ghaerr in #1992
- [kernel] Source cleanup replace #if 0 with #if UNUSED by @ghaerr in #1687
- [kernel] Source code readability and optimization improvements by @ghaerr in #1927
- [kernel] Speed up TTY output processing by @ghaerr in #1709
- [kernel] Support Toshiba T1100 BIOS when INT 13 returns 0 floppies by @ghaerr in #1694
- [kernel] Update examples for precision timer by @ghaerr in #1958
- [kernel] Update linker script to place INITPROC sections at highest addresses by @ghaerr in #1645
- [kernel] Updates to console code from #1980 by @ghaerr in #2017
- [kernel] Use BIOS Data Area to determine EGA/CGA/MDA for cursor on/off by @ghaerr in #1679
- [kernel] Use MAJOR_NR in blk.h to select block device by @ghaerr in #1740
- [kernel] Use early temp stack to avoid irqit stack overruns on faults during startup by @ghaerr in #1984
- [kernel] Use outb directly for DMA programming in DF driver by @ghaerr in #1728
- [direct floppy] Assume 360k floppy if no CMOS drives set by @ghaerr in #1753
- [direct floppy] Fix block driver media size after probe by @ghaerr in #1734
- [direct floppy] Fix problem with QEMU using 360k floppies on 1.2M drives by @ghaerr in #1733
- [direct floppy] Ifdef clear DIR media change code out of normal compilation by @ghaerr in #1730
- [direct floppy] Improve auto probing by @ghaerr in #1736
- [direct floppy] Introduce more than two floppy probes per CMOS type by @ghaerr in #1735
- [direct floppy] Small updates to DF driver by @ghaerr in #1745
- [direct floppy] Validation of floppy drive format tables by @ghaerr in #1731
- [directfd] Add support for 2880k discs, multiple open/close by @ghaerr in #1721
- [directfd] Dynamically allocate floppy bounce buffer by @ghaerr in #1831
- [direct df] Add 300k data xfer rate to 360k floppy FDC data by @ghaerr in #1724
- [direct df] Replace QEMU kluge with implied seek option for 360k/1.2M floppies by @ghaerr in #1741
- [driver] Minor floppy driver cleanups by @ghaerr in #1747
- [driver] Optionally place direct floppy driver in far text segment by @ghaerr in #1727
- [drivers] Remove unfinished Meta/UDD driver by @ghaerr in #1998
- [bioshd] Implement park for ancient MFM/RLL disks by @vkoskiv in #1977
- [bioshd] fix fd_types by @tyama501 in #1777
- [console] Add dual monitor support to console-direct driver by @vkoskiv in #1980
- [console] No display only when fg = 0 and bg = 0 for PC-98 by @tyama501 in #1889
- [console] Use bg color and invert for PC-98 when bg is not zero by @tyama501 in #1886
- [basic cga] Add snakcga.bas by @tyama501 in #2007
- [basic cga] CGA Graphic support for IBM-PC ELKS Basic by @tyama501 in #2003
- [serial] Use Transmitter Hold Register Empty for buggy 8251 UARTs by @ghaerr in #1801
C Library
- [libc] Add fast divmod.asm to Watcom printf by @ghaerr in #2013
- [libc] Add flush destructor function to tiny_printf.c by @ghaerr in #2032
- [libc] Add fminf and fmaxf math functions by @ghaerr in #1899
- [libc] Add noreturn for Watcom C by @ghaerr in #1904
- [libc] Add precision timer routines to C library by @ghaerr in #1963
- [libc] Add precision timing to --ftrace by @ghaerr in #2031
- [libc] Add small ultoa function, cleanup and reduce size of dd by @ghaerr in #1898
- [libc] Add strftime to C library, enhance ttyclock with colors by @ghaerr in #1863
- [libc] Add thousands grouping to printf by @ghaerr in #2014
- [libc] Change default Watcom compilations to large model by @ghaerr in #1913
- [libc] Clean up termcap lib and some header files by @ghaerr in #1861
- [libc] Cleanup C library header files by @ghaerr in #1834
- [libc] Cleanup errno.h and reduce size of etc/perror file by @ghaerr in #2024
- [libc] Cleanup rindex issues by @ghaerr in #1836
- [libc] Cleanup sleep.c source by @ghaerr in #1860
- [libc] Cleanup some stdio source by @ghaerr in #1938
- [libc] Consolidate compiler specific definitions in header files for Watcom C by @ghaerr in #1901
- [libc] Don't export non-standard types from header files by @ghaerr in #1970
- [libc] First pass at compiling most all of C library with OpenWatcom by @ghaerr in #1911
- [libc] Fix fdopen bug introduced in #1923 by @ghaerr in #2026
- [libc] Fix glitch when building elks-libc on launchpad.net by @tkchia in #1758
- [libc] Get --ftrace option working on all commands by @ghaerr in #2025
- [libc] Minimize differences between vfprintf.c and tiny_printf.c by @ghaerr in #2011
- [libc] More cleanup C library header files by @ghaerr in #1835
- [libc] Partially implement sigaction by @ghaerr in #1856
- [libc] Pass 2: Add system calls to OpenWatcom C library for ELKS by @ghaerr in #1912
- [libc] Reduce dependencies on certain standard header files by @ghaerr in #1802
- [libc] Reinstate large model default for OpenWatcom, support all models by @ghaerr in #1915
- [libc] Remove __const from libc routines, cleanup by @ghaerr in #1683
- [libc] Revert large mode change, default Openwatcom build is compact by @ghaerr in #1914
- [libc] Rewrite getpwent/getgrent routines to cache opens by @ghaerr in #1690
- [libc] Rewrite vfprintf.c and tiny_printf.c to use __divmod for speed by @ghaerr in #2012
- [libc] Use __divmod in ltoa, ultoa, ltostr, ultostr and dd by @ghaerr in #2015
- [libc] exit,abort,longjmp are noreturn by @ccoffing in #1771
- [libc,cmds] Fix isprint and kilo for CP 437 display by @ghaerr in #1752
- [libc,cmds] Fix perror and rm -f, improve rmdir by @ghaerr in #1750
- [libc,cmds] Misc minor fixes to reduce file sizes by @ghaerr in #1677
- [libc,cmds] Rewrite strrchr for speed/size, update rmdir by @ghaerr in #1642
- [libc,cmds] Various small cleanups by @ghaerr in #1880
- [libc,kernel] Rewrite ptostr for speed, add thousands separator to printk by @ghaerr in #2016
- [kernel][libc][cmds] Add devname libc function by @ghaerr in #1708
- [tui] Improve error detection on DSR parsing in TUI library by @ghaerr in #1697
- [tui] Optimize curses library for smaller executables by @ghaerr in #1887
- [debug] Add CONFIG_APPS_FTRACE to build all apps with function tracing by @ghaerr in #1852
- [debug] Add nm (symbol table name lister) to distribution by @ghaerr in #1848
- [debug] Enhance stack backtrace and instrumention library by @ghaerr in #1846
- [debug] Move stack backtrace and symbol profiling to C library by @ghaerr in #1850
- [debug] Rewrite stack tracing code, add disasm to distribution by @ghaerr in #1843
- [debug] Use same C file for C library and kernel precision timer routines by @ghaerr in #1988
- [debug] Write profiling output to stderr by @ghaerr in #1854
- Malloc fixes by @ccoffing in #1767
Build
- [build,df] Various minor fixups by @ghaerr in #1803
- [build] Add :1232k, :1232c, :1200k and :1200c for app selection by @ghaerr in #1871
- [build] Add NE2K, WD and 3COM NICs to default build by @ghaerr in #1816
- [build] Cleanup Makefiles, add RM, remove Make.rules by @ghaerr in #2028
- [build] Create disk images with compressed executables by default by @ghaerr in #1867
- [build] Don't automatically build host programs by @ghaerr in #1869
- [build] Don't build elksemu on macOS by @ghaerr in #1659
- [build] Don't use dummy boot code in kernel disk image by @ghaerr in #1972
- [build] Fix ROM build when using emu86-rom.config by @ghaerr in #1798
- [build] Fix compilation with CONFIG_NANO set by @ghaerr in #1893
- [build] Fix elf2elks libelf build on Apple M1 by @ghaerr in #1800
- [build] Fix non-compressed 1440k build by @ghaerr in #1873
- [build] Free up more space on PC-98 1232k compressed image by @ghaerr in #1877
- [build] Minor cleanup, add "make ctags" by @ghaerr in #1881
- [build] Misc fixes by @ghaerr in #1808
- [build] Reformat Applications file by @ghaerr in #1715
- [build] Remove various unused config options by @ghaerr in #1826
- [build] Set PC-98 default images to compressed by @ghaerr in #1879
- [build] Small change to 360k and 1200k app selections by @ghaerr in #1878
- [build] Speed up ELKS build by @ghaerr in #1762
- [build] Temporarily remove compressed executables from CI build by @ghaerr in #1906
- [build] Update ELKS version to 0.8.0-dev by @ghaerr in #1713
- [build] Update build.c kernel builder with better messages by @ghaerr in #1990
- [build] Use CI actions/upload-artifacts@v4 by @ghaerr in #2004
- [build][docs] Miscellaneous fixes by @ghaerr in #1799
- [builds] Revise Applications list for PC-98 1232k image by @ghaerr in #1872
- [CI] Add back in "PR" automated workflow by @ghaerr in #2010
- [CI] Disable second PR run of Github actions, run only on push by @ghaerr in #1982
- actions: add OW libc test build on Ubuntu and OSX by @jmalak in #1960
- [elkscmd,build] Cleanup various unused programs and config options by @ghaerr in #1875
- Portable build fixes by @ccoffing in #1785
- [scripts] Update qemu.sh for all versions of QEMU by @ghaerr in #1991
- [minor] Update qemu.sh for macOS x86, reformat config.h by @ghaerr in #1989
Toolchain
- [tools] Add fixomf utility to tag symbols weak within Watcom OBJ files by @ghaerr in #1965
- [tools] Add omf2elf, omfdump and os2toelks object file utilities by @ghaerr in #1902
- [tools] Add text/data relocation conversion to os2toelks by @ghaerr in #1905
- [tools] Enhance mfs genfs to include directory prefix in destination by @ghaerr in #1818
- [tools] Fix mfs problem with max inodes on MINIX v2 filesystems by @ghaerr in #1815
- [tools] Fix objdump86 compilation warnings by @ghaerr in #1909
- [watcom] Add I8* routines for 64-bit multiply/divide by @ghaerr in #1935
- [watcom] Add constructors/finalizers to Watcom C runtime by @ghaerr in #1937
- [watcom] Add heap and stack size processing to ewlink and os2toelks by @ghaerr in #1923
- [watcom] Add mount, umount, _exit syscalls, add back putenv by @ghaerr in #1930
- [watcom] Add option processing to ewcc and ewlink by @ghaerr in #1928
- [watcom] Add setjmp/longjmp by @ghaerr in #1922
- [watcom] Add setuid, setgid, move bsr.c to C library by @ghaerr in #1936
- [watcom] Add stackavail function to get alloca working by @ghaerr in #1931
- [watcom] Change \e to \033 in TUI for OWC by @ghaerr in #1934
- [watcom] Disable cannot find os2.lib warning using ewlink by @ghaerr in #1919
- [watcom] Fix malloc/realloc/free, add execl, execle, execlp, execlpe by @ghaerr in #1932
- [watcom] Get some TUI library and curses working by @ghaerr in #1933
- [watcom] Offset data and code sections to identify null pointers by @ghaerr in #1921
- [watcom] Reinstate auto CI test build of libc.lib by @ghaerr in #1975
- [watcom] Remove OpenWatcom default symbols and residual code (dup #1944) by @ghaerr in #1948
- [watcom] Rewrite argv/environ array in large model to far pointers by @ghaerr in #1920
- [watcom] Update ewcc/ewlink, add many system calls by @ghaerr in #1929
- [watcom] correct some C compiler, Librarian and Linker options by @jmalak in #1941
- [libc,watcom] Add weak symbol support for OpenWatcom to C library by @ghaerr in #1966
- [owc] Add fmemalloc syscall by @tyama501 in #1917
- [owc] Add unsigned to __pseg by @tyama501 in #1918
- ow-libc: use more eficient method #pragma aux aborts for functions wh… by @jmalak in #1946
- add STACK segment for OW libc by @jmalak in #1945
- remove nonsense, author used incorrect OpenWatcom configuration by @jmalak in #1949
- support for MacOs brew qemu installation by @madejusz in #1749
Other
- Add export TZ to /etc/profile, TOPDIR check to watcom.inc by @ghaerr in #1950
- Add screenshots to main README.md by @ghaerr in #2034
- Better guidance to run slattach.sh as root by @floriangit in #1638
- Cleanup system image Makefile by @ghaerr in #1973
- ELKS online link by @toncho11 in #1684
- Elksemu syscall fixes by @ccoffing in #1757
- Fix a variable logic and add a brace pair by @floriangit in #1890
- Path cleanups by @ccoffing in #1780
- Remove test code in ssd driver for changing request addresses by @ghaerr in #1725
- Screen portability fixes by @ccoffing in #1791
- Screenshot ZDS 286 by @toncho11 in #1807
- Tweaks to allow building on other BSDs by @ccoffing in #1778
- Update libc test to match current perror strings by @ccoffing in #1768
- Update meta driver file_ops function signatures by @ccoffing in #1794
- docker: install patch, required for build by @d33tah in #1784
- inital commit of elkscmd/beep by @floriangit in #1796
- popen must be matched with pclose, not fclose by @ccoffing in #1766
Documentation
- [docs] Add fmemalloc man pages for section 2 and 3 by @ghaerr in #1900
- [docs] Add man page for fsck-dos by @ghaerr in #1825
- [docs] Update documentation on calling conventions, update license texts for utils by @ghaerr in #1916
- [Documentation] Update function calling conventions and prologues by @ghaerr in #2005
- https://github.com/ghaerr/elks/wiki/Access-to-UMB-memory
- https://github.com/ghaerr/elks/wiki/Increase-available-memory
New Contributors
- @floriangit made their first contribution in #1638
- @madejusz made their first contribution in #1749
- @and3rson made their first contribution in #1760
- @d33tah made their first contribution in #1784
- @jmalak made their first contribution in #1941
- @vkoskiv made their first contribution in #1978
Full Changelog: v0.7.0...v0.8.0
Chief Maintainer: @ghaerr