Peter Evans
90892c32e4
Add TSB (Test and Set Bits) instruction
...
This commit also moves the TRB code from loadstor to bits, which is
where it should have been all along.
2018-02-22 13:39:48 -06:00
Peter Evans
a4c3d1c4ef
Implement the TRB (Test and Reset Bits) instruction
2018-02-22 00:39:33 -06:00
Peter Evans
807362e871
Add STZ instruction (to store zero)
2018-02-22 00:02:57 -06:00
Peter Evans
8e1ab0e950
Add support for PHX, PHY, PLX, PLY
...
These instructions allow you to push and pull (pop) the X and Y
registers via the stack.
2018-02-21 23:32:57 -06:00
Peter Evans
f9a277e7bc
Add new Branch Always instruction
2018-02-21 21:57:21 -06:00
Peter Evans
8623945bbf
Add the ability to INC or DEC the accumulator
...
This is an oversight from the 6502 processor that was rectified in the
65c02 model.
2018-02-21 21:20:05 -06:00
Peter Evans
7b65dc1657
Add new BIM instruction (BIt imMediate mode)
...
This is not a real instruction in the 65c02 processor; I invented it for
the sole purpose of handling the specialized logic that is performed by
BIT in IMM mode. To be fair--I can imagine this really _was_ implemented
as a "separate" instruction on the chip! But I don't know that for sure.
2018-02-21 21:01:46 -06:00
Peter Evans
61eb880f49
Refactor code to pass image type in
2018-02-21 00:23:12 -06:00
Peter Evans
8706a81d1f
Remove spurious printf
2018-02-20 15:55:40 -06:00
Peter Evans
1091ec6e2a
Pass image type into enc_dos; use sector_num instead of a table pointer
2018-02-20 15:36:23 -06:00
Peter Evans
c2e90651ac
Again, latch data must be > 128 (0x80)
2018-02-20 14:44:17 -06:00
Peter Evans
e826fc05d9
We can only write latch data that is > 128
2018-02-20 14:43:33 -06:00
Peter Evans
08f3899de4
Tracks don't move from shifting; sector work
...
The sector work being:
- We only wrap around if we go beyond the length of an encoded track, so
use ENC_ETRACK.
- If we DO wrap around, we don't use modulus; we simply reset to zero.
2018-02-20 14:33:36 -06:00
Peter Evans
c7fbb4aa50
Backward steps require adjacent phases
2018-02-20 14:30:20 -06:00
Peter Evans
28061c1d11
Adjust length/data for sectors; cleanup some magic numbers
2018-02-20 01:00:46 -06:00
Peter Evans
2318b1917a
This form needs two RORs to work
...
That's because the first ROR pushes the 1 in bit0 into the carry bit;
the second moves the carry bit into the bit7 position, which will match
128.
2018-02-19 22:01:30 -06:00
Peter Evans
d590a809d8
Tests should reflect how carry is handled in ROL/R now
2018-02-19 21:59:55 -06:00
Peter Evans
65f13bb1e4
Add missing output and fix buffer size issue
...
We use BUFSIZ everywhere, except in setvbuf(), which kinda needs to know
the proper buffer size. Because we were passing 256, which is (much!)
lower than BUFSIZ, we were wrapping output around in an odd, unexpected
way.
2018-02-19 21:49:58 -06:00
Peter Evans
9f0d7f5413
Fix some compile failures due to changed params
2018-02-19 20:03:25 -06:00
Peter Evans
9e26e215cd
In which we discover that image doesn't matter
2018-02-11 20:38:51 -06:00
Peter Evans
350a06890a
Split up logic for keyboard test
...
In accordance with the split in logic we had made for the source
function
2018-02-10 18:31:38 -06:00
Peter Evans
69d425db2d
Add tests for vm_di
2018-02-10 18:25:29 -06:00
Peter Evans
919869289e
Add missing test for reflect functions, init
2018-02-10 18:20:50 -06:00
Peter Evans
aee0521b0a
Change key to ALT+Q
2018-02-07 16:08:43 -06:00
Peter Evans
fa938470d3
Account for changes to vm_reflect functions
2018-02-07 14:44:37 -06:00
Peter Evans
8450ccd3c5
Unit-testing builds now define TESTING
2018-02-06 23:38:15 -06:00
Peter Evans
1f50ceb4c5
Add test file for apple2.reflect.c
2018-02-06 14:27:44 -06:00
Peter Evans
5cfdd28302
Add vm_event tests
2018-02-05 21:40:36 -06:00
Peter Evans
c1c42834ed
Add reflect system to virtual machine
2018-02-05 20:31:05 -06:00
Peter Evans
e691d33d42
Add dec_nib test
2018-02-04 16:09:02 -06:00
Peter Evans
70b0532a26
Add test for dec_dos
2018-02-04 16:06:54 -06:00
Peter Evans
599b7c9212
Add test for dec_track
2018-02-04 15:44:59 -06:00
Peter Evans
7dc97484e3
Add test for enc_track
2018-02-04 14:32:53 -06:00
Peter Evans
8469c09161
Add test for enc_nib
2018-02-04 14:18:42 -06:00
Peter Evans
caf2bc1c4e
Add test for map, note skipped tests
2018-02-04 14:15:38 -06:00
Peter Evans
9e4a842fdf
Add test for switch_rw
2018-02-04 11:50:58 -06:00
Peter Evans
f696346806
Add test for switch_latch
2018-02-04 11:32:23 -06:00
Peter Evans
50dfca476b
Add test for switch_drive
2018-02-04 11:30:38 -06:00
Peter Evans
edee060167
Add test for switch_phase function
2018-02-04 10:47:18 -06:00
Peter Evans
2752d82044
Add phaser test
2018-02-04 01:11:09 -06:00
Peter Evans
2d13e95d7f
Add encode/decode tests, skip for save
2018-02-04 00:22:14 -06:00
Peter Evans
bef19539f6
Implement (most of) text_area test
2018-02-03 22:43:00 -06:00
Peter Evans
c503189b7c
Add exception for 40col
2018-02-03 22:02:25 -06:00
Peter Evans
de67d5064b
Add test for vm_screen_dirty, exception for prepare
2018-02-03 22:01:27 -06:00
Peter Evans
3329753ef7
Add test for vm_segment_fwrite
2018-02-03 22:00:04 -06:00
Peter Evans
3a1784a5a7
Add image, stream to eject test
2018-02-03 20:50:30 -06:00
Peter Evans
2dd21f1487
Add image type, image segment
2018-02-03 18:10:29 -06:00
Peter Evans
f45a64dfe4
Add missing tests file
2018-02-03 17:43:04 -06:00
Peter Evans
a340c963a0
Add proper test for sector decode
2018-02-02 17:20:17 -06:00
Peter Evans
55c85b0ec6
Encoded code needed to change
2018-02-01 18:41:34 -06:00