1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
// TryFrom is used in the assembler stuff
#![feature(try_from)]
// Notes for later when clippy will work:
// https://rust-lang.github.io/rust-clippy/master/index.html#identity_op must be deactivated
//! cpclib aims at providing tools that help cross-development for the Amstrad CPC.
//! It is mainly focused on the creation of demos for the Amstrad CPC but could be used for games or tools.
//! Warning: none of the proposed features is fully fonctional or complete ! But hey should be correct.
//! I progressively implement them depending on my needs for my current demo.
//!
//! So what can be found there:
//! - z80 assembler (remember, it only assembles mnemonics I needed for my project)
//! - image conversion
//! - dsk manipulation
//!
//! Why releasing it publicly whereas no-one else will use it ? ;) Just because it is simpler to manage public crates with cargo. There is nothing secret here, and I welcome any contribution.
#[macro_use]
extern crate bitfield;
#[macro_use]
extern crate bitflags;
#[macro_use]
extern crate nom;
#[cfg(feature = "xferlib")]
extern crate curl;
#[cfg(feature = "xferlib")]
extern crate reqwest;
#[macro_use]
extern crate custom_error;
#[macro_use]
extern crate arrayref;
/// Screen emulation. Unknown state ;)
pub mod screen;
/// CPC pixels conversion routines. Useable
pub mod pixels;
/// CPC Image manipulation. Useable.
pub mod image;
/// PC to CPC image conversions. WIP
pub mod imageconverter;
/// Gate Array specific objects. Finished.
pub mod ga;
pub mod asm;
/// Z80 tokens manipulations. Useable
pub mod assembler;
/// Z80 emulation. WIP
pub mod z80emu;
/// Snapshot manipulation. Useable
pub mod sna;
/// Disk (edsk) manipulation. WIP
pub mod disc;
#[cfg(any(feature = "xferlib", feature = "xfer"))]
pub mod xfer;
// Some reexports
pub use crate::ga::{Ink, Palette, Pen};
pub use crate::disc::edsk::ExtendedDsk;