badline 0.16.1 → 0.17.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 (143) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +60 -0
  3. data/CLAUDE.md +1 -1
  4. data/README.md +102 -12
  5. data/doc/media.md +5 -2
  6. data/doc/pinned-behaviour.md +61 -0
  7. data/doc/snapshot-format.md +376 -69
  8. data/doc/snapshots.md +148 -14
  9. data/lib/badline/cbm2/acia.rb +10 -0
  10. data/lib/badline/cbm2/bus.rb +263 -0
  11. data/lib/badline/cbm2/cpu.rb +58 -0
  12. data/lib/badline/cbm2/crtc_video.rb +133 -0
  13. data/lib/badline/cbm2/ieee_drive.rb +18 -0
  14. data/lib/badline/cbm2/ieee_layout.rb +69 -0
  15. data/lib/badline/cbm2/ieee_ports.rb +104 -0
  16. data/lib/badline/cbm2/ieee_traps.rb +81 -0
  17. data/lib/badline/cbm2/keyboard_ports.rb +60 -0
  18. data/lib/badline/cbm2/keyed_modules.rb +67 -0
  19. data/lib/badline/cbm2/keyed_state.rb +91 -0
  20. data/lib/badline/cbm2/model.rb +44 -0
  21. data/lib/badline/cbm2/p500/control_ports.rb +80 -0
  22. data/lib/badline/cbm2/p500/ieee_layout.rb +41 -0
  23. data/lib/badline/cbm2/p500/keyed_state.rb +85 -0
  24. data/lib/badline/cbm2/p500/model.rb +39 -0
  25. data/lib/badline/cbm2/p500/pages.rb +57 -0
  26. data/lib/badline/cbm2/p500.rb +262 -0
  27. data/lib/badline/cbm2/sid_page.rb +19 -0
  28. data/lib/badline/cbm2.rb +267 -0
  29. data/lib/badline/{plus4 → chips}/acia/frames.rb +1 -1
  30. data/lib/badline/chips/acia/keyed_state.rb +47 -0
  31. data/lib/badline/chips/acia.rb +307 -0
  32. data/lib/badline/chips/crtc.rb +3 -2
  33. data/lib/badline/chips/riot/fast_forward.rb +72 -0
  34. data/lib/badline/chips/riot/keyed_parts.rb +69 -0
  35. data/lib/badline/chips/riot/timer.rb +80 -0
  36. data/lib/badline/chips/riot.rb +162 -0
  37. data/lib/badline/chips/rriot/keyed_state.rb +30 -0
  38. data/lib/badline/chips/rriot.rb +132 -0
  39. data/lib/badline/chips/tpi/keyed_state.rb +38 -0
  40. data/lib/badline/chips/tpi.rb +233 -0
  41. data/lib/badline/chips/vic/bank.rb +60 -5
  42. data/lib/badline/chips/vic/sprite.rb +4 -3
  43. data/lib/badline/drives/datasette/keyed_state.rb +9 -1
  44. data/lib/badline/drives/datasette.rb +27 -3
  45. data/lib/badline/drives/model8050/disk.rb +163 -0
  46. data/lib/badline/drives/model8050/fdc_bus.rb +102 -0
  47. data/lib/badline/drives/model8050/idle.rb +177 -0
  48. data/lib/badline/drives/model8050/ieee_port.rb +147 -0
  49. data/lib/badline/drives/model8050/ip_bus.rb +93 -0
  50. data/lib/badline/drives/model8050/keyed_state.rb +160 -0
  51. data/lib/badline/drives/model8050/mechanism.rb +230 -0
  52. data/lib/badline/drives/model8050/parts.rb +37 -0
  53. data/lib/badline/drives/model8050.rb +243 -0
  54. data/lib/badline/frontend/app.rb +10 -3
  55. data/lib/badline/frontend/boot.rb +1 -1
  56. data/lib/badline/frontend/controls.rb +51 -15
  57. data/lib/badline/frontend/gamepads.rb +3 -3
  58. data/lib/badline/frontend/keys.rb +61 -2
  59. data/lib/badline/frontend/media_slots.rb +1 -1
  60. data/lib/badline/frontend/menu/menu_media.rb +14 -11
  61. data/lib/badline/frontend/menu/menu_pages.rb +18 -4
  62. data/lib/badline/frontend/menu/menu_ports.rb +40 -4
  63. data/lib/badline/frontend/menu/pause_menu.rb +1 -1
  64. data/lib/badline/frontend/pet_keyboard.rb +23 -7
  65. data/lib/badline/frontend/timeline.rb +19 -10
  66. data/lib/badline/kernal_trap/dos/disk_commands.rb +80 -0
  67. data/lib/badline/kernal_trap/dos/status.rb +3 -0
  68. data/lib/badline/kernal_trap/dos.rb +18 -5
  69. data/lib/badline/kernal_trap/ieee.rb +4 -2
  70. data/lib/badline/kernal_trap/ieee_layout.rb +95 -43
  71. data/lib/badline/machine/ieee_drives.rb +194 -0
  72. data/lib/badline/machine/settling.rb +4 -0
  73. data/lib/badline/machine.rb +23 -6
  74. data/lib/badline/media/cbm2_media.rb +29 -0
  75. data/lib/badline/media/program.rb +6 -3
  76. data/lib/badline/media/true_drive.rb +38 -9
  77. data/lib/badline/media.rb +15 -6
  78. data/lib/badline/options/family.rb +15 -3
  79. data/lib/badline/options/help.rb +16 -2
  80. data/lib/badline/options/table.rb +18 -4
  81. data/lib/badline/options/validation.rb +27 -3
  82. data/lib/badline/options.rb +21 -7
  83. data/lib/badline/pet/cassettes.rb +22 -1
  84. data/lib/badline/pet/ieee_drive.rb +5 -64
  85. data/lib/badline/pet/ieee_ports.rb +7 -0
  86. data/lib/badline/pet.rb +15 -4
  87. data/lib/badline/plus4/acia.rb +4 -298
  88. data/lib/badline/plus4/keyed_parts.rb +0 -44
  89. data/lib/badline/plus4.rb +1 -0
  90. data/lib/badline/roms/8050/dos-2.7.rom +0 -0
  91. data/lib/badline/roms/8050/fdc-901869-01.rom +0 -0
  92. data/lib/badline/roms/8050/fdc-901885-04.rom +0 -0
  93. data/lib/badline/roms/README +111 -0
  94. data/lib/badline/roms/cbm2/basic128-02b.rom +0 -0
  95. data/lib/badline/roms/cbm2/basic128.rom +0 -0
  96. data/lib/badline/roms/cbm2/basic256.rom +0 -0
  97. data/lib/badline/roms/cbm2/characters-600.rom +0 -0
  98. data/lib/badline/roms/cbm2/characters-700.rom +0 -0
  99. data/lib/badline/roms/cbm2/kernal-03b.rom +0 -0
  100. data/lib/badline/roms/cbm2/kernal-04a.rom +0 -0
  101. data/lib/badline/roms/cbm2/p500-basic.rom +0 -0
  102. data/lib/badline/roms/cbm2/p500-kernal.rom +0 -0
  103. data/lib/badline/snapshot/cbm2_setup.rb +53 -0
  104. data/lib/badline/snapshot/container.rb +7 -2
  105. data/lib/badline/snapshot/field_doc/markdown.rb +4 -2
  106. data/lib/badline/snapshot/field_doc.rb +38 -3
  107. data/lib/badline/snapshot/image.rb +62 -9
  108. data/lib/badline/snapshot/vice/cbm2.rb +93 -0
  109. data/lib/badline/snapshot/vice/cbm2_acia.rb +75 -0
  110. data/lib/badline/snapshot/vice/cbm2_crtc.rb +127 -0
  111. data/lib/badline/snapshot/vice/cbm2_mains.rb +49 -0
  112. data/lib/badline/snapshot/vice/cbm2_mem.rb +75 -0
  113. data/lib/badline/snapshot/vice/cbm2_restore.rb +204 -0
  114. data/lib/badline/snapshot/vice/cbm2_tpi.rb +58 -0
  115. data/lib/badline/snapshot/vice/cias.rb +13 -9
  116. data/lib/badline/snapshot/vice/p500.rb +96 -0
  117. data/lib/badline/snapshot/vice/p500_restore.rb +130 -0
  118. data/lib/badline/snapshot/vice/p500_vicii.rb +166 -0
  119. data/lib/badline/snapshot/vice/pet.rb +7 -3
  120. data/lib/badline/snapshot/vice/pet_cpu.rb +5 -2
  121. data/lib/badline/snapshot/vice/pet_crtc.rb +10 -15
  122. data/lib/badline/snapshot/vice/pet_drive.rb +180 -0
  123. data/lib/badline/snapshot/vice/pet_drive8050.rb +216 -0
  124. data/lib/badline/snapshot/vice/pet_restore.rb +70 -6
  125. data/lib/badline/snapshot/vice/pet_via.rb +6 -5
  126. data/lib/badline/snapshot/vice/sid_registers.rb +2 -1
  127. data/lib/badline/snapshot/vice/vicii_import.rb +10 -6
  128. data/lib/badline/snapshot/vice.rb +3 -0
  129. data/lib/badline/snapshot.rb +11 -3
  130. data/lib/badline/storage/crt_file.rb +7 -1
  131. data/lib/badline/storage/d64_image.rb +7 -0
  132. data/lib/badline/storage/d80_image.rb +17 -1
  133. data/lib/badline/storage/d81_image.rb +14 -0
  134. data/lib/badline/storage/disk_image/bam.rb +18 -3
  135. data/lib/badline/storage/disk_image/formatting.rb +69 -0
  136. data/lib/badline/storage/disk_image/writing.rb +35 -0
  137. data/lib/badline/storage/disk_image.rb +2 -0
  138. data/lib/badline/storage.rb +1 -0
  139. data/lib/badline/support/cbm2_checkpoint.rb +48 -0
  140. data/lib/badline/support/p500_checkpoint.rb +35 -0
  141. data/lib/badline/version.rb +1 -1
  142. data/lib/badline.rb +1 -0
  143. metadata +72 -2
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.16.1
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Inge Jørgensen
@@ -140,7 +140,30 @@ files:
140
140
  - lib/badline/c64/reu/ram.rb
141
141
  - lib/badline/c64/reu/trigger.rb
142
142
  - lib/badline/c64/true_drives.rb
143
+ - lib/badline/cbm2.rb
144
+ - lib/badline/cbm2/acia.rb
145
+ - lib/badline/cbm2/bus.rb
146
+ - lib/badline/cbm2/cpu.rb
147
+ - lib/badline/cbm2/crtc_video.rb
148
+ - lib/badline/cbm2/ieee_drive.rb
149
+ - lib/badline/cbm2/ieee_layout.rb
150
+ - lib/badline/cbm2/ieee_ports.rb
151
+ - lib/badline/cbm2/ieee_traps.rb
152
+ - lib/badline/cbm2/keyboard_ports.rb
153
+ - lib/badline/cbm2/keyed_modules.rb
154
+ - lib/badline/cbm2/keyed_state.rb
155
+ - lib/badline/cbm2/model.rb
156
+ - lib/badline/cbm2/p500.rb
157
+ - lib/badline/cbm2/p500/control_ports.rb
158
+ - lib/badline/cbm2/p500/ieee_layout.rb
159
+ - lib/badline/cbm2/p500/keyed_state.rb
160
+ - lib/badline/cbm2/p500/model.rb
161
+ - lib/badline/cbm2/p500/pages.rb
162
+ - lib/badline/cbm2/sid_page.rb
143
163
  - lib/badline/chips.rb
164
+ - lib/badline/chips/acia.rb
165
+ - lib/badline/chips/acia/frames.rb
166
+ - lib/badline/chips/acia/keyed_state.rb
144
167
  - lib/badline/chips/cia.rb
145
168
  - lib/badline/chips/cia/fast_forward.rb
146
169
  - lib/badline/chips/cia/interrupt_register.rb
@@ -174,6 +197,12 @@ files:
174
197
  - lib/badline/chips/pia.rb
175
198
  - lib/badline/chips/pia/control_lines.rb
176
199
  - lib/badline/chips/pia/keyed_parts.rb
200
+ - lib/badline/chips/riot.rb
201
+ - lib/badline/chips/riot/fast_forward.rb
202
+ - lib/badline/chips/riot/keyed_parts.rb
203
+ - lib/badline/chips/riot/timer.rb
204
+ - lib/badline/chips/rriot.rb
205
+ - lib/badline/chips/rriot/keyed_state.rb
177
206
  - lib/badline/chips/sid.rb
178
207
  - lib/badline/chips/sid/catch_up.rb
179
208
  - lib/badline/chips/sid/decimator.rb
@@ -196,6 +225,8 @@ files:
196
225
  - lib/badline/chips/ted/sound/output.rb
197
226
  - lib/badline/chips/ted/timers.rb
198
227
  - lib/badline/chips/tia.rb
228
+ - lib/badline/chips/tpi.rb
229
+ - lib/badline/chips/tpi/keyed_state.rb
199
230
  - lib/badline/chips/vdc.rb
200
231
  - lib/badline/chips/vdc/keyed_parts.rb
201
232
  - lib/badline/chips/vdc/memory.rb
@@ -318,6 +349,15 @@ files:
318
349
  - lib/badline/drives/model2031/ieee_port.rb
319
350
  - lib/badline/drives/model2031/keyed_state.rb
320
351
  - lib/badline/drives/model2031/parts.rb
352
+ - lib/badline/drives/model8050.rb
353
+ - lib/badline/drives/model8050/disk.rb
354
+ - lib/badline/drives/model8050/fdc_bus.rb
355
+ - lib/badline/drives/model8050/idle.rb
356
+ - lib/badline/drives/model8050/ieee_port.rb
357
+ - lib/badline/drives/model8050/ip_bus.rb
358
+ - lib/badline/drives/model8050/keyed_state.rb
359
+ - lib/badline/drives/model8050/mechanism.rb
360
+ - lib/badline/drives/model8050/parts.rb
321
361
  - lib/badline/drives/serial_bus.rb
322
362
  - lib/badline/ffi.rb
323
363
  - lib/badline/frontend.rb
@@ -380,6 +420,7 @@ files:
380
420
  - lib/badline/kernal_trap/dos/block_commands.rb
381
421
  - lib/badline/kernal_trap/dos/channel.rb
382
422
  - lib/badline/kernal_trap/dos/channels.rb
423
+ - lib/badline/kernal_trap/dos/disk_commands.rb
383
424
  - lib/badline/kernal_trap/dos/memory.rb
384
425
  - lib/badline/kernal_trap/dos/parameters.rb
385
426
  - lib/badline/kernal_trap/dos/status.rb
@@ -398,10 +439,12 @@ files:
398
439
  - lib/badline/kernal_trap/steps.rb
399
440
  - lib/badline/machine.rb
400
441
  - lib/badline/machine/clocking.rb
442
+ - lib/badline/machine/ieee_drives.rb
401
443
  - lib/badline/machine/keyboard_buffer.rb
402
444
  - lib/badline/machine/settling.rb
403
445
  - lib/badline/media.rb
404
446
  - lib/badline/media/boot_disk.rb
447
+ - lib/badline/media/cbm2_media.rb
405
448
  - lib/badline/media/disk_list.rb
406
449
  - lib/badline/media/disk_set.rb
407
450
  - lib/badline/media/extensions.rb
@@ -446,7 +489,6 @@ files:
446
489
  - lib/badline/pet/via_ports.rb
447
490
  - lib/badline/plus4.rb
448
491
  - lib/badline/plus4/acia.rb
449
- - lib/badline/plus4/acia/frames.rb
450
492
  - lib/badline/plus4/bus.rb
451
493
  - lib/badline/plus4/cassette_sense.rb
452
494
  - lib/badline/plus4/cpu.rb
@@ -463,12 +505,24 @@ files:
463
505
  - lib/badline/plus4/user_port.rb
464
506
  - lib/badline/region.rb
465
507
  - lib/badline/rom.rb
508
+ - lib/badline/roms/8050/dos-2.7.rom
509
+ - lib/badline/roms/8050/fdc-901869-01.rom
510
+ - lib/badline/roms/8050/fdc-901885-04.rom
466
511
  - lib/badline/roms/README
467
512
  - lib/badline/roms/basic.rom
468
513
  - lib/badline/roms/c128/basic.rom
469
514
  - lib/badline/roms/c128/character.rom
470
515
  - lib/badline/roms/c128/kernal.rom
471
516
  - lib/badline/roms/c64gs.rom
517
+ - lib/badline/roms/cbm2/basic128-02b.rom
518
+ - lib/badline/roms/cbm2/basic128.rom
519
+ - lib/badline/roms/cbm2/basic256.rom
520
+ - lib/badline/roms/cbm2/characters-600.rom
521
+ - lib/badline/roms/cbm2/characters-700.rom
522
+ - lib/badline/roms/cbm2/kernal-03b.rom
523
+ - lib/badline/roms/cbm2/kernal-04a.rom
524
+ - lib/badline/roms/cbm2/p500-basic.rom
525
+ - lib/badline/roms/cbm2/p500-kernal.rom
472
526
  - lib/badline/roms/character.rom
473
527
  - lib/badline/roms/dos1541.rom
474
528
  - lib/badline/roms/dos1551.rom
@@ -520,6 +574,7 @@ files:
520
574
  - lib/badline/snapshot.rb
521
575
  - lib/badline/snapshot/c128_setup.rb
522
576
  - lib/badline/snapshot/c64_setup.rb
577
+ - lib/badline/snapshot/cbm2_setup.rb
523
578
  - lib/badline/snapshot/container.rb
524
579
  - lib/badline/snapshot/field_doc.rb
525
580
  - lib/badline/snapshot/field_doc/markdown.rb
@@ -538,14 +593,26 @@ files:
538
593
  - lib/badline/snapshot/vic20_setup.rb
539
594
  - lib/badline/snapshot/vice.rb
540
595
  - lib/badline/snapshot/vice/c64_mem.rb
596
+ - lib/badline/snapshot/vice/cbm2.rb
597
+ - lib/badline/snapshot/vice/cbm2_acia.rb
598
+ - lib/badline/snapshot/vice/cbm2_crtc.rb
599
+ - lib/badline/snapshot/vice/cbm2_mains.rb
600
+ - lib/badline/snapshot/vice/cbm2_mem.rb
601
+ - lib/badline/snapshot/vice/cbm2_restore.rb
602
+ - lib/badline/snapshot/vice/cbm2_tpi.rb
541
603
  - lib/badline/snapshot/vice/cias.rb
542
604
  - lib/badline/snapshot/vice/cias_import.rb
543
605
  - lib/badline/snapshot/vice/fields.rb
544
606
  - lib/badline/snapshot/vice/main_cpu.rb
607
+ - lib/badline/snapshot/vice/p500.rb
608
+ - lib/badline/snapshot/vice/p500_restore.rb
609
+ - lib/badline/snapshot/vice/p500_vicii.rb
545
610
  - lib/badline/snapshot/vice/peripherals.rb
546
611
  - lib/badline/snapshot/vice/pet.rb
547
612
  - lib/badline/snapshot/vice/pet_cpu.rb
548
613
  - lib/badline/snapshot/vice/pet_crtc.rb
614
+ - lib/badline/snapshot/vice/pet_drive.rb
615
+ - lib/badline/snapshot/vice/pet_drive8050.rb
549
616
  - lib/badline/snapshot/vice/pet_mem.rb
550
617
  - lib/badline/snapshot/vice/pet_pias.rb
551
618
  - lib/badline/snapshot/vice/pet_restore.rb
@@ -569,6 +636,7 @@ files:
569
636
  - lib/badline/storage/disk_image/bam.rb
570
637
  - lib/badline/storage/disk_image/catalog.rb
571
638
  - lib/badline/storage/disk_image/directory.rb
639
+ - lib/badline/storage/disk_image/formatting.rb
572
640
  - lib/badline/storage/disk_image/writing.rb
573
641
  - lib/badline/storage/g64_image.rb
574
642
  - lib/badline/storage/host_directory.rb
@@ -579,7 +647,9 @@ files:
579
647
  - lib/badline/storage/unavailable.rb
580
648
  - lib/badline/support.rb
581
649
  - lib/badline/support/c128_checkpoint.rb
650
+ - lib/badline/support/cbm2_checkpoint.rb
582
651
  - lib/badline/support/checkpoint.rb
652
+ - lib/badline/support/p500_checkpoint.rb
583
653
  - lib/badline/support/pet_checkpoint.rb
584
654
  - lib/badline/support/plus4_checkpoint.rb
585
655
  - lib/badline/support/vic20_checkpoint.rb