Skip to content

Zeal 8-bit OS Release v0.3.0

Compare
Choose a tag to compare
@Zeal8bit Zeal8bit released this 06 May 14:47
· 117 commits to main since this release

New release for Zeal 8-bit OS. It is still a beta version, so it is not complete and may still have bugs.

The Operating System is divided in two parts: the kernel, common to all targets and the targets implementation.

Kernel changelog:

  • Implemented an SDCC interface to be able to use SDCC's standard libraries (stdio, stdlib, ...)
  • Implemented an internal routine to get the current date from the kernel or the drivers
  • Implemented ZealFS filesystem, accessible in both read and write (https://github.com/Zeal8bit/ZealFS)
  • Added a text video interfaces (both ABI and API) for moving cursor on screen, modifying background/foreground color, clearing the screen, etc...
  • Added a keyboard interface (both ABI and API) to switch between modes (cooked, raw, ...) and defining keyboard keys value
  • Modified driver interface to remove unnecessary offset on the stack
  • Modified VFS to be able to open disks as block devices
  • Modified "Time" to "Timer" in the boot banner
  • Fixed a bug in the VFS layer that altered BC registers when invoking close syscall
  • Fixed a bug in the disk layer that returned the wrong filesystem in some cases
  • Fixed a bug that corrupted an opened device when closing a duplicate of it
  • Fixed a bug in the disk layer that didn't adjust file size when writing new data to it
  • Fixed a bug in the driver layer that skipped entries when searching a driver by name
  • Fixed two bugs in the VFS layer related to absolute path calculation
  • Fixed wrong O_CREAT value in VFS header file
  • Simplified driver initialization error message
  • Updated description for the some routines in strutils module
  • Updated README and Copyrights to 2023

Target support changelog:

The only supported target at the moment is still Zeal 8-bit Computer here are the changes related to it:

  • Implemented text video interfaces (cursor and colors) for both the UART driver and video driver
  • Implemented an I2C EEPROM driver which uses the newly implemented ZealFS filesystem
  • Implemented a simple setdate routine, called when setdate syscall is invoked
  • Modified I2C driver to generate a much cleaner signal, which has a 50% duty-cycle
  • Modified I2C driver to have a write function that accepts two buffer: one for register address, one for data
  • Modified UART driver to clear the screen and set background color when used as default video output
  • Fixed a bug that affected UART lines when sending data on the I2C bus
  • Fixed video text driver to only clean a line when scrolling down
  • Fixed a major bug in the keyboard driver that corrupted user memory and dropped some events
  • Disabled VBLANK interrupts as it is unused on real hardware at the moment

The romdisk, which should be target independent, also saw several changes:

  • Added "cp" command to copy files around
  • Added "clear" command to clear the screen
  • Added "hexdump" command to show any file content in hexadecimal
  • Modified "exec" to be able to pass parameters to programs invoked
  • Modified "exec" to make it implicit. It is now possible to execute programs by giving a path to them
  • Fixed a bug "less" command that overrode original error when close was invoked
  • Fixed the way empty commands are handled after being trimmed
  • Updated error messages to reflect new errors