badline 0.16.1 → 0.18.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +213 -0
- data/CLAUDE.md +11 -7
- data/CONTRIBUTING.md +7 -1
- data/README.md +265 -26
- data/doc/media.md +5 -2
- data/doc/pinned-behaviour.md +189 -0
- data/doc/snapshot-format.md +616 -74
- data/doc/snapshots.md +192 -24
- data/exe/badline-ruby +5 -0
- data/lib/badline/audio/terminal.rb +34 -2
- data/lib/badline/c128/keyed_state.rb +2 -0
- data/lib/badline/c128.rb +1 -0
- data/lib/badline/c64/keyed_state.rb +2 -0
- data/lib/badline/c64.rb +1 -0
- data/lib/badline/cbm2/acia.rb +10 -0
- data/lib/badline/cbm2/bus.rb +263 -0
- data/lib/badline/cbm2/cpu.rb +58 -0
- data/lib/badline/cbm2/crtc_video.rb +133 -0
- data/lib/badline/cbm2/ieee_drive.rb +18 -0
- data/lib/badline/cbm2/ieee_layout.rb +69 -0
- data/lib/badline/cbm2/ieee_ports.rb +104 -0
- data/lib/badline/cbm2/ieee_traps.rb +81 -0
- data/lib/badline/cbm2/keyboard_ports.rb +60 -0
- data/lib/badline/cbm2/keyed_modules.rb +67 -0
- data/lib/badline/cbm2/keyed_state.rb +95 -0
- data/lib/badline/cbm2/model.rb +44 -0
- data/lib/badline/cbm2/p500/control_ports.rb +80 -0
- data/lib/badline/cbm2/p500/ieee_layout.rb +41 -0
- data/lib/badline/cbm2/p500/keyed_state.rb +85 -0
- data/lib/badline/cbm2/p500/model.rb +39 -0
- data/lib/badline/cbm2/p500/pages.rb +57 -0
- data/lib/badline/cbm2/p500.rb +264 -0
- data/lib/badline/cbm2/sid_page.rb +19 -0
- data/lib/badline/cbm2.rb +270 -0
- data/lib/badline/{plus4 → chips}/acia/frames.rb +1 -1
- data/lib/badline/chips/acia/keyed_state.rb +47 -0
- data/lib/badline/chips/acia.rb +307 -0
- data/lib/badline/chips/cia/timer.rb +2 -2
- data/lib/badline/chips/cpu/instruction_set.rb +1 -1
- data/lib/badline/chips/crtc.rb +3 -2
- data/lib/badline/chips/m6809/arithmetic.rb +140 -0
- data/lib/badline/chips/m6809/bus_steps.rb +223 -0
- data/lib/badline/chips/m6809/core.rb +149 -0
- data/lib/badline/chips/m6809/indexed.rb +82 -0
- data/lib/badline/chips/m6809/interrupts.rb +159 -0
- data/lib/badline/chips/m6809/keyed_state.rb +147 -0
- data/lib/badline/chips/m6809/opcodes.rb +159 -0
- data/lib/badline/chips/m6809/operations.rb +258 -0
- data/lib/badline/chips/m6809/plans.rb +143 -0
- data/lib/badline/chips/m6809/registers.rb +82 -0
- data/lib/badline/chips/m6809/stack.rb +140 -0
- data/lib/badline/chips/m6809.rb +13 -0
- data/lib/badline/chips/riot/fast_forward.rb +72 -0
- data/lib/badline/chips/riot/keyed_parts.rb +69 -0
- data/lib/badline/chips/riot/timer.rb +91 -0
- data/lib/badline/chips/riot.rb +162 -0
- data/lib/badline/chips/rriot/keyed_state.rb +30 -0
- data/lib/badline/chips/rriot.rb +134 -0
- data/lib/badline/chips/sid/filter.rb +4 -4
- data/lib/badline/chips/sid/waveform.rb +6 -6
- data/lib/badline/chips/tpi/keyed_state.rb +38 -0
- data/lib/badline/chips/tpi.rb +233 -0
- data/lib/badline/chips/vic/bank.rb +60 -5
- data/lib/badline/chips/vic/sprite.rb +4 -3
- data/lib/badline/chips/vic_i/keyed_parts.rb +7 -2
- data/lib/badline/chips/vic_i.rb +84 -21
- data/lib/badline/data_path.rb +3 -3
- data/lib/badline/drives/datasette/keyed_state.rb +9 -1
- data/lib/badline/drives/datasette.rb +27 -3
- data/lib/badline/drives/ieee_models.rb +54 -0
- data/lib/badline/drives/model1001.rb +37 -0
- data/lib/badline/drives/model2031.rb +6 -0
- data/lib/badline/drives/model4040/disk.rb +62 -0
- data/lib/badline/drives/model4040/ip_bus.rb +46 -0
- data/lib/badline/drives/model4040/keyed_state.rb +57 -0
- data/lib/badline/drives/model4040/mechanism.rb +192 -0
- data/lib/badline/drives/model4040/parts.rb +20 -0
- data/lib/badline/drives/model4040.rb +179 -0
- data/lib/badline/drives/model8050/board.rb +77 -0
- data/lib/badline/drives/model8050/disk.rb +163 -0
- data/lib/badline/drives/model8050/dos_board.rb +91 -0
- data/lib/badline/drives/model8050/fdc_bus.rb +102 -0
- data/lib/badline/drives/model8050/idle.rb +181 -0
- data/lib/badline/drives/model8050/ieee_port.rb +147 -0
- data/lib/badline/drives/model8050/ip_bus.rb +93 -0
- data/lib/badline/drives/model8050/keyed_state.rb +163 -0
- data/lib/badline/drives/model8050/mechanism.rb +230 -0
- data/lib/badline/drives/model8050/parts.rb +37 -0
- data/lib/badline/drives/model8050.rb +131 -0
- data/lib/badline/drives/model9060/idle.rb +149 -0
- data/lib/badline/drives/model9060/keyed_state.rb +123 -0
- data/lib/badline/drives/model9060/parts.rb +98 -0
- data/lib/badline/drives/model9060/sasi_bus.rb +88 -0
- data/lib/badline/drives/model9060/sasi_commands.rb +168 -0
- data/lib/badline/drives/model9060/sasi_target.rb +161 -0
- data/lib/badline/drives/model9060.rb +195 -0
- data/lib/badline/frontend/app.rb +18 -3
- data/lib/badline/frontend/boot.rb +4 -3
- data/lib/badline/frontend/controls.rb +107 -15
- data/lib/badline/frontend/gamepads.rb +3 -3
- data/lib/badline/frontend/keys.rb +97 -2
- data/lib/badline/frontend/kim1_panel.rb +208 -0
- data/lib/badline/frontend/media_slots.rb +8 -1
- data/lib/badline/frontend/menu/drive_types.rb +56 -0
- data/lib/badline/frontend/menu/menu_dialogs.rb +61 -14
- data/lib/badline/frontend/menu/menu_media.rb +47 -14
- data/lib/badline/frontend/menu/menu_pages.rb +113 -4
- data/lib/badline/frontend/menu/menu_ports.rb +77 -4
- data/lib/badline/frontend/menu/pause_menu.rb +6 -2
- data/lib/badline/frontend/pet_keyboard.rb +45 -7
- data/lib/badline/frontend/screen.rb +1 -1
- data/lib/badline/frontend/screens.rb +40 -2
- data/lib/badline/frontend/teletype_pane.rb +152 -0
- data/lib/badline/frontend/timeline.rb +49 -11
- data/lib/badline/frontend.rb +3 -0
- data/lib/badline/kernal_trap/dos/disk_commands.rb +80 -0
- data/lib/badline/kernal_trap/dos/status.rb +3 -0
- data/lib/badline/kernal_trap/dos.rb +18 -5
- data/lib/badline/kernal_trap/ieee.rb +4 -2
- data/lib/badline/kernal_trap/ieee_layout.rb +95 -43
- data/lib/badline/kim1/bus.rb +117 -0
- data/lib/badline/kim1/cpu.rb +25 -0
- data/lib/badline/kim1/host_terminal.rb +74 -0
- data/lib/badline/kim1/key_entry.rb +74 -0
- data/lib/badline/kim1/keyed_modules.rb +53 -0
- data/lib/badline/kim1/keyed_state.rb +133 -0
- data/lib/badline/kim1/panel.rb +176 -0
- data/lib/badline/kim1/rriots.rb +28 -0
- data/lib/badline/kim1/sound.rb +29 -0
- data/lib/badline/kim1/tape.rb +116 -0
- data/lib/badline/kim1/teletype.rb +193 -0
- data/lib/badline/kim1.rb +190 -0
- data/lib/badline/machine/ieee_drives.rb +171 -0
- data/lib/badline/machine/keyboard_buffer.rb +20 -3
- data/lib/badline/machine/line_sound.rb +122 -0
- data/lib/badline/machine/settling.rb +4 -0
- data/lib/badline/machine.rb +62 -14
- data/lib/badline/media/cbm2_media.rb +29 -0
- data/lib/badline/media/extensions.rb +8 -4
- data/lib/badline/media/kim1_media.rb +150 -0
- data/lib/badline/media/pet_media.rb +3 -1
- data/lib/badline/media/program.rb +6 -3
- data/lib/badline/media/true_drive.rb +51 -25
- data/lib/badline/media.rb +23 -8
- data/lib/badline/options/family.rb +108 -6
- data/lib/badline/options/help.rb +58 -12
- data/lib/badline/options/table.rb +60 -14
- data/lib/badline/options/validation.rb +71 -11
- data/lib/badline/options.rb +46 -13
- data/lib/badline/pet/bus.rb +16 -2
- data/lib/badline/pet/cassettes.rb +22 -1
- data/lib/badline/pet/ieee_drive.rb +5 -64
- data/lib/badline/pet/ieee_ports.rb +7 -0
- data/lib/badline/pet/keyboard_ports.rb +9 -2
- data/lib/badline/pet/keyed_state.rb +4 -0
- data/lib/badline/pet/model.rb +11 -2
- data/lib/badline/pet/rom_sets.rb +1 -0
- data/lib/badline/pet/sound.rb +5 -105
- data/lib/badline/pet/superpet/acia.rb +12 -0
- data/lib/badline/pet/superpet/board.rb +221 -0
- data/lib/badline/pet/superpet/dongle.rb +81 -0
- data/lib/badline/pet/superpet/keyed_modules.rb +63 -0
- data/lib/badline/pet/superpet/keyed_parts.rb +76 -0
- data/lib/badline/pet/superpet/m6809.rb +32 -0
- data/lib/badline/pet/superpet/waterloo_traps.rb +199 -0
- data/lib/badline/pet/superpet.rb +216 -0
- data/lib/badline/pet.rb +33 -6
- data/lib/badline/plus4/acia.rb +4 -298
- data/lib/badline/plus4/keyed_parts.rb +0 -44
- data/lib/badline/plus4/keyed_state.rb +2 -0
- data/lib/badline/plus4.rb +2 -0
- data/lib/badline/roms/1001/fdc-251257-02a.rom +0 -0
- data/lib/badline/roms/4040/dos-1.2.rom +0 -0
- data/lib/badline/roms/4040/dos-2.1-rev.rom +0 -0
- data/lib/badline/roms/4040/dos-2.1.rom +0 -0
- data/lib/badline/roms/4040/fdc-901466-02.rom +0 -0
- data/lib/badline/roms/4040/fdc-901466-04.rom +0 -0
- data/lib/badline/roms/8050/dos-2.7.rom +0 -0
- data/lib/badline/roms/8050/fdc-901869-01.rom +0 -0
- data/lib/badline/roms/8050/fdc-901885-04.rom +0 -0
- data/lib/badline/roms/9060/dos-3.0.rom +0 -0
- data/lib/badline/roms/9060/sasi-300515-revb.rom +0 -0
- data/lib/badline/roms/README +277 -0
- data/lib/badline/roms/cbm2/basic128-02b.rom +0 -0
- data/lib/badline/roms/cbm2/basic128.rom +0 -0
- data/lib/badline/roms/cbm2/basic256.rom +0 -0
- data/lib/badline/roms/cbm2/characters-600.rom +0 -0
- data/lib/badline/roms/cbm2/characters-700.rom +0 -0
- data/lib/badline/roms/cbm2/kernal-03b.rom +0 -0
- data/lib/badline/roms/cbm2/kernal-04a.rom +0 -0
- data/lib/badline/roms/cbm2/p500-basic.rom +0 -0
- data/lib/badline/roms/cbm2/p500-kernal.rom +0 -0
- data/lib/badline/roms/kim1/6530-002.rom +0 -0
- data/lib/badline/roms/kim1/6530-003.rom +0 -0
- data/lib/badline/roms/pet/characters-superpet.rom +0 -0
- data/lib/badline/roms/pet/superpet-a000.rom +0 -0
- data/lib/badline/roms/pet/superpet-c000.rom +0 -0
- data/lib/badline/roms/pet/superpet-e000-50hz.rom +0 -0
- data/lib/badline/roms/pet/superpet-e000.rom +0 -0
- data/lib/badline/snapshot/cbm2_setup.rb +53 -0
- data/lib/badline/snapshot/container.rb +9 -2
- data/lib/badline/snapshot/field_doc/markdown.rb +4 -2
- data/lib/badline/snapshot/field_doc.rb +59 -3
- data/lib/badline/snapshot/image.rb +65 -9
- data/lib/badline/snapshot/kim1_setup.rb +28 -0
- data/lib/badline/snapshot/pet_setup.rb +27 -11
- data/lib/badline/snapshot/storage_setup.rb +4 -1
- data/lib/badline/snapshot/vic20_setup.rb +11 -7
- data/lib/badline/snapshot/vice/cbm2.rb +93 -0
- data/lib/badline/snapshot/vice/cbm2_acia.rb +75 -0
- data/lib/badline/snapshot/vice/cbm2_crtc.rb +127 -0
- data/lib/badline/snapshot/vice/cbm2_mains.rb +49 -0
- data/lib/badline/snapshot/vice/cbm2_mem.rb +75 -0
- data/lib/badline/snapshot/vice/cbm2_restore.rb +204 -0
- data/lib/badline/snapshot/vice/cbm2_tpi.rb +58 -0
- data/lib/badline/snapshot/vice/cias.rb +13 -9
- data/lib/badline/snapshot/vice/p500.rb +96 -0
- data/lib/badline/snapshot/vice/p500_restore.rb +130 -0
- data/lib/badline/snapshot/vice/p500_vicii.rb +166 -0
- data/lib/badline/snapshot/vice/pet.rb +20 -10
- data/lib/badline/snapshot/vice/pet_cpu.rb +42 -5
- data/lib/badline/snapshot/vice/pet_crtc.rb +25 -17
- data/lib/badline/snapshot/vice/pet_drive.rb +180 -0
- data/lib/badline/snapshot/vice/pet_drive8050.rb +336 -0
- data/lib/badline/snapshot/vice/pet_mem.rb +49 -5
- data/lib/badline/snapshot/vice/pet_restore.rb +100 -7
- data/lib/badline/snapshot/vice/pet_via.rb +6 -5
- data/lib/badline/snapshot/vice/sid_registers.rb +2 -1
- data/lib/badline/snapshot/vice/vicii_import.rb +10 -6
- data/lib/badline/snapshot/vice.rb +3 -0
- data/lib/badline/snapshot.rb +15 -3
- data/lib/badline/status.rb +30 -30
- data/lib/badline/storage/crt_file.rb +7 -1
- data/lib/badline/storage/d64_image.rb +7 -0
- data/lib/badline/storage/d67_image.rb +55 -0
- data/lib/badline/storage/d80_image.rb +17 -1
- data/lib/badline/storage/d81_image.rb +14 -0
- data/lib/badline/storage/d90_image.rb +180 -0
- data/lib/badline/storage/disk_image/bam.rb +18 -3
- data/lib/badline/storage/disk_image/formatting.rb +69 -0
- data/lib/badline/storage/disk_image/writing.rb +37 -2
- data/lib/badline/storage/disk_image.rb +2 -0
- data/lib/badline/storage/kim_tape.rb +254 -0
- data/lib/badline/storage/papertape.rb +90 -0
- data/lib/badline/storage.rb +5 -0
- data/lib/badline/support/cbm2_checkpoint.rb +48 -0
- data/lib/badline/support/kim1_checkpoint.rb +41 -0
- data/lib/badline/support/p500_checkpoint.rb +35 -0
- data/lib/badline/support/superpet_checkpoint.rb +35 -0
- data/lib/badline/version.rb +1 -1
- data/lib/badline/vic20/keyed_modules.rb +6 -3
- data/lib/badline/vic20/keyed_state.rb +6 -4
- data/lib/badline/vic20.rb +26 -12
- data/lib/badline.rb +2 -0
- metadata +148 -2
data/doc/snapshot-format.md
CHANGED
|
@@ -13,7 +13,8 @@ machine built afresh has: the default below. `word`, `byte` and
|
|
|
13
13
|
`int & 0x..` are ints cut to the latch's width. A text that lists
|
|
14
14
|
its values takes one of them. An optional int is absent when the
|
|
15
15
|
latch holds nothing. A true drive's modules are named from its
|
|
16
|
-
device number, `BL-D8` to `BL-D11`,
|
|
16
|
+
device number, `BL-D8` to `BL-D11`, or to `BL-D15` for an 8050 or
|
|
17
|
+
an 8250. The SIDs past the first
|
|
17
18
|
are `BL-SID2` onwards, in the order they were fitted. Keys with
|
|
18
19
|
`<N>` stand for each numbered unit. A default of "written only" is
|
|
19
20
|
a key the load doesn't read, or reads only when the snapshot has
|
|
@@ -22,18 +23,18 @@ key only some of them have names them.
|
|
|
22
23
|
|
|
23
24
|
## BL-MACHINE
|
|
24
25
|
|
|
25
|
-
Written by the C64, VIC-20, C128, Plus/4, PET.
|
|
26
|
+
Written by the C64, VIC-20, C128, Plus/4, PET, CBM-II, KIM-1.
|
|
26
27
|
|
|
27
28
|
| Key | Type | Default |
|
|
28
29
|
| --- | --- | --- |
|
|
29
|
-
| `family` | text: c64 vic20 c128 plus4 pet | "c64" |
|
|
30
|
+
| `family` | text: c64 vic20 c128 plus4 pet cbm2 kim1 | "c64" |
|
|
30
31
|
| `region` | text: pal ntsc ntscold drean | C64: "pal" |
|
|
31
32
|
| `vic_model` | text: mos6569 mos8565 mos8566 mos8564 | C64: "mos6569" |
|
|
32
33
|
| `cia_model` | text: mos6526 mos6526a | C64: "mos6526" |
|
|
33
34
|
| `sid_model` | text: mos6581 mos8580 | C64: "mos6581"; C128: "mos6581" |
|
|
34
35
|
| `ram_expansion` | text: none plus60k plus256k | C64: "none"; Plus/4: "none" |
|
|
35
36
|
| `reu_kb` | int | C64: 0 |
|
|
36
|
-
| `kernal` | text: c64 sx64 pet64 gs | C64: "c64" |
|
|
37
|
+
| `kernal` | text: c64 sx64 pet64 gs | C64: "c64"; CBM-II: "04a" |
|
|
37
38
|
| `datasette` | bool | C64: true |
|
|
38
39
|
| `board` | text: c64 pet64 gs max | C64: "c64" |
|
|
39
40
|
| `cycles` | int | 0 |
|
|
@@ -44,19 +45,20 @@ Written by the C64, VIC-20, C128, Plus/4, PET.
|
|
|
44
45
|
| `freeze_writes` | int | C64: 0 |
|
|
45
46
|
| `dma` | bool | C64: false |
|
|
46
47
|
| `host.pending_keys` | ints | [] |
|
|
48
|
+
| `host.init_keys` | ints | C64: []; VIC-20: []; C128: []; Plus/4: []; PET: []; CBM-II: [] |
|
|
47
49
|
| `host.init_pending` | int | 0 |
|
|
48
50
|
| `written_by` | text | "" |
|
|
49
|
-
| `ram` | text: unexpanded 3k 8k 16k 24k 32k all | VIC-20: "unexpanded" |
|
|
51
|
+
| `ram` | text: unexpanded 3k 8k 16k 24k 32k all | VIC-20: "unexpanded"; KIM-1: "1k" |
|
|
52
|
+
| `model` | text: pal ntsc | VIC-20: "pal"; C128: "c128"; Plus/4: "plus4"; PET: "8032"; CBM-II: "610" |
|
|
50
53
|
| `bus.data` | byte | VIC-20: 253; C128: 255 |
|
|
51
54
|
| `bus.video_data` | byte | VIC-20: 0 |
|
|
52
|
-
| `model` | text: c128 c128ntsc c128dcr c128dcrntsc | C128: "c128"; Plus/4: "plus4"; PET: "8032" |
|
|
53
55
|
| `mode` | text: c64 c128 | C128: "c64" |
|
|
54
56
|
| `bus.address` | word | C128: 65533 |
|
|
55
57
|
| `clock_bits` | int | C128: 0 |
|
|
56
58
|
| `z80_ahead` | int | C128: 0 |
|
|
57
59
|
| `chips_ahead` | int | C128: 0 |
|
|
58
60
|
| `cpu_reset_pending` | bool | C128: true |
|
|
59
|
-
| `host.typing` | bool | C128: false |
|
|
61
|
+
| `host.typing` | bool | C128: false; KIM-1: false |
|
|
60
62
|
| `host.holding_commodore` | bool | C128: false |
|
|
61
63
|
| `host.typist.code` | int, optional | C128: absent |
|
|
62
64
|
| `host.typist.wait` | int | C128: 0 |
|
|
@@ -70,45 +72,64 @@ Written by the C64, VIC-20, C128, Plus/4, PET.
|
|
|
70
72
|
| `rom.basic` | text | PET: "pet/basic4.rom" or "pet/basic1.rom" |
|
|
71
73
|
| `rom.editor` | text | PET: "pet/editor4-80-b-50hz.rom" or "pet/editor1.rom" or "pet/editor4-80-b-50hz-8296.rom" |
|
|
72
74
|
| `rom.kernal` | text | PET: "pet/kernal4.rom" or "pet/kernal1.rom" |
|
|
73
|
-
| `rom.characters` | text | PET: "pet/characters2.rom" or "pet/characters1.rom" |
|
|
75
|
+
| `rom.characters` | text | PET: "pet/characters2.rom" or "pet/characters1.rom" or "pet/characters-superpet.rom" |
|
|
74
76
|
| `jumpers` | text | PET: "" |
|
|
75
77
|
| `vertical_drive` | bool | PET: true |
|
|
78
|
+
| `host.ieee_drive_model` | text: 2031 8050 8250 1001 4040 3040 2040 9060 9090 | PET: "2031"; CBM-II: "2031" |
|
|
79
|
+
| `cpu_switch` | text: 6502 6809 prog | PET: "6502" |
|
|
80
|
+
| `ram_switch` | text: rw read prog | PET: "rw" |
|
|
81
|
+
| `mains_hz` | int | CBM-II: 50 |
|
|
82
|
+
| `dram_refresh` | bool | CBM-II: true |
|
|
83
|
+
| `mains_countdown` | int | CBM-II: varies |
|
|
84
|
+
| `mains_high` | bool | CBM-II: true |
|
|
85
|
+
| `refresh` | int | CBM-II: 0 |
|
|
86
|
+
| `sst` | bool | KIM-1: false |
|
|
87
|
+
| `irq_wired` | bool | KIM-1: false |
|
|
88
|
+
| `host.key_down` | bool | KIM-1: false |
|
|
89
|
+
| `host.next_key_at` | int | KIM-1: 0 |
|
|
76
90
|
|
|
77
91
|
## BL-RAM
|
|
78
92
|
|
|
79
|
-
Written by the C64, VIC-20, C128, Plus/4, PET.
|
|
93
|
+
Written by the C64, VIC-20, C128, Plus/4, PET, KIM-1, CBM-II.
|
|
80
94
|
|
|
81
95
|
| Key | Type | Default |
|
|
82
96
|
| --- | --- | --- |
|
|
83
|
-
| `ram` | bytes | C64: 65536 values; VIC-20: 49152 values; C128: 131072 values; Plus/4: 65536 × 0 or 16384 × 0; PET: 32768 × 0 or 8192 × 0 |
|
|
97
|
+
| `ram` | bytes | C64: 65536 values; VIC-20: 49152 values; C128: 131072 values; Plus/4: 65536 × 0 or 16384 × 0; PET: 32768 × 0 or 8192 × 0; KIM-1: 1024 × 0 or 57344 × 0 |
|
|
84
98
|
| `bus.low_bank` | int & 0x3 | Plus/4: 0 |
|
|
85
99
|
| `bus.high_bank` | int & 0x3 | Plus/4: 0 |
|
|
86
100
|
| `bus.rom_selected` | bool | Plus/4: true |
|
|
87
101
|
| `bus.data` | byte | Plus/4: 255; PET: 253 |
|
|
88
|
-
| `screen` | bytes | PET: 2048 × 0 or 1024 × 0 or 32768 × 0 |
|
|
102
|
+
| `screen` | bytes | PET: 2048 × 0 or 1024 × 0 or 32768 × 0; CBM-II: 2048 × 0 or 1024 × 0 |
|
|
89
103
|
| `expansion.control` | byte | PET: 0 |
|
|
90
104
|
| `expansion.ram` | bytes | PET: 65536 × 0 |
|
|
91
105
|
| `expansion.user_port` | int | PET: 7 |
|
|
106
|
+
| `system` | bytes | CBM-II: 2048 × 0 |
|
|
107
|
+
| `segment<N>` | bytes | CBM-II: 65536 × 0 |
|
|
108
|
+
| `execution_segment` | int & 0xf | CBM-II: 15 |
|
|
109
|
+
| `indirect_segment` | int & 0xf | CBM-II: 15 |
|
|
110
|
+
| `data` | byte | CBM-II: 249; KIM-1: 28 |
|
|
111
|
+
| `cartridge.addresses` | ints | CBM-II: [] |
|
|
112
|
+
| `cartridge.8192` | bytes | CBM-II: [] |
|
|
92
113
|
|
|
93
114
|
## BL-COLORRAM
|
|
94
115
|
|
|
95
|
-
Written by the C64, VIC-20, C128.
|
|
116
|
+
Written by the C64, VIC-20, CBM-II, C128.
|
|
96
117
|
|
|
97
118
|
| Key | Type | Default |
|
|
98
119
|
| --- | --- | --- |
|
|
99
|
-
| `ram` | bytes | C64: 1024 × 0; VIC-20: 1024 × 0 |
|
|
120
|
+
| `ram` | bytes | C64: 1024 × 0; VIC-20: 1024 × 0; CBM-II: 1024 × 0 |
|
|
100
121
|
| `bank<N>` | bytes | C128: 1024 × 0 |
|
|
101
122
|
|
|
102
123
|
## BL-CPU
|
|
103
124
|
|
|
104
|
-
Written by the C64, C128, Plus/4, VIC-20, PET.
|
|
125
|
+
Written by the C64, C128, Plus/4, VIC-20, PET, CBM-II, KIM-1.
|
|
105
126
|
|
|
106
127
|
| Key | Type | Default |
|
|
107
128
|
| --- | --- | --- |
|
|
108
129
|
| `port.ddr` | byte | C64: 0; C128: 0; Plus/4: 0 |
|
|
109
130
|
| `port.data` | byte | C64: 0; C128: 0; Plus/4: 0 |
|
|
110
131
|
| `port.floating` | byte | C64: 0; C128: 0 |
|
|
111
|
-
| `pc` | word | C64: 64738; VIC-20: 64802; C128: 65341; Plus/4: 65526; PET: 64790 or 64824 |
|
|
132
|
+
| `pc` | word | C64: 64738; VIC-20: 64802; C128: 65341; Plus/4: 65526; PET: 64790 or 64824; CBM-II: 63895 or 63902; KIM-1: 7202 |
|
|
112
133
|
| `sp` | byte | 255 |
|
|
113
134
|
| `a` | byte | 0 |
|
|
114
135
|
| `x` | byte | 0 |
|
|
@@ -130,7 +151,7 @@ Written by the C64, C128, Plus/4, VIC-20, PET.
|
|
|
130
151
|
|
|
131
152
|
## BL-VIC
|
|
132
153
|
|
|
133
|
-
Written by the C64, C128.
|
|
154
|
+
Written by the C64, C128, CBM-II.
|
|
134
155
|
|
|
135
156
|
| Key | Type | Default |
|
|
136
157
|
| --- | --- | --- |
|
|
@@ -192,11 +213,11 @@ Written by the C64, C128.
|
|
|
192
213
|
| `shifter.late_mcm` | bool | false |
|
|
193
214
|
| `shifter.late_read` | bool | false |
|
|
194
215
|
| `line.number` | int | 0 |
|
|
195
|
-
| `line.colors` | bytes | 504 × 0 |
|
|
196
|
-
| `line.fg` | ints | 504 × 0 |
|
|
197
|
-
| `line.border.groups` | ints | 63 × 0 |
|
|
198
|
-
| `line.border.mask` | ints | 504 × 1 |
|
|
199
|
-
| `line.border.snapshot` | bytes | 504 × 0 |
|
|
216
|
+
| `line.colors` | bytes | C64: 504 × 0; C128: 504 × 0; CBM-II: 504 × 0 or 520 × 0 |
|
|
217
|
+
| `line.fg` | ints | C64: 504 × 0; C128: 504 × 0; CBM-II: 504 × 0 or 520 × 0 |
|
|
218
|
+
| `line.border.groups` | ints | C64: 63 × 0; C128: 63 × 0; CBM-II: 63 × 0 or 65 × 0 |
|
|
219
|
+
| `line.border.mask` | ints | C64: 504 × 1; C128: 504 × 1; CBM-II: 504 × 1 or 520 × 1 |
|
|
220
|
+
| `line.border.snapshot` | bytes | C64: 504 × 0; C128: 504 × 0; CBM-II: 504 × 0 or 520 × 0 |
|
|
200
221
|
| `line.patches` | ints | [] |
|
|
201
222
|
| `sprite<N>.dma` | bool | false |
|
|
202
223
|
| `sprite<N>.display_on` | bool | false |
|
|
@@ -223,18 +244,18 @@ Written by the C64, C128.
|
|
|
223
244
|
| `line.sprite<N>.reload_span` | int | 0 |
|
|
224
245
|
| `sbus.lines` | int | 0 |
|
|
225
246
|
| `sbus.ghost` | byte | 255 |
|
|
226
|
-
| `sbus.value` | ints | 63 × 255 |
|
|
227
|
-
| `sbus.line` | ints | 63 × -1 |
|
|
247
|
+
| `sbus.value` | ints | C64: 63 × 255; C128: 63 × 255; CBM-II: 63 × 255 or 65 × 255 |
|
|
248
|
+
| `sbus.line` | ints | C64: 63 × -1; C128: 63 × -1; CBM-II: 63 × -1 or 65 × -1 |
|
|
228
249
|
| `collisions.cleared_sprite` | int | 0 |
|
|
229
250
|
| `collisions.cleared_data` | int | 0 |
|
|
230
|
-
| `line.collisions.hits` | bytes | 504 × 0 |
|
|
251
|
+
| `line.collisions.hits` | bytes | C64: 504 × 0; C128: 504 × 0; CBM-II: 504 × 0 or 520 × 0 |
|
|
231
252
|
| `line.collisions.folded` | int | 0 |
|
|
232
253
|
| `line.carried` | bool | false |
|
|
233
|
-
| `line.lo` | int | 504 |
|
|
254
|
+
| `line.lo` | int | C64: 504; C128: 504; CBM-II: 504 or 520 |
|
|
234
255
|
| `line.hi` | int | 0 |
|
|
235
256
|
| `line.sequenced` | int | -1 |
|
|
236
|
-
| `line.win_color` | bytes | 504 × 0 |
|
|
237
|
-
| `line.win_priority` | ints | 504 × 0 |
|
|
257
|
+
| `line.win_color` | bytes | C64: 504 × 0; C128: 504 × 0; CBM-II: 504 × 0 or 520 × 0 |
|
|
258
|
+
| `line.win_priority` | ints | C64: 504 × 0; C128: 504 × 0; CBM-II: 504 × 0 or 520 × 0 |
|
|
238
259
|
| `line.palette` | ints | [0, 0, 0, 0] |
|
|
239
260
|
| `line.stopped_dma` | bool | false |
|
|
240
261
|
| `line.carry<N>` | ints | [] |
|
|
@@ -244,7 +265,7 @@ Written by the C64, C128.
|
|
|
244
265
|
| `line.log.values` | ints | 64 × 0 |
|
|
245
266
|
| `line.log.cursor` | int | 0 |
|
|
246
267
|
| `line.log.next_x` | int | 0 |
|
|
247
|
-
| `display` | bytes | 157248 × 0 |
|
|
268
|
+
| `display` | bytes | C64: 157248 × 0; C128: 157248 × 0; CBM-II: 157248 × 0 or 136760 × 0 |
|
|
248
269
|
| `output_line` | int | C128: 0 |
|
|
249
270
|
| `test_wrap` | bool | C128: false |
|
|
250
271
|
|
|
@@ -390,7 +411,7 @@ Written by the C64, C128.
|
|
|
390
411
|
|
|
391
412
|
## BL-SID
|
|
392
413
|
|
|
393
|
-
Written by the C64, C128, Plus/4.
|
|
414
|
+
Written by the C64, C128, Plus/4, CBM-II.
|
|
394
415
|
|
|
395
416
|
| Key | Type | Default |
|
|
396
417
|
| --- | --- | --- |
|
|
@@ -555,11 +576,11 @@ Written by the C64, VIC-20, Plus/4.
|
|
|
555
576
|
|
|
556
577
|
## BL-TRAPDOS
|
|
557
578
|
|
|
558
|
-
Written by the C64, PET.
|
|
579
|
+
Written by the C64, PET, CBM-II.
|
|
559
580
|
|
|
560
581
|
| Key | Type | Default |
|
|
561
582
|
| --- | --- | --- |
|
|
562
|
-
| `storage.kind` | text: directory d64 d71 d81 t64 d80 d82 | "directory" |
|
|
583
|
+
| `storage.kind` | text: directory d64 d71 d81 t64 d80 d82 d67 | "directory" |
|
|
563
584
|
| `storage.path` | text | "" |
|
|
564
585
|
| `storage.bytes` | bytes | [] |
|
|
565
586
|
| `storage.read_only` | bool | false |
|
|
@@ -582,20 +603,25 @@ Written by the C64, PET.
|
|
|
582
603
|
| `serial.frame` | int | C64: 240 |
|
|
583
604
|
| `serial.buffer` | bytes | C64: [] |
|
|
584
605
|
| `save.saving` | bool | C64: false |
|
|
585
|
-
| `ieee.listening` | bool | PET: false |
|
|
586
|
-
| `ieee.talking` | bool | PET: false |
|
|
587
|
-
| `ieee.listen_channel` | int, optional | PET: absent |
|
|
588
|
-
| `ieee.talk_channel` | int, optional | PET: absent |
|
|
589
|
-
| `ieee.frame` | int | PET: 240 |
|
|
590
|
-
| `ieee.buffer` | bytes | PET: [] |
|
|
606
|
+
| `ieee.listening` | bool | PET: false; CBM-II: false |
|
|
607
|
+
| `ieee.talking` | bool | PET: false; CBM-II: false |
|
|
608
|
+
| `ieee.listen_channel` | int, optional | PET: absent; CBM-II: absent |
|
|
609
|
+
| `ieee.talk_channel` | int, optional | PET: absent; CBM-II: absent |
|
|
610
|
+
| `ieee.frame` | int | PET: 240; CBM-II: 240 |
|
|
611
|
+
| `ieee.buffer` | bytes | PET: []; CBM-II: [] |
|
|
612
|
+
| `waterloo.listening` | bool | PET: false |
|
|
613
|
+
| `waterloo.talking` | bool | PET: false |
|
|
614
|
+
| `waterloo.channel` | int | PET: 0 |
|
|
615
|
+
| `waterloo.frame` | byte | PET: 0 |
|
|
616
|
+
| `waterloo.buffer` | ints | PET: [] |
|
|
591
617
|
|
|
592
618
|
## BL-D8
|
|
593
619
|
|
|
594
|
-
Written by the C64, C128, Plus/4.
|
|
620
|
+
Written by the C64, C128, Plus/4, PET.
|
|
595
621
|
|
|
596
622
|
| Key | Type | Default |
|
|
597
623
|
| --- | --- | --- |
|
|
598
|
-
| `model` | text: 1541 1551 1571 1581 | C64: "1541" or "1581"; C128: "1541" or "1571"; Plus/4: "1541" or "1551" |
|
|
624
|
+
| `model` | text: 1541 1551 1571 1581 | C64: "1541" or "1581"; C128: "1541" or "1571"; Plus/4: "1541" or "1551"; PET: varies |
|
|
599
625
|
| `phase` | int | 0 |
|
|
600
626
|
| `cycles` | int | 0 |
|
|
601
627
|
| `so_pending` | bool | false |
|
|
@@ -603,19 +629,25 @@ Written by the C64, C128, Plus/4.
|
|
|
603
629
|
| `atn` | bool | C64: true |
|
|
604
630
|
| `irq_timer` | int | Plus/4: 16660 |
|
|
605
631
|
| `latched_byte` | byte | Plus/4: 0 |
|
|
632
|
+
| `ieee.host` | int | PET: 0 |
|
|
633
|
+
| `ip_data` | byte | PET: 242 or 211 |
|
|
634
|
+
| `fdc_data` | byte | PET: 252 |
|
|
635
|
+
| `sasi_data` | byte | PET: 248 |
|
|
636
|
+
| `sasi.ack_high` | bool | PET: true |
|
|
637
|
+
| `sasi.reset_high` | bool | PET: false |
|
|
606
638
|
|
|
607
639
|
## BL-D8-RAM
|
|
608
640
|
|
|
609
|
-
Written by the C64, C128, Plus/4.
|
|
641
|
+
Written by the C64, C128, Plus/4, PET.
|
|
610
642
|
|
|
611
643
|
| Key | Type | Default |
|
|
612
644
|
| --- | --- | --- |
|
|
613
|
-
| `data` | byte | C64: 234 or 175; C128: 234; Plus/4: 234 or 233 |
|
|
614
|
-
| `ram` | bytes | C64: 2048 × 0 or 8192 × 0; C128: 2048 × 0; Plus/4: 2048 × 0 |
|
|
645
|
+
| `data` | byte | C64: 234 or 175; C128: 234; Plus/4: 234 or 233; PET: 234 |
|
|
646
|
+
| `ram` | bytes | C64: 2048 × 0 or 8192 × 0; C128: 2048 × 0; Plus/4: 2048 × 0; PET: 2048 × 0 |
|
|
615
647
|
|
|
616
648
|
## BL-D8-VIA1
|
|
617
649
|
|
|
618
|
-
Written by the C64, C128, Plus/4.
|
|
650
|
+
Written by the C64, C128, Plus/4, PET.
|
|
619
651
|
|
|
620
652
|
| Key | Type | Default |
|
|
621
653
|
| --- | --- | --- |
|
|
@@ -649,7 +681,7 @@ Written by the C64, C128, Plus/4.
|
|
|
649
681
|
| `ifr.flags` | int & 0x7f | 0 |
|
|
650
682
|
| `ifr.enable` | int & 0x7f | 0 |
|
|
651
683
|
| `ca.control` | int & 0xf | 0 |
|
|
652
|
-
| `ca.c1_high` | bool | C64: true; C128: true; Plus/4: false |
|
|
684
|
+
| `ca.c1_high` | bool | C64: true; C128: true; Plus/4: false; PET: false |
|
|
653
685
|
| `ca.c2_high` | bool | true |
|
|
654
686
|
| `ca.handshake_low` | bool | false |
|
|
655
687
|
| `ca.pulse` | int | 0 |
|
|
@@ -663,7 +695,7 @@ Written by the C64, C128, Plus/4.
|
|
|
663
695
|
|
|
664
696
|
## BL-D8-VIA2
|
|
665
697
|
|
|
666
|
-
Written by the C64, C128, Plus/4.
|
|
698
|
+
Written by the C64, C128, Plus/4, PET.
|
|
667
699
|
|
|
668
700
|
| Key | Type | Default |
|
|
669
701
|
| --- | --- | --- |
|
|
@@ -711,11 +743,11 @@ Written by the C64, C128, Plus/4.
|
|
|
711
743
|
|
|
712
744
|
## BL-D8-CPU
|
|
713
745
|
|
|
714
|
-
Written by the C64, C128, Plus/4.
|
|
746
|
+
Written by the C64, C128, Plus/4, PET.
|
|
715
747
|
|
|
716
748
|
| Key | Type | Default |
|
|
717
749
|
| --- | --- | --- |
|
|
718
|
-
| `pc` | word | C64: 60064 or 44836; C128: 60064; Plus/4: 60064 or 59829 |
|
|
750
|
+
| `pc` | word | C64: 60064 or 44836; C128: 60064; Plus/4: 60064 or 59829; PET: 60101 |
|
|
719
751
|
| `sp` | byte | 255 |
|
|
720
752
|
| `a` | byte | 0 |
|
|
721
753
|
| `x` | byte | 0 |
|
|
@@ -737,7 +769,7 @@ Written by the C64, C128, Plus/4.
|
|
|
737
769
|
|
|
738
770
|
## BL-D8-DISK
|
|
739
771
|
|
|
740
|
-
Written by the C64, C128, Plus/4.
|
|
772
|
+
Written by the C64, C128, Plus/4, PET.
|
|
741
773
|
|
|
742
774
|
| Key | Type | Default |
|
|
743
775
|
| --- | --- | --- |
|
|
@@ -749,17 +781,19 @@ Written by the C64, C128, Plus/4.
|
|
|
749
781
|
| `track<N>.zone` | int, optional | absent |
|
|
750
782
|
| `written` | ints | [] |
|
|
751
783
|
| `changed` | ints | C64: [] |
|
|
784
|
+
| `image.format` | text: d80 d82 | PET: "d80" or "d64" |
|
|
785
|
+
| `track<N>` | ints | PET: [] |
|
|
752
786
|
|
|
753
787
|
## BL-D8-MECH
|
|
754
788
|
|
|
755
|
-
Written by the C64, C128, Plus/4.
|
|
789
|
+
Written by the C64, C128, Plus/4, PET.
|
|
756
790
|
|
|
757
791
|
| Key | Type | Default |
|
|
758
792
|
| --- | --- | --- |
|
|
759
|
-
| `half_track` | int | C64: 35; C128: 37; Plus/4: 35 or 36 |
|
|
760
|
-
| `slip` | int & 0x3 | C64: 0; C128: 2; Plus/4: 0 |
|
|
761
|
-
| `side` | int | C64: 0 or 1; C128: 85; Plus/4: 0 |
|
|
762
|
-
| `zone` | int & 0x3 | C64: 3; C128: 3; Plus/4: 3 or 0 |
|
|
793
|
+
| `half_track` | int | C64: 35; C128: 37; Plus/4: 35 or 36; PET: 35 |
|
|
794
|
+
| `slip` | int & 0x3 | C64: 0; C128: 2; Plus/4: 0; PET: 0 |
|
|
795
|
+
| `side` | int | C64: 0 or 1; C128: 85; Plus/4: 0; PET: 0 |
|
|
796
|
+
| `zone` | int & 0x3 | C64: 3; C128: 3; Plus/4: 3 or 0; PET: 3 |
|
|
763
797
|
| `time` | int | 0 |
|
|
764
798
|
| `read_clock_in` | int | 2097152 |
|
|
765
799
|
| `clocks` | int | 0 |
|
|
@@ -767,8 +801,8 @@ Written by the C64, C128, Plus/4.
|
|
|
767
801
|
| `ones` | int | 0 |
|
|
768
802
|
| `bits` | int | 0 |
|
|
769
803
|
| `write_shift` | int | 0 |
|
|
770
|
-
| `motor` | bool | C64: true or false; C128: true; Plus/4: true or false |
|
|
771
|
-
| `led` | bool | C64: true; C128: true; Plus/4: true or false |
|
|
804
|
+
| `motor` | bool | C64: true or false; C128: true; Plus/4: true or false; PET: true |
|
|
805
|
+
| `led` | bool | C64: true; C128: true; Plus/4: true or false; PET: true |
|
|
772
806
|
| `sync` | bool | false |
|
|
773
807
|
| `byte_ready` | bool | false |
|
|
774
808
|
| `byte_latched` | bool | false |
|
|
@@ -779,6 +813,17 @@ Written by the C64, C128, Plus/4.
|
|
|
779
813
|
| `cylinder` | int | C64: 0 |
|
|
780
814
|
| `angle` | int | C64: 0 |
|
|
781
815
|
| `changed` | bool | C64: true |
|
|
816
|
+
| `cylinders` | ints | PET: [0, 0] |
|
|
817
|
+
| `phases` | ints | PET: [0, 0] |
|
|
818
|
+
| `positions` | ints | PET: [0, 0] |
|
|
819
|
+
| `bit_clocks` | ints | PET: [0, 0] |
|
|
820
|
+
| `changing` | ints | PET: [0, 0] |
|
|
821
|
+
| `motors` | ints | PET: [0, 0] |
|
|
822
|
+
| `syncs` | ints | PET: [0, 0] |
|
|
823
|
+
| `so_pending` | bool | PET: false |
|
|
824
|
+
| `ca1_low` | bool | PET: false |
|
|
825
|
+
| `data_in` | byte | PET: 255 |
|
|
826
|
+
| `half_tracks` | ints | PET: [0, 0] |
|
|
782
827
|
|
|
783
828
|
## BL-D8-CIA
|
|
784
829
|
|
|
@@ -941,6 +986,8 @@ Written by the VIC-20.
|
|
|
941
986
|
| `registers` | bytes | 16 × 0 |
|
|
942
987
|
| `raster` | int | 0 |
|
|
943
988
|
| `column` | int | 0 |
|
|
989
|
+
| `frame_lines` | int | 312 |
|
|
990
|
+
| `long_field` | bool | true |
|
|
944
991
|
| `window_open` | bool | false |
|
|
945
992
|
| `window_done` | bool | false |
|
|
946
993
|
| `row_start` | int | 0 |
|
|
@@ -1198,7 +1245,7 @@ Written by the Plus/4.
|
|
|
1198
1245
|
|
|
1199
1246
|
## BL-ACIA
|
|
1200
1247
|
|
|
1201
|
-
Written by the Plus/4.
|
|
1248
|
+
Written by the Plus/4, PET, CBM-II.
|
|
1202
1249
|
|
|
1203
1250
|
| Key | Type | Default |
|
|
1204
1251
|
| --- | --- | --- |
|
|
@@ -1363,7 +1410,7 @@ Written by the PET.
|
|
|
1363
1410
|
|
|
1364
1411
|
## BL-CRTC
|
|
1365
1412
|
|
|
1366
|
-
Written by the PET.
|
|
1413
|
+
Written by the PET, CBM-II.
|
|
1367
1414
|
|
|
1368
1415
|
| Key | Type | Default |
|
|
1369
1416
|
| --- | --- | --- |
|
|
@@ -1382,28 +1429,30 @@ Written by the PET.
|
|
|
1382
1429
|
|
|
1383
1430
|
## BL-VIDEO
|
|
1384
1431
|
|
|
1385
|
-
Written by the PET.
|
|
1432
|
+
Written by the PET, CBM-II.
|
|
1386
1433
|
|
|
1387
1434
|
| Key | Type | Default |
|
|
1388
1435
|
| --- | --- | --- |
|
|
1389
|
-
| `displayed` | int | 0 |
|
|
1390
|
-
| `frame_displayed` | int | 0 |
|
|
1436
|
+
| `displayed` | int | PET: 0 |
|
|
1437
|
+
| `frame_displayed` | int | PET: 0 |
|
|
1391
1438
|
| `line_shown` | bool | false |
|
|
1392
|
-
| `y` | int | 136 |
|
|
1393
|
-
| `from_y` | int | 136 |
|
|
1394
|
-
| `to_y` | int | 136 |
|
|
1395
|
-
| `shown_from` | int | 36 |
|
|
1396
|
-
| `shown_to` | int | 37 |
|
|
1397
|
-
| `on_canvas` | bool | true |
|
|
1398
|
-
| `origin` | int | 336 |
|
|
1399
|
-
| `from` | int | 704 |
|
|
1400
|
-
| `to` | int | -704 |
|
|
1401
|
-
| `canvas.dots` | bytes | 192192 × 0 or 83328 × 0 |
|
|
1402
|
-
| `canvas.painted` | ints | 48048 × 0 or 20832 × 0 |
|
|
1403
|
-
| `canvas.span_from` | ints | 273 × 0 or 217 × 0 |
|
|
1404
|
-
| `canvas.span_to` | ints | 273 × 0 or 217 × 0 |
|
|
1405
|
-
| `column` | int | 0 |
|
|
1439
|
+
| `y` | int | PET: 136 |
|
|
1440
|
+
| `from_y` | int | PET: 136 |
|
|
1441
|
+
| `to_y` | int | PET: 136 |
|
|
1442
|
+
| `shown_from` | int | PET: 36 |
|
|
1443
|
+
| `shown_to` | int | PET: 37 |
|
|
1444
|
+
| `on_canvas` | bool | PET: true |
|
|
1445
|
+
| `origin` | int | PET: 336; CBM-II: 24 |
|
|
1446
|
+
| `from` | int | PET: 704 |
|
|
1447
|
+
| `to` | int | PET: -704 |
|
|
1448
|
+
| `canvas.dots` | bytes | PET: 192192 × 0 or 83328 × 0; CBM-II: 187264 × 0 or 258368 × 0 |
|
|
1449
|
+
| `canvas.painted` | ints | PET: 48048 × 0 or 20832 × 0; CBM-II: 46816 × 0 or 64592 × 0 |
|
|
1450
|
+
| `canvas.span_from` | ints | PET: 273 × 0 or 217 × 0; CBM-II: 266 × 0 or 367 × 0 |
|
|
1451
|
+
| `canvas.span_to` | ints | PET: 273 × 0 or 217 × 0; CBM-II: 266 × 0 or 367 × 0 |
|
|
1452
|
+
| `column` | int | PET: 0 |
|
|
1406
1453
|
| `line` | int | 0 |
|
|
1454
|
+
| `frames` | int | CBM-II: 2 |
|
|
1455
|
+
| `layout` | ints | CBM-II: 9 × 0 |
|
|
1407
1456
|
|
|
1408
1457
|
## BL-TAPE1
|
|
1409
1458
|
|
|
@@ -1440,3 +1489,496 @@ Written by the PET.
|
|
|
1440
1489
|
| `tape.bytes` | bytes | [] |
|
|
1441
1490
|
| `tape.path` | text | "" |
|
|
1442
1491
|
| `tape.position` | int | 0 |
|
|
1492
|
+
|
|
1493
|
+
## BL-D8-COMMON
|
|
1494
|
+
|
|
1495
|
+
Written by the PET.
|
|
1496
|
+
|
|
1497
|
+
| Key | Type | Default |
|
|
1498
|
+
| --- | --- | --- |
|
|
1499
|
+
| `ram` | bytes | 4096 × 0 |
|
|
1500
|
+
|
|
1501
|
+
## BL-D8-RIOT1
|
|
1502
|
+
|
|
1503
|
+
Written by the PET.
|
|
1504
|
+
|
|
1505
|
+
| Key | Type | Default |
|
|
1506
|
+
| --- | --- | --- |
|
|
1507
|
+
| `ram` | bytes | 128 × 0 |
|
|
1508
|
+
| `ora` | byte | 0 |
|
|
1509
|
+
| `orb` | byte | 0 |
|
|
1510
|
+
| `ddra` | byte | 0 |
|
|
1511
|
+
| `ddrb` | byte | 0 |
|
|
1512
|
+
| `pa7_high` | bool | true |
|
|
1513
|
+
| `pa7_active` | bool | false |
|
|
1514
|
+
| `pa7_flag` | bool | false |
|
|
1515
|
+
| `edge_irq_enabled` | bool | false |
|
|
1516
|
+
| `rising_edge` | bool | false |
|
|
1517
|
+
| `timer.counter` | byte | 0 |
|
|
1518
|
+
| `timer.interval` | int & 0x3 | 0 |
|
|
1519
|
+
| `timer.prescale` | int | 1 |
|
|
1520
|
+
| `timer.expired` | bool | true |
|
|
1521
|
+
| `timer.flag` | bool | false |
|
|
1522
|
+
| `timer.irq_enabled` | bool | false |
|
|
1523
|
+
| `timer.fired` | bool | false |
|
|
1524
|
+
|
|
1525
|
+
## BL-D8-RIOT2
|
|
1526
|
+
|
|
1527
|
+
Written by the PET.
|
|
1528
|
+
|
|
1529
|
+
| Key | Type | Default |
|
|
1530
|
+
| --- | --- | --- |
|
|
1531
|
+
| `ram` | bytes | 128 × 0 |
|
|
1532
|
+
| `ora` | byte | 0 |
|
|
1533
|
+
| `orb` | byte | 0 |
|
|
1534
|
+
| `ddra` | byte | 0 |
|
|
1535
|
+
| `ddrb` | byte | 0 |
|
|
1536
|
+
| `pa7_high` | bool | true |
|
|
1537
|
+
| `pa7_active` | bool | false |
|
|
1538
|
+
| `pa7_flag` | bool | false |
|
|
1539
|
+
| `edge_irq_enabled` | bool | false |
|
|
1540
|
+
| `rising_edge` | bool | false |
|
|
1541
|
+
| `timer.counter` | byte | 0 |
|
|
1542
|
+
| `timer.interval` | int & 0x3 | 0 |
|
|
1543
|
+
| `timer.prescale` | int | 1 |
|
|
1544
|
+
| `timer.expired` | bool | true |
|
|
1545
|
+
| `timer.flag` | bool | false |
|
|
1546
|
+
| `timer.irq_enabled` | bool | false |
|
|
1547
|
+
| `timer.fired` | bool | false |
|
|
1548
|
+
|
|
1549
|
+
## BL-D8-IPCPU
|
|
1550
|
+
|
|
1551
|
+
Written by the PET.
|
|
1552
|
+
|
|
1553
|
+
| Key | Type | Default |
|
|
1554
|
+
| --- | --- | --- |
|
|
1555
|
+
| `pc` | word | 62135 or 54059 or 61972 |
|
|
1556
|
+
| `sp` | byte | 255 |
|
|
1557
|
+
| `a` | byte | 0 |
|
|
1558
|
+
| `x` | byte | 0 |
|
|
1559
|
+
| `y` | byte | 0 |
|
|
1560
|
+
| `p` | byte | 32 |
|
|
1561
|
+
| `nmi` | bool | false |
|
|
1562
|
+
| `so_high` | bool | true |
|
|
1563
|
+
| `irq.sample` | bool | false |
|
|
1564
|
+
| `irq.pending` | bool | false |
|
|
1565
|
+
| `irq.boundary` | bool | false |
|
|
1566
|
+
| `nmi.sample` | bool | false |
|
|
1567
|
+
| `nmi.pending` | bool | false |
|
|
1568
|
+
| `nmi.boundary` | bool | false |
|
|
1569
|
+
| `skip_poll` | bool | false |
|
|
1570
|
+
| `cycles` | int | 0 |
|
|
1571
|
+
| `instructions` | int | 0 |
|
|
1572
|
+
| `stalled` | int, optional | absent |
|
|
1573
|
+
| `pos.seq` | text: boundary op interrupt jam | "boundary" |
|
|
1574
|
+
|
|
1575
|
+
## BL-D8-FDCCPU
|
|
1576
|
+
|
|
1577
|
+
Written by the PET.
|
|
1578
|
+
|
|
1579
|
+
| Key | Type | Default |
|
|
1580
|
+
| --- | --- | --- |
|
|
1581
|
+
| `pc` | word | 64516 or 64521 |
|
|
1582
|
+
| `sp` | byte | 255 |
|
|
1583
|
+
| `a` | byte | 0 |
|
|
1584
|
+
| `x` | byte | 0 |
|
|
1585
|
+
| `y` | byte | 0 |
|
|
1586
|
+
| `p` | byte | 32 |
|
|
1587
|
+
| `nmi` | bool | false |
|
|
1588
|
+
| `so_high` | bool | true |
|
|
1589
|
+
| `irq.sample` | bool | false |
|
|
1590
|
+
| `irq.pending` | bool | false |
|
|
1591
|
+
| `irq.boundary` | bool | false |
|
|
1592
|
+
| `nmi.sample` | bool | false |
|
|
1593
|
+
| `nmi.pending` | bool | false |
|
|
1594
|
+
| `nmi.boundary` | bool | false |
|
|
1595
|
+
| `skip_poll` | bool | false |
|
|
1596
|
+
| `cycles` | int | 0 |
|
|
1597
|
+
| `instructions` | int | 0 |
|
|
1598
|
+
| `stalled` | int, optional | absent |
|
|
1599
|
+
| `pos.seq` | text: boundary op interrupt jam | "boundary" |
|
|
1600
|
+
|
|
1601
|
+
## BL-D8-VIA
|
|
1602
|
+
|
|
1603
|
+
Written by the PET.
|
|
1604
|
+
|
|
1605
|
+
| Key | Type | Default |
|
|
1606
|
+
| --- | --- | --- |
|
|
1607
|
+
| `ora` | byte | 0 |
|
|
1608
|
+
| `orb` | byte | 0 |
|
|
1609
|
+
| `ddra` | byte | 0 |
|
|
1610
|
+
| `ddrb` | byte | 0 |
|
|
1611
|
+
| `latch_a` | byte | 255 |
|
|
1612
|
+
| `latch_b` | byte | 255 |
|
|
1613
|
+
| `acr` | byte | 0 |
|
|
1614
|
+
| `pcr` | byte | 0 |
|
|
1615
|
+
| `pb6_high` | bool | true |
|
|
1616
|
+
| `t<N>.counter` | word | 65535 |
|
|
1617
|
+
| `t1.latch` | word | 65535 |
|
|
1618
|
+
| `t<N>.hold` | bool | false |
|
|
1619
|
+
| `t1.reload` | bool | false |
|
|
1620
|
+
| `t<N>.armed` | bool | false |
|
|
1621
|
+
| `t1.pb7` | bool | true |
|
|
1622
|
+
| `t2.latch_low` | byte | 255 |
|
|
1623
|
+
| `t2.low_reload` | bool | false |
|
|
1624
|
+
| `t2.low_underflowed` | bool | false |
|
|
1625
|
+
| `t2.count_pulses` | bool | false |
|
|
1626
|
+
| `t2.counting_pulses` | bool | false |
|
|
1627
|
+
| `sr.mode` | int & 0x7 | 0 |
|
|
1628
|
+
| `sr.data` | byte | 0 |
|
|
1629
|
+
| `sr.bits` | int | 0 |
|
|
1630
|
+
| `sr.delay` | int | 0 |
|
|
1631
|
+
| `sr.clock` | bool | true |
|
|
1632
|
+
| `sr.cb2` | bool | true |
|
|
1633
|
+
| `sr.cb2_input` | bool | true |
|
|
1634
|
+
| `ifr.flags` | int & 0x7f | 0 |
|
|
1635
|
+
| `ifr.enable` | int & 0x7f | 0 |
|
|
1636
|
+
| `ca.control` | int & 0xf | 0 |
|
|
1637
|
+
| `ca.c1_high` | bool | true |
|
|
1638
|
+
| `ca.c2_high` | bool | true |
|
|
1639
|
+
| `ca.handshake_low` | bool | false |
|
|
1640
|
+
| `ca.pulse` | int | 0 |
|
|
1641
|
+
| `ca.c2_output` | bool | true |
|
|
1642
|
+
| `cb.control` | int & 0xf | 0 |
|
|
1643
|
+
| `cb.c1_high` | bool | true |
|
|
1644
|
+
| `cb.c2_high` | bool | true |
|
|
1645
|
+
| `cb.handshake_low` | bool | false |
|
|
1646
|
+
| `cb.pulse` | int | 0 |
|
|
1647
|
+
| `cb.c2_output` | bool | true |
|
|
1648
|
+
|
|
1649
|
+
## BL-D8-RRIOT
|
|
1650
|
+
|
|
1651
|
+
Written by the PET.
|
|
1652
|
+
|
|
1653
|
+
| Key | Type | Default |
|
|
1654
|
+
| --- | --- | --- |
|
|
1655
|
+
| `ram` | bytes | 64 × 0 |
|
|
1656
|
+
| `ora` | byte | 0 |
|
|
1657
|
+
| `orb` | byte | 0 |
|
|
1658
|
+
| `ddra` | byte | 0 |
|
|
1659
|
+
| `ddrb` | byte | 0 |
|
|
1660
|
+
| `timer.counter` | byte | 0 |
|
|
1661
|
+
| `timer.interval` | int & 0x3 | 0 |
|
|
1662
|
+
| `timer.prescale` | int | 1 |
|
|
1663
|
+
| `timer.expired` | bool | true |
|
|
1664
|
+
| `timer.flag` | bool | false |
|
|
1665
|
+
| `timer.irq_enabled` | bool | false |
|
|
1666
|
+
| `timer.fired` | bool | false |
|
|
1667
|
+
|
|
1668
|
+
## BL-D8-SASICPU
|
|
1669
|
+
|
|
1670
|
+
Written by the PET.
|
|
1671
|
+
|
|
1672
|
+
| Key | Type | Default |
|
|
1673
|
+
| --- | --- | --- |
|
|
1674
|
+
| `pc` | word | 63489 |
|
|
1675
|
+
| `sp` | byte | 255 |
|
|
1676
|
+
| `a` | byte | 0 |
|
|
1677
|
+
| `x` | byte | 0 |
|
|
1678
|
+
| `y` | byte | 0 |
|
|
1679
|
+
| `p` | byte | 32 |
|
|
1680
|
+
| `nmi` | bool | false |
|
|
1681
|
+
| `so_high` | bool | true |
|
|
1682
|
+
| `irq.sample` | bool | false |
|
|
1683
|
+
| `irq.pending` | bool | false |
|
|
1684
|
+
| `irq.boundary` | bool | false |
|
|
1685
|
+
| `nmi.sample` | bool | false |
|
|
1686
|
+
| `nmi.pending` | bool | false |
|
|
1687
|
+
| `nmi.boundary` | bool | false |
|
|
1688
|
+
| `skip_poll` | bool | false |
|
|
1689
|
+
| `cycles` | int | 0 |
|
|
1690
|
+
| `instructions` | int | 0 |
|
|
1691
|
+
| `stalled` | int, optional | absent |
|
|
1692
|
+
| `pos.seq` | text: boundary op interrupt jam | "boundary" |
|
|
1693
|
+
|
|
1694
|
+
## BL-D8-SASIRAM
|
|
1695
|
+
|
|
1696
|
+
Written by the PET.
|
|
1697
|
+
|
|
1698
|
+
| Key | Type | Default |
|
|
1699
|
+
| --- | --- | --- |
|
|
1700
|
+
| `ram` | bytes | 128 × 0 |
|
|
1701
|
+
|
|
1702
|
+
## BL-D8-SASI
|
|
1703
|
+
|
|
1704
|
+
Written by the PET.
|
|
1705
|
+
|
|
1706
|
+
| Key | Type | Default |
|
|
1707
|
+
| --- | --- | --- |
|
|
1708
|
+
| `phase` | int | 0 |
|
|
1709
|
+
| `request` | bool | false |
|
|
1710
|
+
| `delay` | int | 0 |
|
|
1711
|
+
| `command` | ints | [] |
|
|
1712
|
+
| `buffer` | ints | [] |
|
|
1713
|
+
| `index` | int | 0 |
|
|
1714
|
+
| `writing` | bool | false |
|
|
1715
|
+
| `sense` | ints | [0, 0, 0, 0] |
|
|
1716
|
+
| `last_sense` | ints | [0, 0, 0, 0] |
|
|
1717
|
+
| `fast` | bool | false |
|
|
1718
|
+
| `cycle` | int | 0 |
|
|
1719
|
+
| `cylinder` | int | 0 |
|
|
1720
|
+
| `heads` | int | 4 |
|
|
1721
|
+
| `sectors` | int | 32 |
|
|
1722
|
+
| `block_buffer` | ints | 256 × 0 |
|
|
1723
|
+
| `path` | text | "" |
|
|
1724
|
+
| `read_only` | bool | false |
|
|
1725
|
+
| `disk_heads` | int | 4 |
|
|
1726
|
+
|
|
1727
|
+
## BL-SUPERPET
|
|
1728
|
+
|
|
1729
|
+
Written by the PET.
|
|
1730
|
+
|
|
1731
|
+
| Key | Type | Default |
|
|
1732
|
+
| --- | --- | --- |
|
|
1733
|
+
| `bank_latch` | byte | 0 |
|
|
1734
|
+
| `system_latch` | byte | 0 |
|
|
1735
|
+
| `socket` | int | 0 |
|
|
1736
|
+
| `ram` | bytes | 65536 × 0 |
|
|
1737
|
+
| `dongle.registers` | ints | [0, 0, 0, 0, 0, 0, 0, 0] |
|
|
1738
|
+
| `dongle.latch` | byte | 255 |
|
|
1739
|
+
| `dongle.shift_in` | int, optional | absent |
|
|
1740
|
+
|
|
1741
|
+
## BL-M6809
|
|
1742
|
+
|
|
1743
|
+
Written by the PET.
|
|
1744
|
+
|
|
1745
|
+
| Key | Type | Default |
|
|
1746
|
+
| --- | --- | --- |
|
|
1747
|
+
| `a` | byte | 0 |
|
|
1748
|
+
| `b` | byte | 0 |
|
|
1749
|
+
| `x` | word | 0 |
|
|
1750
|
+
| `y` | word | 0 |
|
|
1751
|
+
| `u` | word | 0 |
|
|
1752
|
+
| `s` | word | 0 |
|
|
1753
|
+
| `pc` | word | 0 |
|
|
1754
|
+
| `dp` | byte | 0 |
|
|
1755
|
+
| `cc` | byte | 80 |
|
|
1756
|
+
| `cycles` | int | 0 |
|
|
1757
|
+
| `irq` | bool | false |
|
|
1758
|
+
| `firq` | bool | false |
|
|
1759
|
+
| `nmi` | bool | false |
|
|
1760
|
+
| `halt` | bool | false |
|
|
1761
|
+
| `irq.latched` | bool | false |
|
|
1762
|
+
| `irq.seen` | bool | false |
|
|
1763
|
+
| `firq.latched` | bool | false |
|
|
1764
|
+
| `firq.seen` | bool | false |
|
|
1765
|
+
| `nmi.edge` | bool | false |
|
|
1766
|
+
| `nmi.latched` | bool | false |
|
|
1767
|
+
| `nmi.seen` | bool | false |
|
|
1768
|
+
| `nmi.armed` | bool | false |
|
|
1769
|
+
| `halt.latched` | bool | false |
|
|
1770
|
+
| `halt.seen` | bool | false |
|
|
1771
|
+
| `ea` | word | 0 |
|
|
1772
|
+
| `value` | word | 0 |
|
|
1773
|
+
| `post` | byte | 0 |
|
|
1774
|
+
| `opcode` | byte | 0 |
|
|
1775
|
+
| `operation` | text: none enter_nmi enter_firq enter_irq neg xnc com lsr ror asr asl rol dec xdec inc tst jmp clr nop sync jsr x18 daa orcc andcc sex exg tfr leax leay leas leau abx mul xres swi nega xnca coma lsra rora asra asla rola deca xdeca inca tsta xclra clra negb xncb comb lsrb rorb asrb aslb rolb decb xdecb incb tstb xclrb clrb suba cmpa sbca subd anda bita lda xsta eora adca ora adda cmpx ldx xstx sta stx subb cmpb sbcb addd andb bitb ldb xstb eorb adcb orb addb ldd ldu xstu stb std stu xswi2 swi2 cmpd xsta2 cmpy ldy xsty sty xaddd xstb2 lds xsts sts xfirq swi3 cmpu cmps xstx2 xaddu xstu2 | "none" |
|
|
1776
|
+
| `page` | int | 1 |
|
|
1777
|
+
| `group` | int | 0 |
|
|
1778
|
+
| `previous_group` | int | 0 |
|
|
1779
|
+
| `alu_word` | int | 0 |
|
|
1780
|
+
| `vector` | word | 65534 |
|
|
1781
|
+
| `interrupt_mask` | byte | 0 |
|
|
1782
|
+
| `stack_u` | bool | false |
|
|
1783
|
+
| `pos.plan` | text | "fetch" |
|
|
1784
|
+
| `pos.tail` | text | "none" |
|
|
1785
|
+
| `pos.index` | int | 0 |
|
|
1786
|
+
|
|
1787
|
+
## BL-CIA
|
|
1788
|
+
|
|
1789
|
+
Written by the CBM-II.
|
|
1790
|
+
|
|
1791
|
+
| Key | Type | Default |
|
|
1792
|
+
| --- | --- | --- |
|
|
1793
|
+
| `pra` | byte | 0 |
|
|
1794
|
+
| `prb` | byte | 0 |
|
|
1795
|
+
| `ddra` | byte | 0 |
|
|
1796
|
+
| `ddrb` | byte | 0 |
|
|
1797
|
+
| `cra` | byte | 0 |
|
|
1798
|
+
| `crb` | byte | 0 |
|
|
1799
|
+
| `pb4_high` | bool | true |
|
|
1800
|
+
| `pb4_driven_high` | bool | true |
|
|
1801
|
+
| `cnt_high` | bool | true |
|
|
1802
|
+
| `cnt_rise` | bool | false |
|
|
1803
|
+
| `ta.counter` | word | 65535 |
|
|
1804
|
+
| `ta.latch` | word | 65535 |
|
|
1805
|
+
| `ta.pipe` | int & 0x3 | 0 |
|
|
1806
|
+
| `ta.load_delay` | int | 0 |
|
|
1807
|
+
| `ta.reload` | bool | false |
|
|
1808
|
+
| `ta.underflowed` | bool | false |
|
|
1809
|
+
| `ta.oneshot_linger` | int | 0 |
|
|
1810
|
+
| `ta.toggle` | bool | true |
|
|
1811
|
+
| `tb.counter` | word | 65535 |
|
|
1812
|
+
| `tb.latch` | word | 65535 |
|
|
1813
|
+
| `tb.pipe` | int & 0x3 | 0 |
|
|
1814
|
+
| `tb.load_delay` | int | 0 |
|
|
1815
|
+
| `tb.reload` | bool | false |
|
|
1816
|
+
| `tb.underflowed` | bool | false |
|
|
1817
|
+
| `tb.oneshot_linger` | int | 0 |
|
|
1818
|
+
| `tb.toggle` | bool | true |
|
|
1819
|
+
| `icr.mask` | byte | 0 |
|
|
1820
|
+
| `icr.status` | byte | 0 |
|
|
1821
|
+
| `icr.pending` | int | 0 |
|
|
1822
|
+
| `icr.read` | int, optional | absent |
|
|
1823
|
+
| `icr.read_last_cycle` | int, optional | absent |
|
|
1824
|
+
| `icr.read_two_cycles_ago` | int, optional | absent |
|
|
1825
|
+
| `icr.timer_b_bug` | bool | false |
|
|
1826
|
+
| `sdr.data` | byte | 0 |
|
|
1827
|
+
| `sdr.shift` | byte | 0 |
|
|
1828
|
+
| `sdr.steps` | int | 0 |
|
|
1829
|
+
| `sdr.empty_in` | int, optional | absent |
|
|
1830
|
+
| `sdr.busy_in` | int, optional | absent |
|
|
1831
|
+
| `sdr.busy` | bool | false |
|
|
1832
|
+
| `sdr.abandoned` | bool | false |
|
|
1833
|
+
| `sdr.pending` | int, optional | absent |
|
|
1834
|
+
| `sdr.underflow_high` | bool | false |
|
|
1835
|
+
| `sdr.in_flight` | bool | false |
|
|
1836
|
+
| `sdr.flight_up` | int | 0 |
|
|
1837
|
+
| `sdr.flight_down` | int | 0 |
|
|
1838
|
+
| `sdr.cnt` | bool | true |
|
|
1839
|
+
| `sdr.cnt_in` | bool | true |
|
|
1840
|
+
| `sdr.sp_in` | bool | true |
|
|
1841
|
+
| `sdr.sp_out` | bool | true |
|
|
1842
|
+
| `sdr.idle` | bool | true |
|
|
1843
|
+
| `tod.mains_phase` | int | 0 |
|
|
1844
|
+
| `tod.pulses` | int | 0 |
|
|
1845
|
+
| `tod.stopped` | bool | true |
|
|
1846
|
+
| `tod.alarm_pending` | bool | false |
|
|
1847
|
+
| `tod.clock.tenths` | byte | 0 |
|
|
1848
|
+
| `tod.alarm.tenths` | byte | 0 |
|
|
1849
|
+
| `tod.clock.seconds` | byte | 0 |
|
|
1850
|
+
| `tod.alarm.seconds` | byte | 0 |
|
|
1851
|
+
| `tod.clock.minutes` | byte | 0 |
|
|
1852
|
+
| `tod.alarm.minutes` | byte | 0 |
|
|
1853
|
+
| `tod.clock.hours` | byte | 1 |
|
|
1854
|
+
| `tod.alarm.hours` | byte | 0 |
|
|
1855
|
+
| `tod.latch.hours` | int, optional | absent |
|
|
1856
|
+
|
|
1857
|
+
## BL-TPI1
|
|
1858
|
+
|
|
1859
|
+
Written by the CBM-II.
|
|
1860
|
+
|
|
1861
|
+
| Key | Type | Default |
|
|
1862
|
+
| --- | --- | --- |
|
|
1863
|
+
| `ports` | ints | [0, 0, 0] |
|
|
1864
|
+
| `directions` | ints | [0, 0, 0] |
|
|
1865
|
+
| `control` | byte | 0 |
|
|
1866
|
+
| `latches` | int & 0x1f | 0 |
|
|
1867
|
+
| `air` | int & 0x1f | 0 |
|
|
1868
|
+
| `stack` | ints | [] |
|
|
1869
|
+
| `ca` | bool | false |
|
|
1870
|
+
| `cb` | bool | false |
|
|
1871
|
+
| `lines` | int & 0x1f | 31 |
|
|
1872
|
+
|
|
1873
|
+
## BL-TPI2
|
|
1874
|
+
|
|
1875
|
+
Written by the CBM-II.
|
|
1876
|
+
|
|
1877
|
+
| Key | Type | Default |
|
|
1878
|
+
| --- | --- | --- |
|
|
1879
|
+
| `ports` | ints | [0, 0, 0] |
|
|
1880
|
+
| `directions` | ints | [0, 0, 0] |
|
|
1881
|
+
| `control` | byte | 0 |
|
|
1882
|
+
| `latches` | int & 0x1f | 0 |
|
|
1883
|
+
| `air` | int & 0x1f | 0 |
|
|
1884
|
+
| `stack` | ints | [] |
|
|
1885
|
+
| `ca` | bool | false |
|
|
1886
|
+
| `cb` | bool | false |
|
|
1887
|
+
| `lines` | int & 0x1f | 31 |
|
|
1888
|
+
|
|
1889
|
+
## BL-U2
|
|
1890
|
+
|
|
1891
|
+
Written by the KIM-1.
|
|
1892
|
+
|
|
1893
|
+
| Key | Type | Default |
|
|
1894
|
+
| --- | --- | --- |
|
|
1895
|
+
| `ram` | bytes | 64 × 0 |
|
|
1896
|
+
| `ora` | byte | 0 |
|
|
1897
|
+
| `orb` | byte | 0 |
|
|
1898
|
+
| `ddra` | byte | 0 |
|
|
1899
|
+
| `ddrb` | byte | 0 |
|
|
1900
|
+
| `timer.counter` | byte | 0 |
|
|
1901
|
+
| `timer.interval` | int & 0x3 | 0 |
|
|
1902
|
+
| `timer.prescale` | int | 1 |
|
|
1903
|
+
| `timer.expired` | bool | true |
|
|
1904
|
+
| `timer.flag` | bool | false |
|
|
1905
|
+
| `timer.irq_enabled` | bool | false |
|
|
1906
|
+
| `timer.fired` | bool | false |
|
|
1907
|
+
|
|
1908
|
+
## BL-U3
|
|
1909
|
+
|
|
1910
|
+
Written by the KIM-1.
|
|
1911
|
+
|
|
1912
|
+
| Key | Type | Default |
|
|
1913
|
+
| --- | --- | --- |
|
|
1914
|
+
| `ram` | bytes | 64 × 0 |
|
|
1915
|
+
| `ora` | byte | 0 |
|
|
1916
|
+
| `orb` | byte | 0 |
|
|
1917
|
+
| `ddra` | byte | 0 |
|
|
1918
|
+
| `ddrb` | byte | 0 |
|
|
1919
|
+
| `timer.counter` | byte | 0 |
|
|
1920
|
+
| `timer.interval` | int & 0x3 | 0 |
|
|
1921
|
+
| `timer.prescale` | int | 1 |
|
|
1922
|
+
| `timer.expired` | bool | true |
|
|
1923
|
+
| `timer.flag` | bool | false |
|
|
1924
|
+
| `timer.irq_enabled` | bool | false |
|
|
1925
|
+
| `timer.fired` | bool | false |
|
|
1926
|
+
|
|
1927
|
+
## BL-PANEL
|
|
1928
|
+
|
|
1929
|
+
Written by the KIM-1.
|
|
1930
|
+
|
|
1931
|
+
| Key | Type | Default |
|
|
1932
|
+
| --- | --- | --- |
|
|
1933
|
+
| `tty` | bool | false |
|
|
1934
|
+
| `held` | int | -1 |
|
|
1935
|
+
| `digit` | int | -1 |
|
|
1936
|
+
| `segments` | int & 0x7f | 0 |
|
|
1937
|
+
| `since` | int | 0 |
|
|
1938
|
+
| `lit` | ints | 42 × 0 |
|
|
1939
|
+
| `shown` | ints | [0, 0, 0, 0, 0, 0] |
|
|
1940
|
+
| `shown_at` | ints | [-20001, -20001, -20001, -20001, -20001, -20001] |
|
|
1941
|
+
|
|
1942
|
+
## BL-DECK
|
|
1943
|
+
|
|
1944
|
+
Written by the KIM-1.
|
|
1945
|
+
|
|
1946
|
+
| Key | Type | Default |
|
|
1947
|
+
| --- | --- | --- |
|
|
1948
|
+
| `tape.gaps` | ints | [] |
|
|
1949
|
+
| `tape.path` | text | "" |
|
|
1950
|
+
| `playing` | bool | false |
|
|
1951
|
+
| `recording` | bool | false |
|
|
1952
|
+
| `position` | int | 0 |
|
|
1953
|
+
| `next_edge` | int | 0 |
|
|
1954
|
+
| `high` | bool | true |
|
|
1955
|
+
| `output_high` | bool | true |
|
|
1956
|
+
|
|
1957
|
+
## BL-TTY
|
|
1958
|
+
|
|
1959
|
+
Written by the KIM-1.
|
|
1960
|
+
|
|
1961
|
+
| Key | Type | Default |
|
|
1962
|
+
| --- | --- | --- |
|
|
1963
|
+
| `baud` | int | 9600 |
|
|
1964
|
+
| `queue` | ints | [] |
|
|
1965
|
+
| `output` | bytes | [] |
|
|
1966
|
+
| `line_high` | bool | true |
|
|
1967
|
+
| `send.byte` | int | 0 |
|
|
1968
|
+
| `send.bits` | int | 11 |
|
|
1969
|
+
| `send.start` | int | 0 |
|
|
1970
|
+
| `quiet_until` | int | 0 |
|
|
1971
|
+
| `receive.busy` | bool | false |
|
|
1972
|
+
| `receive.byte` | int | 0 |
|
|
1973
|
+
| `receive.bits` | int | 0 |
|
|
1974
|
+
| `receive.edge` | int | 0 |
|
|
1975
|
+
| `receive.sample_at` | int | 0 |
|
|
1976
|
+
| `printer_high` | bool | true |
|
|
1977
|
+
|
|
1978
|
+
## BL-SOUND
|
|
1979
|
+
|
|
1980
|
+
Written by the KIM-1.
|
|
1981
|
+
|
|
1982
|
+
| Key | Type | Default |
|
|
1983
|
+
| --- | --- | --- |
|
|
1984
|
+
| `speaker` | bool | false |
|