[INFO] cloning repository https://github.com/tawandachiteshe/crust-6502-emulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tawandachiteshe/crust-6502-emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftawandachiteshe%2Fcrust-6502-emulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftawandachiteshe%2Fcrust-6502-emulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 439b34ea1955f7aaf6bd4e2a81651e4f1ad3d65e
[INFO] checking tawandachiteshe/crust-6502-emulator against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftawandachiteshe%2Fcrust-6502-emulator" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tawandachiteshe/crust-6502-emulator
[INFO] finished tweaking git repo https://github.com/tawandachiteshe/crust-6502-emulator
[INFO] tweaked toml for git repo https://github.com/tawandachiteshe/crust-6502-emulator written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tawandachiteshe/crust-6502-emulator on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tawandachiteshe/crust-6502-emulator already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded concat-string v1.0.1
[INFO] [stderr]   Downloaded proc-macro2 v1.0.72
[INFO] [stderr]   Downloaded minifb v0.25.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e5d19f600ea8898330d92aecd4a7e45fb05b90318a234a1f8445480fef3945b7
[INFO] running `Command { std: "docker" "start" "-a" "e5d19f600ea8898330d92aecd4a7e45fb05b90318a234a1f8445480fef3945b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e5d19f600ea8898330d92aecd4a7e45fb05b90318a234a1f8445480fef3945b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e5d19f600ea8898330d92aecd4a7e45fb05b90318a234a1f8445480fef3945b7", kill_on_drop: false }`
[INFO] [stdout] e5d19f600ea8898330d92aecd4a7e45fb05b90318a234a1f8445480fef3945b7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9386746fd91d2d567b37f2bb034061f17add7a1dbd34c32f6b135bbcd7043a1a
[INFO] running `Command { std: "docker" "start" "-a" "9386746fd91d2d567b37f2bb034061f17add7a1dbd34c32f6b135bbcd7043a1a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.72
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling pkg-config v0.3.28
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling xml-rs v0.8.19
[INFO] [stderr]    Compiling libc v0.2.151
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking smallvec v1.11.2
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]     Checking scoped-tls v1.0.1
[INFO] [stderr]    Compiling rustix v0.38.28
[INFO] [stderr]     Checking linux-raw-sys v0.4.12
[INFO] [stderr]     Checking libloading v0.8.1
[INFO] [stderr]     Checking bitflags v2.4.1
[INFO] [stderr]     Checking xcursor v0.3.5
[INFO] [stderr]     Checking fastrand v2.0.1
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]     Checking concat-string v1.0.1
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking tempfile v3.9.0
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]    Compiling minifb v0.25.0
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking crust-6502-emulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `RefCell` and `RefMut`
[INFO] [stdout]  --> src/main.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{RefCell, RefMut};
[INFO] [stdout]   |                 ^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/main.rs:2:41
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{Bound, BTreeMap, HashMap};
[INFO] [stdout]   |                                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::BitOr`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::BitOr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::FLAGS6502::B`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::FLAGS6502::B;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[macro_use(concat_string)]
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cpu6502` should have an upper camel case name
[INFO] [stdout]   --> src/main.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct cpu6502 {
[INFO] [stdout]    |        ^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cpu6502`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cpu` should have an upper camel case name
[INFO] [stdout]   --> src/main.rs:96:6
[INFO] [stdout]    |
[INFO] [stdout] 96 | type cpu = cpu6502;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1753:24
[INFO] [stdout]      |
[INFO] [stdout] 1753 |         cpu.addr_abs = ((hi << 8) | lo);
[INFO] [stdout]      |                        ^              ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1753 -         cpu.addr_abs = ((hi << 8) | lo);
[INFO] [stdout] 1753 +         cpu.addr_abs = (hi << 8) | lo ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:1790:27
[INFO] [stdout]      |
[INFO] [stdout] 1790 |         let lo = cpu.read(((t + (cpu.x as u16)) & 0x00FF)) as u16;
[INFO] [stdout]      |                           ^                             ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1790 -         let lo = cpu.read(((t + (cpu.x as u16)) & 0x00FF)) as u16;
[INFO] [stdout] 1790 +         let lo = cpu.read((t + (cpu.x as u16)) & 0x00FF ) as u16;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:1791:27
[INFO] [stdout]      |
[INFO] [stdout] 1791 |         let hi = cpu.read(((t + ((cpu.x as u16) + 1u16)) & 0x00FF)) as u16;
[INFO] [stdout]      |                           ^                                      ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1791 -         let hi = cpu.read(((t + ((cpu.x as u16) + 1u16)) & 0x00FF)) as u16;
[INFO] [stdout] 1791 +         let hi = cpu.read((t + ((cpu.x as u16) + 1u16)) & 0x00FF ) as u16;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:1803:27
[INFO] [stdout]      |
[INFO] [stdout] 1803 |         let lo = cpu.read((t & 0x00FF)) as u16;
[INFO] [stdout]      |                           ^          ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1803 -         let lo = cpu.read((t & 0x00FF)) as u16;
[INFO] [stdout] 1803 +         let lo = cpu.read(t & 0x00FF ) as u16;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:1804:27
[INFO] [stdout]      |
[INFO] [stdout] 1804 |         let hi = cpu.read(((t + 1) & 0x00FF)) as u16;
[INFO] [stdout]      |                           ^                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1804 -         let hi = cpu.read(((t + 1) & 0x00FF)) as u16;
[INFO] [stdout] 1804 +         let hi = cpu.read((t + 1) & 0x00FF ) as u16;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1806:24
[INFO] [stdout]      |
[INFO] [stdout] 1806 |         cpu.addr_abs = ((hi << 8) | lo);
[INFO] [stdout]      |                        ^              ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1806 -         cpu.addr_abs = ((hi << 8) | lo);
[INFO] [stdout] 1806 +         cpu.addr_abs = (hi << 8) | lo ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1823:20
[INFO] [stdout]      |
[INFO] [stdout] 1823 |         cpu.temp = ((cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16));
[INFO] [stdout]      |                    ^                                                                           ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1823 -         cpu.temp = ((cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16));
[INFO] [stdout] 1823 +         cpu.temp = (cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16) ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1857:20
[INFO] [stdout]      |
[INFO] [stdout] 1857 |         cpu.temp = ((cpu.fetched as u16) << 1);
[INFO] [stdout]      |                    ^                         ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1857 -         cpu.temp = ((cpu.fetched as u16) << 1);
[INFO] [stdout] 1857 +         cpu.temp = (cpu.fetched as u16) << 1 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main.rs:1887:16
[INFO] [stdout]      |
[INFO] [stdout] 1887 |             if ((cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)) {
[INFO] [stdout]      |                ^                                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1887 -             if ((cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)) {
[INFO] [stdout] 1887 +             if (cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:2328:20
[INFO] [stdout]      |
[INFO] [stdout] 2328 |         cpu.temp = ((cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16));
[INFO] [stdout]      |                    ^                                                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2328 -         cpu.temp = ((cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16));
[INFO] [stdout] 2328 +         cpu.temp = (cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16) ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:2330:36
[INFO] [stdout]      |
[INFO] [stdout] 2330 |         cpu.set_flag(FLAGS6502::Z, ((cpu.temp & 0x00FF) == 0));
[INFO] [stdout]      |                                    ^                        ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2330 -         cpu.set_flag(FLAGS6502::Z, ((cpu.temp & 0x00FF) == 0));
[INFO] [stdout] 2330 +         cpu.set_flag(FLAGS6502::Z, (cpu.temp & 0x00FF) == 0 );
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:2453:28
[INFO] [stdout]      |
[INFO] [stdout] 2453 |             self.cycles += (additional_cycle1 & additional_cycle2);
[INFO] [stdout]      |                            ^                                     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2453 -             self.cycles += (additional_cycle1 & additional_cycle2);
[INFO] [stdout] 2453 +             self.cycles += additional_cycle1 & additional_cycle2 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:2489:19
[INFO] [stdout]      |
[INFO] [stdout] 2489 |         self.pc = ((hi << 8) | lo);
[INFO] [stdout]      |                   ^              ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2489 -         self.pc = ((hi << 8) | lo);
[INFO] [stdout] 2489 +         self.pc = (hi << 8) | lo ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main.rs:2511:12
[INFO] [stdout]      |
[INFO] [stdout] 2511 |         if (self.get_flag(FLAGS6502::I) == 0) {
[INFO] [stdout]      |            ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2511 -         if (self.get_flag(FLAGS6502::I) == 0) {
[INFO] [stdout] 2511 +         if self.get_flag(FLAGS6502::I) == 0  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:2515:17
[INFO] [stdout]      |
[INFO] [stdout] 2515 |                 (0x0100u16 + self.stkp as u16),
[INFO] [stdout]      |                 ^                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2515 -                 (0x0100u16 + self.stkp as u16),
[INFO] [stdout] 2515 +                 0x0100u16 + self.stkp as u16 ,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:2519:24
[INFO] [stdout]      |
[INFO] [stdout] 2519 |             self.write((0x0100u16 + self.stkp as u16), (self.pc & 0x00FF) as u8);
[INFO] [stdout]      |                        ^                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2519 -             self.write((0x0100u16 + self.stkp as u16), (self.pc & 0x00FF) as u8);
[INFO] [stdout] 2519 +             self.write(0x0100u16 + self.stkp as u16 , (self.pc & 0x00FF) as u8);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `read_only`
[INFO] [stdout]   --> src/main.rs:32:31
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn read(&self, addr: u16, read_only: bool) -> u8 {
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_only`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RefCell` and `RefMut`
[INFO] [stdout]  --> src/main.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{RefCell, RefMut};
[INFO] [stdout]   |                 ^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/main.rs:2:41
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{Bound, BTreeMap, HashMap};
[INFO] [stdout]   |                                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::BitOr`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::BitOr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::FLAGS6502::B`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::FLAGS6502::B;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[macro_use(concat_string)]
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cpu6502` should have an upper camel case name
[INFO] [stdout]   --> src/main.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct cpu6502 {
[INFO] [stdout]    |        ^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cpu6502`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cpu` should have an upper camel case name
[INFO] [stdout]   --> src/main.rs:96:6
[INFO] [stdout]    |
[INFO] [stdout] 96 | type cpu = cpu6502;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1753:24
[INFO] [stdout]      |
[INFO] [stdout] 1753 |         cpu.addr_abs = ((hi << 8) | lo);
[INFO] [stdout]      |                        ^              ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1753 -         cpu.addr_abs = ((hi << 8) | lo);
[INFO] [stdout] 1753 +         cpu.addr_abs = (hi << 8) | lo ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:1790:27
[INFO] [stdout]      |
[INFO] [stdout] 1790 |         let lo = cpu.read(((t + (cpu.x as u16)) & 0x00FF)) as u16;
[INFO] [stdout]      |                           ^                             ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1790 -         let lo = cpu.read(((t + (cpu.x as u16)) & 0x00FF)) as u16;
[INFO] [stdout] 1790 +         let lo = cpu.read((t + (cpu.x as u16)) & 0x00FF ) as u16;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:1791:27
[INFO] [stdout]      |
[INFO] [stdout] 1791 |         let hi = cpu.read(((t + ((cpu.x as u16) + 1u16)) & 0x00FF)) as u16;
[INFO] [stdout]      |                           ^                                      ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1791 -         let hi = cpu.read(((t + ((cpu.x as u16) + 1u16)) & 0x00FF)) as u16;
[INFO] [stdout] 1791 +         let hi = cpu.read((t + ((cpu.x as u16) + 1u16)) & 0x00FF ) as u16;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:1803:27
[INFO] [stdout]      |
[INFO] [stdout] 1803 |         let lo = cpu.read((t & 0x00FF)) as u16;
[INFO] [stdout]      |                           ^          ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1803 -         let lo = cpu.read((t & 0x00FF)) as u16;
[INFO] [stdout] 1803 +         let lo = cpu.read(t & 0x00FF ) as u16;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:1804:27
[INFO] [stdout]      |
[INFO] [stdout] 1804 |         let hi = cpu.read(((t + 1) & 0x00FF)) as u16;
[INFO] [stdout]      |                           ^                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1804 -         let hi = cpu.read(((t + 1) & 0x00FF)) as u16;
[INFO] [stdout] 1804 +         let hi = cpu.read((t + 1) & 0x00FF ) as u16;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1806:24
[INFO] [stdout]      |
[INFO] [stdout] 1806 |         cpu.addr_abs = ((hi << 8) | lo);
[INFO] [stdout]      |                        ^              ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1806 -         cpu.addr_abs = ((hi << 8) | lo);
[INFO] [stdout] 1806 +         cpu.addr_abs = (hi << 8) | lo ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1823:20
[INFO] [stdout]      |
[INFO] [stdout] 1823 |         cpu.temp = ((cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16));
[INFO] [stdout]      |                    ^                                                                           ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1823 -         cpu.temp = ((cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16));
[INFO] [stdout] 1823 +         cpu.temp = (cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16) ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1857:20
[INFO] [stdout]      |
[INFO] [stdout] 1857 |         cpu.temp = ((cpu.fetched as u16) << 1);
[INFO] [stdout]      |                    ^                         ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1857 -         cpu.temp = ((cpu.fetched as u16) << 1);
[INFO] [stdout] 1857 +         cpu.temp = (cpu.fetched as u16) << 1 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main.rs:1887:16
[INFO] [stdout]      |
[INFO] [stdout] 1887 |             if ((cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)) {
[INFO] [stdout]      |                ^                                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1887 -             if ((cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)) {
[INFO] [stdout] 1887 +             if (cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:2328:20
[INFO] [stdout]      |
[INFO] [stdout] 2328 |         cpu.temp = ((cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16));
[INFO] [stdout]      |                    ^                                                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2328 -         cpu.temp = ((cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16));
[INFO] [stdout] 2328 +         cpu.temp = (cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16) ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:2330:36
[INFO] [stdout]      |
[INFO] [stdout] 2330 |         cpu.set_flag(FLAGS6502::Z, ((cpu.temp & 0x00FF) == 0));
[INFO] [stdout]      |                                    ^                        ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2330 -         cpu.set_flag(FLAGS6502::Z, ((cpu.temp & 0x00FF) == 0));
[INFO] [stdout] 2330 +         cpu.set_flag(FLAGS6502::Z, (cpu.temp & 0x00FF) == 0 );
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:2453:28
[INFO] [stdout]      |
[INFO] [stdout] 2453 |             self.cycles += (additional_cycle1 & additional_cycle2);
[INFO] [stdout]      |                            ^                                     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2453 -             self.cycles += (additional_cycle1 & additional_cycle2);
[INFO] [stdout] 2453 +             self.cycles += additional_cycle1 & additional_cycle2 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:2489:19
[INFO] [stdout]      |
[INFO] [stdout] 2489 |         self.pc = ((hi << 8) | lo);
[INFO] [stdout]      |                   ^              ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2489 -         self.pc = ((hi << 8) | lo);
[INFO] [stdout] 2489 +         self.pc = (hi << 8) | lo ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/main.rs:2511:12
[INFO] [stdout]      |
[INFO] [stdout] 2511 |         if (self.get_flag(FLAGS6502::I) == 0) {
[INFO] [stdout]      |            ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2511 -         if (self.get_flag(FLAGS6502::I) == 0) {
[INFO] [stdout] 2511 +         if self.get_flag(FLAGS6502::I) == 0  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:2515:17
[INFO] [stdout]      |
[INFO] [stdout] 2515 |                 (0x0100u16 + self.stkp as u16),
[INFO] [stdout]      |                 ^                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2515 -                 (0x0100u16 + self.stkp as u16),
[INFO] [stdout] 2515 +                 0x0100u16 + self.stkp as u16 ,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/main.rs:2519:24
[INFO] [stdout]      |
[INFO] [stdout] 2519 |             self.write((0x0100u16 + self.stkp as u16), (self.pc & 0x00FF) as u8);
[INFO] [stdout]      |                        ^                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2519 -             self.write((0x0100u16 + self.stkp as u16), (self.pc & 0x00FF) as u8);
[INFO] [stdout] 2519 +             self.write(0x0100u16 + self.stkp as u16 , (self.pc & 0x00FF) as u8);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]     --> src/main.rs:2423:12
[INFO] [stdout]      |
[INFO] [stdout] 2423 |     fn XXX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |            ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stop`
[INFO] [stdout]     --> src/main.rs:2581:43
[INFO] [stdout]      |
[INFO] [stdout] 2581 |     fn disassemble(&mut self, start: u16, stop: u16) -> BTreeMap<u16, String> {
[INFO] [stdout]      |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_stop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `value` is never read
[INFO] [stdout]     --> src/main.rs:2583:25
[INFO] [stdout]      |
[INFO] [stdout] 2583 |         let mut value = 0x00u8;
[INFO] [stdout]      |                         ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lo` is never read
[INFO] [stdout]     --> src/main.rs:2584:22
[INFO] [stdout]      |
[INFO] [stdout] 2584 |         let mut lo = 0x00u8;
[INFO] [stdout]      |                      ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2585:22
[INFO] [stdout]      |
[INFO] [stdout] 2585 |         let mut hi = 0x00u8;
[INFO] [stdout]      |                      ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2638:17
[INFO] [stdout]      |
[INFO] [stdout] 2638 |                 hi = 0x00;
[INFO] [stdout]      |                 ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2632:17
[INFO] [stdout]      |
[INFO] [stdout] 2632 |                 hi = 0x00;
[INFO] [stdout]      |                 ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2626:17
[INFO] [stdout]      |
[INFO] [stdout] 2626 |                 hi = 0x00;
[INFO] [stdout]      |                 ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2620:17
[INFO] [stdout]      |
[INFO] [stdout] 2620 |                 hi = 0x00;
[INFO] [stdout]      |                 ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2614:17
[INFO] [stdout]      |
[INFO] [stdout] 2614 |                 hi = 0x00;
[INFO] [stdout]      |                 ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `line_addr` is never read
[INFO] [stdout]     --> src/main.rs:2587:29
[INFO] [stdout]      |
[INFO] [stdout] 2587 |         let mut line_addr = 0u16;
[INFO] [stdout]      |                             ^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2761:9
[INFO] [stdout]      |
[INFO] [stdout] 2761 |     let mut ram_x = x as usize;
[INFO] [stdout]      |         ----^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]     --> src/main.rs:2766:9
[INFO] [stdout]      |
[INFO] [stdout] 2766 |     for row in 0..rows {
[INFO] [stdout]      |         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `column`
[INFO] [stdout]     --> src/main.rs:2769:13
[INFO] [stdout]      |
[INFO] [stdout] 2769 |         for column in 0..columns {
[INFO] [stdout]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instruction`
[INFO] [stdout]     --> src/main.rs:2805:17
[INFO] [stdout]      |
[INFO] [stdout] 2805 |     if let Some(instruction) = map_lines.get(&cpu.pc) {
[INFO] [stdout]      |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `line_y` is never read
[INFO] [stdout]     --> src/main.rs:2803:5
[INFO] [stdout]      |
[INFO] [stdout] 2803 |     line_y = (lines >> 1) * 10 + y;
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2824:9
[INFO] [stdout]      |
[INFO] [stdout] 2824 |     let mut code_assemble_bin = String::from("A2 0A 8E 00 00 A2 03 8E 01 00 AC 00 00 A9 00 18 6D 01 00 88 D0 FA 8D 02 00 EA EA EA");
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `irq`, `nmi`, and `connect_bus` are never used
[INFO] [stdout]     --> src/main.rs:2510:8
[INFO] [stdout]      |
[INFO] [stdout]   98 | impl cpu6502 {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2510 |     fn irq(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 2541 |     fn nmi(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 2576 |     fn connect_bus(&mut self, bus: Bus) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_hex` is never used
[INFO] [stdout]     --> src/main.rs:2709:4
[INFO] [stdout]      |
[INFO] [stdout] 2709 | fn to_hex<T: LowerHex>(number: T, d: u16) -> String {
[INFO] [stdout]      |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_cpu` is never used
[INFO] [stdout]     --> src/main.rs:2723:4
[INFO] [stdout]      |
[INFO] [stdout] 2723 | fn print_cpu(cpu: &mut cpu6502)
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/main.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |         if addr >= 0x0000 && addr <= 0xFFFF {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/main.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |         if addr >= 0x0000 && addr <= 0xFFFF {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/main.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |         if addr >= 0x0000 && addr <= 0xFFFF {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/main.rs:33:30
[INFO] [stdout]    |
[INFO] [stdout] 33 |         if addr >= 0x0000 && addr <= 0xFFFF {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IMP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1676:8
[INFO] [stdout]      |
[INFO] [stdout] 1676 |     fn IMP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `imp`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IMM` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1680:8
[INFO] [stdout]      |
[INFO] [stdout] 1680 |     fn IMM(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `imm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ZP0` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1685:8
[INFO] [stdout]      |
[INFO] [stdout] 1685 |     fn ZP0(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `zp0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ZPX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1693:8
[INFO] [stdout]      |
[INFO] [stdout] 1693 |     fn ZPX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `zpx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ZPY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1701:8
[INFO] [stdout]      |
[INFO] [stdout] 1701 |     fn ZPY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `zpy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `REL` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1708:8
[INFO] [stdout]      |
[INFO] [stdout] 1708 |     fn REL(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `rel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ABS` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1718:8
[INFO] [stdout]      |
[INFO] [stdout] 1718 |     fn ABS(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `abs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ABX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1730:8
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn ABX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `abx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ABY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1747:8
[INFO] [stdout]      |
[INFO] [stdout] 1747 |     fn ABY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `aby`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IND` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1764:8
[INFO] [stdout]      |
[INFO] [stdout] 1764 |     fn IND(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `ind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IZX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1786:8
[INFO] [stdout]      |
[INFO] [stdout] 1786 |     fn IZX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case (notice the capitalization): `izx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IZY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1799:8
[INFO] [stdout]      |
[INFO] [stdout] 1799 |     fn IZY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case (notice the capitalization): `izy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ADC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1817:8
[INFO] [stdout]      |
[INFO] [stdout] 1817 |     fn ADC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `adc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `AND` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1848:8
[INFO] [stdout]      |
[INFO] [stdout] 1848 |     fn AND(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `and`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ASL` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1855:8
[INFO] [stdout]      |
[INFO] [stdout] 1855 |     fn ASL(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `asl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:1861:12
[INFO] [stdout]      |
[INFO] [stdout] 1861 |         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]      = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 1861 -         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout] 1861 +         if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BCC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1869:8
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn BCC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bcc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BCS` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1882:8
[INFO] [stdout]      |
[INFO] [stdout] 1882 |     fn BCS(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BEQ` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1895:8
[INFO] [stdout]      |
[INFO] [stdout] 1895 |     fn BEQ(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `beq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BIT` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1908:8
[INFO] [stdout]      |
[INFO] [stdout] 1908 |     fn BIT(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BMI` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1918:8
[INFO] [stdout]      |
[INFO] [stdout] 1918 |     fn BMI(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bmi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BNE` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1932:8
[INFO] [stdout]      |
[INFO] [stdout] 1932 |     fn BNE(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bne`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BPL` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1947:8
[INFO] [stdout]      |
[INFO] [stdout] 1947 |     fn BPL(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bpl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BRK` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1963:8
[INFO] [stdout]      |
[INFO] [stdout] 1963 |     fn BRK(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `brk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BVC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1982:8
[INFO] [stdout]      |
[INFO] [stdout] 1982 |     fn BVC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bvc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BVS` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2000:8
[INFO] [stdout]      |
[INFO] [stdout] 2000 |     fn BVS(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bvs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CLC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2019:8
[INFO] [stdout]      |
[INFO] [stdout] 2019 |     fn CLC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `clc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CLD` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2026:8
[INFO] [stdout]      |
[INFO] [stdout] 2026 |     fn CLD(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `cld`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CLI` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2032:8
[INFO] [stdout]      |
[INFO] [stdout] 2032 |     fn CLI(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CLV` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2037:8
[INFO] [stdout]      |
[INFO] [stdout] 2037 |     fn CLV(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `clv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CMP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2043:8
[INFO] [stdout]      |
[INFO] [stdout] 2043 |     fn CMP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `cmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2054:8
[INFO] [stdout]      |
[INFO] [stdout] 2054 |     fn CPX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `cpx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2064:8
[INFO] [stdout]      |
[INFO] [stdout] 2064 |     fn CPY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `cpy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `DEC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2074:8
[INFO] [stdout]      |
[INFO] [stdout] 2074 |     fn DEC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `dec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `DEX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2084:8
[INFO] [stdout]      |
[INFO] [stdout] 2084 |     fn DEX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `dex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `DEY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2093:8
[INFO] [stdout]      |
[INFO] [stdout] 2093 |     fn DEY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `dey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `EOR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2102:8
[INFO] [stdout]      |
[INFO] [stdout] 2102 |     fn EOR(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `eor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `INC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2113:8
[INFO] [stdout]      |
[INFO] [stdout] 2113 |     fn INC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `inc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `INX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2124:8
[INFO] [stdout]      |
[INFO] [stdout] 2124 |     fn INX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `inx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `INY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2134:8
[INFO] [stdout]      |
[INFO] [stdout] 2134 |     fn INY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `iny`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `JMP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2143:8
[INFO] [stdout]      |
[INFO] [stdout] 2143 |     fn JMP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `jmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `JSR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2149:8
[INFO] [stdout]      |
[INFO] [stdout] 2149 |     fn JSR(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `jsr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `LDA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2163:8
[INFO] [stdout]      |
[INFO] [stdout] 2163 |     fn LDA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `lda`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `LDX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2171:8
[INFO] [stdout]      |
[INFO] [stdout] 2171 |     fn LDX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `ldx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `LDY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2180:8
[INFO] [stdout]      |
[INFO] [stdout] 2180 |     fn LDY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `ldy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `LSR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2188:8
[INFO] [stdout]      |
[INFO] [stdout] 2188 |     fn LSR(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `lsr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2196:12
[INFO] [stdout]      |
[INFO] [stdout] 2196 |         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2196 -         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout] 2196 +         if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `NOP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2205:8
[INFO] [stdout]      |
[INFO] [stdout] 2205 |     fn NOP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `nop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ORA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2219:8
[INFO] [stdout]      |
[INFO] [stdout] 2219 |     fn ORA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `ora`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `PHA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2227:8
[INFO] [stdout]      |
[INFO] [stdout] 2227 |     fn PHA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `pha`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `PHP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2233:8
[INFO] [stdout]      |
[INFO] [stdout] 2233 |     fn PHP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `php`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `PLA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2241:8
[INFO] [stdout]      |
[INFO] [stdout] 2241 |     fn PLA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `pla`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `PLP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2250:8
[INFO] [stdout]      |
[INFO] [stdout] 2250 |     fn PLP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `plp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ROL` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2259:8
[INFO] [stdout]      |
[INFO] [stdout] 2259 |     fn ROL(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `rol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2267:12
[INFO] [stdout]      |
[INFO] [stdout] 2267 |         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2267 -         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout] 2267 +         if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ROR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2276:8
[INFO] [stdout]      |
[INFO] [stdout] 2276 |     fn ROR(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `ror`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2284:12
[INFO] [stdout]      |
[INFO] [stdout] 2284 |         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2284 -         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout] 2284 +         if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `RTI` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2294:8
[INFO] [stdout]      |
[INFO] [stdout] 2294 |     fn RTI(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `rti`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `RTS` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2309:8
[INFO] [stdout]      |
[INFO] [stdout] 2309 |     fn RTS(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `rts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `SBC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2319:8
[INFO] [stdout]      |
[INFO] [stdout] 2319 |     fn SBC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sbc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `SEC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2337:8
[INFO] [stdout]      |
[INFO] [stdout] 2337 |     fn SEC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `SED` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2342:8
[INFO] [stdout]      |
[INFO] [stdout] 2342 |     fn SED(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `SEI` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2347:8
[INFO] [stdout]      |
[INFO] [stdout] 2347 |     fn SEI(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sei`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `STA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2353:8
[INFO] [stdout]      |
[INFO] [stdout] 2353 |     fn STA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `STX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2359:8
[INFO] [stdout]      |
[INFO] [stdout] 2359 |     fn STX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `stx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `STY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2364:8
[INFO] [stdout]      |
[INFO] [stdout] 2364 |     fn STY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TAX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2369:8
[INFO] [stdout]      |
[INFO] [stdout] 2369 |     fn TAX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `tax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TAY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2377:8
[INFO] [stdout]      |
[INFO] [stdout] 2377 |     fn TAY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `tay`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TSX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2385:8
[INFO] [stdout]      |
[INFO] [stdout] 2385 |     fn TSX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `tsx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TXA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2395:8
[INFO] [stdout]      |
[INFO] [stdout] 2395 |     fn TXA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `txa`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TXS` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2405:8
[INFO] [stdout]      |
[INFO] [stdout] 2405 |     fn TXS(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `txs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TYA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2412:8
[INFO] [stdout]      |
[INFO] [stdout] 2412 |     fn TYA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `tya`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `XXX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2423:8
[INFO] [stdout]      |
[INFO] [stdout] 2423 |     fn XXX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case (notice the capitalization): `xxx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2565:13
[INFO] [stdout]      |
[INFO] [stdout] 2565 |         if !(self.lookup[self.opcode as usize].addr_mode == cpu::IMP) {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2565 -         if !(self.lookup[self.opcode as usize].addr_mode == cpu::IMP) {
[INFO] [stdout] 2565 +         if !std::ptr::fn_addr_eq(self.lookup[self.opcode as usize].addr_mode, cpu::IMP as for<'a> fn(&'a mut cpu6502) -> u8) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2601:16
[INFO] [stdout]      |
[INFO] [stdout] 2601 |             if self.lookup[opcode].addr_mode == cpu::IMP
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2601 -             if self.lookup[opcode].addr_mode == cpu::IMP
[INFO] [stdout] 2601 +             if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IMP as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2604:23
[INFO] [stdout]      |
[INFO] [stdout] 2604 |             } else if self.lookup[opcode].addr_mode == cpu::IMM
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2604 -             } else if self.lookup[opcode].addr_mode == cpu::IMM
[INFO] [stdout] 2604 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IMM as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2610:23
[INFO] [stdout]      |
[INFO] [stdout] 2610 |             } else if self.lookup[opcode].addr_mode == cpu::ZP0
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2610 -             } else if self.lookup[opcode].addr_mode == cpu::ZP0
[INFO] [stdout] 2610 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZP0 as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2616:23
[INFO] [stdout]      |
[INFO] [stdout] 2616 |             } else if self.lookup[opcode].addr_mode == cpu::ZPX
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2616 -             } else if self.lookup[opcode].addr_mode == cpu::ZPX
[INFO] [stdout] 2616 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZPX as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2622:23
[INFO] [stdout]      |
[INFO] [stdout] 2622 |             } else if self.lookup[opcode].addr_mode == cpu::ZPY
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2622 -             } else if self.lookup[opcode].addr_mode == cpu::ZPY
[INFO] [stdout] 2622 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZPY as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2628:23
[INFO] [stdout]      |
[INFO] [stdout] 2628 |             } else if self.lookup[opcode].addr_mode == cpu::IZX
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2628 -             } else if self.lookup[opcode].addr_mode == cpu::IZX
[INFO] [stdout] 2628 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IZX as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2634:23
[INFO] [stdout]      |
[INFO] [stdout] 2634 |             } else if self.lookup[opcode].addr_mode == cpu::IZY
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2634 -             } else if self.lookup[opcode].addr_mode == cpu::IZY
[INFO] [stdout] 2634 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IZY as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2640:23
[INFO] [stdout]      |
[INFO] [stdout] 2640 |             } else if self.lookup[opcode].addr_mode == cpu::ABS
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2640 -             } else if self.lookup[opcode].addr_mode == cpu::ABS
[INFO] [stdout] 2640 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABS as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2647:23
[INFO] [stdout]      |
[INFO] [stdout] 2647 |             } else if self.lookup[opcode].addr_mode == cpu::ABX
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2647 -             } else if self.lookup[opcode].addr_mode == cpu::ABX
[INFO] [stdout] 2647 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABX as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2654:23
[INFO] [stdout]      |
[INFO] [stdout] 2654 |             } else if self.lookup[opcode].addr_mode == cpu::ABY
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2654 -             } else if self.lookup[opcode].addr_mode == cpu::ABY
[INFO] [stdout] 2654 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABY as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2661:23
[INFO] [stdout]      |
[INFO] [stdout] 2661 |             } else if self.lookup[opcode].addr_mode == cpu::IND
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2661 -             } else if self.lookup[opcode].addr_mode == cpu::IND
[INFO] [stdout] 2661 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IND as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2668:23
[INFO] [stdout]      |
[INFO] [stdout] 2668 |             } else if self.lookup[opcode].addr_mode == cpu::REL
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2668 -             } else if self.lookup[opcode].addr_mode == cpu::REL
[INFO] [stdout] 2668 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::REL as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `read_only`
[INFO] [stdout]   --> src/main.rs:32:31
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn read(&self, addr: u16, read_only: bool) -> u8 {
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_only`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]     --> src/main.rs:2423:12
[INFO] [stdout]      |
[INFO] [stdout] 2423 |     fn XXX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |            ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stop`
[INFO] [stdout]     --> src/main.rs:2581:43
[INFO] [stdout]      |
[INFO] [stdout] 2581 |     fn disassemble(&mut self, start: u16, stop: u16) -> BTreeMap<u16, String> {
[INFO] [stdout]      |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_stop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `value` is never read
[INFO] [stdout]     --> src/main.rs:2583:25
[INFO] [stdout]      |
[INFO] [stdout] 2583 |         let mut value = 0x00u8;
[INFO] [stdout]      |                         ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lo` is never read
[INFO] [stdout]     --> src/main.rs:2584:22
[INFO] [stdout]      |
[INFO] [stdout] 2584 |         let mut lo = 0x00u8;
[INFO] [stdout]      |                      ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2585:22
[INFO] [stdout]      |
[INFO] [stdout] 2585 |         let mut hi = 0x00u8;
[INFO] [stdout]      |                      ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2638:17
[INFO] [stdout]      |
[INFO] [stdout] 2638 |                 hi = 0x00;
[INFO] [stdout]      |                 ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2632:17
[INFO] [stdout]      |
[INFO] [stdout] 2632 |                 hi = 0x00;
[INFO] [stdout]      |                 ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2626:17
[INFO] [stdout]      |
[INFO] [stdout] 2626 |                 hi = 0x00;
[INFO] [stdout]      |                 ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2620:17
[INFO] [stdout]      |
[INFO] [stdout] 2620 |                 hi = 0x00;
[INFO] [stdout]      |                 ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]     --> src/main.rs:2614:17
[INFO] [stdout]      |
[INFO] [stdout] 2614 |                 hi = 0x00;
[INFO] [stdout]      |                 ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `line_addr` is never read
[INFO] [stdout]     --> src/main.rs:2587:29
[INFO] [stdout]      |
[INFO] [stdout] 2587 |         let mut line_addr = 0u16;
[INFO] [stdout]      |                             ^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2761:9
[INFO] [stdout]      |
[INFO] [stdout] 2761 |     let mut ram_x = x as usize;
[INFO] [stdout]      |         ----^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]     --> src/main.rs:2766:9
[INFO] [stdout]      |
[INFO] [stdout] 2766 |     for row in 0..rows {
[INFO] [stdout]      |         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `column`
[INFO] [stdout]     --> src/main.rs:2769:13
[INFO] [stdout]      |
[INFO] [stdout] 2769 |         for column in 0..columns {
[INFO] [stdout]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instruction`
[INFO] [stdout]     --> src/main.rs:2805:17
[INFO] [stdout]      |
[INFO] [stdout] 2805 |     if let Some(instruction) = map_lines.get(&cpu.pc) {
[INFO] [stdout]      |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `line_y` is never read
[INFO] [stdout]     --> src/main.rs:2803:5
[INFO] [stdout]      |
[INFO] [stdout] 2803 |     line_y = (lines >> 1) * 10 + y;
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2824:9
[INFO] [stdout]      |
[INFO] [stdout] 2824 |     let mut code_assemble_bin = String::from("A2 0A 8E 00 00 A2 03 8E 01 00 AC 00 00 A9 00 18 6D 01 00 88 D0 FA 8D 02 00 EA EA EA");
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `irq`, `nmi`, and `connect_bus` are never used
[INFO] [stdout]     --> src/main.rs:2510:8
[INFO] [stdout]      |
[INFO] [stdout]   98 | impl cpu6502 {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2510 |     fn irq(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 2541 |     fn nmi(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 2576 |     fn connect_bus(&mut self, bus: Bus) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_hex` is never used
[INFO] [stdout]     --> src/main.rs:2709:4
[INFO] [stdout]      |
[INFO] [stdout] 2709 | fn to_hex<T: LowerHex>(number: T, d: u16) -> String {
[INFO] [stdout]      |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_cpu` is never used
[INFO] [stdout]     --> src/main.rs:2723:4
[INFO] [stdout]      |
[INFO] [stdout] 2723 | fn print_cpu(cpu: &mut cpu6502)
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/main.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |         if addr >= 0x0000 && addr <= 0xFFFF {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/main.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |         if addr >= 0x0000 && addr <= 0xFFFF {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/main.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |         if addr >= 0x0000 && addr <= 0xFFFF {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/main.rs:33:30
[INFO] [stdout]    |
[INFO] [stdout] 33 |         if addr >= 0x0000 && addr <= 0xFFFF {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IMP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1676:8
[INFO] [stdout]      |
[INFO] [stdout] 1676 |     fn IMP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `imp`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IMM` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1680:8
[INFO] [stdout]      |
[INFO] [stdout] 1680 |     fn IMM(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `imm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ZP0` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1685:8
[INFO] [stdout]      |
[INFO] [stdout] 1685 |     fn ZP0(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `zp0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ZPX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1693:8
[INFO] [stdout]      |
[INFO] [stdout] 1693 |     fn ZPX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `zpx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ZPY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1701:8
[INFO] [stdout]      |
[INFO] [stdout] 1701 |     fn ZPY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `zpy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `REL` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1708:8
[INFO] [stdout]      |
[INFO] [stdout] 1708 |     fn REL(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `rel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ABS` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1718:8
[INFO] [stdout]      |
[INFO] [stdout] 1718 |     fn ABS(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `abs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ABX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1730:8
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn ABX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `abx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ABY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1747:8
[INFO] [stdout]      |
[INFO] [stdout] 1747 |     fn ABY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `aby`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IND` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1764:8
[INFO] [stdout]      |
[INFO] [stdout] 1764 |     fn IND(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `ind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IZX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1786:8
[INFO] [stdout]      |
[INFO] [stdout] 1786 |     fn IZX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case (notice the capitalization): `izx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IZY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1799:8
[INFO] [stdout]      |
[INFO] [stdout] 1799 |     fn IZY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case (notice the capitalization): `izy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ADC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1817:8
[INFO] [stdout]      |
[INFO] [stdout] 1817 |     fn ADC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `adc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `AND` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1848:8
[INFO] [stdout]      |
[INFO] [stdout] 1848 |     fn AND(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `and`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ASL` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1855:8
[INFO] [stdout]      |
[INFO] [stdout] 1855 |     fn ASL(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `asl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:1861:12
[INFO] [stdout]      |
[INFO] [stdout] 1861 |         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]      = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 1861 -         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout] 1861 +         if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BCC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1869:8
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn BCC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bcc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BCS` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1882:8
[INFO] [stdout]      |
[INFO] [stdout] 1882 |     fn BCS(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BEQ` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1895:8
[INFO] [stdout]      |
[INFO] [stdout] 1895 |     fn BEQ(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `beq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BIT` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1908:8
[INFO] [stdout]      |
[INFO] [stdout] 1908 |     fn BIT(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BMI` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1918:8
[INFO] [stdout]      |
[INFO] [stdout] 1918 |     fn BMI(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bmi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BNE` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1932:8
[INFO] [stdout]      |
[INFO] [stdout] 1932 |     fn BNE(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bne`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BPL` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1947:8
[INFO] [stdout]      |
[INFO] [stdout] 1947 |     fn BPL(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bpl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BRK` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1963:8
[INFO] [stdout]      |
[INFO] [stdout] 1963 |     fn BRK(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `brk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BVC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1982:8
[INFO] [stdout]      |
[INFO] [stdout] 1982 |     fn BVC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bvc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `BVS` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2000:8
[INFO] [stdout]      |
[INFO] [stdout] 2000 |     fn BVS(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `bvs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CLC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2019:8
[INFO] [stdout]      |
[INFO] [stdout] 2019 |     fn CLC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `clc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CLD` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2026:8
[INFO] [stdout]      |
[INFO] [stdout] 2026 |     fn CLD(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `cld`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CLI` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2032:8
[INFO] [stdout]      |
[INFO] [stdout] 2032 |     fn CLI(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CLV` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2037:8
[INFO] [stdout]      |
[INFO] [stdout] 2037 |     fn CLV(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `clv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CMP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2043:8
[INFO] [stdout]      |
[INFO] [stdout] 2043 |     fn CMP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `cmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2054:8
[INFO] [stdout]      |
[INFO] [stdout] 2054 |     fn CPX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `cpx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2064:8
[INFO] [stdout]      |
[INFO] [stdout] 2064 |     fn CPY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `cpy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `DEC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2074:8
[INFO] [stdout]      |
[INFO] [stdout] 2074 |     fn DEC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `dec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `DEX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2084:8
[INFO] [stdout]      |
[INFO] [stdout] 2084 |     fn DEX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `dex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `DEY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2093:8
[INFO] [stdout]      |
[INFO] [stdout] 2093 |     fn DEY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `dey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `EOR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2102:8
[INFO] [stdout]      |
[INFO] [stdout] 2102 |     fn EOR(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `eor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `INC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2113:8
[INFO] [stdout]      |
[INFO] [stdout] 2113 |     fn INC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `inc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `INX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2124:8
[INFO] [stdout]      |
[INFO] [stdout] 2124 |     fn INX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `inx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `INY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2134:8
[INFO] [stdout]      |
[INFO] [stdout] 2134 |     fn INY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `iny`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `JMP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2143:8
[INFO] [stdout]      |
[INFO] [stdout] 2143 |     fn JMP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `jmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `JSR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2149:8
[INFO] [stdout]      |
[INFO] [stdout] 2149 |     fn JSR(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `jsr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `LDA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2163:8
[INFO] [stdout]      |
[INFO] [stdout] 2163 |     fn LDA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `lda`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `LDX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2171:8
[INFO] [stdout]      |
[INFO] [stdout] 2171 |     fn LDX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `ldx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `LDY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2180:8
[INFO] [stdout]      |
[INFO] [stdout] 2180 |     fn LDY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `ldy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `LSR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2188:8
[INFO] [stdout]      |
[INFO] [stdout] 2188 |     fn LSR(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `lsr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2196:12
[INFO] [stdout]      |
[INFO] [stdout] 2196 |         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2196 -         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout] 2196 +         if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `NOP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2205:8
[INFO] [stdout]      |
[INFO] [stdout] 2205 |     fn NOP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `nop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ORA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2219:8
[INFO] [stdout]      |
[INFO] [stdout] 2219 |     fn ORA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `ora`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `PHA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2227:8
[INFO] [stdout]      |
[INFO] [stdout] 2227 |     fn PHA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `pha`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `PHP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2233:8
[INFO] [stdout]      |
[INFO] [stdout] 2233 |     fn PHP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `php`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `PLA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2241:8
[INFO] [stdout]      |
[INFO] [stdout] 2241 |     fn PLA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `pla`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `PLP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2250:8
[INFO] [stdout]      |
[INFO] [stdout] 2250 |     fn PLP(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `plp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ROL` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2259:8
[INFO] [stdout]      |
[INFO] [stdout] 2259 |     fn ROL(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `rol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2267:12
[INFO] [stdout]      |
[INFO] [stdout] 2267 |         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2267 -         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout] 2267 +         if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ROR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2276:8
[INFO] [stdout]      |
[INFO] [stdout] 2276 |     fn ROR(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `ror`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2284:12
[INFO] [stdout]      |
[INFO] [stdout] 2284 |         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2284 -         if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP {
[INFO] [stdout] 2284 +         if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `RTI` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2294:8
[INFO] [stdout]      |
[INFO] [stdout] 2294 |     fn RTI(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `rti`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `RTS` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2309:8
[INFO] [stdout]      |
[INFO] [stdout] 2309 |     fn RTS(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `rts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `SBC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2319:8
[INFO] [stdout]      |
[INFO] [stdout] 2319 |     fn SBC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sbc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `SEC` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2337:8
[INFO] [stdout]      |
[INFO] [stdout] 2337 |     fn SEC(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `SED` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2342:8
[INFO] [stdout]      |
[INFO] [stdout] 2342 |     fn SED(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `SEI` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2347:8
[INFO] [stdout]      |
[INFO] [stdout] 2347 |     fn SEI(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sei`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `STA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2353:8
[INFO] [stdout]      |
[INFO] [stdout] 2353 |     fn STA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `STX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2359:8
[INFO] [stdout]      |
[INFO] [stdout] 2359 |     fn STX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `stx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `STY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2364:8
[INFO] [stdout]      |
[INFO] [stdout] 2364 |     fn STY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `sty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TAX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2369:8
[INFO] [stdout]      |
[INFO] [stdout] 2369 |     fn TAX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `tax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TAY` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2377:8
[INFO] [stdout]      |
[INFO] [stdout] 2377 |     fn TAY(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `tay`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TSX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2385:8
[INFO] [stdout]      |
[INFO] [stdout] 2385 |     fn TSX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `tsx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TXA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2395:8
[INFO] [stdout]      |
[INFO] [stdout] 2395 |     fn TXA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `txa`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TXS` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2405:8
[INFO] [stdout]      |
[INFO] [stdout] 2405 |     fn TXS(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `txs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TYA` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2412:8
[INFO] [stdout]      |
[INFO] [stdout] 2412 |     fn TYA(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case: `tya`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `XXX` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2423:8
[INFO] [stdout]      |
[INFO] [stdout] 2423 |     fn XXX(cpu: &mut cpu6502) -> u8 {
[INFO] [stdout]      |        ^^^ help: convert the identifier to snake case (notice the capitalization): `xxx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2565:13
[INFO] [stdout]      |
[INFO] [stdout] 2565 |         if !(self.lookup[self.opcode as usize].addr_mode == cpu::IMP) {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2565 -         if !(self.lookup[self.opcode as usize].addr_mode == cpu::IMP) {
[INFO] [stdout] 2565 +         if !std::ptr::fn_addr_eq(self.lookup[self.opcode as usize].addr_mode, cpu::IMP as for<'a> fn(&'a mut cpu6502) -> u8) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2601:16
[INFO] [stdout]      |
[INFO] [stdout] 2601 |             if self.lookup[opcode].addr_mode == cpu::IMP
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2601 -             if self.lookup[opcode].addr_mode == cpu::IMP
[INFO] [stdout] 2601 +             if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IMP as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2604:23
[INFO] [stdout]      |
[INFO] [stdout] 2604 |             } else if self.lookup[opcode].addr_mode == cpu::IMM
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2604 -             } else if self.lookup[opcode].addr_mode == cpu::IMM
[INFO] [stdout] 2604 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IMM as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2610:23
[INFO] [stdout]      |
[INFO] [stdout] 2610 |             } else if self.lookup[opcode].addr_mode == cpu::ZP0
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2610 -             } else if self.lookup[opcode].addr_mode == cpu::ZP0
[INFO] [stdout] 2610 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZP0 as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2616:23
[INFO] [stdout]      |
[INFO] [stdout] 2616 |             } else if self.lookup[opcode].addr_mode == cpu::ZPX
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2616 -             } else if self.lookup[opcode].addr_mode == cpu::ZPX
[INFO] [stdout] 2616 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZPX as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2622:23
[INFO] [stdout]      |
[INFO] [stdout] 2622 |             } else if self.lookup[opcode].addr_mode == cpu::ZPY
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2622 -             } else if self.lookup[opcode].addr_mode == cpu::ZPY
[INFO] [stdout] 2622 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZPY as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2628:23
[INFO] [stdout]      |
[INFO] [stdout] 2628 |             } else if self.lookup[opcode].addr_mode == cpu::IZX
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2628 -             } else if self.lookup[opcode].addr_mode == cpu::IZX
[INFO] [stdout] 2628 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IZX as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2634:23
[INFO] [stdout]      |
[INFO] [stdout] 2634 |             } else if self.lookup[opcode].addr_mode == cpu::IZY
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2634 -             } else if self.lookup[opcode].addr_mode == cpu::IZY
[INFO] [stdout] 2634 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IZY as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2640:23
[INFO] [stdout]      |
[INFO] [stdout] 2640 |             } else if self.lookup[opcode].addr_mode == cpu::ABS
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2640 -             } else if self.lookup[opcode].addr_mode == cpu::ABS
[INFO] [stdout] 2640 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABS as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2647:23
[INFO] [stdout]      |
[INFO] [stdout] 2647 |             } else if self.lookup[opcode].addr_mode == cpu::ABX
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2647 -             } else if self.lookup[opcode].addr_mode == cpu::ABX
[INFO] [stdout] 2647 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABX as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2654:23
[INFO] [stdout]      |
[INFO] [stdout] 2654 |             } else if self.lookup[opcode].addr_mode == cpu::ABY
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2654 -             } else if self.lookup[opcode].addr_mode == cpu::ABY
[INFO] [stdout] 2654 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABY as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2661:23
[INFO] [stdout]      |
[INFO] [stdout] 2661 |             } else if self.lookup[opcode].addr_mode == cpu::IND
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2661 -             } else if self.lookup[opcode].addr_mode == cpu::IND
[INFO] [stdout] 2661 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IND as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/main.rs:2668:23
[INFO] [stdout]      |
[INFO] [stdout] 2668 |             } else if self.lookup[opcode].addr_mode == cpu::REL
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]      |
[INFO] [stdout] 2668 -             } else if self.lookup[opcode].addr_mode == cpu::REL
[INFO] [stdout] 2668 +             } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::REL as for<'a> fn(&'a mut cpu6502) -> u8)
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 41.83s
[INFO] running `Command { std: "docker" "inspect" "9386746fd91d2d567b37f2bb034061f17add7a1dbd34c32f6b135bbcd7043a1a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9386746fd91d2d567b37f2bb034061f17add7a1dbd34c32f6b135bbcd7043a1a", kill_on_drop: false }`
[INFO] [stdout] 9386746fd91d2d567b37f2bb034061f17add7a1dbd34c32f6b135bbcd7043a1a
