badline 0.11.1 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -0
- data/CLAUDE.md +8 -7
- data/CONTRIBUTING.md +7 -6
- data/README.md +12 -5
- data/doc/media.md +28 -1
- data/doc/pinned-behaviour.md +31 -1
- data/exe/badline-ruby +1 -1
- data/lib/badline/address_bus/saved_state.rb +4 -10
- data/lib/badline/address_bus.rb +8 -27
- data/lib/badline/audio/bare_player.rb +1 -1
- data/lib/badline/c128/bus.rb +17 -52
- data/lib/badline/c128/bus_state.rb +5 -5
- data/lib/badline/c128/drives.rb +35 -22
- data/lib/badline/c128/fast_serial.rb +1 -0
- data/lib/badline/c128/io_pages.rb +35 -0
- data/lib/badline/c128/mmu.rb +9 -7
- data/lib/badline/c128/modes.rb +17 -4
- data/lib/badline/c128/saved_state.rb +22 -0
- data/lib/badline/c128/z80.rb +49 -0
- data/lib/badline/c128/z80_pages.rb +118 -0
- data/lib/badline/c128/z80_turns.rb +106 -0
- data/lib/badline/c128.rb +21 -83
- data/lib/badline/cartridge/action_replay.rb +2 -2
- data/lib/badline/cartridge/comal80.rb +1 -7
- data/lib/badline/cartridge/dinamic.rb +0 -8
- data/lib/badline/cartridge/final_cartridge3.rb +6 -6
- data/lib/badline/cartridge/fun_play.rb +0 -8
- data/lib/badline/cartridge/game_system.rb +0 -8
- data/lib/badline/cartridge/kcs_power.rb +10 -7
- data/lib/badline/cartridge/mach5.rb +2 -4
- data/lib/badline/cartridge/magic_desk.rb +0 -8
- data/lib/badline/cartridge/ocean.rb +0 -8
- data/lib/badline/cartridge/pagefox.rb +2 -2
- data/lib/badline/cartridge/retro_replay.rb +7 -6
- data/lib/badline/cartridge/rex_utility.rb +2 -6
- data/lib/badline/cartridge/rgcd.rb +2 -2
- data/lib/badline/cartridge/simons_basic.rb +0 -5
- data/lib/badline/cartridge/super_games.rb +4 -2
- data/lib/badline/cartridge/westermann.rb +2 -6
- data/lib/badline/cartridge.rb +37 -9
- data/lib/badline/cia/fast_forward.rb +21 -3
- data/lib/badline/cia.rb +8 -5
- data/lib/badline/computer/attachments.rb +14 -95
- data/lib/badline/computer/common.rb +34 -0
- data/lib/badline/computer/kernal_traps.rb +65 -5
- data/lib/badline/computer/true_drives.rb +69 -0
- data/lib/badline/computer.rb +9 -68
- data/lib/badline/core.rb +4 -2
- data/lib/badline/cpu_port.rb +112 -0
- data/lib/badline/drive/core.rb +8 -33
- data/lib/badline/drive/fast_serial.rb +73 -0
- data/lib/badline/drive/idle.rb +1 -11
- data/lib/badline/drive/orbit.rb +2 -5
- data/lib/badline/drive/sleep.rb +0 -2
- data/lib/badline/drive/vias.rb +84 -0
- data/lib/badline/drive.rb +2 -0
- data/lib/badline/drive1541/disk.rb +14 -17
- data/lib/badline/drive1541/disk_state.rb +7 -15
- data/lib/badline/drive1541.rb +1 -0
- data/lib/badline/drive1571/wd1770.rb +94 -8
- data/lib/badline/drive1571.rb +8 -58
- data/lib/badline/drive1581/bus.rb +137 -0
- data/lib/badline/drive1581/cpu.rb +11 -0
- data/lib/badline/drive1581/disk.rb +135 -0
- data/lib/badline/drive1581/disk_state.rb +87 -0
- data/lib/badline/drive1581/mechanism.rb +117 -0
- data/lib/badline/drive1581/serial_port.rb +52 -0
- data/lib/badline/drive1581/slot.rb +78 -0
- data/lib/badline/drive1581/track.rb +100 -0
- data/lib/badline/drive1581/track_bytes.rb +75 -0
- data/lib/badline/drive1581/wd1772/registers.rb +89 -0
- data/lib/badline/drive1581/wd1772/sector_writes.rb +73 -0
- data/lib/badline/drive1581/wd1772/sectors.rb +150 -0
- data/lib/badline/drive1581/wd1772/state.rb +66 -0
- data/lib/badline/drive1581/wd1772/stepping.rb +109 -0
- data/lib/badline/drive1581/wd1772/tracks.rb +125 -0
- data/lib/badline/drive1581/wd1772/turn.rb +73 -0
- data/lib/badline/drive1581/wd1772.rb +216 -0
- data/lib/badline/drive1581.rb +233 -0
- data/lib/badline/frontend/app.rb +1 -3
- data/lib/badline/frontend/audio_device.rb +67 -0
- data/lib/badline/frontend/audio_sink.rb +16 -50
- data/lib/badline/frontend/boot.rb +24 -67
- data/lib/badline/frontend/buttons.rb +7 -7
- data/lib/badline/frontend/keys.rb +33 -8
- data/lib/badline/frontend/media_slots.rb +42 -0
- data/lib/badline/frontend/{confirmation.rb → menu/confirmation.rb} +4 -4
- data/lib/badline/frontend/{file_browser.rb → menu/file_browser.rb} +18 -34
- data/lib/badline/frontend/{menu_dialogs.rb → menu/menu_dialogs.rb} +3 -7
- data/lib/badline/frontend/{menu_media.rb → menu/menu_media.rb} +26 -51
- data/lib/badline/frontend/{menu_pages.rb → menu/menu_pages.rb} +5 -8
- data/lib/badline/frontend/{name_field.rb → menu/name_field.rb} +11 -24
- data/lib/badline/frontend/{pause_menu.rb → menu/pause_menu.rb} +13 -28
- data/lib/badline/frontend/menu/theme.rb +18 -0
- data/lib/badline/frontend/{filter_view.rb → player/filter_view.rb} +4 -4
- data/lib/badline/frontend/{info_view.rb → player/info_view.rb} +3 -3
- data/lib/badline/frontend/{player_window.rb → player/player_controller.rb} +17 -25
- data/lib/badline/frontend/{player_footer.rb → player/player_footer.rb} +8 -8
- data/lib/badline/frontend/{player_header.rb → player/player_header.rb} +5 -5
- data/lib/badline/frontend/{player_screen.rb → player/player_screen.rb} +4 -5
- data/lib/badline/frontend/{scope.rb → player/scope.rb} +1 -1
- data/lib/badline/frontend/{sid_view.rb → player/sid_view.rb} +16 -20
- data/lib/badline/frontend/player/theme.rb +18 -0
- data/lib/badline/frontend/{visualizer_view.rb → player/visualizer_view.rb} +8 -8
- data/lib/badline/frontend/sound.rb +19 -38
- data/lib/badline/frontend/timeline.rb +3 -14
- data/lib/badline/frontend.rb +24 -20
- data/lib/badline/iec_bus.rb +14 -2
- data/lib/badline/kernal_trap/{file.rb → file_routine.rb} +1 -1
- data/lib/badline/kernal_trap/load.rb +1 -1
- data/lib/badline/kernal_trap/save.rb +1 -1
- data/lib/badline/kernal_trap.rb +1 -1
- data/lib/badline/machine/clocking.rb +50 -0
- data/lib/badline/machine.rb +63 -6
- data/lib/badline/media/boot_disk.rb +50 -0
- data/lib/badline/media/disk_list.rb +3 -3
- data/lib/badline/media/disk_set.rb +1 -1
- data/lib/badline/media/extensions.rb +33 -0
- data/lib/badline/media/not_disk.rb +8 -0
- data/lib/badline/media/program.rb +28 -0
- data/lib/badline/media/true_drive.rb +38 -17
- data/lib/badline/media/tune.rb +35 -0
- data/lib/badline/media/vic20_cartridge.rb +1 -7
- data/lib/badline/media/vic20_media.rb +38 -80
- data/lib/badline/media.rb +90 -81
- data/lib/badline/options/event.rb +4 -2
- data/lib/badline/options/family.rb +3 -9
- data/lib/badline/options/help.rb +2 -1
- data/lib/badline/roms/README +9 -0
- data/lib/badline/roms/dos1581.rom +0 -0
- data/lib/badline/sdl.rb +37 -20
- data/lib/badline/sid.rb +1 -1
- data/lib/badline/snapshot/machine_state.rb +9 -1
- data/lib/badline/snapshot/state.rb +6 -4
- data/lib/badline/snapshot.rb +11 -9
- data/lib/badline/storage/d64_image.rb +15 -7
- data/lib/badline/storage/disk_image/writing.rb +2 -2
- data/lib/badline/storage/disk_image.rb +1 -1
- data/lib/badline/storage/host_directory.rb +1 -1
- data/lib/badline/storage/p00.rb +8 -0
- data/lib/badline/storage/t64.rb +1 -1
- data/lib/badline/time_of_day.rb +3 -3
- data/lib/badline/version.rb +1 -1
- data/lib/badline/vic/bank.rb +1 -1
- data/lib/badline/vic/border_mask.rb +1 -1
- data/lib/badline/vic/collisions.rb +1 -1
- data/lib/badline/vic/color_patches.rb +1 -1
- data/lib/badline/vic/display_state.rb +1 -1
- data/lib/badline/vic/graphics_mode.rb +1 -1
- data/lib/badline/vic/graphics_shifter.rb +1 -1
- data/lib/badline/vic/register_log.rb +1 -1
- data/lib/badline/vic/registers.rb +1 -1
- data/lib/badline/vic/sequencer.rb +1 -1
- data/lib/badline/vic/sequencer_output.rb +1 -1
- data/lib/badline/vic/sequencer_state.rb +1 -1
- data/lib/badline/vic/sprite/internal_bus.rb +1 -1
- data/lib/badline/vic/sprite/saved_state.rb +1 -1
- data/lib/badline/vic/sprite/shifter.rb +1 -1
- data/lib/badline/vic/sprite/timing.rb +1 -1
- data/lib/badline/vic/sprite.rb +1 -1
- data/lib/badline/vic/sprites.rb +1 -1
- data/lib/badline/vic/sprites_state.rb +1 -1
- data/lib/badline/vic.rb +6 -5
- data/lib/badline/vic20/attachments.rb +15 -71
- data/lib/badline/vic20/saved_state.rb +2 -30
- data/lib/badline/vic20.rb +4 -37
- data/lib/badline/z80/core.rb +2 -0
- data/lib/badline/z80/saved_state.rb +69 -0
- metadata +61 -23
- data/lib/badline/cycleable.rb +0 -38
- /data/lib/badline/frontend/{menu_ports.rb → menu/menu_ports.rb} +0 -0
- /data/lib/badline/frontend/{player_commands.rb → player/player_commands.rb} +0 -0
- /data/lib/badline/frontend/{player_state.rb → player/player_state.rb} +0 -0
- /data/lib/badline/frontend/{sid_history.rb → player/sid_history.rb} +0 -0
|
@@ -78,6 +78,7 @@ module Badline
|
|
|
78
78
|
@datasette.save_state(out)
|
|
79
79
|
save_trap_drive(out)
|
|
80
80
|
save_drive1541(out)
|
|
81
|
+
save_drive1581(out)
|
|
81
82
|
end
|
|
82
83
|
|
|
83
84
|
def load_state(input)
|
|
@@ -99,31 +100,11 @@ module Badline
|
|
|
99
100
|
@datasette.load_state(input)
|
|
100
101
|
load_trap_drive(input)
|
|
101
102
|
load_drive1541(input)
|
|
103
|
+
load_drive1581(input)
|
|
102
104
|
end
|
|
103
105
|
|
|
104
106
|
private
|
|
105
107
|
|
|
106
|
-
# The disk device 8 serves through the traps, with its channels.
|
|
107
|
-
def save_trap_drive(out)
|
|
108
|
-
out.boolean(!@drive.nil?)
|
|
109
|
-
return unless @drive
|
|
110
|
-
|
|
111
|
-
@drive.save_state(out)
|
|
112
|
-
@serial_trap.save_state(out)
|
|
113
|
-
@save_trap.save_state(out)
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
def load_trap_drive(input)
|
|
117
|
-
return unmount unless input.boolean?
|
|
118
|
-
|
|
119
|
-
storage = Storage.reopen(input)
|
|
120
|
-
unmount
|
|
121
|
-
mount(storage)
|
|
122
|
-
@drive.load_state(input)
|
|
123
|
-
@serial_trap.load_state(input)
|
|
124
|
-
@save_trap.load_state(input)
|
|
125
|
-
end
|
|
126
|
-
|
|
127
108
|
# A true 1541 on the serial bus, with its device number.
|
|
128
109
|
def save_drive1541(out)
|
|
129
110
|
out.boolean(!@drive1541.nil?)
|
|
@@ -133,15 +114,6 @@ module Badline
|
|
|
133
114
|
@drive1541.save_state(out)
|
|
134
115
|
end
|
|
135
116
|
|
|
136
|
-
def load_drive1541(input)
|
|
137
|
-
return detach_drive1541 unless input.boolean?
|
|
138
|
-
|
|
139
|
-
device = input.int
|
|
140
|
-
detach_drive1541 if @drive1541 && @drive1541.device != device
|
|
141
|
-
attach_drive1541(Drive1541.new(device:)) unless @drive1541
|
|
142
|
-
@drive1541.load_state(input)
|
|
143
|
-
end
|
|
144
|
-
|
|
145
117
|
def check_ram(ram)
|
|
146
118
|
return if ram == @ram_configuration
|
|
147
119
|
|
data/lib/badline/vic20.rb
CHANGED
|
@@ -23,6 +23,7 @@ module Badline
|
|
|
23
23
|
class Vic20
|
|
24
24
|
include IntegerHelper
|
|
25
25
|
include KeyboardBuffer
|
|
26
|
+
include Machine::Clocking
|
|
26
27
|
include Attachments
|
|
27
28
|
include PortWiring
|
|
28
29
|
include SavedState
|
|
@@ -33,10 +34,6 @@ module Badline
|
|
|
33
34
|
# The RAM expansion it was built with, a key of Bus::RAM_CONFIGURATIONS.
|
|
34
35
|
attr_reader :ram_configuration
|
|
35
36
|
|
|
36
|
-
# The path of the disk or directory device 8 serves through the traps
|
|
37
|
-
# (Attachments), or an empty one.
|
|
38
|
-
def mounted_path = @drive.nil? ? "" : @drive.path
|
|
39
|
-
|
|
40
37
|
def ram = @bus.ram
|
|
41
38
|
|
|
42
39
|
def family = :vic20
|
|
@@ -75,6 +72,7 @@ module Badline
|
|
|
75
72
|
@save_trap = nil
|
|
76
73
|
@capture_output = nil
|
|
77
74
|
@drive1541 = nil
|
|
75
|
+
@drive1581 = nil
|
|
78
76
|
@init_threshold = boot_cycles
|
|
79
77
|
wire_ports
|
|
80
78
|
end
|
|
@@ -94,35 +92,11 @@ module Badline
|
|
|
94
92
|
drive_nmi
|
|
95
93
|
@cpu.cycle!
|
|
96
94
|
@drive1541&.host_cycle!
|
|
95
|
+
@drive1581&.host_cycle!
|
|
97
96
|
|
|
98
97
|
@cycles += 1
|
|
99
98
|
end
|
|
100
99
|
|
|
101
|
-
# Runs `count` cycles, one #cycle! after another.
|
|
102
|
-
def run_cycles(count)
|
|
103
|
-
i = 0
|
|
104
|
-
while i < count
|
|
105
|
-
cycle!
|
|
106
|
-
i += 1
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# Runs cycles until the block returns true or the cycle count passes
|
|
111
|
-
# `limit`, checking before each cycle.
|
|
112
|
-
def run_until(limit)
|
|
113
|
-
cycle! until yield || @cycles > limit
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
# Runs the block once the KERNAL has booted (see init_threshold), or
|
|
117
|
-
# now if it has.
|
|
118
|
-
def on_init(&block)
|
|
119
|
-
if @cycles < @init_threshold
|
|
120
|
-
@init_handlers << block
|
|
121
|
-
else
|
|
122
|
-
block.call
|
|
123
|
-
end
|
|
124
|
-
end
|
|
125
|
-
|
|
126
100
|
# The chip whose #display a front end shows.
|
|
127
101
|
def video = @vic
|
|
128
102
|
|
|
@@ -176,6 +150,7 @@ module Badline
|
|
|
176
150
|
via_written
|
|
177
151
|
@drive&.reset!
|
|
178
152
|
@drive1541&.reset!
|
|
153
|
+
@drive1581&.reset!
|
|
179
154
|
@nmi_asserted = false
|
|
180
155
|
@cpu.reset!
|
|
181
156
|
end
|
|
@@ -189,10 +164,6 @@ module Badline
|
|
|
189
164
|
reset!
|
|
190
165
|
end
|
|
191
166
|
|
|
192
|
-
def inspect
|
|
193
|
-
"#<#{self.class.name} cycles=#{@cycles} cpu=(#{@cpu.inspect})>"
|
|
194
|
-
end
|
|
195
|
-
|
|
196
167
|
private
|
|
197
168
|
|
|
198
169
|
# The cycle by which the KERNAL has booted and BASIC printed READY,
|
|
@@ -212,9 +183,5 @@ module Badline
|
|
|
212
183
|
@cpu.nmi = true if nmi && !@nmi_asserted
|
|
213
184
|
@nmi_asserted = nmi
|
|
214
185
|
end
|
|
215
|
-
|
|
216
|
-
def handle_init
|
|
217
|
-
@init_handlers.each(&:call)
|
|
218
|
-
end
|
|
219
186
|
end
|
|
220
187
|
end
|
data/lib/badline/z80/core.rb
CHANGED
|
@@ -14,6 +14,7 @@ require "badline/z80/extended_page"
|
|
|
14
14
|
require "badline/z80/block_transfers"
|
|
15
15
|
require "badline/z80/block_io"
|
|
16
16
|
require "badline/z80/interrupt_acceptance"
|
|
17
|
+
require "badline/z80/saved_state"
|
|
17
18
|
|
|
18
19
|
module Badline
|
|
19
20
|
class Z80
|
|
@@ -42,6 +43,7 @@ module Badline
|
|
|
42
43
|
include BlockTransfers
|
|
43
44
|
include BlockIO
|
|
44
45
|
include InterruptAcceptance
|
|
46
|
+
include SavedState
|
|
45
47
|
|
|
46
48
|
attr_reader :bus, :cycles, :nmi
|
|
47
49
|
attr_accessor :int
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Badline
|
|
4
|
+
class Z80
|
|
5
|
+
# The registers, the T-state count and the interrupt latches for a
|
|
6
|
+
# snapshot, taken between instructions.
|
|
7
|
+
module SavedState
|
|
8
|
+
def save_state(out)
|
|
9
|
+
out.marker("Z80")
|
|
10
|
+
out.int(@a).int(@f).int(@b).int(@c).int(@d).int(@e).int(@h).int(@l)
|
|
11
|
+
out.int(@af_alt).int(@bc_alt).int(@de_alt).int(@hl_alt)
|
|
12
|
+
out.int(@i).int(@r).int(@pc).int(@sp).int(@ix).int(@iy).int(@wz).int(@q).int(@last_q).int(@im)
|
|
13
|
+
out.int(@cycles)
|
|
14
|
+
out.boolean(@iff1).boolean(@iff2).boolean(@halted).boolean(@after_ei).boolean(@after_ld_a_ir)
|
|
15
|
+
out.boolean(@int).boolean(@nmi).boolean(@nmi_pending)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def load_state(input)
|
|
19
|
+
input.marker("Z80")
|
|
20
|
+
load_main_registers(input)
|
|
21
|
+
@af_alt = input.int
|
|
22
|
+
@bc_alt = input.int
|
|
23
|
+
@de_alt = input.int
|
|
24
|
+
@hl_alt = input.int
|
|
25
|
+
load_special_registers(input)
|
|
26
|
+
@cycles = input.int
|
|
27
|
+
load_latches(input)
|
|
28
|
+
@prefix = 0
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
private
|
|
32
|
+
|
|
33
|
+
def load_main_registers(input)
|
|
34
|
+
@a = input.int
|
|
35
|
+
@f = input.int
|
|
36
|
+
@b = input.int
|
|
37
|
+
@c = input.int
|
|
38
|
+
@d = input.int
|
|
39
|
+
@e = input.int
|
|
40
|
+
@h = input.int
|
|
41
|
+
@l = input.int
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def load_special_registers(input)
|
|
45
|
+
@i = input.int
|
|
46
|
+
@r = input.int
|
|
47
|
+
@pc = input.int
|
|
48
|
+
@sp = input.int
|
|
49
|
+
@ix = input.int
|
|
50
|
+
@iy = input.int
|
|
51
|
+
@wz = input.int
|
|
52
|
+
@q = input.int
|
|
53
|
+
@last_q = input.int
|
|
54
|
+
@im = input.int
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def load_latches(input)
|
|
58
|
+
@iff1 = input.boolean?
|
|
59
|
+
@iff2 = input.boolean?
|
|
60
|
+
@halted = input.boolean?
|
|
61
|
+
@after_ei = input.boolean?
|
|
62
|
+
@after_ld_a_ir = input.boolean?
|
|
63
|
+
@int = input.boolean?
|
|
64
|
+
@nmi = input.boolean?
|
|
65
|
+
@nmi_pending = input.boolean?
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
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.
|
|
4
|
+
version: 0.12.1
|
|
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
|
|
@@ -129,8 +133,10 @@ files:
|
|
|
129
133
|
- lib/badline/color_memory.rb
|
|
130
134
|
- lib/badline/computer.rb
|
|
131
135
|
- lib/badline/computer/attachments.rb
|
|
136
|
+
- lib/badline/computer/common.rb
|
|
132
137
|
- lib/badline/computer/kernal_traps.rb
|
|
133
138
|
- lib/badline/computer/saved_state.rb
|
|
139
|
+
- lib/badline/computer/true_drives.rb
|
|
134
140
|
- lib/badline/control_ports.rb
|
|
135
141
|
- lib/badline/core.rb
|
|
136
142
|
- lib/badline/cpu.rb
|
|
@@ -141,17 +147,19 @@ files:
|
|
|
141
147
|
- lib/badline/cpu/operations.rb
|
|
142
148
|
- lib/badline/cpu/saved_state.rb
|
|
143
149
|
- lib/badline/cpu/stack_operations.rb
|
|
144
|
-
- lib/badline/
|
|
150
|
+
- lib/badline/cpu_port.rb
|
|
145
151
|
- lib/badline/data_path.rb
|
|
146
152
|
- lib/badline/datasette.rb
|
|
147
153
|
- lib/badline/debug_register.rb
|
|
148
154
|
- lib/badline/drive.rb
|
|
149
155
|
- lib/badline/drive/core.rb
|
|
156
|
+
- lib/badline/drive/fast_serial.rb
|
|
150
157
|
- lib/badline/drive/idle.rb
|
|
151
158
|
- lib/badline/drive/idle_cpu.rb
|
|
152
159
|
- lib/badline/drive/orbit.rb
|
|
153
160
|
- lib/badline/drive/serial_lines.rb
|
|
154
161
|
- lib/badline/drive/sleep.rb
|
|
162
|
+
- lib/badline/drive/vias.rb
|
|
155
163
|
- lib/badline/drive/watch.rb
|
|
156
164
|
- lib/badline/drive1541.rb
|
|
157
165
|
- lib/badline/drive1541/bus.rb
|
|
@@ -173,48 +181,70 @@ files:
|
|
|
173
181
|
- lib/badline/drive1571/serial_port.rb
|
|
174
182
|
- lib/badline/drive1571/serial_via.rb
|
|
175
183
|
- lib/badline/drive1571/wd1770.rb
|
|
184
|
+
- lib/badline/drive1581.rb
|
|
185
|
+
- lib/badline/drive1581/bus.rb
|
|
186
|
+
- lib/badline/drive1581/cpu.rb
|
|
187
|
+
- lib/badline/drive1581/disk.rb
|
|
188
|
+
- lib/badline/drive1581/disk_state.rb
|
|
189
|
+
- lib/badline/drive1581/mechanism.rb
|
|
190
|
+
- lib/badline/drive1581/serial_port.rb
|
|
191
|
+
- lib/badline/drive1581/slot.rb
|
|
192
|
+
- lib/badline/drive1581/track.rb
|
|
193
|
+
- lib/badline/drive1581/track_bytes.rb
|
|
194
|
+
- lib/badline/drive1581/wd1772.rb
|
|
195
|
+
- lib/badline/drive1581/wd1772/registers.rb
|
|
196
|
+
- lib/badline/drive1581/wd1772/sector_writes.rb
|
|
197
|
+
- lib/badline/drive1581/wd1772/sectors.rb
|
|
198
|
+
- lib/badline/drive1581/wd1772/state.rb
|
|
199
|
+
- lib/badline/drive1581/wd1772/stepping.rb
|
|
200
|
+
- lib/badline/drive1581/wd1772/tracks.rb
|
|
201
|
+
- lib/badline/drive1581/wd1772/turn.rb
|
|
176
202
|
- lib/badline/ffi.rb
|
|
177
203
|
- lib/badline/frontend.rb
|
|
178
204
|
- lib/badline/frontend/app.rb
|
|
205
|
+
- lib/badline/frontend/audio_device.rb
|
|
179
206
|
- lib/badline/frontend/audio_sink.rb
|
|
180
207
|
- lib/badline/frontend/boot.rb
|
|
181
208
|
- lib/badline/frontend/buttons.rb
|
|
182
|
-
- lib/badline/frontend/confirmation.rb
|
|
183
209
|
- lib/badline/frontend/controls.rb
|
|
184
210
|
- lib/badline/frontend/drive_led.rb
|
|
185
|
-
- lib/badline/frontend/file_browser.rb
|
|
186
|
-
- lib/badline/frontend/filter_view.rb
|
|
187
211
|
- lib/badline/frontend/frame_rate.rb
|
|
188
212
|
- lib/badline/frontend/frame_report.rb
|
|
189
213
|
- lib/badline/frontend/gamepads.rb
|
|
190
|
-
- lib/badline/frontend/info_view.rb
|
|
191
214
|
- lib/badline/frontend/keys.rb
|
|
192
215
|
- lib/badline/frontend/machine_window.rb
|
|
193
|
-
- lib/badline/frontend/
|
|
194
|
-
- lib/badline/frontend/
|
|
195
|
-
- lib/badline/frontend/
|
|
196
|
-
- lib/badline/frontend/
|
|
197
|
-
- lib/badline/frontend/
|
|
216
|
+
- lib/badline/frontend/media_slots.rb
|
|
217
|
+
- lib/badline/frontend/menu/confirmation.rb
|
|
218
|
+
- lib/badline/frontend/menu/file_browser.rb
|
|
219
|
+
- lib/badline/frontend/menu/menu_dialogs.rb
|
|
220
|
+
- lib/badline/frontend/menu/menu_media.rb
|
|
221
|
+
- lib/badline/frontend/menu/menu_pages.rb
|
|
222
|
+
- lib/badline/frontend/menu/menu_ports.rb
|
|
223
|
+
- lib/badline/frontend/menu/name_field.rb
|
|
224
|
+
- lib/badline/frontend/menu/pause_menu.rb
|
|
225
|
+
- lib/badline/frontend/menu/theme.rb
|
|
198
226
|
- lib/badline/frontend/pacer.rb
|
|
199
227
|
- lib/badline/frontend/pad_port.rb
|
|
200
228
|
- lib/badline/frontend/painter.rb
|
|
201
|
-
- lib/badline/frontend/
|
|
202
|
-
- lib/badline/frontend/
|
|
203
|
-
- lib/badline/frontend/
|
|
204
|
-
- lib/badline/frontend/
|
|
205
|
-
- lib/badline/frontend/
|
|
206
|
-
- lib/badline/frontend/
|
|
207
|
-
- lib/badline/frontend/
|
|
208
|
-
- lib/badline/frontend/
|
|
229
|
+
- lib/badline/frontend/player/filter_view.rb
|
|
230
|
+
- lib/badline/frontend/player/info_view.rb
|
|
231
|
+
- lib/badline/frontend/player/player_commands.rb
|
|
232
|
+
- lib/badline/frontend/player/player_controller.rb
|
|
233
|
+
- lib/badline/frontend/player/player_footer.rb
|
|
234
|
+
- lib/badline/frontend/player/player_header.rb
|
|
235
|
+
- lib/badline/frontend/player/player_screen.rb
|
|
236
|
+
- lib/badline/frontend/player/player_state.rb
|
|
237
|
+
- lib/badline/frontend/player/scope.rb
|
|
238
|
+
- lib/badline/frontend/player/sid_history.rb
|
|
239
|
+
- lib/badline/frontend/player/sid_view.rb
|
|
240
|
+
- lib/badline/frontend/player/theme.rb
|
|
241
|
+
- lib/badline/frontend/player/visualizer_view.rb
|
|
209
242
|
- lib/badline/frontend/screen.rb
|
|
210
243
|
- lib/badline/frontend/screens.rb
|
|
211
244
|
- lib/badline/frontend/screenshot.rb
|
|
212
|
-
- lib/badline/frontend/sid_history.rb
|
|
213
|
-
- lib/badline/frontend/sid_view.rb
|
|
214
245
|
- lib/badline/frontend/snapshots.rb
|
|
215
246
|
- lib/badline/frontend/sound.rb
|
|
216
247
|
- lib/badline/frontend/timeline.rb
|
|
217
|
-
- lib/badline/frontend/visualizer_view.rb
|
|
218
248
|
- lib/badline/iec_bus.rb
|
|
219
249
|
- lib/badline/input.rb
|
|
220
250
|
- lib/badline/input/mouse1351.rb
|
|
@@ -242,7 +272,7 @@ files:
|
|
|
242
272
|
- lib/badline/kernal_trap/drive/status.rb
|
|
243
273
|
- lib/badline/kernal_trap/drive/write_file.rb
|
|
244
274
|
- lib/badline/kernal_trap/drive/writes.rb
|
|
245
|
-
- lib/badline/kernal_trap/
|
|
275
|
+
- lib/badline/kernal_trap/file_routine.rb
|
|
246
276
|
- lib/badline/kernal_trap/layout.rb
|
|
247
277
|
- lib/badline/kernal_trap/load.rb
|
|
248
278
|
- lib/badline/kernal_trap/routine.rb
|
|
@@ -251,11 +281,17 @@ files:
|
|
|
251
281
|
- lib/badline/keyboard.rb
|
|
252
282
|
- lib/badline/keyboard_buffer.rb
|
|
253
283
|
- lib/badline/machine.rb
|
|
284
|
+
- lib/badline/machine/clocking.rb
|
|
254
285
|
- lib/badline/media.rb
|
|
286
|
+
- lib/badline/media/boot_disk.rb
|
|
255
287
|
- lib/badline/media/disk_list.rb
|
|
256
288
|
- lib/badline/media/disk_set.rb
|
|
289
|
+
- lib/badline/media/extensions.rb
|
|
290
|
+
- lib/badline/media/not_disk.rb
|
|
291
|
+
- lib/badline/media/program.rb
|
|
257
292
|
- lib/badline/media/queue.rb
|
|
258
293
|
- lib/badline/media/true_drive.rb
|
|
294
|
+
- lib/badline/media/tune.rb
|
|
259
295
|
- lib/badline/media/vic20_basic.rb
|
|
260
296
|
- lib/badline/media/vic20_cartridge.rb
|
|
261
297
|
- lib/badline/media/vic20_media.rb
|
|
@@ -290,6 +326,7 @@ files:
|
|
|
290
326
|
- lib/badline/roms/character.rom
|
|
291
327
|
- lib/badline/roms/dos1541.rom
|
|
292
328
|
- lib/badline/roms/dos1571.rom
|
|
329
|
+
- lib/badline/roms/dos1581.rom
|
|
293
330
|
- lib/badline/roms/eapi/LICENSE.md
|
|
294
331
|
- lib/badline/roms/eapi/README
|
|
295
332
|
- lib/badline/roms/eapi/eapi-am29f040-14
|
|
@@ -416,6 +453,7 @@ files:
|
|
|
416
453
|
- lib/badline/z80/loads.rb
|
|
417
454
|
- lib/badline/z80/main_page.rb
|
|
418
455
|
- lib/badline/z80/registers.rb
|
|
456
|
+
- lib/badline/z80/saved_state.rb
|
|
419
457
|
- lib/badline/z80/shifts.rb
|
|
420
458
|
- packaging/homebrew/badline.rb
|
|
421
459
|
homepage: https://github.com/elektronaut/badline
|
data/lib/badline/cycleable.rb
DELETED
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|