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
|
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
|
c9dd07cecd
|
DFS disks are now delivered right up to the emulator's front door. So everything's in place to get started on that WD1770 nonsense.
|
2016-09-19 08:29:23 -04:00 |
|
Thomas Harte
|
fbcb59d47a
|
A policy change trial: let the person above deal with any error.
|
2016-09-18 21:18:41 -04:00 |
|
Thomas Harte
|
0ce901bd48
|
Added necessary wiring to get as far as asking an arm of the analyser to check out an Acorn disk image.
|
2016-09-18 21:18:11 -04:00 |
|
Thomas Harte
|
91cd7e143b
|
Started on the SSD/DSD support. Realised I had ommitted multiple head support from my disk class. Fixed that.
|
2016-09-18 19:21:02 -04:00 |
|
Thomas Harte
|
180c3df2d4
|
Calling it 'number theory' probably isn't accurate but extracted the CRC stuff and started using it for [M]FM encoding.
|
2016-09-18 18:33:26 -04:00 |
|
Thomas Harte
|
bcf91de7e9
|
Declared support for the Acorn disk files, started hammering out an encoder.
|
2016-09-18 13:35:54 -04:00 |
|
Thomas Harte
|
0e44cfa8a1
|
Merge branch 'master' into WD1770
|
2016-09-18 10:34:11 -04:00 |
|
Thomas Harte
|
6f0b9adc3d
|
Factors.cpp is dead.
|
2016-09-18 10:23:34 -04:00 |
|
Thomas Harte
|
a98374995e
|
Cleaned up pre-analysis code.
|
2016-09-17 18:19:32 -04:00 |
|
Thomas Harte
|
e3daf80564
|
Added a file for the 1770, at least.
|
2016-09-17 18:01:00 -04:00 |
|
Thomas Harte
|
7c65c69e0f
|
Migrated to Swift 3.
|
2016-09-15 22:12:12 -04:00 |
|
Thomas Harte
|
ee8510984f
|
Added just enough wiring to restore the 2600 to functionality.
|
2016-09-15 19:34:45 -04:00 |
|
Thomas Harte
|
92af19098c
|
Improved file naming.
|
2016-09-15 19:24:59 -04:00 |
|
Thomas Harte
|
df7aed7e8b
|
The Commodore analyser now at least hands off to somebody else a chance to parse disks.
|
2016-09-13 07:26:51 -04:00 |
|
Thomas Harte
|
c3a795328d
|
Windows have titles again. Also I've owned up to not knowing how to edit UEFs right now.
|
2016-09-12 22:15:38 -04:00 |
|
Thomas Harte
|
40660fe680
|
Made yet another guess at Commodore analysis. Elevated fast tape-related unnatural speed up to the OS-side mechanisms.
|
2016-09-12 22:06:03 -04:00 |
|
Thomas Harte
|
eeec516fa6
|
Implemented seeking on tapes, mucked about a bit more with the Commodore analyser, at least temporarily removed cropping from the Vic emulator.
|
2016-09-11 17:09:00 -04:00 |
|
Thomas Harte
|
908dc40569
|
If loading automatically, assume that whatever was in the machine target set up the machine and don't override it. Too dodgy? More thought required.
|
2016-09-08 07:38:34 -04:00 |
|
Thomas Harte
|
8c84f3581a
|
Attempted to bring some uniformity in application of configurations.
|
2016-09-08 05:32:17 -04:00 |
|
Thomas Harte
|
50175a9aed
|
Added logic to try to spot when the first program is BASIC and, if so, what the correct memory model is, then to get that information to the Vic. Though it currently then gets overwritten by the view controller. Grrrr.
|
2016-09-07 22:17:19 -04:00 |
|
Thomas Harte
|
bdebc18e0a
|
Added a header parser for Commodore tapes. No time to grab file bodies now; time to go to work.
|
2016-09-06 08:49:32 -04:00 |
|
Thomas Harte
|
8b933182af
|
Added enough wiring (hopefully) that the Commodore tape's GetFiles should be called when appropriate.
|
2016-09-06 06:39:40 -04:00 |
|
Thomas Harte
|
963e307d0c
|
Increased documentation.
|
2016-09-05 22:06:39 -04:00 |
|
Thomas Harte
|
05c24222d8
|
Liberated the tape parser template.
|
2016-09-05 20:02:35 -04:00 |
|
Thomas Harte
|
21e5f407d8
|
I need to get a bit more definitive on naming but this gets all the way to setting a configuration upon an Electron.
|
2016-08-31 22:03:42 -04:00 |
|
Thomas Harte
|
a9b67dfba0
|
Introduced an NSDocumentController subclass.
|
2016-08-31 21:21:07 -04:00 |
|
Thomas Harte
|
7bc2b6b161
|
Added the minor piece that will allow analysis results to be obtained from Objective-C, and exposed to Swift in sufficient detail for it to be able to pass on to the machine.
|
2016-08-31 20:43:29 -04:00 |
|
Thomas Harte
|
0032ad2634
|
Edging ever onwards; killed forced attempt at uniformity in targets, sketched out the interface for a next-file-from call to Acorn tapes.
|
2016-08-29 21:10:38 -04:00 |
|
Thomas Harte
|
d1abfc040c
|
Addressed my dithering here: the file format containers themselves should do nothing but inspect the data to find out whether it is of the correct format. The machine steps are there for machine-specific validation. So it's probably easier to treat a binary ROM image just as a binary ROM image. Therefore, the Acorn-specific .rom detection is now in an Acorn-specific area.
|
2016-08-29 08:48:49 -04:00 |
|
Thomas Harte
|
29c972f4b8
|
Added hacky segue into analysis for all Electron formats. Added analyser to try to differentiate Acorn-format ROMs from other things called .rom, which are likely to be numerous.
|
2016-08-28 12:43:17 -04:00 |
|
Thomas Harte
|
d9f0065154
|
Sketched out just enough classes to get through the get-contents-into-memory step of static analysis.
|
2016-08-28 12:20:40 -04:00 |
|
Thomas Harte
|
24938326ac
|
ROMs definitely have no behaviour other than responding to memory accesses. Cartridges might. So picked the more general term. Sketched out a class at least to parse PRG as though it were a cartridge. Hence the static analyser can guess at whether a PRG is a cartridge or an ordinary program.
|
2016-08-27 18:26:51 -04:00 |
|
Thomas Harte
|
a1b3a18d11
|
Started forcing a resolution on ROMs by doing. But have immediately misstepped. Rename coming momentarily...
|
2016-08-27 18:17:40 -04:00 |
|
Thomas Harte
|
56c0d70c1f
|
Gave disks their own namespace.
|
2016-08-27 17:15:09 -04:00 |
|
Thomas Harte
|
c0402d0c2b
|
Gave tapes their own namespace.
|
2016-08-27 17:09:45 -04:00 |
|
Thomas Harte
|
8c333059a8
|
Turning this into a slog: gave UEF a more appropriate name, got as far as now having to decide what to do about ROMs as to structure. I guess they're machine specific, so specific classes?
|
2016-08-27 16:40:21 -04:00 |
|
Thomas Harte
|
e68ff64045
|
Actually, this is less prescriptive.
|
2016-08-27 13:42:51 -04:00 |
|
Thomas Harte
|
5ffd9e4f0d
|
This is probably how the static analyser interface will look?
|
2016-08-23 21:35:59 -04:00 |
|
Thomas Harte
|
0d077691b0
|
Resolved warning.
|
2016-08-23 21:10:22 -04:00 |
|
Thomas Harte
|
38aec44d85
|
Made sufficient changes for the Vic itself to believe it can recast a PRG as a tape and insert it that way. So now the ball is in the court of: how the heck are Commodore tapes encoded?
|
2016-08-15 19:44:41 -04:00 |
|
Thomas Harte
|
6079d30e58
|
Eliminated waiting here — either the buffer can be enqueued now or it is dropped.
|
2016-08-14 16:20:24 -04:00 |
|
Thomas Harte
|
5373f6cc57
|
Completed setting of options, including mapping from country to ROM + television standard.
|
2016-08-14 14:23:08 -04:00 |
|
Thomas Harte
|
b5af1746d5
|
Added a through path to the Objective-C for setting region and memory size.
|
2016-08-14 14:14:59 -04:00 |
|
Thomas Harte
|
f15d89239f
|
Made a stab at storage and restoration of country and memory size.
|
2016-08-14 14:00:08 -04:00 |
|
Thomas Harte
|
df77c2a20a
|
Added the XIB side of wiring for region and memory size options.
|
2016-08-14 13:53:14 -04:00 |
|
Thomas Harte
|
12bad8f23f
|
Turned the 6560 into an ordinary template, similar to the rest of the project, albeit right now with a fairly shonky internal implementation. Fixed a Mac-specific interface sizing issue.
|
2016-08-09 20:41:05 -04:00 |
|
Thomas Harte
|
285a288c80
|
Switched to two cycles of options loading, meaning that they get set before files are inserted. Might need some further work?
|
2016-08-07 21:48:09 -04:00 |
|
Thomas Harte
|
be54d8040e
|
Made a first stab at having automatic loading be optional. But things are currently arranged such that the machine options are communicated too late to have an effect. So work to do.
|
2016-08-06 17:39:27 -04:00 |
|
Thomas Harte
|
58297f1baf
|
Performed the basic metadata and routing for opening D64 files. Realised that I wasn't actually necessarily catching exceptions properly for all file opens, and fixed.
|
2016-08-01 07:09:15 -04:00 |
|
Thomas Harte
|
18744cd98b
|
Slightly updated comments, switched to 1540 ROM so as very slightly to improve loading time.
|
2016-08-01 04:37:30 -04:00 |
|
Thomas Harte
|
89a1881fef
|
Started turning the 1540 into an actual disk drive.
|
2016-07-29 11:03:09 -04:00 |
|
Thomas Harte
|
0e581c7607
|
Factored out the stuff of running a timed event loop from the TapePlayer.
|
2016-07-29 07:15:46 -04:00 |
|
Thomas Harte
|
e55db0cfe8
|
Made an attempt to eliminate creeping tape processing accuracy misses, which implied factoring out the GCM and LCD functions, which I then felt didn't really amount to signal processing.
|
2016-07-29 05:19:01 -04:00 |
|
Thomas Harte
|
015cea494d
|
Switched to a much-more straightforward PLL. I think I'm just fiddling now rather than moving forwards. Probably time to move on?
|
2016-07-28 11:32:14 -04:00 |
|
Thomas Harte
|
e061e849d4
|
Had a second bash at the PLL. Probably I should read some of the literature.
|
2016-07-27 16:24:24 -04:00 |
|
Thomas Harte
|
0aa90b943b
|
Switched to specifying bit length as a quotient for the purposes of a PCMSegment and verified that I had the logic for picking a Commodore time zone backwards: bigger numbers are faster, not slower.
Started sketching out a DiskDrive class.
|
2016-07-15 06:51:11 -04:00 |
|
Thomas Harte
|
74817f6664
|
With a history of three pulses, this can track up a 10% sine variation in a 1010101 stream. So I guess this'll do for now?
|
2016-07-14 19:54:48 -04:00 |
|
Thomas Harte
|
ac1bc588dd
|
Improved factoring and increased window of testing, causing both the fast and slow tests to show framing errors.
|
2016-07-14 07:12:02 -04:00 |
|
Thomas Harte
|
d1fe07f14d
|
Added test of perfect DPLL input timing.
|
2016-07-12 21:42:23 -04:00 |
|
Thomas Harte
|
75d95c0bc0
|
Sketched out an interface for a digial PLL. Not persuaded yet. Baby steps.
|
2016-07-11 22:12:58 -04:00 |
|
Thomas Harte
|
1e9eedc314
|
Factored out the PCM track since it's going to be a useful construct for almost every file format. Documented it a little better.
|
2016-07-10 18:36:52 -04:00 |
|
Thomas Harte
|
6cfc514c2d
|
Made the rote changes necessary to attempt to open and to supply a G64 to the Vic.
|
2016-07-10 12:57:17 -04:00 |
|
Thomas Harte
|
ff49857f5c
|
Started sketching out support for the G64 file format.
|
2016-07-10 10:17:53 -04:00 |
|
Thomas Harte
|
9e3d6b762b
|
Sketched out the generic interface for a disk, documenting it and the tape interface while I'm here.
|
2016-07-10 08:54:39 -04:00 |
|
Thomas Harte
|
d8334edf4a
|
Started trying to clean up, including commuting the C1540 source file name to match its class name but mainly by adding documentation.
|
2016-07-10 07:46:20 -04:00 |
|
Thomas Harte
|
656cd211d7
|
Was transmitting bit levels backwards (probably?); 1540 now acknowledges byte received.
|
2016-07-09 18:06:49 -04:00 |
|
Thomas Harte
|
01746f0512
|
This is probably a valid test. But I'm not completely sure. Time to figure out what's happening on the 1540 end.
|
2016-07-09 18:01:04 -04:00 |
|
Thomas Harte
|
cd84c35552
|
Whoops, one bit too short.
|
2016-07-09 17:51:46 -04:00 |
|
Thomas Harte
|
cd362b46b3
|
This is a valid attempt to send a whole byte, I think.
|
2016-07-09 17:51:04 -04:00 |
|
Thomas Harte
|
3560babd7e
|
Got back to a failing test, now while trying to transmit a whole byte. Good stuff!
|
2016-07-09 17:39:51 -04:00 |
|
Thomas Harte
|
66caa3c6dc
|
Fixed setup of bridge class.
|
2016-07-09 17:23:43 -04:00 |
|
Thomas Harte
|
bf03985ea4
|
Here's an instantly failing test...
|
2016-07-09 17:22:10 -04:00 |
|
Thomas Harte
|
da6fe2e983
|
This should be enough of a shell to write some actual tests.
|
2016-07-09 15:47:53 -04:00 |
|
Thomas Harte
|
865eb421cd
|
Quick on-disk tidy up.
|
2016-07-09 15:44:55 -04:00 |
|
Thomas Harte
|
7cc4bf3fe7
|
Hit and hope is getting me nowhere. Time to unit test this thing.
|
2016-07-09 15:40:25 -04:00 |
|
Thomas Harte
|
81e6cc34e5
|
Per the ROM disassembly, the Vic's VIA outputs are inverted for the benefit of the serial bus.
|
2016-07-07 06:57:21 -04:00 |
|
Thomas Harte
|
1baf21827c
|
Since the ROM is well disassembled, let's actually try to be a 1541 first.
|
2016-07-06 22:17:32 -04:00 |
|
Thomas Harte
|
d1eea6943d
|
Ensured the 1540 ROM gets installed, at least.
|
2016-07-05 16:54:25 -04:00 |
|
Thomas Harte
|
47548dcedc
|
Fixed an erroneous #import.
|
2016-07-05 16:39:31 -04:00 |
|
Thomas Harte
|
86dabd007b
|
Furthered fleshing out of the 1540. Though it doesn't yet receive a ROM so won't even attempt to do anything meaningful.
|
2016-07-05 16:39:18 -04:00 |
|
Thomas Harte
|
d2cded7b59
|
Attempted to separate out the concept of a serial port and a serial bus, since the bus may be shared, and to establish half duplex communications from the Vic.
|
2016-07-05 14:55:20 -04:00 |
|
Thomas Harte
|
0d3d0fbe4d
|
Created a namespace for Commodore and an empty container file for the 1540[/1] implementation.
|
2016-07-05 13:28:27 -04:00 |
|
Thomas Harte
|
df4724eb3e
|
Added a modal toggle allowing the keyboard to be switched between being a keyboard and being a joystick for the Vic.
|
2016-07-04 22:01:07 -04:00 |
|
Thomas Harte
|
88964ceac0
|
Eliminated plain pointer passing for object types.
|
2016-07-04 19:33:55 -04:00 |
|
Thomas Harte
|
6dbf16210b
|
Switched protocol to meaningful name and corrected its omission from the repository.
|
2016-07-04 19:19:07 -04:00 |
|
Thomas Harte
|
b322baff2f
|
Added CLI/SEI pair test.
|
2016-06-29 19:42:39 -04:00 |
|
Thomas Harte
|
db7c6430b5
|
Fixed Klaus Dormann termination condition.
|
2016-06-29 19:16:34 -04:00 |
|
Thomas Harte
|
6419d9c485
|
Added a single IRQ test case, discovering that I'm two cycles short. Whoops!
|
2016-06-28 21:29:43 -04:00 |
|
Thomas Harte
|
6027cba95f
|
Factored out the stuff of pushing a fast-loading option onwards and storing it within the user defaults.
|
2016-06-27 21:38:14 -04:00 |
|
Thomas Harte
|
9134e4de1f
|
Added a partially-wired options menu for the VIC.
|
2016-06-27 18:49:53 -04:00 |
|
Thomas Harte
|
d5e50f5ea0
|
Got a bit more explicit about how ports are identified on the 6522.
|
2016-06-26 12:30:01 -04:00 |
|
Thomas Harte
|
8741be5c84
|
Made the slightest possible effort to get TAPs opened and passed to the VIC.
|
2016-06-25 16:24:52 -04:00 |
|
Thomas Harte
|
ee19417ded
|
Made an attempt quickly to implement parsing of the Commodore .TAP file format.
|
2016-06-25 16:09:32 -04:00 |
|
Thomas Harte
|
b8728285e7
|
An overridden getter looks more like this in Swift.
|
2016-06-23 21:09:34 -04:00 |
|
Thomas Harte
|
097a9caa95
|
Delegates are all nullable, naturally.
|
2016-06-23 09:37:49 -04:00 |
|
Thomas Harte
|
454e98302d
|
Slight rearrangement plus a setting of the CSMachine delegate corrects audio after a clock rate change.
|
2016-06-20 22:18:41 -04:00 |
|
Thomas Harte
|
31b26b8118
|
Made a first attempt to implement the full top-to-bottom change of clock rates, giving the Atari the ability to change rate when it switches to PAL mode, as it should always have been.
|
2016-06-20 21:47:27 -04:00 |
|
Thomas Harte
|
3591479571
|
Fixed mismatch between initial tick box states and communicated switches; ensured they're visible upon launching a game.
|
2016-06-20 21:31:07 -04:00 |
|