badline 0.11.1 → 0.12.0

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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/CLAUDE.md +8 -7
  4. data/CONTRIBUTING.md +7 -6
  5. data/README.md +12 -5
  6. data/doc/media.md +28 -1
  7. data/doc/pinned-behaviour.md +31 -1
  8. data/exe/badline-ruby +1 -1
  9. data/lib/badline/c128/bus.rb +4 -17
  10. data/lib/badline/c128/drives.rb +35 -22
  11. data/lib/badline/c128/fast_serial.rb +1 -0
  12. data/lib/badline/c128/io_pages.rb +35 -0
  13. data/lib/badline/c128/mmu.rb +9 -7
  14. data/lib/badline/c128/modes.rb +17 -4
  15. data/lib/badline/c128/saved_state.rb +22 -0
  16. data/lib/badline/c128/z80.rb +49 -0
  17. data/lib/badline/c128/z80_pages.rb +118 -0
  18. data/lib/badline/c128/z80_turns.rb +106 -0
  19. data/lib/badline/c128.rb +16 -19
  20. data/lib/badline/cartridge/action_replay.rb +2 -2
  21. data/lib/badline/cartridge/comal80.rb +1 -7
  22. data/lib/badline/cartridge/dinamic.rb +0 -8
  23. data/lib/badline/cartridge/final_cartridge3.rb +6 -6
  24. data/lib/badline/cartridge/fun_play.rb +0 -8
  25. data/lib/badline/cartridge/game_system.rb +0 -8
  26. data/lib/badline/cartridge/kcs_power.rb +10 -7
  27. data/lib/badline/cartridge/mach5.rb +2 -4
  28. data/lib/badline/cartridge/magic_desk.rb +0 -8
  29. data/lib/badline/cartridge/ocean.rb +0 -8
  30. data/lib/badline/cartridge/pagefox.rb +2 -2
  31. data/lib/badline/cartridge/retro_replay.rb +7 -6
  32. data/lib/badline/cartridge/rex_utility.rb +2 -6
  33. data/lib/badline/cartridge/rgcd.rb +2 -2
  34. data/lib/badline/cartridge/simons_basic.rb +0 -5
  35. data/lib/badline/cartridge/super_games.rb +4 -2
  36. data/lib/badline/cartridge/westermann.rb +2 -6
  37. data/lib/badline/cartridge.rb +37 -9
  38. data/lib/badline/cia/fast_forward.rb +21 -3
  39. data/lib/badline/cia.rb +8 -5
  40. data/lib/badline/computer/attachments.rb +4 -56
  41. data/lib/badline/computer/true_drives.rb +80 -0
  42. data/lib/badline/computer.rb +4 -0
  43. data/lib/badline/core.rb +2 -0
  44. data/lib/badline/drive/core.rb +8 -33
  45. data/lib/badline/drive/fast_serial.rb +73 -0
  46. data/lib/badline/drive/idle.rb +1 -11
  47. data/lib/badline/drive/orbit.rb +2 -5
  48. data/lib/badline/drive/sleep.rb +0 -2
  49. data/lib/badline/drive/vias.rb +84 -0
  50. data/lib/badline/drive.rb +2 -0
  51. data/lib/badline/drive1541.rb +1 -0
  52. data/lib/badline/drive1571/wd1770.rb +94 -8
  53. data/lib/badline/drive1571.rb +8 -58
  54. data/lib/badline/drive1581/bus.rb +137 -0
  55. data/lib/badline/drive1581/cpu.rb +11 -0
  56. data/lib/badline/drive1581/disk.rb +135 -0
  57. data/lib/badline/drive1581/disk_state.rb +87 -0
  58. data/lib/badline/drive1581/mechanism.rb +117 -0
  59. data/lib/badline/drive1581/serial_port.rb +52 -0
  60. data/lib/badline/drive1581/slot.rb +78 -0
  61. data/lib/badline/drive1581/track.rb +100 -0
  62. data/lib/badline/drive1581/track_bytes.rb +75 -0
  63. data/lib/badline/drive1581/wd1772/registers.rb +89 -0
  64. data/lib/badline/drive1581/wd1772/sector_writes.rb +73 -0
  65. data/lib/badline/drive1581/wd1772/sectors.rb +150 -0
  66. data/lib/badline/drive1581/wd1772/state.rb +66 -0
  67. data/lib/badline/drive1581/wd1772/stepping.rb +109 -0
  68. data/lib/badline/drive1581/wd1772/tracks.rb +125 -0
  69. data/lib/badline/drive1581/wd1772/turn.rb +73 -0
  70. data/lib/badline/drive1581/wd1772.rb +216 -0
  71. data/lib/badline/drive1581.rb +233 -0
  72. data/lib/badline/frontend/app.rb +1 -3
  73. data/lib/badline/frontend/audio_device.rb +67 -0
  74. data/lib/badline/frontend/audio_sink.rb +16 -50
  75. data/lib/badline/frontend/boot.rb +18 -10
  76. data/lib/badline/frontend/buttons.rb +7 -7
  77. data/lib/badline/frontend/keys.rb +33 -8
  78. data/lib/badline/frontend/media_slots.rb +42 -0
  79. data/lib/badline/frontend/{confirmation.rb → menu/confirmation.rb} +4 -4
  80. data/lib/badline/frontend/{file_browser.rb → menu/file_browser.rb} +18 -34
  81. data/lib/badline/frontend/{menu_dialogs.rb → menu/menu_dialogs.rb} +3 -7
  82. data/lib/badline/frontend/{menu_media.rb → menu/menu_media.rb} +26 -51
  83. data/lib/badline/frontend/{menu_pages.rb → menu/menu_pages.rb} +5 -8
  84. data/lib/badline/frontend/{name_field.rb → menu/name_field.rb} +11 -24
  85. data/lib/badline/frontend/{pause_menu.rb → menu/pause_menu.rb} +13 -28
  86. data/lib/badline/frontend/menu/theme.rb +18 -0
  87. data/lib/badline/frontend/{filter_view.rb → player/filter_view.rb} +4 -4
  88. data/lib/badline/frontend/{info_view.rb → player/info_view.rb} +3 -3
  89. data/lib/badline/frontend/{player_window.rb → player/player_controller.rb} +17 -25
  90. data/lib/badline/frontend/{player_footer.rb → player/player_footer.rb} +8 -8
  91. data/lib/badline/frontend/{player_header.rb → player/player_header.rb} +5 -5
  92. data/lib/badline/frontend/{player_screen.rb → player/player_screen.rb} +4 -5
  93. data/lib/badline/frontend/{scope.rb → player/scope.rb} +1 -1
  94. data/lib/badline/frontend/{sid_view.rb → player/sid_view.rb} +16 -20
  95. data/lib/badline/frontend/player/theme.rb +18 -0
  96. data/lib/badline/frontend/{visualizer_view.rb → player/visualizer_view.rb} +8 -8
  97. data/lib/badline/frontend/sound.rb +19 -38
  98. data/lib/badline/frontend/timeline.rb +3 -14
  99. data/lib/badline/frontend.rb +24 -20
  100. data/lib/badline/iec_bus.rb +14 -2
  101. data/lib/badline/machine.rb +5 -4
  102. data/lib/badline/media/boot_disk.rb +50 -0
  103. data/lib/badline/media/not_disk.rb +8 -0
  104. data/lib/badline/media/true_drive.rb +35 -15
  105. data/lib/badline/media.rb +9 -3
  106. data/lib/badline/options/event.rb +2 -2
  107. data/lib/badline/options/family.rb +3 -9
  108. data/lib/badline/options/help.rb +2 -1
  109. data/lib/badline/roms/README +9 -0
  110. data/lib/badline/roms/dos1581.rom +0 -0
  111. data/lib/badline/sdl.rb +37 -20
  112. data/lib/badline/snapshot/state.rb +5 -4
  113. data/lib/badline/storage/p00.rb +8 -0
  114. data/lib/badline/time_of_day.rb +3 -3
  115. data/lib/badline/version.rb +1 -1
  116. data/lib/badline/vic20/attachments.rb +21 -7
  117. data/lib/badline/vic20/saved_state.rb +2 -0
  118. data/lib/badline/vic20.rb +3 -0
  119. data/lib/badline/z80/core.rb +2 -0
  120. data/lib/badline/z80/saved_state.rb +69 -0
  121. metadata +54 -21
  122. /data/lib/badline/frontend/{menu_ports.rb → menu/menu_ports.rb} +0 -0
  123. /data/lib/badline/frontend/{player_commands.rb → player/player_commands.rb} +0 -0
  124. /data/lib/badline/frontend/{player_state.rb → player/player_state.rb} +0 -0
  125. /data/lib/badline/frontend/{sid_history.rb → player/sid_history.rb} +0 -0
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.11.1
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Inge Jørgensen
@@ -79,6 +79,7 @@ files:
79
79
  - lib/badline/c128/cpu.rb
80
80
  - lib/badline/c128/drives.rb
81
81
  - lib/badline/c128/fast_serial.rb
82
+ - lib/badline/c128/io_pages.rb
82
83
  - lib/badline/c128/keys.rb
83
84
  - lib/badline/c128/mmu.rb
84
85
  - lib/badline/c128/mmu_pages.rb
@@ -90,6 +91,9 @@ files:
90
91
  - lib/badline/c128/vdc/painter.rb
91
92
  - lib/badline/c128/vdc/raster.rb
92
93
  - lib/badline/c128/vdc/window.rb
94
+ - lib/badline/c128/z80.rb
95
+ - lib/badline/c128/z80_pages.rb
96
+ - lib/badline/c128/z80_turns.rb
93
97
  - lib/badline/cartridge.rb
94
98
  - lib/badline/cartridge/action_replay.rb
95
99
  - lib/badline/cartridge/atomic_power.rb
@@ -131,6 +135,7 @@ files:
131
135
  - lib/badline/computer/attachments.rb
132
136
  - lib/badline/computer/kernal_traps.rb
133
137
  - lib/badline/computer/saved_state.rb
138
+ - lib/badline/computer/true_drives.rb
134
139
  - lib/badline/control_ports.rb
135
140
  - lib/badline/core.rb
136
141
  - lib/badline/cpu.rb
@@ -147,11 +152,13 @@ files:
147
152
  - lib/badline/debug_register.rb
148
153
  - lib/badline/drive.rb
149
154
  - lib/badline/drive/core.rb
155
+ - lib/badline/drive/fast_serial.rb
150
156
  - lib/badline/drive/idle.rb
151
157
  - lib/badline/drive/idle_cpu.rb
152
158
  - lib/badline/drive/orbit.rb
153
159
  - lib/badline/drive/serial_lines.rb
154
160
  - lib/badline/drive/sleep.rb
161
+ - lib/badline/drive/vias.rb
155
162
  - lib/badline/drive/watch.rb
156
163
  - lib/badline/drive1541.rb
157
164
  - lib/badline/drive1541/bus.rb
@@ -173,48 +180,70 @@ files:
173
180
  - lib/badline/drive1571/serial_port.rb
174
181
  - lib/badline/drive1571/serial_via.rb
175
182
  - lib/badline/drive1571/wd1770.rb
183
+ - lib/badline/drive1581.rb
184
+ - lib/badline/drive1581/bus.rb
185
+ - lib/badline/drive1581/cpu.rb
186
+ - lib/badline/drive1581/disk.rb
187
+ - lib/badline/drive1581/disk_state.rb
188
+ - lib/badline/drive1581/mechanism.rb
189
+ - lib/badline/drive1581/serial_port.rb
190
+ - lib/badline/drive1581/slot.rb
191
+ - lib/badline/drive1581/track.rb
192
+ - lib/badline/drive1581/track_bytes.rb
193
+ - lib/badline/drive1581/wd1772.rb
194
+ - lib/badline/drive1581/wd1772/registers.rb
195
+ - lib/badline/drive1581/wd1772/sector_writes.rb
196
+ - lib/badline/drive1581/wd1772/sectors.rb
197
+ - lib/badline/drive1581/wd1772/state.rb
198
+ - lib/badline/drive1581/wd1772/stepping.rb
199
+ - lib/badline/drive1581/wd1772/tracks.rb
200
+ - lib/badline/drive1581/wd1772/turn.rb
176
201
  - lib/badline/ffi.rb
177
202
  - lib/badline/frontend.rb
178
203
  - lib/badline/frontend/app.rb
204
+ - lib/badline/frontend/audio_device.rb
179
205
  - lib/badline/frontend/audio_sink.rb
180
206
  - lib/badline/frontend/boot.rb
181
207
  - lib/badline/frontend/buttons.rb
182
- - lib/badline/frontend/confirmation.rb
183
208
  - lib/badline/frontend/controls.rb
184
209
  - lib/badline/frontend/drive_led.rb
185
- - lib/badline/frontend/file_browser.rb
186
- - lib/badline/frontend/filter_view.rb
187
210
  - lib/badline/frontend/frame_rate.rb
188
211
  - lib/badline/frontend/frame_report.rb
189
212
  - lib/badline/frontend/gamepads.rb
190
- - lib/badline/frontend/info_view.rb
191
213
  - lib/badline/frontend/keys.rb
192
214
  - lib/badline/frontend/machine_window.rb
193
- - lib/badline/frontend/menu_dialogs.rb
194
- - lib/badline/frontend/menu_media.rb
195
- - lib/badline/frontend/menu_pages.rb
196
- - lib/badline/frontend/menu_ports.rb
197
- - lib/badline/frontend/name_field.rb
215
+ - lib/badline/frontend/media_slots.rb
216
+ - lib/badline/frontend/menu/confirmation.rb
217
+ - lib/badline/frontend/menu/file_browser.rb
218
+ - lib/badline/frontend/menu/menu_dialogs.rb
219
+ - lib/badline/frontend/menu/menu_media.rb
220
+ - lib/badline/frontend/menu/menu_pages.rb
221
+ - lib/badline/frontend/menu/menu_ports.rb
222
+ - lib/badline/frontend/menu/name_field.rb
223
+ - lib/badline/frontend/menu/pause_menu.rb
224
+ - lib/badline/frontend/menu/theme.rb
198
225
  - lib/badline/frontend/pacer.rb
199
226
  - lib/badline/frontend/pad_port.rb
200
227
  - lib/badline/frontend/painter.rb
201
- - lib/badline/frontend/pause_menu.rb
202
- - lib/badline/frontend/player_commands.rb
203
- - lib/badline/frontend/player_footer.rb
204
- - lib/badline/frontend/player_header.rb
205
- - lib/badline/frontend/player_screen.rb
206
- - lib/badline/frontend/player_state.rb
207
- - lib/badline/frontend/player_window.rb
208
- - lib/badline/frontend/scope.rb
228
+ - lib/badline/frontend/player/filter_view.rb
229
+ - lib/badline/frontend/player/info_view.rb
230
+ - lib/badline/frontend/player/player_commands.rb
231
+ - lib/badline/frontend/player/player_controller.rb
232
+ - lib/badline/frontend/player/player_footer.rb
233
+ - lib/badline/frontend/player/player_header.rb
234
+ - lib/badline/frontend/player/player_screen.rb
235
+ - lib/badline/frontend/player/player_state.rb
236
+ - lib/badline/frontend/player/scope.rb
237
+ - lib/badline/frontend/player/sid_history.rb
238
+ - lib/badline/frontend/player/sid_view.rb
239
+ - lib/badline/frontend/player/theme.rb
240
+ - lib/badline/frontend/player/visualizer_view.rb
209
241
  - lib/badline/frontend/screen.rb
210
242
  - lib/badline/frontend/screens.rb
211
243
  - lib/badline/frontend/screenshot.rb
212
- - lib/badline/frontend/sid_history.rb
213
- - lib/badline/frontend/sid_view.rb
214
244
  - lib/badline/frontend/snapshots.rb
215
245
  - lib/badline/frontend/sound.rb
216
246
  - lib/badline/frontend/timeline.rb
217
- - lib/badline/frontend/visualizer_view.rb
218
247
  - lib/badline/iec_bus.rb
219
248
  - lib/badline/input.rb
220
249
  - lib/badline/input/mouse1351.rb
@@ -252,8 +281,10 @@ files:
252
281
  - lib/badline/keyboard_buffer.rb
253
282
  - lib/badline/machine.rb
254
283
  - lib/badline/media.rb
284
+ - lib/badline/media/boot_disk.rb
255
285
  - lib/badline/media/disk_list.rb
256
286
  - lib/badline/media/disk_set.rb
287
+ - lib/badline/media/not_disk.rb
257
288
  - lib/badline/media/queue.rb
258
289
  - lib/badline/media/true_drive.rb
259
290
  - lib/badline/media/vic20_basic.rb
@@ -290,6 +321,7 @@ files:
290
321
  - lib/badline/roms/character.rom
291
322
  - lib/badline/roms/dos1541.rom
292
323
  - lib/badline/roms/dos1571.rom
324
+ - lib/badline/roms/dos1581.rom
293
325
  - lib/badline/roms/eapi/LICENSE.md
294
326
  - lib/badline/roms/eapi/README
295
327
  - lib/badline/roms/eapi/eapi-am29f040-14
@@ -416,6 +448,7 @@ files:
416
448
  - lib/badline/z80/loads.rb
417
449
  - lib/badline/z80/main_page.rb
418
450
  - lib/badline/z80/registers.rb
451
+ - lib/badline/z80/saved_state.rb
419
452
  - lib/badline/z80/shifts.rb
420
453
  - packaging/homebrew/badline.rb
421
454
  homepage: https://github.com/elektronaut/badline