1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-13 15:31:05 +00:00
Commit Graph

1531 Commits

Author SHA1 Message Date
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