badline 0.12.0 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/lib/badline/address_bus/saved_state.rb +4 -10
  4. data/lib/badline/address_bus.rb +8 -27
  5. data/lib/badline/audio/bare_player.rb +1 -1
  6. data/lib/badline/c128/bus.rb +13 -35
  7. data/lib/badline/c128/bus_state.rb +5 -5
  8. data/lib/badline/c128.rb +5 -64
  9. data/lib/badline/computer/attachments.rb +16 -45
  10. data/lib/badline/computer/common.rb +34 -0
  11. data/lib/badline/computer/kernal_traps.rb +65 -5
  12. data/lib/badline/computer/true_drives.rb +12 -23
  13. data/lib/badline/computer.rb +5 -68
  14. data/lib/badline/core.rb +2 -2
  15. data/lib/badline/cpu_port.rb +112 -0
  16. data/lib/badline/drive1541/disk.rb +14 -17
  17. data/lib/badline/drive1541/disk_state.rb +7 -15
  18. data/lib/badline/drive1581/wd1772.rb +1 -1
  19. data/lib/badline/frontend/boot.rb +8 -59
  20. data/lib/badline/kernal_trap/{file.rb → file_routine.rb} +1 -1
  21. data/lib/badline/kernal_trap/load.rb +1 -1
  22. data/lib/badline/kernal_trap/save.rb +1 -1
  23. data/lib/badline/kernal_trap.rb +1 -1
  24. data/lib/badline/machine/clocking.rb +50 -0
  25. data/lib/badline/machine.rb +58 -2
  26. data/lib/badline/media/boot_disk.rb +2 -2
  27. data/lib/badline/media/disk_list.rb +3 -3
  28. data/lib/badline/media/disk_set.rb +1 -1
  29. data/lib/badline/media/extensions.rb +33 -0
  30. data/lib/badline/media/program.rb +28 -0
  31. data/lib/badline/media/true_drive.rb +3 -2
  32. data/lib/badline/media/tune.rb +35 -0
  33. data/lib/badline/media/vic20_cartridge.rb +1 -7
  34. data/lib/badline/media/vic20_media.rb +38 -80
  35. data/lib/badline/media.rb +82 -79
  36. data/lib/badline/options/event.rb +3 -1
  37. data/lib/badline/sid.rb +1 -1
  38. data/lib/badline/snapshot/machine_state.rb +9 -1
  39. data/lib/badline/snapshot/state.rb +5 -4
  40. data/lib/badline/snapshot.rb +11 -9
  41. data/lib/badline/storage/d64_image.rb +15 -7
  42. data/lib/badline/storage/disk_image/writing.rb +2 -2
  43. data/lib/badline/storage/disk_image.rb +1 -1
  44. data/lib/badline/storage/host_directory.rb +1 -1
  45. data/lib/badline/storage/t64.rb +1 -1
  46. data/lib/badline/version.rb +1 -1
  47. data/lib/badline/vic/bank.rb +1 -1
  48. data/lib/badline/vic/border_mask.rb +1 -1
  49. data/lib/badline/vic/collisions.rb +1 -1
  50. data/lib/badline/vic/color_patches.rb +1 -1
  51. data/lib/badline/vic/display_state.rb +1 -1
  52. data/lib/badline/vic/graphics_mode.rb +1 -1
  53. data/lib/badline/vic/graphics_shifter.rb +1 -1
  54. data/lib/badline/vic/register_log.rb +1 -1
  55. data/lib/badline/vic/registers.rb +1 -1
  56. data/lib/badline/vic/sequencer.rb +1 -1
  57. data/lib/badline/vic/sequencer_output.rb +1 -1
  58. data/lib/badline/vic/sequencer_state.rb +1 -1
  59. data/lib/badline/vic/sprite/internal_bus.rb +1 -1
  60. data/lib/badline/vic/sprite/saved_state.rb +1 -1
  61. data/lib/badline/vic/sprite/shifter.rb +1 -1
  62. data/lib/badline/vic/sprite/timing.rb +1 -1
  63. data/lib/badline/vic/sprite.rb +1 -1
  64. data/lib/badline/vic/sprites.rb +1 -1
  65. data/lib/badline/vic/sprites_state.rb +1 -1
  66. data/lib/badline/vic.rb +6 -5
  67. data/lib/badline/vic20/attachments.rb +10 -80
  68. data/lib/badline/vic20/saved_state.rb +0 -30
  69. data/lib/badline/vic20.rb +1 -37
  70. metadata +8 -3
  71. data/lib/badline/cycleable.rb +0 -38
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: badline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Inge Jørgensen
@@ -133,6 +133,7 @@ files:
133
133
  - lib/badline/color_memory.rb
134
134
  - lib/badline/computer.rb
135
135
  - lib/badline/computer/attachments.rb
136
+ - lib/badline/computer/common.rb
136
137
  - lib/badline/computer/kernal_traps.rb
137
138
  - lib/badline/computer/saved_state.rb
138
139
  - lib/badline/computer/true_drives.rb
@@ -146,7 +147,7 @@ files:
146
147
  - lib/badline/cpu/operations.rb
147
148
  - lib/badline/cpu/saved_state.rb
148
149
  - lib/badline/cpu/stack_operations.rb
149
- - lib/badline/cycleable.rb
150
+ - lib/badline/cpu_port.rb
150
151
  - lib/badline/data_path.rb
151
152
  - lib/badline/datasette.rb
152
153
  - lib/badline/debug_register.rb
@@ -271,7 +272,7 @@ files:
271
272
  - lib/badline/kernal_trap/drive/status.rb
272
273
  - lib/badline/kernal_trap/drive/write_file.rb
273
274
  - lib/badline/kernal_trap/drive/writes.rb
274
- - lib/badline/kernal_trap/file.rb
275
+ - lib/badline/kernal_trap/file_routine.rb
275
276
  - lib/badline/kernal_trap/layout.rb
276
277
  - lib/badline/kernal_trap/load.rb
277
278
  - lib/badline/kernal_trap/routine.rb
@@ -280,13 +281,17 @@ files:
280
281
  - lib/badline/keyboard.rb
281
282
  - lib/badline/keyboard_buffer.rb
282
283
  - lib/badline/machine.rb
284
+ - lib/badline/machine/clocking.rb
283
285
  - lib/badline/media.rb
284
286
  - lib/badline/media/boot_disk.rb
285
287
  - lib/badline/media/disk_list.rb
286
288
  - lib/badline/media/disk_set.rb
289
+ - lib/badline/media/extensions.rb
287
290
  - lib/badline/media/not_disk.rb
291
+ - lib/badline/media/program.rb
288
292
  - lib/badline/media/queue.rb
289
293
  - lib/badline/media/true_drive.rb
294
+ - lib/badline/media/tune.rb
290
295
  - lib/badline/media/vic20_basic.rb
291
296
  - lib/badline/media/vic20_cartridge.rb
292
297
  - lib/badline/media/vic20_media.rb
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Badline
4
- class Cycleable
5
- attr_reader :cycles
6
-
7
- def initialize
8
- @loop = Fiber.new { loop { main_loop } }
9
- @cycles = 0
10
- @pending_write = false
11
- end
12
-
13
- def cycle!
14
- @loop.resume
15
- nil
16
- end
17
-
18
- def pending_write? = @pending_write
19
-
20
- private
21
-
22
- def cycle(write: false)
23
- @pending_write = write
24
- Fiber.yield
25
- poll
26
- result = yield if block_given?
27
- @cycles += 1
28
- @pending_write = false
29
- result
30
- end
31
-
32
- def poll; end
33
-
34
- def main_loop
35
- Fiber.yield
36
- end
37
- end
38
- end