#bios #api

neotron-common-bios

Common BIOS code and API for all Neotron systems

6 releases (breaking)

0.8.0 Feb 12, 2023
0.7.0 Nov 17, 2022
0.6.1 Apr 18, 2022
0.5.0 Apr 15, 2022
0.1.0 Mar 18, 2022
Download history 62/week @ 2023-01-17 23/week @ 2023-01-24 37/week @ 2023-01-31 52/week @ 2023-02-07 42/week @ 2023-02-14 37/week @ 2023-02-21 24/week @ 2023-02-28 55/week @ 2023-03-07 4/week @ 2023-03-14 19/week @ 2023-03-21 23/week @ 2023-03-28 16/week @ 2023-04-04 22/week @ 2023-04-11 4/week @ 2023-04-18 17/week @ 2023-04-25 76/week @ 2023-05-02

120 downloads per month
Used in neotron-os

GPL-3.0-or-later

105KB
1.5K SLoC

Neotron Common BIOS

This crate contains the BIOS API and common routines for all Neotron systems.

Build Status

Format Status

Hardware

Neotron runs on a variety of ARM Cortex-M based systems.

Status

This BIOS API crate is a work in progress.

License

Copyright (C) The Neotron Developers, 2019-2022

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Changelog

Unreleased Changes

  • None

v0.8.0

  • audio_mixer_channel_get_info now returns an Option not Result
  • Add impl From<core::option::Option for Option
  • Add impl From<Option for core::option::Option
  • Add impl From<core::result::Result for Result
  • Add impl From<Result for core::result::Result
  • Clarify that some parameters are actually expected to be numeric IDs
  • Use pc-keyboard::KeyCode to define Key Codes.

v0.7.0

  • Change time_get to time_clock_get
  • Change time_set to time_clock_set
  • Add time_ticks_get and time_ticks_per_second
  • Add bus_interrupt_status
  • Remove delay
  • Add back in the block_XXX API for reading/writing Block Devices.
  • Add idle function.
  • memory_get_region returns Option, not Result
  • Fix epoch used in conversion to chrono timestamp.

v0.6.1

  • No changes - v0.6.0 release was incorrect so re-releasing

v0.6.0

  • Removed 'block_X' APIs
  • Added 'bus_X' APIs
  • Added 'audio_X' APIs
  • Added 'i2c_X' APIs
  • Added 'video_get/set_palette' APIs
  • Added 'delay' API

v0.5.0

  • Added serial_read API
  • Added video_mode_needs_vram API
  • Added hid_get_event API
  • Added hid_set_leds API
  • Added video_wait_for_line API
  • Added block_dev_get_info API
  • Added block_write API
  • Added block_read API
  • Added block_verify API

v0.4.0

  • Changed memory_get_region to return a MemoryRegion
  • Changed video_set_framebuffer to take a *const u8 not *mut u8 - as the BIOS doesn't change video RAM.

v0.3.0

  • First published version. Cargo.toml reports at 0.1.0.

Dependencies

~1MB
~21K SLoC