Thomas Harte
66b95a8b54
Merge pull request #1217 from TomHarte/PCFDC
...
Sketch the outline of a high-level emulation of the PC FDC
2023-11-29 12:48:55 -05:00
Thomas Harte
439104c73a
Add missing space.
2023-11-29 09:49:05 -05:00
Thomas Harte
fbbe3ab7f1
Include seek ended flag.
2023-11-29 09:45:45 -05:00
Thomas Harte
6e2e67fd46
Sculpt out enough to get to a read data command.
2023-11-29 09:42:43 -05:00
Ryan Carsten Schmidt
3293ab48ce
Handle C, E, F operations in Disk II state machine
...
This shouldn't matter since these operations are not requested by the
state machine but this is what those operations should do according to
Understanding the Apple II, Table 9.3, page 9-15.
2023-11-29 05:50:20 -06:00
Thomas Harte
3827a084ad
Code to GlaBIOS expectations.
2023-11-28 23:18:22 -05:00
Thomas Harte
301442a0b1
Fix meaning of flag, use correctly.
2023-11-28 22:34:34 -05:00
Thomas Harte
b860fba0a3
Make an attempt at providing varied sense interrupt statuses.
2023-11-28 14:12:39 -05:00
Thomas Harte
bffe3ffa25
Add an 8272 results phase.
2023-11-27 23:05:37 -05:00
Thomas Harte
993366ac5a
Merge branch 'master' into PCFDC
2023-11-27 22:16:30 -05:00
Thomas Harte
2a0375e9c2
Mildly adjust layout of inner loop.
2023-11-27 15:16:22 -05:00
Thomas Harte
032eeb4757
Eliminate runtime switch.
2023-11-27 14:57:41 -05:00
Thomas Harte
d2203484cc
Avoid name duplication.
2023-11-26 15:29:08 -05:00
Thomas Harte
003c494aac
Factor out a large number of status-related facts.
2023-11-26 15:04:10 -05:00
Thomas Harte
9bd75464b5
Proceed to receiving a sense interrupt status.
2023-11-25 18:15:37 -05:00
Thomas Harte
0bb048e24b
Start formalising/extracting 8272 status.
2023-11-25 18:10:49 -05:00
Thomas Harte
af70c8847d
Factor out the stuff of accumulating and dissecting commands.
2023-11-24 18:24:58 -05:00
Thomas Harte
8efb6a9226
Simplify 'get_next_sequence_point' -> 'next_sequence_point'.
2023-09-10 18:00:49 -04:00
Thomas Harte
40d5bd4e58
Switch to purposive name.
2023-05-19 14:22:22 -04:00
Thomas Harte
c75efb7dac
Also allow for a potential Grauw conversion in Yamaha land.
2023-05-19 13:43:28 -04:00
Thomas Harte
d117a44069
Allow for potential Grauw offset in TMS and SMS.
2023-05-19 11:46:49 -04:00
Thomas Harte
dc425a03d3
Partially resolve.
2023-05-18 16:55:17 -04:00
Thomas Harte
ce8bd011d7
Add commentary, and TODOs.
2023-05-18 16:50:46 -04:00
Thomas Harte
c76048bff9
Formalise the idea of Grauw as a separate clock.
2023-05-18 16:37:48 -04:00
Thomas Harte
4cb7abe13d
Update old comment.
2023-05-18 16:28:05 -04:00
Thomas Harte
5c51bae605
Remove unused variable.
2023-05-16 16:46:36 -04:00
Thomas Harte
8578dfbf22
Eliminate various other errant spaces.
2023-05-16 16:40:09 -04:00
Thomas Harte
f821b60430
Remove stray space.
2023-05-16 16:16:10 -04:00
Thomas Harte
8ca0d9e13a
Add a hook for when I think mode latching should occur.
2023-05-16 16:14:37 -04:00
Thomas Harte
3014c957e7
Relocate Yamaha line interrupt.
2023-05-16 13:01:23 -04:00
Thomas Harte
a1a7c0e253
Apply maybe_unused judiciously.
2023-05-15 10:17:04 -04:00
Thomas Harte
50343dec43
Eliminate all whitespace-only lines.
2023-05-12 14:16:39 -04:00
Thomas Harte
28c79b2885
Eliminate redundant [space][tab] pairs.
2023-05-12 14:14:45 -04:00
Thomas Harte
56de9c418f
Improve comments.
2023-05-12 13:59:52 -04:00
Thomas Harte
5bcb5fb832
Also sever command-engine state.
2023-05-12 13:57:50 -04:00
Thomas Harte
abeb361441
Gift all generators to YamahaFetcher.
2023-05-12 13:54:07 -04:00
Thomas Harte
f9cc2013a8
Start to cleave off Yamaha fetch tables.
2023-05-12 13:49:53 -04:00
Thomas Harte
e7c40eead9
Have Fetch and Draw be overt about namespaces.
2023-05-12 13:46:35 -04:00
Thomas Harte
c29d80006e
Start to organise.
2023-05-12 13:33:02 -04:00
Thomas Harte
596661bfbe
Remove errant newline.
2023-05-12 13:25:11 -04:00
Thomas Harte
7e319374b6
Consolidate StandardTiming into LineLayout.
2023-05-11 23:49:12 -04:00
Thomas Harte
2b56b7be0d
Simplify namespace syntax.
2023-05-10 16:02:18 -05:00
Thomas Harte
992a47c196
Add fallthrough annotations to Duff-esque loops.
2023-05-10 09:38:42 -05:00
Thomas Harte
8540e7a953
Add missing #include.
2023-05-10 09:37:21 -05:00
Thomas Harte
e94b9f695a
Move interrupt away from buggy position.
...
Since I don't know where it's supposed to go anyway.
2023-05-08 09:50:05 -04:00
Thomas Harte
3797968870
Expose line interrupt status only when enabled.
2023-05-08 09:45:54 -04:00
Thomas Harte
561e2b774e
Unify numbered and named slots.
2023-04-30 17:24:14 -04:00
Thomas Harte
6552d962ab
Fix base for Master System fetching.
2023-04-30 16:43:03 -04:00
Thomas Harte
6c0feeedb4
Update Master System horizontal counter.
2023-04-26 22:49:46 -04:00
Thomas Harte
b5d9586362
Clean up some dangling timing changes.
2023-04-25 23:16:21 -04:00
Thomas Harte
e49e98d309
Support horizontal offsets.
2023-04-24 22:43:11 -04:00
Thomas Harte
1b4df01a28
Fix missing right blank.
2023-04-24 22:23:09 -04:00
Thomas Harte
dbddcd109c
Add mention of text mode.
2023-04-23 22:38:42 -04:00
Thomas Harte
efa7d659bc
Subsume right erase.
2023-04-23 22:21:22 -04:00
Thomas Harte
5daec050dd
Adopt proper pixel-content placement.
2023-04-23 22:18:36 -04:00
Thomas Harte
f5c8eba843
Reduce duplication.
2023-04-23 22:02:41 -04:00
Thomas Harte
e5b0e666cc
Realign fetching.
2023-04-23 21:16:04 -04:00
Thomas Harte
96896f838c
Adjust layout inner loop.
2023-04-23 12:17:55 -04:00
Thomas Harte
f22aa6eb36
Simplify all namespace usages.:wq
2023-04-23 12:08:07 -04:00
Thomas Harte
6d092e0633
Restore missing semicolon.
2023-04-23 12:06:07 -04:00
Thomas Harte
6651a9c323
Use established test.
2023-04-23 12:01:33 -04:00
Thomas Harte
12bcc2dee7
Make reasonable guesses at colour burst placement.
2023-04-22 23:11:01 -04:00
Thomas Harte
d587d80616
Transcribe Grauw's line timings.
2023-04-22 22:58:23 -04:00
Thomas Harte
e66c015b43
Eliminate regress
for now.
2023-04-13 23:30:52 -04:00
Thomas Harte
9d99cc6115
Fix external slot placement.
2023-04-12 22:35:01 -04:00
Thomas Harte
383770515e
Avoid null dereference.
2023-04-10 23:13:36 -04:00
Thomas Harte
024b7960cb
Overtly link line and sprite buffers.
2023-04-10 23:03:39 -04:00
Thomas Harte
e0a5d9f31c
Reorient sequencers around HSYNC.
2023-04-08 15:28:49 -04:00
Thomas Harte
224c79c492
Move state.
2023-04-06 00:05:19 -04:00
Thomas Harte
278e7ba9b0
Take ownership of test choice.
2023-04-05 23:33:42 -04:00
Thomas Harte
20c1c6fdcd
Add sanity check on sprite fetches versus draws.
2023-04-03 22:46:49 -04:00
Thomas Harte
514022204e
Attempt to avoid lingering sprite elements.
2023-04-02 22:45:02 -04:00
Thomas Harte
564ee1a5cb
Fix sprites on first line of display.
2023-03-30 23:45:19 -04:00
Thomas Harte
f3c2c0ffa9
Synchronise fetch and draw sprite buffer usage.
2023-03-30 19:11:00 -04:00
Thomas Harte
931d2373a4
Attempt to make outer loop sole owner of line/sprite buffer selection.
2023-03-30 00:20:03 -04:00
Thomas Harte
de3cd9c286
Simplify namespace declaration.
2023-03-25 23:22:34 -04:00
Thomas Harte
655638656f
Elide the two fills; fix address masking.
2023-03-21 20:05:34 -04:00
Thomas Harte
2bf2abf4b2
Be more overt about masking.
2023-03-19 23:00:41 -04:00
Thomas Harte
235d54bb67
Attempt but retreat from proper treatment of width.
2023-03-18 23:13:06 -04:00
Thomas Harte
e66a92d6cb
Fill in and use some parts of mode description.
2023-03-18 23:07:33 -04:00
Thomas Harte
a6251f436a
Provide commands with [unpopulated] mode parameters.
2023-03-18 13:39:47 -04:00
Thomas Harte
4a5b2fd9ba
Eliminate logged TODOs that I don't intend to action soon.
2023-03-16 22:00:47 -04:00
Thomas Harte
a5a36cb08e
Add missing status storage; capture mode 2 sprite collision locations.
2023-03-15 23:06:32 -04:00
Thomas Harte
aa4582956f
Add TODO.
2023-03-15 22:37:47 -04:00
Thomas Harte
f26dee16bf
Update comment.
2023-03-13 23:21:19 -04:00
Thomas Harte
131784d007
Generalise PointSet to read or write.
2023-03-13 22:51:01 -04:00
Thomas Harte
e703fa9cf8
Fetch colours in TMS character mode.
2023-03-12 23:33:29 -04:00
Thomas Harte
cc04349618
Reestablish relationship between fetch and output.
2023-03-11 22:24:11 -05:00
Thomas Harte
d46f869276
Minor style improvement.
2023-03-10 21:14:52 -05:00
Thomas Harte
da944fde92
Eliminate data-type assumption.
2023-03-10 21:04:35 -05:00
Thomas Harte
c9124f13cd
Add suggested brackets.
2023-03-09 22:25:09 -05:00
Thomas Harte
ca7d34ad04
Fix ambiguous using
.
2023-03-09 22:24:53 -05:00
Thomas Harte
2913368a06
Attempt YMMM.
2023-03-08 23:12:02 -05:00
Thomas Harte
82659e7924
Unify existing moves.
2023-03-08 22:36:06 -05:00
Thomas Harte
f3a84021ed
Merge branch 'MSX2' of github.com:TomHarte/CLK into MSX2
2023-03-08 18:28:17 -05:00
Thomas Harte
555d883227
Yamaha fetches don't require an outer switch.
2023-03-08 18:28:13 -05:00
Thomas Harte
020d9604c6
Better judge when to rotate addresses.
2023-03-08 18:27:59 -05:00
Thomas Harte
6845008fd4
Place end-of-frame interrupt appropriately.
2023-03-07 22:12:06 -05:00
Thomas Harte
cc7b209e1a
Adjust visible Y9938 area; clamp scrolled y; use proper mode 2 terminator.
2023-03-07 18:19:08 -05:00
Thomas Harte
e8404bdcc0
TODO is done, probably.
2023-03-06 22:57:53 -05:00
Thomas Harte
f8eb2199c2
Fix relative offset.
2023-03-06 22:49:21 -05:00
Thomas Harte
a13905acf9
Attempt to incorporate scroll offset into line interrupt.
2023-03-06 21:41:43 -05:00
Thomas Harte
5471979f8d
Eliminate stale TODOs.
2023-03-05 21:34:10 -05:00
Thomas Harte
5b8a5755f0
Use correct mode-7 sprite palette.
2023-03-05 21:29:04 -05:00
Thomas Harte
caaba836ba
Correct GR7 rasterisation and 6/7 collection.
2023-03-05 13:43:53 -05:00
Thomas Harte
8fc043247c
Fix column addressing in modes 6 and 7.
2023-03-04 21:39:00 -05:00
Thomas Harte
e58a488add
Rotate command-engine addresses in modes 6 and 7.
2023-03-03 23:06:52 -05:00
Thomas Harte
0ea1da10d6
Attempt to generalise moving from CPU.
2023-03-03 21:40:48 -05:00
Thomas Harte
3381e6b5aa
Switch to Duff's device.
2023-03-02 22:16:18 -05:00
Thomas Harte
4c1973adc8
Fill in missing rasterisers.
2023-03-01 23:19:33 -05:00
Thomas Harte
318cfab67d
Attempt ongoing state for vertical on/off.
2023-02-28 22:28:14 -05:00
Thomas Harte
1ef34b1f18
Clarify meaning of STOP.
2023-02-26 14:28:24 -05:00
Thomas Harte
12bd71cfe1
Allow that the next interrupt line might be in the next frame.
2023-02-26 14:23:38 -05:00
Thomas Harte
c7128f4206
Reduce logging.
2023-02-26 14:01:23 -05:00
Thomas Harte
95fd5a52ba
Use redirected palette in bitmap modes.
2023-02-26 13:59:17 -05:00
Thomas Harte
bfa167fcdf
Make attempt at the TP background-colour bit.
2023-02-26 13:42:59 -05:00
Thomas Harte
b948761f30
Detect mode 2 collisions, albeit without proper reporting.
2023-02-25 10:42:44 -06:00
Thomas Harte
dd65074bbf
Add named getters, resolving composition bug.
2023-02-25 10:32:47 -06:00
Thomas Harte
9debed25e8
Fix meaning of 'origin'.
2023-02-25 08:53:00 -06:00
Thomas Harte
1bdf9a50e6
Take a shot at Mode 2 sprite output.
2023-02-25 08:48:16 -06:00
Thomas Harte
2592dfd78f
Pile on the TODOs.
2023-02-21 22:33:47 -05:00
Thomas Harte
ef5d05db53
Scale down new-mode coordinates; add note to self.
2023-02-21 22:28:39 -05:00
Thomas Harte
6a2cda7074
Pull out and partially generalise sprite output.
...
This also provides the intended route to supporting Mode 2.
2023-02-21 22:00:00 -05:00
Thomas Harte
62d381065e
Change 9938 identification number.
2023-02-21 19:35:11 -05:00
Thomas Harte
091c1b0f45
Correct sprite attribute and colour table addresses.
2023-02-21 19:34:26 -05:00
Thomas Harte
a28b5bdeea
Only on the Sega are line interrupts disabled by a read of S#0.
2023-02-20 23:43:23 -05:00
Thomas Harte
2e45422b03
Make a further attempt at sprite colour.
2023-02-20 22:39:34 -05:00
Thomas Harte
3606f5befe
Add expansion RAM to command engine, as far as it goes.
2023-02-20 22:32:36 -05:00
Thomas Harte
44ac948bb2
Add expansion RAM, albeit not yet into the command engine.
2023-02-20 22:27:30 -05:00
Thomas Harte
4bac782121
One final (?) time with colour.
2023-02-19 22:15:59 -05:00
Thomas Harte
318109b7d5
Try again with colour.
2023-02-19 22:14:18 -05:00
Thomas Harte
6990ba9242
Fetch colour from before attribute table.
2023-02-19 22:10:22 -05:00
Thomas Harte
54be424159
Include sprite index in SpriteY event.
2023-02-19 22:04:38 -05:00
Thomas Harte
8d900cf636
Attempt a full collection of Mode 2 sprite properties.
2023-02-19 21:52:10 -05:00
Thomas Harte
6db939f48f
Create a dedicated sprite fetcher.
2023-02-19 21:37:24 -05:00
Thomas Harte
5eae11434a
Sprite mode 2: select sprites, fetch locations and names.
2023-02-18 22:56:05 -05:00
Thomas Harte
7aa8728b39
Reimagine G3 for sprite mode 2.
2023-02-18 21:50:12 -05:00
Thomas Harte
270c5dfe85
Eliminate data_block_
entirely.
2023-02-18 21:41:22 -05:00
Thomas Harte
d6e4f12fdc
Merge DataBlock and Pattern.
2023-02-18 21:34:09 -05:00
Thomas Harte
4e3e4806b9
Eliminate assert; events have overtaken this.
2023-02-17 23:01:42 -05:00
Thomas Harte
ebc596820e
Obtain the background graphics, at least, for G3.
2023-02-17 22:47:15 -05:00
Thomas Harte
b62e899039
Avoid need for shortcuts.
2023-02-17 22:34:52 -05:00
Thomas Harte
a123ef151c
Eliminate further magic ORs.
2023-02-17 22:31:21 -05:00
Thomas Harte
5b31db700b
Deduplicate 40-column text fetching.
2023-02-17 22:23:10 -05:00
Thomas Harte
8af0a2313c
Formally distinguish fetchers and sequencing.
2023-02-17 22:20:38 -05:00
Thomas Harte
88eaa4ff02
[Mostly] avoid magic address constants; avoid duplication of TMS fetching logic.
2023-02-17 21:59:39 -05:00
Thomas Harte
c140f370fe
Attempt to copy and paste my way to working type-1 sprites.
2023-02-16 22:46:19 -05:00
Thomas Harte
023da1970a
Label all character events with IDs.
2023-02-16 22:21:24 -05:00
Thomas Harte
211e145230
Make room for an ID field on Event.
2023-02-16 22:10:16 -05:00
Thomas Harte
bbccc5d6d6
Route other holdover TMS modes through the Yamaha logic.
2023-02-16 22:07:18 -05:00