badline 0.17.0 → 0.19.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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +193 -0
  3. data/CLAUDE.md +19 -7
  4. data/CONTRIBUTING.md +11 -1
  5. data/README.md +178 -26
  6. data/doc/library.md +5 -1
  7. data/doc/media.md +3 -2
  8. data/doc/pinned-behaviour.md +169 -1
  9. data/doc/snapshot-format.md +302 -35
  10. data/doc/snapshots.md +97 -26
  11. data/doc/vice.md +344 -0
  12. data/exe/badline-ruby +5 -0
  13. data/lib/badline/audio/renderer.rb +4 -8
  14. data/lib/badline/audio/terminal.rb +34 -2
  15. data/lib/badline/c128/keyed_state.rb +2 -0
  16. data/lib/badline/c128.rb +5 -0
  17. data/lib/badline/c64/bus/fittings.rb +6 -0
  18. data/lib/badline/c64/keyed_state.rb +2 -0
  19. data/lib/badline/c64.rb +7 -0
  20. data/lib/badline/cbm2/keyed_state.rb +4 -0
  21. data/lib/badline/cbm2/p500.rb +9 -3
  22. data/lib/badline/cbm2.rb +10 -3
  23. data/lib/badline/chips/cia/timer.rb +2 -2
  24. data/lib/badline/chips/cpu/core.rb +29 -4
  25. data/lib/badline/chips/cpu/instruction_set.rb +1 -1
  26. data/lib/badline/chips/cpu/interrupts.rb +9 -0
  27. data/lib/badline/chips/cpu/keyed_state.rb +15 -9
  28. data/lib/badline/chips/cpu/microcode.rb +10 -0
  29. data/lib/badline/chips/m6809/arithmetic.rb +140 -0
  30. data/lib/badline/chips/m6809/bus_steps.rb +223 -0
  31. data/lib/badline/chips/m6809/core.rb +149 -0
  32. data/lib/badline/chips/m6809/indexed.rb +82 -0
  33. data/lib/badline/chips/m6809/interrupts.rb +159 -0
  34. data/lib/badline/chips/m6809/keyed_state.rb +147 -0
  35. data/lib/badline/chips/m6809/opcodes.rb +159 -0
  36. data/lib/badline/chips/m6809/operations.rb +258 -0
  37. data/lib/badline/chips/m6809/plans.rb +143 -0
  38. data/lib/badline/chips/m6809/registers.rb +82 -0
  39. data/lib/badline/chips/m6809/stack.rb +140 -0
  40. data/lib/badline/chips/m6809.rb +13 -0
  41. data/lib/badline/chips/riot/timer.rb +14 -3
  42. data/lib/badline/chips/rriot.rb +8 -3
  43. data/lib/badline/chips/sid/decimator.rb +1 -1
  44. data/lib/badline/chips/sid/filter.rb +4 -4
  45. data/lib/badline/chips/sid/keyed_parts.rb +51 -18
  46. data/lib/badline/chips/sid/waveform.rb +6 -6
  47. data/lib/badline/chips/sid.rb +6 -2
  48. data/lib/badline/chips/vic_i/keyed_parts.rb +12 -2
  49. data/lib/badline/chips/vic_i/light_pen.rb +89 -0
  50. data/lib/badline/chips/vic_i.rb +91 -23
  51. data/lib/badline/data_path.rb +3 -3
  52. data/lib/badline/drives/ieee_models.rb +54 -0
  53. data/lib/badline/drives/model1001.rb +37 -0
  54. data/lib/badline/drives/model1541/sector_reader.rb +20 -3
  55. data/lib/badline/drives/model1541.rb +1 -0
  56. data/lib/badline/drives/model1551.rb +1 -0
  57. data/lib/badline/drives/model1571.rb +1 -0
  58. data/lib/badline/drives/model1581.rb +1 -0
  59. data/lib/badline/drives/model2031.rb +7 -0
  60. data/lib/badline/drives/model4040/disk.rb +62 -0
  61. data/lib/badline/drives/model4040/ip_bus.rb +46 -0
  62. data/lib/badline/drives/model4040/keyed_state.rb +57 -0
  63. data/lib/badline/drives/model4040/mechanism.rb +195 -0
  64. data/lib/badline/drives/model4040/parts.rb +20 -0
  65. data/lib/badline/drives/model4040.rb +195 -0
  66. data/lib/badline/drives/model8050/board.rb +79 -0
  67. data/lib/badline/drives/model8050/dos_board.rb +134 -0
  68. data/lib/badline/drives/model8050/fdc_bus.rb +7 -0
  69. data/lib/badline/drives/model8050/idle.rb +148 -31
  70. data/lib/badline/drives/model8050/keyed_state.rb +5 -2
  71. data/lib/badline/drives/model8050.rb +32 -130
  72. data/lib/badline/drives/model9060/idle.rb +169 -0
  73. data/lib/badline/drives/model9060/keyed_state.rb +123 -0
  74. data/lib/badline/drives/model9060/parts.rb +98 -0
  75. data/lib/badline/drives/model9060/sasi_bus.rb +88 -0
  76. data/lib/badline/drives/model9060/sasi_commands.rb +168 -0
  77. data/lib/badline/drives/model9060/sasi_target.rb +161 -0
  78. data/lib/badline/drives/model9060.rb +197 -0
  79. data/lib/badline/frontend/app.rb +8 -0
  80. data/lib/badline/frontend/boot.rb +3 -2
  81. data/lib/badline/frontend/controls.rb +62 -6
  82. data/lib/badline/frontend/keys.rb +36 -0
  83. data/lib/badline/frontend/kim1_panel.rb +208 -0
  84. data/lib/badline/frontend/media_slots.rb +8 -1
  85. data/lib/badline/frontend/menu/drive_types.rb +56 -0
  86. data/lib/badline/frontend/menu/menu_dialogs.rb +61 -14
  87. data/lib/badline/frontend/menu/menu_media.rb +42 -12
  88. data/lib/badline/frontend/menu/menu_pages.rb +97 -2
  89. data/lib/badline/frontend/menu/menu_ports.rb +38 -1
  90. data/lib/badline/frontend/menu/pause_menu.rb +5 -1
  91. data/lib/badline/frontend/pet_keyboard.rb +23 -1
  92. data/lib/badline/frontend/screen.rb +1 -1
  93. data/lib/badline/frontend/screens.rb +40 -2
  94. data/lib/badline/frontend/teletype_pane.rb +152 -0
  95. data/lib/badline/frontend/timeline.rb +31 -2
  96. data/lib/badline/frontend.rb +3 -0
  97. data/lib/badline/input/joystick.rb +15 -2
  98. data/lib/badline/kim1/bus.rb +117 -0
  99. data/lib/badline/kim1/cpu.rb +25 -0
  100. data/lib/badline/kim1/host_terminal.rb +74 -0
  101. data/lib/badline/kim1/key_entry.rb +74 -0
  102. data/lib/badline/kim1/keyed_modules.rb +53 -0
  103. data/lib/badline/kim1/keyed_state.rb +133 -0
  104. data/lib/badline/kim1/panel.rb +176 -0
  105. data/lib/badline/kim1/rriots.rb +28 -0
  106. data/lib/badline/kim1/sound.rb +29 -0
  107. data/lib/badline/kim1/tape.rb +118 -0
  108. data/lib/badline/kim1/teletype.rb +193 -0
  109. data/lib/badline/kim1.rb +194 -0
  110. data/lib/badline/machine/ieee_drives.rb +94 -117
  111. data/lib/badline/machine/keyboard_buffer.rb +20 -3
  112. data/lib/badline/machine/line_sound.rb +122 -0
  113. data/lib/badline/machine.rb +49 -15
  114. data/lib/badline/media/extensions.rb +8 -4
  115. data/lib/badline/media/kim1_media.rb +150 -0
  116. data/lib/badline/media/pet_media.rb +3 -1
  117. data/lib/badline/media/true_drive.rb +52 -45
  118. data/lib/badline/media/vic20_media.rb +4 -2
  119. data/lib/badline/media.rb +16 -6
  120. data/lib/badline/memory.rb +2 -4
  121. data/lib/badline/options/family.rb +98 -8
  122. data/lib/badline/options/help.rb +44 -12
  123. data/lib/badline/options/table.rb +44 -12
  124. data/lib/badline/options/validation.rb +44 -8
  125. data/lib/badline/options.rb +27 -8
  126. data/lib/badline/pet/bus.rb +16 -2
  127. data/lib/badline/pet/keyboard_ports.rb +9 -2
  128. data/lib/badline/pet/keyed_state.rb +4 -0
  129. data/lib/badline/pet/model.rb +11 -2
  130. data/lib/badline/pet/rom_sets.rb +1 -0
  131. data/lib/badline/pet/sound.rb +5 -105
  132. data/lib/badline/pet/superpet/acia.rb +12 -0
  133. data/lib/badline/pet/superpet/board.rb +221 -0
  134. data/lib/badline/pet/superpet/dongle.rb +92 -0
  135. data/lib/badline/pet/superpet/keyed_modules.rb +63 -0
  136. data/lib/badline/pet/superpet/keyed_parts.rb +76 -0
  137. data/lib/badline/pet/superpet/m6809.rb +32 -0
  138. data/lib/badline/pet/superpet/waterloo_traps.rb +199 -0
  139. data/lib/badline/pet/superpet.rb +221 -0
  140. data/lib/badline/pet.rb +23 -3
  141. data/lib/badline/plus4/keyed_state.rb +2 -0
  142. data/lib/badline/plus4.rb +5 -0
  143. data/lib/badline/roms/1001/fdc-251257-02a.rom +0 -0
  144. data/lib/badline/roms/4040/dos-1.2.rom +0 -0
  145. data/lib/badline/roms/4040/dos-2.1-rev.rom +0 -0
  146. data/lib/badline/roms/4040/dos-2.1.rom +0 -0
  147. data/lib/badline/roms/4040/fdc-901466-02.rom +0 -0
  148. data/lib/badline/roms/4040/fdc-901466-04.rom +0 -0
  149. data/lib/badline/roms/9060/dos-3.0.rom +0 -0
  150. data/lib/badline/roms/9060/sasi-300515-revb.rom +0 -0
  151. data/lib/badline/roms/README +176 -0
  152. data/lib/badline/roms/kim1/6530-002.rom +0 -0
  153. data/lib/badline/roms/kim1/6530-003.rom +0 -0
  154. data/lib/badline/roms/pet/characters-superpet.rom +0 -0
  155. data/lib/badline/roms/pet/superpet-a000.rom +0 -0
  156. data/lib/badline/roms/pet/superpet-c000.rom +0 -0
  157. data/lib/badline/roms/pet/superpet-e000-50hz.rom +0 -0
  158. data/lib/badline/roms/pet/superpet-e000.rom +0 -0
  159. data/lib/badline/snapshot/container.rb +8 -4
  160. data/lib/badline/snapshot/field_doc/markdown.rb +1 -1
  161. data/lib/badline/snapshot/field_doc.rb +35 -10
  162. data/lib/badline/snapshot/image.rb +19 -7
  163. data/lib/badline/snapshot/kim1_setup.rb +28 -0
  164. data/lib/badline/snapshot/pet_setup.rb +27 -11
  165. data/lib/badline/snapshot/storage_setup.rb +4 -1
  166. data/lib/badline/snapshot/vic20_setup.rb +11 -7
  167. data/lib/badline/snapshot/vice/pet.rb +14 -7
  168. data/lib/badline/snapshot/vice/pet_cpu.rb +39 -5
  169. data/lib/badline/snapshot/vice/pet_crtc.rb +15 -2
  170. data/lib/badline/snapshot/vice/pet_dongle.rb +72 -0
  171. data/lib/badline/snapshot/vice/pet_drive8050.rb +188 -68
  172. data/lib/badline/snapshot/vice/pet_mem.rb +55 -5
  173. data/lib/badline/snapshot/vice/pet_restore.rb +40 -11
  174. data/lib/badline/snapshot/vice/vic20.rb +70 -0
  175. data/lib/badline/snapshot/vice/vic20_cpu.rb +61 -0
  176. data/lib/badline/snapshot/vice/vic20_mem.rb +85 -0
  177. data/lib/badline/snapshot/vice/vic20_restore.rb +124 -0
  178. data/lib/badline/snapshot/vice/vic20_vici.rb +200 -0
  179. data/lib/badline/snapshot/vice.rb +1 -0
  180. data/lib/badline/snapshot.rb +8 -4
  181. data/lib/badline/status.rb +30 -30
  182. data/lib/badline/storage/d67_image.rb +55 -0
  183. data/lib/badline/storage/d90_image.rb +180 -0
  184. data/lib/badline/storage/kim_tape.rb +254 -0
  185. data/lib/badline/storage/papertape.rb +90 -0
  186. data/lib/badline/storage.rb +4 -0
  187. data/lib/badline/support/kim1_checkpoint.rb +41 -0
  188. data/lib/badline/support/superpet_checkpoint.rb +35 -0
  189. data/lib/badline/version.rb +1 -1
  190. data/lib/badline/vic20/keyed_modules.rb +6 -3
  191. data/lib/badline/vic20/keyed_state.rb +6 -4
  192. data/lib/badline/vic20/port_wiring.rb +11 -0
  193. data/lib/badline/vic20.rb +30 -12
  194. data/lib/badline.rb +1 -0
  195. metadata +85 -1
@@ -15,6 +15,11 @@ module Badline
15
15
  # The datasette's read line pulses VIA 2's CA1, its sense switch reads
16
16
  # on VIA 1's PA6, its motor runs while VIA 1's CA2 is low, and VIA 2's
17
17
  # PB3 drives its write line, the same pin as a keyboard column.
18
+ #
19
+ # VIA 1's PA5 is the VIC's light pen input too, low while the VIA
20
+ # drives it low or the joystick's fire button is held. The machine
21
+ # passes it on after each write to a VIA, as it does the serial lines,
22
+ # and as the fire button moves.
18
23
  module PortWiring
19
24
  # The lines the machine pulls, as Drives::SerialBus host lines.
20
25
  def serial_lines
@@ -30,6 +35,7 @@ module Badline
30
35
  def wire_ports
31
36
  @datasette.on_flag { tape_pulse }
32
37
  @bus.on_via_write { via_written }
38
+ @joystick1.on_change { pass_lightpen }
33
39
  via_written
34
40
  end
35
41
 
@@ -38,6 +44,11 @@ module Badline
38
44
  @iec_bus.host_lines = lines unless lines == @iec_bus.host_lines
39
45
  @datasette.motor = !@via1.ca2_output
40
46
  @datasette.write_line = @via2.port_b_output.anybits?(0x08)
47
+ pass_lightpen
48
+ end
49
+
50
+ def pass_lightpen
51
+ @vic.lightpen_level(@via1.port_a_output.anybits?(0x20) && @joystick1.port_bits.anybits?(0x10))
41
52
  end
42
53
 
43
54
  # A falling edge on the read line, and the line back up.
data/lib/badline/vic20.rb CHANGED
@@ -11,8 +11,8 @@ require "badline/vic20/keyed_state"
11
11
  require "badline/vic20/keyed_modules"
12
12
 
13
13
  module Badline
14
- # The Commodore VIC-20 with the PAL 6561: a 6502 at the VIC's clock, the
15
- # VIC-I and two 6522 VIAs. VIA 1, at $9110, pulls NMI, and VIA 2, at
14
+ # The Commodore VIC-20, with the PAL 6561 or the NTSC 6560: a 6502 at
15
+ # the VIC's clock, the VIC-I and two 6522 VIAs. VIA 1, at $9110, pulls NMI, and VIA 2, at
16
16
  # $9120, pulls IRQ. Nothing else interrupts the CPU, and nothing halts
17
17
  # it: the VIC fetches in the half of the cycle the CPU leaves alone.
18
18
  #
@@ -34,6 +34,14 @@ module Badline
34
34
  # The RAM expansion it was built with, a key of Bus::RAM_CONFIGURATIONS.
35
35
  attr_reader :ram_configuration
36
36
 
37
+ # The model it was built as, one of MODELS.
38
+ attr_reader :model
39
+
40
+ # The models, by xvic's names for its video standards: the PAL one with
41
+ # the 6561 and KERNAL 901486-07, and the NTSC one with the 6560 and
42
+ # KERNAL 901486-06.
43
+ MODELS = %w[pal ntsc].freeze
44
+
37
45
  def ram = @bus.ram
38
46
 
39
47
  # Reads and writes memory as the CPU sees it, through the bus.
@@ -43,6 +51,8 @@ module Badline
43
51
 
44
52
  def family = :vic20
45
53
 
54
+ def portless_board = nil
55
+
46
56
  # The one control port's joystick, which the front end's second
47
57
  # joystick drives too.
48
58
  def joystick2 = @joystick1
@@ -50,10 +60,14 @@ module Badline
50
60
  # No pot device plugs in yet.
51
61
  def control_ports = nil
52
62
 
53
- # +ram+ names the RAM expansion, one of Bus::RAM_CONFIGURATIONS.
54
- def initialize(ram: :unexpanded, debug: false)
63
+ # +ram+ names the RAM expansion, one of Bus::RAM_CONFIGURATIONS, and
64
+ # +model+ the model, one of MODELS.
65
+ def initialize(ram: :unexpanded, model: "pal", debug: false)
55
66
  @ram_configuration = ram
56
- @vic = Chips::VICI.new
67
+ @model = model
68
+ raise ArgumentError, "no VIC-20 model named #{model}" unless MODELS.include?(model)
69
+
70
+ @vic = Chips::VICI.new(model == "ntsc" ? Chips::VICI::NTSC : Chips::VICI::PAL)
57
71
  @keyboard = Input::Keyboard.new(matrix: KeyboardVIAPorts::MATRIX)
58
72
  @joystick1 = Input::Joystick.new
59
73
  @iec_bus = Drives::SerialBus.new
@@ -63,15 +77,18 @@ module Badline
63
77
  keyboard_ports = KeyboardVIAPorts.new(keyboard: @keyboard, joystick: @joystick1)
64
78
  @via2 = Chips::VIA.new(start: 0x9000, peripheral: keyboard_ports)
65
79
  keyboard_ports.connect(@via2)
66
- @bus = Bus.new(vic: @vic, via1: @via1, via2: @via2, blocks: Bus::RAM_CONFIGURATIONS.fetch(ram))
80
+ @bus = Bus.new(vic: @vic, via1: @via1, via2: @via2, blocks: Bus::RAM_CONFIGURATIONS.fetch(ram),
81
+ kernal: "vic20/kernal-#{model}.rom")
67
82
  @vic.connect(@bus)
68
83
  @cpu = CPU.new(@bus, debug:)
84
+ @cpu.power_on!
69
85
  @cycles = 0
70
86
  @sound = Chips::VICI::Sound.new(self, @vic.profile.clock_hz)
71
87
  @vic.sound = @sound
72
88
  @nmi_asserted = false
73
89
  @init_handlers = []
74
90
  @pending_keys = nil
91
+ @init_keys = nil
75
92
  @dos = nil
76
93
  @serial_trap = nil
77
94
  @save_trap = nil
@@ -109,18 +126,18 @@ module Badline
109
126
  # #drain_samples.
110
127
  def sound_source = @sound
111
128
 
112
- # The PAL clock and raster, and the part of the display xvic shows: all
113
- # 284 pixels of a line, from line 28, below the VIC's vertical blank.
114
- # The VIC draws 4 pixels a cycle, half as many as the C64's VIC-II on
115
- # about the same clock, so each pixel shows two window pixels wide, as
116
- # xvic draws them.
129
+ # The VIC's clock and raster, and the part of the display xvic shows:
130
+ # every pixel of a line, from line 28, below the VIC's vertical blank,
131
+ # 284 lines on PAL and 233 on NTSC. The VIC draws 4 pixels a cycle,
132
+ # half as many as the C64's VIC-II on about the same clock, so each
133
+ # pixel shows two window pixels wide, as xvic draws them.
117
134
  def timing
118
135
  profile = @vic.profile
119
136
  width = profile.cycles_per_line * Chips::VICI::PIXELS_PER_CYCLE
120
137
  blanked = profile.blanked_lines
121
138
  Timing.new(clock_hz: profile.clock_hz, cycles_per_line: profile.cycles_per_line,
122
139
  lines_per_frame: profile.lines_per_frame,
123
- crop: [0, blanked, width, profile.lines_per_frame - blanked], pixel_width: 2, dots: 1)
140
+ crop: [0, blanked, width, profile.shown_lines], pixel_width: 2, dots: 1)
124
141
  end
125
142
 
126
143
  # The RESTORE key pulls VIA 1's CA1 low while it is held. The KERNAL
@@ -167,6 +184,7 @@ module Badline
167
184
  @vic.power_on!
168
185
  @sound.power_on!
169
186
  reset!
187
+ @cpu.power_on!
170
188
  end
171
189
 
172
190
  private
data/lib/badline.rb CHANGED
@@ -4,6 +4,7 @@ require "badline/core"
4
4
  require "badline/c128"
5
5
  require "badline/plus4"
6
6
  require "badline/cbm2"
7
+ require "badline/kim1"
7
8
  require "badline/options"
8
9
  require "badline/data_path"
9
10
  require "badline/snapshot"
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.17.0
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Inge Jørgensen
@@ -47,6 +47,7 @@ files:
47
47
  - doc/sid-player.md
48
48
  - doc/snapshot-format.md
49
49
  - doc/snapshots.md
50
+ - doc/vice.md
50
51
  - exe/badline-ruby
51
52
  - lib/badline.rb
52
53
  - lib/badline/addressable.rb
@@ -194,6 +195,18 @@ files:
194
195
  - lib/badline/chips/cpu/traps.rb
195
196
  - lib/badline/chips/crtc.rb
196
197
  - lib/badline/chips/crtc/keyed_state.rb
198
+ - lib/badline/chips/m6809.rb
199
+ - lib/badline/chips/m6809/arithmetic.rb
200
+ - lib/badline/chips/m6809/bus_steps.rb
201
+ - lib/badline/chips/m6809/core.rb
202
+ - lib/badline/chips/m6809/indexed.rb
203
+ - lib/badline/chips/m6809/interrupts.rb
204
+ - lib/badline/chips/m6809/keyed_state.rb
205
+ - lib/badline/chips/m6809/opcodes.rb
206
+ - lib/badline/chips/m6809/operations.rb
207
+ - lib/badline/chips/m6809/plans.rb
208
+ - lib/badline/chips/m6809/registers.rb
209
+ - lib/badline/chips/m6809/stack.rb
197
210
  - lib/badline/chips/pia.rb
198
211
  - lib/badline/chips/pia/control_lines.rb
199
212
  - lib/badline/chips/pia/keyed_parts.rb
@@ -263,6 +276,7 @@ files:
263
276
  - lib/badline/chips/vic/sprites.rb
264
277
  - lib/badline/chips/vic_i.rb
265
278
  - lib/badline/chips/vic_i/keyed_parts.rb
279
+ - lib/badline/chips/vic_i/light_pen.rb
266
280
  - lib/badline/chips/vic_i/painter.rb
267
281
  - lib/badline/chips/vic_i/sound.rb
268
282
  - lib/badline/chips/vic_i/sound/output.rb
@@ -301,6 +315,8 @@ files:
301
315
  - lib/badline/drives/engine/vias.rb
302
316
  - lib/badline/drives/engine/watch.rb
303
317
  - lib/badline/drives/ieee_bus.rb
318
+ - lib/badline/drives/ieee_models.rb
319
+ - lib/badline/drives/model1001.rb
304
320
  - lib/badline/drives/model1541.rb
305
321
  - lib/badline/drives/model1541/bus.rb
306
322
  - lib/badline/drives/model1541/byte_ready.rb
@@ -349,8 +365,16 @@ files:
349
365
  - lib/badline/drives/model2031/ieee_port.rb
350
366
  - lib/badline/drives/model2031/keyed_state.rb
351
367
  - lib/badline/drives/model2031/parts.rb
368
+ - lib/badline/drives/model4040.rb
369
+ - lib/badline/drives/model4040/disk.rb
370
+ - lib/badline/drives/model4040/ip_bus.rb
371
+ - lib/badline/drives/model4040/keyed_state.rb
372
+ - lib/badline/drives/model4040/mechanism.rb
373
+ - lib/badline/drives/model4040/parts.rb
352
374
  - lib/badline/drives/model8050.rb
375
+ - lib/badline/drives/model8050/board.rb
353
376
  - lib/badline/drives/model8050/disk.rb
377
+ - lib/badline/drives/model8050/dos_board.rb
354
378
  - lib/badline/drives/model8050/fdc_bus.rb
355
379
  - lib/badline/drives/model8050/idle.rb
356
380
  - lib/badline/drives/model8050/ieee_port.rb
@@ -358,6 +382,13 @@ files:
358
382
  - lib/badline/drives/model8050/keyed_state.rb
359
383
  - lib/badline/drives/model8050/mechanism.rb
360
384
  - lib/badline/drives/model8050/parts.rb
385
+ - lib/badline/drives/model9060.rb
386
+ - lib/badline/drives/model9060/idle.rb
387
+ - lib/badline/drives/model9060/keyed_state.rb
388
+ - lib/badline/drives/model9060/parts.rb
389
+ - lib/badline/drives/model9060/sasi_bus.rb
390
+ - lib/badline/drives/model9060/sasi_commands.rb
391
+ - lib/badline/drives/model9060/sasi_target.rb
361
392
  - lib/badline/drives/serial_bus.rb
362
393
  - lib/badline/ffi.rb
363
394
  - lib/badline/frontend.rb
@@ -372,9 +403,11 @@ files:
372
403
  - lib/badline/frontend/frame_report.rb
373
404
  - lib/badline/frontend/gamepads.rb
374
405
  - lib/badline/frontend/keys.rb
406
+ - lib/badline/frontend/kim1_panel.rb
375
407
  - lib/badline/frontend/machine_window.rb
376
408
  - lib/badline/frontend/media_slots.rb
377
409
  - lib/badline/frontend/menu/confirmation.rb
410
+ - lib/badline/frontend/menu/drive_types.rb
378
411
  - lib/badline/frontend/menu/file_browser.rb
379
412
  - lib/badline/frontend/menu/menu_dialogs.rb
380
413
  - lib/badline/frontend/menu/menu_media.rb
@@ -405,6 +438,7 @@ files:
405
438
  - lib/badline/frontend/screenshot.rb
406
439
  - lib/badline/frontend/snapshots.rb
407
440
  - lib/badline/frontend/sound.rb
441
+ - lib/badline/frontend/teletype_pane.rb
408
442
  - lib/badline/frontend/timeline.rb
409
443
  - lib/badline/input.rb
410
444
  - lib/badline/input/control_ports.rb
@@ -437,10 +471,23 @@ files:
437
471
  - lib/badline/kernal_trap/save.rb
438
472
  - lib/badline/kernal_trap/serial.rb
439
473
  - lib/badline/kernal_trap/steps.rb
474
+ - lib/badline/kim1.rb
475
+ - lib/badline/kim1/bus.rb
476
+ - lib/badline/kim1/cpu.rb
477
+ - lib/badline/kim1/host_terminal.rb
478
+ - lib/badline/kim1/key_entry.rb
479
+ - lib/badline/kim1/keyed_modules.rb
480
+ - lib/badline/kim1/keyed_state.rb
481
+ - lib/badline/kim1/panel.rb
482
+ - lib/badline/kim1/rriots.rb
483
+ - lib/badline/kim1/sound.rb
484
+ - lib/badline/kim1/tape.rb
485
+ - lib/badline/kim1/teletype.rb
440
486
  - lib/badline/machine.rb
441
487
  - lib/badline/machine/clocking.rb
442
488
  - lib/badline/machine/ieee_drives.rb
443
489
  - lib/badline/machine/keyboard_buffer.rb
490
+ - lib/badline/machine/line_sound.rb
444
491
  - lib/badline/machine/settling.rb
445
492
  - lib/badline/media.rb
446
493
  - lib/badline/media/boot_disk.rb
@@ -448,6 +495,7 @@ files:
448
495
  - lib/badline/media/disk_list.rb
449
496
  - lib/badline/media/disk_set.rb
450
497
  - lib/badline/media/extensions.rb
498
+ - lib/badline/media/kim1_media.rb
451
499
  - lib/badline/media/not_disk.rb
452
500
  - lib/badline/media/pet_media.rb
453
501
  - lib/badline/media/plus4_media.rb
@@ -485,6 +533,14 @@ files:
485
533
  - lib/badline/pet/model.rb
486
534
  - lib/badline/pet/rom_sets.rb
487
535
  - lib/badline/pet/sound.rb
536
+ - lib/badline/pet/superpet.rb
537
+ - lib/badline/pet/superpet/acia.rb
538
+ - lib/badline/pet/superpet/board.rb
539
+ - lib/badline/pet/superpet/dongle.rb
540
+ - lib/badline/pet/superpet/keyed_modules.rb
541
+ - lib/badline/pet/superpet/keyed_parts.rb
542
+ - lib/badline/pet/superpet/m6809.rb
543
+ - lib/badline/pet/superpet/waterloo_traps.rb
488
544
  - lib/badline/pet/via.rb
489
545
  - lib/badline/pet/via_ports.rb
490
546
  - lib/badline/plus4.rb
@@ -505,9 +561,17 @@ files:
505
561
  - lib/badline/plus4/user_port.rb
506
562
  - lib/badline/region.rb
507
563
  - lib/badline/rom.rb
564
+ - lib/badline/roms/1001/fdc-251257-02a.rom
565
+ - lib/badline/roms/4040/dos-1.2.rom
566
+ - lib/badline/roms/4040/dos-2.1-rev.rom
567
+ - lib/badline/roms/4040/dos-2.1.rom
568
+ - lib/badline/roms/4040/fdc-901466-02.rom
569
+ - lib/badline/roms/4040/fdc-901466-04.rom
508
570
  - lib/badline/roms/8050/dos-2.7.rom
509
571
  - lib/badline/roms/8050/fdc-901869-01.rom
510
572
  - lib/badline/roms/8050/fdc-901885-04.rom
573
+ - lib/badline/roms/9060/dos-3.0.rom
574
+ - lib/badline/roms/9060/sasi-300515-revb.rom
511
575
  - lib/badline/roms/README
512
576
  - lib/badline/roms/basic.rom
513
577
  - lib/badline/roms/c128/basic.rom
@@ -535,10 +599,13 @@ files:
535
599
  - lib/badline/roms/kernal-pet64.rom
536
600
  - lib/badline/roms/kernal-sx64.rom
537
601
  - lib/badline/roms/kernal.rom
602
+ - lib/badline/roms/kim1/6530-002.rom
603
+ - lib/badline/roms/kim1/6530-003.rom
538
604
  - lib/badline/roms/pet/basic1.rom
539
605
  - lib/badline/roms/pet/basic2.rom
540
606
  - lib/badline/roms/pet/basic4.rom
541
607
  - lib/badline/roms/pet/characters-din.rom
608
+ - lib/badline/roms/pet/characters-superpet.rom
542
609
  - lib/badline/roms/pet/characters1.rom
543
610
  - lib/badline/roms/pet/characters2.rom
544
611
  - lib/badline/roms/pet/editor1.rom
@@ -555,6 +622,10 @@ files:
555
622
  - lib/badline/roms/pet/kernal1.rom
556
623
  - lib/badline/roms/pet/kernal2.rom
557
624
  - lib/badline/roms/pet/kernal4.rom
625
+ - lib/badline/roms/pet/superpet-a000.rom
626
+ - lib/badline/roms/pet/superpet-c000.rom
627
+ - lib/badline/roms/pet/superpet-e000-50hz.rom
628
+ - lib/badline/roms/pet/superpet-e000.rom
558
629
  - lib/badline/roms/plus4/basic.rom
559
630
  - lib/badline/roms/plus4/function-high.rom
560
631
  - lib/badline/roms/plus4/function-low.rom
@@ -586,6 +657,7 @@ files:
586
657
  - lib/badline/snapshot/keyed/recorder.rb
587
658
  - lib/badline/snapshot/keyed/report.rb
588
659
  - lib/badline/snapshot/keyed/writer.rb
660
+ - lib/badline/snapshot/kim1_setup.rb
589
661
  - lib/badline/snapshot/machine_state.rb
590
662
  - lib/badline/snapshot/pet_setup.rb
591
663
  - lib/badline/snapshot/plus4_setup.rb
@@ -611,6 +683,7 @@ files:
611
683
  - lib/badline/snapshot/vice/pet.rb
612
684
  - lib/badline/snapshot/vice/pet_cpu.rb
613
685
  - lib/badline/snapshot/vice/pet_crtc.rb
686
+ - lib/badline/snapshot/vice/pet_dongle.rb
614
687
  - lib/badline/snapshot/vice/pet_drive.rb
615
688
  - lib/badline/snapshot/vice/pet_drive8050.rb
616
689
  - lib/badline/snapshot/vice/pet_mem.rb
@@ -622,16 +695,23 @@ files:
622
695
  - lib/badline/snapshot/vice/reu_fields.rb
623
696
  - lib/badline/snapshot/vice/sid_extended.rb
624
697
  - lib/badline/snapshot/vice/sid_registers.rb
698
+ - lib/badline/snapshot/vice/vic20.rb
699
+ - lib/badline/snapshot/vice/vic20_cpu.rb
700
+ - lib/badline/snapshot/vice/vic20_mem.rb
701
+ - lib/badline/snapshot/vice/vic20_restore.rb
702
+ - lib/badline/snapshot/vice/vic20_vici.rb
625
703
  - lib/badline/snapshot/vice/vicii.rb
626
704
  - lib/badline/snapshot/vice/vicii_import.rb
627
705
  - lib/badline/status.rb
628
706
  - lib/badline/storage.rb
629
707
  - lib/badline/storage/crt_file.rb
630
708
  - lib/badline/storage/d64_image.rb
709
+ - lib/badline/storage/d67_image.rb
631
710
  - lib/badline/storage/d71_image.rb
632
711
  - lib/badline/storage/d80_image.rb
633
712
  - lib/badline/storage/d81_image.rb
634
713
  - lib/badline/storage/d82_image.rb
714
+ - lib/badline/storage/d90_image.rb
635
715
  - lib/badline/storage/disk_image.rb
636
716
  - lib/badline/storage/disk_image/bam.rb
637
717
  - lib/badline/storage/disk_image/catalog.rb
@@ -640,8 +720,10 @@ files:
640
720
  - lib/badline/storage/disk_image/writing.rb
641
721
  - lib/badline/storage/g64_image.rb
642
722
  - lib/badline/storage/host_directory.rb
723
+ - lib/badline/storage/kim_tape.rb
643
724
  - lib/badline/storage/listing.rb
644
725
  - lib/badline/storage/p00.rb
726
+ - lib/badline/storage/papertape.rb
645
727
  - lib/badline/storage/t64.rb
646
728
  - lib/badline/storage/tap.rb
647
729
  - lib/badline/storage/unavailable.rb
@@ -649,9 +731,11 @@ files:
649
731
  - lib/badline/support/c128_checkpoint.rb
650
732
  - lib/badline/support/cbm2_checkpoint.rb
651
733
  - lib/badline/support/checkpoint.rb
734
+ - lib/badline/support/kim1_checkpoint.rb
652
735
  - lib/badline/support/p500_checkpoint.rb
653
736
  - lib/badline/support/pet_checkpoint.rb
654
737
  - lib/badline/support/plus4_checkpoint.rb
738
+ - lib/badline/support/superpet_checkpoint.rb
655
739
  - lib/badline/support/vic20_checkpoint.rb
656
740
  - lib/badline/timing.rb
657
741
  - lib/badline/version.rb