Module: Badline::IntegerHelper
- Included in:
- Addressable, CPU, Computer, KernalTrap::File, Keyboard, TimeOfDay, VIC, VIC::Registers
- Defined in:
- lib/badline/integer_helper.rb
Instance Method Summary collapse
- #bcd(number) ⇒ Object
- #bcd_to_i(number) ⇒ Object
- #format16(number) ⇒ Object
- #format8(number) ⇒ Object
- #high_byte(number) ⇒ Object
- #low_byte(number) ⇒ Object
- #signed_int8(number) ⇒ Object
- #uint16(low, high) ⇒ Object
Instance Method Details
#bcd(number) ⇒ Object
5 6 7 8 |
# File 'lib/badline/integer_helper.rb', line 5 def bcd(number) high, low = number.divmod(10) (high << 4) + low end |
#bcd_to_i(number) ⇒ Object
10 11 12 |
# File 'lib/badline/integer_helper.rb', line 10 def bcd_to_i(number) (((number & 0xf0) >> 4) * 10) + (number & 0x0f) end |
#format16(number) ⇒ Object
18 19 20 |
# File 'lib/badline/integer_helper.rb', line 18 def format16(number) "0x#{number.to_s(16).rjust(4, '0')}" end |
#format8(number) ⇒ Object
14 15 16 |
# File 'lib/badline/integer_helper.rb', line 14 def format8(number) "0x#{number.to_s(16).rjust(2, '0')}" end |
#high_byte(number) ⇒ Object
22 23 24 |
# File 'lib/badline/integer_helper.rb', line 22 def high_byte(number) (number >> 8) & 0xff end |
#low_byte(number) ⇒ Object
26 27 28 |
# File 'lib/badline/integer_helper.rb', line 26 def low_byte(number) number & 0xff end |
#signed_int8(number) ⇒ Object
30 31 32 33 |
# File 'lib/badline/integer_helper.rb', line 30 def signed_int8(number) uint = number & 0xff uint > 127 ? uint - 256 : uint end |
#uint16(low, high) ⇒ Object
35 36 37 |
# File 'lib/badline/integer_helper.rb', line 35 def uint16(low, high) (high << 8) + low end |