Peter Evans
09017aa171
Use DI to obtain the reflect struct
2018-02-07 00:01:27 -06:00
Peter Evans
5e7492abdf
Allow mutability if in testing
2018-02-06 23:37:20 -06:00
Peter Evans
4e0892dc86
Add dependency injection container for vm
2018-02-06 23:24:48 -06:00
Peter Evans
524412039a
Implement a dumb stub for cpu_info
2018-02-06 21:10:08 -06:00
Peter Evans
608b2259e5
Break keyboard event logic out into normal/special
2018-02-06 16:29:15 -06:00
Peter Evans
fa5bfe09ae
Add better handling if selected_drive is NULL
...
(Discovered from static analysis)
2018-02-06 14:58:00 -06:00
Peter Evans
0dce7dbc58
Remove unnecessary assignment
2018-02-06 14:37:04 -06:00
Peter Evans
fbee851daf
Add apple2 reflect code
2018-02-06 00:30:46 -06:00
Peter Evans
318107d18f
Change macro name to REFLECT_HANDLER
2018-02-05 21:54:38 -06:00
Peter Evans
8c0b69668c
Add docblocks for vm_event functions
2018-02-05 21:43:02 -06:00
Peter Evans
c6bbb46dfe
Add ignores for docblocks
2018-02-05 20:44:11 -06:00
Peter Evans
c1c42834ed
Add reflect system to virtual machine
2018-02-05 20:31:05 -06:00
Peter Evans
4ce79c785c
Only read or write if a disk is in the drive
2018-02-05 12:42:19 -06:00
Peter Evans
a13be6c413
Disable opcode output
2018-02-05 12:29:00 -06:00
Peter Evans
92ee67c8d8
Allow us to signal that we should exit
2018-02-05 00:35:04 -06:00
Peter Evans
72c4111458
Add event system; move event code into vm_event.c
2018-02-05 00:28:22 -06:00
Peter Evans
247bafbcce
We also need to move beyond the sector header
2018-02-04 15:44:41 -06:00
Peter Evans
e23a3e4b63
Use macro definitions for track/sector length
2018-02-04 14:19:40 -06:00
Peter Evans
64364d91ad
Remove unnecessary for loop
2018-02-04 14:15:24 -06:00
Peter Evans
463a9ba268
Handle all phase cases (zero and non-zero)
2018-02-04 01:11:30 -06:00
Peter Evans
1245ddec55
Make encode/decode more testable with return codes
2018-02-04 00:21:39 -06:00
Peter Evans
8009a33bd4
Use int return for error code
2018-02-04 00:06:22 -06:00
Peter Evans
2bdc921b76
Add missing docblocks
2018-02-03 21:56:27 -06:00
Peter Evans
67f943d891
When encoded, the track size is larger than 4k
2018-02-03 21:18:07 -06:00
Peter Evans
a6c1564747
Add fwrite function, support for streams and types
2018-02-03 20:50:08 -06:00
Peter Evans
2dd21f1487
Add image type, image segment
2018-02-03 18:10:29 -06:00
Peter Evans
c010c10ce2
Add missing docblocks
2018-02-03 17:46:56 -06:00
Peter Evans
10d13f755c
Document the pseudo-instruction "bad"
2018-02-03 17:44:41 -06:00
Peter Evans
5ac2fbdbee
Add new decode functions, flesh out sector code
2018-02-03 00:23:57 -06:00
Peter Evans
d2e21b55c4
Implement the sector decode function
...
This was a bear to do, and the product being committed is probably my
third (or fourth?) try.
2018-02-02 17:19:38 -06:00
Peter Evans
fadf5a9782
Add decode...code
2018-02-01 18:41:01 -06:00
Peter Evans
323803866a
Include better documentation of otherwise grumpy functions
2018-01-31 15:58:32 -06:00
Peter Evans
98c2ef16cc
Add encode function for nib
2018-01-31 15:40:39 -06:00
Peter Evans
4943d66e8c
Correct typo so it's clear this is a get OOB
2018-01-31 15:40:06 -06:00
Peter Evans
c031822063
Use nibbilized size for dest; allow offset to overflow
2018-01-31 14:28:29 -06:00
Peter Evans
8a53e02f00
Rename to enc.c, add header file
2018-01-31 00:09:07 -06:00
Peter Evans
b09ca2dae5
Reword comment
2018-01-30 18:55:23 -06:00
Peter Evans
5c7dbb4cfe
My first crack at some code for nibblization
2018-01-30 16:30:23 -06:00
Peter Evans
b2bfee7f96
The SLOTCXROM switch seems to work opposite
...
Which seems weird, but I've verified this in some other places.
2018-01-29 00:30:12 -06:00
Peter Evans
418688cd15
Lock disk drives during disassembly
2018-01-28 18:06:14 -06:00
Peter Evans
33b44d1a70
selected_drive will now have a default value (of drive1)
2018-01-27 21:53:12 -06:00
Peter Evans
2c3d6a4dfa
Reimplement idx and idy to use 16-bit addresses
...
While I have found some conflicting details on how this should be done,
it seems pretty clear to me that IDX and IDY work with 16-bit addresses,
not 8-bit. The inability to do so was preventing us from probing
peripheral ROM (e.g. at $C705, for the disk controller).
2018-01-27 19:54:55 -06:00
Peter Evans
4165c1cefc
Make idx, idy clearer
...
I'm still not confident this is how it _should_ work, but I have found
conflicting accounts online for the behavior of these two modes. The
current code is what allows the Apple II to bootstrap as it should.
2018-01-27 13:04:19 -06:00
Peter Evans
76e4d3797f
By default SLOTCXROM should be high
2018-01-26 22:01:46 -06:00
Peter Evans
ca5276cb6b
It turns out we don't use carry for addr modes.
...
This fix actually corrects a rather irritating bug where the Apple ][
logo was displaying one-off--e.g., as "pple ][D".
2018-01-26 21:18:42 -06:00
Peter Evans
9c0e01ecd2
Add drive phases, switches for control and i/o
2018-01-26 19:49:19 -06:00
Peter Evans
e901bcf54d
Add docblock comments
2018-01-25 14:12:49 -06:00
Peter Evans
217b27b040
Handle inversed text
2018-01-24 20:05:47 -06:00
Peter Evans
2ae272af3a
Stop flickering issue by clearing before drawing
2018-01-24 20:04:53 -06:00
Peter Evans
d581194bbc
Add apple text functions and refactor draw logic for text
2018-01-24 16:11:08 -06:00