Thomas Harte
|
73d30b9c00
|
Corrected typo.
|
2016-11-25 21:30:45 +08:00 |
|
Thomas Harte
|
12956901d6
|
Filled in some register mirrors.
|
2016-11-25 21:28:11 +08:00 |
|
Thomas Harte
|
54246c8f1a
|
Interrupt enabling works the other way around I think, and both registers with only one bit defined should probably return '1' in all other places?
|
2016-11-25 21:24:59 +08:00 |
|
Thomas Harte
|
8be81f6ebd
|
Supplied disks are given to the Microdisc.
|
2016-11-25 20:53:38 +08:00 |
|
Thomas Harte
|
4af678d2ed
|
Gave the Microdisc a clock signal, added just enough of force interrupt to avoid a spurious belief that a type 3 command has started.
|
2016-11-25 20:51:39 +08:00 |
|
Thomas Harte
|
5c019ad1c0
|
Okay, so it looks like both ROM paging flags are the opposite of what I previously had.
|
2016-11-25 20:42:40 +08:00 |
|
Thomas Harte
|
5be45c6c50
|
Ensured proper default behaviour.
|
2016-11-25 20:30:27 +08:00 |
|
Thomas Harte
|
d33f3b9224
|
This is the broad strokes effort at enabling Microdisc emulation.
|
2016-11-25 20:15:48 +08:00 |
|
Thomas Harte
|
7c2d9f3752
|
This seems to be right, per http://wiki.defence-force.org/doku.php?id=oric:hardware:floppy_disk_controller_wd1793
|
2016-11-22 22:35:43 +08:00 |
|
Thomas Harte
|
5ebc1c63ff
|
Switched video to postfix underscores, for consistency.
|
2016-11-22 22:28:45 +08:00 |
|
Thomas Harte
|
707763f80b
|
Added Microdisc storage to the Oric class, switching all instance storage to postfix underscore while I'm here.
|
2016-11-22 22:22:00 +08:00 |
|
Thomas Harte
|
0c3644f350
|
Made a second parse at logic. We'll see.
|
2016-11-22 22:12:32 +08:00 |
|
Thomas Harte
|
03843bf934
|
Unified delegates. Let's keep it easy for the caller.
|
2016-11-22 22:11:11 +08:00 |
|
Thomas Harte
|
13a608a8c2
|
Added what may be correct paging logic.
|
2016-11-22 22:09:52 +08:00 |
|
Thomas Harte
|
363db695e8
|
Started implementation of the Microdisc selection logic.
|
2016-11-22 08:12:53 +08:00 |
|
Thomas Harte
|
09f965e6a9
|
Fixed potential bug whereby inserting a disk into a drive that hadn't been lazily allocated yet but had already been selected wouldn't take effect.
|
2016-11-22 08:11:57 +08:00 |
|
Thomas Harte
|
ea33a28695
|
Any Oric-format disks that are inserted now make it all the way to the Oric, along with a request to emulate the Microdisc. It has received a copy of the ROM. The ball is entirely in its court now.
|
2016-11-21 20:59:25 +08:00 |
|
Thomas Harte
|
311f8c0b47
|
Restored audio.
|
2016-11-16 11:10:07 +08:00 |
|
Thomas Harte
|
8b40ae03ca
|
Extended analysis to spot IRQ and NMI vector changes, for titles that simply adjust those then exit. Ensured Oric emulator can type and load quickly on an Oric 1 just as well as on an Atmos.
|
2016-11-15 11:05:53 +08:00 |
|
Thomas Harte
|
e2cdfae8a7
|
The emulated Oric now has access to both versions of the BASIC ROM and picks between them based on the static analyser's recommendation.
|
2016-11-15 10:39:16 +08:00 |
|
Thomas Harte
|
9c550c594a
|
Moved audio work back into its own thread, but this time it queues up an all happens only upon a flush. Hopefully to resolve synchronisation cost concerns.
|
2016-11-09 21:17:50 -05:00 |
|
Thomas Harte
|
64827931bf
|
Switched the Oric implementation simply to rely upon the Storage-level tape parser. So now there's only one, authoritative one of those.
|
2016-11-07 21:57:58 -05:00 |
|
Thomas Harte
|
45b169f341
|
Made a few mapping fixes, clarified where the default reset code lives, ensured the Oric and Vic clear their keys when the typer ends.
|
2016-11-05 15:28:03 -04:00 |
|
Thomas Harte
|
338904fffe
|
Made similar cleanings of the Electron and Vic.
|
2016-11-05 15:07:57 -04:00 |
|
Thomas Harte
|
9fb9d92437
|
Made the typer much more able to help out, and thereby tidied and separated the Oric's typer.
|
2016-11-05 14:47:09 -04:00 |
|
Thomas Harte
|
626e719fab
|
Added sanity checks on loading quickly.
|
2016-11-03 22:50:49 -04:00 |
|
Thomas Harte
|
a7e4c0c3b5
|
Switched to a ROM trap for typing.
|
2016-11-03 22:21:05 -04:00 |
|
Thomas Harte
|
8c70dc5891
|
Implemented typer for the Oric, and I'm starting to think the code is a bit too repetitious. Refactoring will be forthcoming. Added CLOAD"" as the loading command for all Oric software.
|
2016-11-03 22:14:40 -04:00 |
|
Thomas Harte
|
9c2df231ce
|
Made fast loading optional.
|
2016-11-03 07:59:30 -04:00 |
|
Thomas Harte
|
e9f1a6a79d
|
This appears to be it. The secret? Don't worry about the stop bits. They're just processing time. Latch onto the next start.
|
2016-11-03 07:34:48 -04:00 |
|
Thomas Harte
|
827a919368
|
This is an initial attempt at reading actual tape data. It loses sync though.
|
2016-11-02 22:30:53 -04:00 |
|
Thomas Harte
|
419629ee6e
|
Completed proof of theory for fast loading. It's just an around-the-back direct-to-file hack for now though.
|
2016-11-02 21:09:49 -04:00 |
|
Thomas Harte
|
bb58caff52
|
Merge branch 'master' into FastOricTape
|
2016-10-31 22:11:03 -04:00 |
|
Thomas Harte
|
21604376e6
|
Reintroduced clocking of the AY and boxed in the range of the master divider a little further.
|
2016-10-30 22:51:08 -04:00 |
|
Thomas Harte
|
33512988fb
|
Added a basic cycle skipper plus some notes.
|
2016-10-30 22:39:47 -04:00 |
|
Thomas Harte
|
b04ba41951
|
Moved code out of header.
|
2016-10-30 20:16:58 -04:00 |
|
Thomas Harte
|
3b52ab0d37
|
Cut some dead state.
|
2016-10-30 20:16:52 -04:00 |
|
Thomas Harte
|
58f888c6ad
|
Limited CRT calls.
|
2016-10-30 16:21:20 -04:00 |
|
Thomas Harte
|
1ff9b474bf
|
Made an attempt to make execution flow through this loop more straightforward for a branch predictor.
|
2016-10-30 15:30:39 -04:00 |
|
Thomas Harte
|
7843a244b0
|
Ensured emulation doesn't enter an infinite loop if the user attempts to read beyond the end of a tape.
|
2016-10-28 22:23:25 -04:00 |
|
Thomas Harte
|
4fab794747
|
Added a direct-to-two-cycles emulation path for 6522 owners.
|
2016-10-27 21:13:25 -04:00 |
|
Thomas Harte
|
2eda0b3c86
|
Attempted to simplify the logic behind the most common 6522 usage.
|
2016-10-27 21:06:31 -04:00 |
|
Thomas Harte
|
30d4a7c662
|
Fixed: blinking means ink vanishing and appearing. Nothing else.
|
2016-10-24 21:58:15 -04:00 |
|
Thomas Harte
|
09687a2e2f
|
Removed errant newline.
|
2016-10-20 21:30:12 -04:00 |
|
Thomas Harte
|
44910d90ba
|
Adjusted aberrations in semicolons.
|
2016-10-20 21:20:13 -04:00 |
|
Thomas Harte
|
6292ac5b26
|
Yet more .hpp clean(s)ing.
|
2016-10-20 21:15:21 -04:00 |
|
Thomas Harte
|
c5948ef177
|
Evicted more header-resident code.
|
2016-10-20 21:05:32 -04:00 |
|
Thomas Harte
|
d335991e60
|
Shifted code out of the header.
|
2016-10-20 20:53:17 -04:00 |
|
Thomas Harte
|
9c956f83b8
|
Made it slightly more clear that the correct test is conformed to.
|
2016-10-20 19:23:36 -04:00 |
|
Thomas Harte
|
21cfb39ed9
|
Added 60Hz output support.
|
2016-10-20 07:34:23 -04:00 |
|
Thomas Harte
|
5c69728625
|
Introduced a memory fuzzer, and ensured the Oric uses it.
|
2016-10-19 21:31:50 -04:00 |
|
Thomas Harte
|
734b575d30
|
Ensured no attempt to write to pixel storage if none was available.
|
2016-10-19 21:17:27 -04:00 |
|
Thomas Harte
|
ca28e3c64e
|
Ensured the AY is pumped linearly, not exponentially.
|
2016-10-18 22:21:06 -04:00 |
|
Thomas Harte
|
9669a5ec9b
|
Switched to a more authentic interfacing to the AY.
|
2016-10-18 19:32:15 -04:00 |
|
Thomas Harte
|
988bbb5ab1
|
Ensured AY registers aren't rewritten just because of a synchronise event. A stall prior to figuring out proper bus logic, clearly.
|
2016-10-17 08:05:57 -04:00 |
|
Thomas Harte
|
1a57e89ff0
|
Altered phase so that it now merely accounts for accumulated error across a frame. Can probably do better.
|
2016-10-17 08:04:15 -04:00 |
|
Thomas Harte
|
61ad0f8bdc
|
Fixed inverse characters, added an extra per-frame phase change, based on empirical observation, ensured header guard won't become ambiguous.
|
2016-10-16 22:14:01 -04:00 |
|
Thomas Harte
|
a67afb7efa
|
Switched to a tight crop on the pixel part of the display.
|
2016-10-15 21:43:46 -04:00 |
|
Thomas Harte
|
a608bbebfb
|
Performed enough wiring to put the onus back onto OricTAP to do appropriate things.
|
2016-10-15 21:32:59 -04:00 |
|
Thomas Harte
|
6d7c3f6ac2
|
Factored out the now-sampling binary-level tape player from the Vic and connected it up to the Oric.
|
2016-10-15 21:21:18 -04:00 |
|
Thomas Harte
|
9730e8247f
|
Ensured propagation of synchronise messages, added enough to do plain tone. Probably. So: noise and envelopes missing. And it's all far too quiet.
|
2016-10-15 21:04:21 -04:00 |
|
Thomas Harte
|
51bdac27ae
|
Made some AY advances; it's now being polled for samples and collecting more information on what it needs to output.
|
2016-10-15 17:45:39 -04:00 |
|
Thomas Harte
|
da9c9ad51a
|
Added in the missing keys; added variable phase to the video.
|
2016-10-14 22:39:27 -04:00 |
|
Thomas Harte
|
288d10c253
|
Got some keyboard reaction.
|
2016-10-14 21:44:15 -04:00 |
|
Thomas Harte
|
3dbb602419
|
This seems to be a bit more likely.
|
2016-10-14 21:36:59 -04:00 |
|
Thomas Harte
|
138eabcff4
|
Continued in my effort to wire up a keyboard. Will need further to continue.
|
2016-10-14 21:35:15 -04:00 |
|
Thomas Harte
|
d8e4c488c2
|
Started iterating towards having an AY and a fully-working keyboard.
|
2016-10-14 21:18:03 -04:00 |
|
Thomas Harte
|
8867ad647c
|
Made an attempt at implementing the loopbacks necessary for diagnostics.
|
2016-10-13 21:47:12 -04:00 |
|
Thomas Harte
|
41e7eff6c8
|
Added a VIA. Now it's time to find out how poor my 6522 emulation is.
|
2016-10-13 20:50:55 -04:00 |
|
Thomas Harte
|
c9962f6502
|
Made an almost complete implementation of video. Just one row of the diagnostics cartridge seems to be off, showing thw wrong character set.
|
2016-10-13 19:34:29 -04:00 |
|
Thomas Harte
|
69920a4979
|
Made some basic first attempt at parsing video attributes; ensured lowest byte of ROM is readable.
|
2016-10-13 07:59:11 -04:00 |
|
Thomas Harte
|
ae48ad1bb4
|
Meaningful text! Albeit with the initial 'O' of 'Oric' missing. I guess control codes and NMIs next?
|
2016-10-12 22:03:54 -04:00 |
|
Thomas Harte
|
120b2d9e33
|
Switched to using a diagnostic ROM for now, as it'll definitely boot without initially requiring either a 6522 or AY. Have some forms appearing which imply I'm not doing badly, at least up to not knowing where I'm supposed to get character pixels from.
|
2016-10-12 21:52:47 -04:00 |
|
Thomas Harte
|
1f857c619b
|
Fixed timing issues. Static box of frame achieved!
|
2016-10-12 21:42:36 -04:00 |
|
Thomas Harte
|
304f0999cd
|
Made a faulty but hopefully creditable attempt to demarcate an Oric frame.
|
2016-10-12 21:29:21 -04:00 |
|
Thomas Harte
|
8c8a71107e
|
Added just enough wiring to add something that will generate the video, one day.
|
2016-10-12 19:20:23 -04:00 |
|
Thomas Harte
|
e6937d8003
|
Ensured that the ROM gets installed. So next for some video action?
|
2016-10-12 18:51:02 -04:00 |
|
Thomas Harte
|
4a062c616f
|
Added enough wiring to get Oric TAPs through to a completely unimplemented Oric emulation.
|
2016-10-11 22:20:13 -04:00 |
|
Thomas Harte
|
922dd6a586
|
Hit up the other two kinds of audio generator.
|
2016-10-07 17:10:00 -04:00 |
|
Thomas Harte
|
de658b70d7
|
That's thread safety, subject to the async task queue being made to work...
|
2016-10-07 17:02:36 -04:00 |
|
Thomas Harte
|
2d26feb073
|
Added mappings for the previously-missing characters @, [ and ].
|
2016-10-04 22:03:53 -04:00 |
|
Thomas Harte
|
f9ee6803df
|
It's likely this should be set at startup too, based on latest info.
|
2016-10-03 22:16:10 -04:00 |
|
Thomas Harte
|
97304e22f0
|
Adjusted per tests on StarDot; it appears the tape interrupts may fire during audio output, as if in tape output mode.
|
2016-10-03 20:03:14 -04:00 |
|
Thomas Harte
|
dae6b45464
|
Ensured the always-on bit of the interrupt status register is indeed on.
|
2016-10-03 19:15:31 -04:00 |
|
Thomas Harte
|
cd1ab09701
|
The Vic-20 now inserts ROMs again.
|
2016-09-29 20:15:25 -04:00 |
|
Thomas Harte
|
79412dc84d
|
Upped MFM clock cycles, switched back to using the typer for the ADFS and adjusted ADFS ROM slots.
|
2016-09-28 21:28:34 -04:00 |
|
Thomas Harte
|
4db086949a
|
Made an attempt to add MFM decoding to the 1770; ensured something is returned when reading the Plus 3 status register again.
|
2016-09-25 21:38:52 -04:00 |
|
Thomas Harte
|
572d5587d9
|
Made a first stab at enabling multi-disk machines and thereby obeying (some of) the Plus 3's status register.
|
2016-09-25 21:24:16 -04:00 |
|
Thomas Harte
|
9bbcbd1001
|
Renamed class, intending to turn a Disk::Drive into literally just that, and have a thing with a PLL that consumes events be a Controller .
|
2016-09-25 20:05:56 -04:00 |
|
Thomas Harte
|
7f4c78139c
|
Attempted to ensure that ADFS disks get to an appropriately-configured Electron. Not immediately sure why the shift press isn't working; doesn't need to be dealt with immediately.
|
2016-09-25 19:59:46 -04:00 |
|
Thomas Harte
|
6084020ab3
|
Added shift-break as a better way to boot suitable disks. Continued attempting to clean the 1770.
|
2016-09-25 14:11:22 -04:00 |
|
Thomas Harte
|
ce4100e5b9
|
Fixed slots for DFS and ADFS to sideways RAM; continued working on the 1770 to get as far as trying to get the body of a sector.
|
2016-09-24 22:04:54 -04:00 |
|
Thomas Harte
|
8db0030068
|
Fixed ROM loading by the Electron, turned the WD1770 into a 'disk drive' (it'll do for now), persuaded it to get all the way through a very specifically convenient type 1 command.
|
2016-09-20 22:14:33 -04:00 |
|
Thomas Harte
|
3b97b038b9
|
Corrected and sketched out state machine far enough to get to a complaint about unhandled work.
|
2016-09-20 15:56:31 -04:00 |
|
Thomas Harte
|
e358057440
|
Added a WD1770 run_for_cycles call. So I really can now move that as far as reporting that it has no disk?
|
2016-09-20 07:42:17 -04:00 |
|
Thomas Harte
|
cd5939501f
|
Treading water some more, ensured the DFS and ADFS ROMs get to the Electron. It now even inserts the DFS ROM if it has a DFS disk image. Might need to make it a sideways RAM though? Regardless, the next job surely — surely! — has to be to stop avoiding the 1770?
|
2016-09-20 07:36:57 -04:00 |
|
Thomas Harte
|
a9e65e9b7a
|
Tweaked disk side density, added call-outs to a WD1770 if the Electron had one (albeit without run_for_cycles yet as I need to figure out the clock rate), added a shell of the basic functions of the WD1770. No implementation yet.
|
2016-09-19 22:06:56 -04:00 |
|
Thomas Harte
|
64f2538b1f
|
Added CRC checking to DFS comprehension; fixed a bunch of places where I'd used Objective-C's #import rather than #include .
|
2016-09-19 08:16:06 -04:00 |
|
Thomas Harte
|
142254a478
|
Resolved failure to open disks that arrive through analysis.
|
2016-09-17 18:11:58 -04:00 |
|
Thomas Harte
|
ee8510984f
|
Added just enough wiring to restore the 2600 to functionality.
|
2016-09-15 19:34:45 -04:00 |
|