Commit Graph

53 Commits

Author SHA1 Message Date
Ariejan de Vroom 5382c807c7 Create CODE_OF_CONDUCT.md 2015-08-13 16:03:57 +02:00
Ariejan de Vroom 15fa43282e Merge branch 'marcopeereboom-broken_range' 2015-04-09 09:27:47 +02:00
Ariejan de Vroom a0f722e9ee Merge branch 'broken_range' of https://github.com/marcopeereboom/i6502 into marcopeereboom-broken_range 2015-04-09 09:25:43 +02:00
Ariejan de Vroom 36197e2ba8 Merge pull request #12 from ariejan/go-1.4
Support go 1.4
2015-04-09 09:24:52 +02:00
Ariejan de Vroom 8bf1e629e6 Update testify assert methods
`assert.Equal` now tests for type equality as well, which means
256 != 0xff. The alternative is to use `assert.EqualValues`
2015-04-09 09:20:04 +02:00
Ariejan de Vroom 343f99deeb Use Godep to manage dependencies properly 2015-04-09 09:19:49 +02:00
Ariejan de Vroom 821bff0922 Update travis config 2015-04-09 09:11:50 +02:00
Marco Peereboom 43f3d06988 Iterate over pointers instead of copies.
Modify addressable to become a pointer because Go's range does not
provide a pointer to the element but a copy of the element (urgh).

Go's range operator really can be considered broken.  In this case it
copies the addressable all the time which significantly slows things
down.  To boot, it isn't writing in the memory you think it is (it ends
up in the copy of memory).

Before the change:
$ go test -v -test.run Klaus
=== RUN TestKlausDormann6502
Running Klaus Dormann' 6502 functional tests. This may take some time...
Klaus Dormann's 6502 functional tests passed.
--- PASS: TestKlausDormann6502 (13.51s)
PASS
ok      github.com/ariejan/i6502        13.522s

After the change:
$ go test -v -test.run Klaus
=== RUN TestKlausDormann6502
Running Klaus Dormann' 6502 functional tests. This may take some time...
Klaus Dormann's 6502 functional tests passed.
--- PASS: TestKlausDormann6502 (4.87s)
PASS
ok      github.com/ariejan/i6502        4.877s
2015-04-08 16:56:35 -05:00
Ariejan de Vroom 21a7136dd6 Add link to go docs
[ci skip]
2014-08-29 14:22:39 +02:00
Ariejan de Vroom 00030d9d45 Properly test ACIA 6551 output channel 2014-08-29 13:49:08 +02:00
Ariejan de Vroom 96f9605ce4 Test and implement Memory interface explicitly. 2014-08-21 10:02:38 +02:00
Ariejan de Vroom 3747d8ce41 Acia Tx return nothing when there is no new data 2014-08-21 10:02:04 +02:00
Ariejan de Vroom f934c5cdf6 Update README
[ci skip]
2014-08-19 22:19:41 +02:00
Ariejan de Vroom 4764cb24ca Merge pull request #3 from ariejan/issue_3_acia6551
Add support for 6551 Asynchronous Communications Interface Adapter (ACIA)
2014-08-19 22:09:46 +02:00
Ariejan de Vroom 3ab4323f3b Add tests for cpu/acia integration 2014-08-19 22:01:41 +02:00
Ariejan de Vroom da43c2bca1 Update Memory interface
Because io.Reader and io.Writer already claim the functions Read and
Write it was necessary to rename the Memory interface methods Read and
Write to ReadByte and WriteByte.
2014-08-19 16:49:48 +02:00
Ariejan de Vroom 099d6c11bd Implement acia 6551 2014-08-19 16:40:31 +02:00
Ariejan de Vroom 432119f507 Add failing spec with chanels. 2014-08-18 16:37:51 +02:00
Ariejan de Vroom 5789d4d657 Update README.md 2014-08-18 16:13:51 +02:00
Ariejan de Vroom 44738e191f WIP 2014-08-17 22:36:01 +02:00
Ariejan de Vroom 856ff00573 Add ACIA Reset() 2014-08-17 17:18:14 +02:00
Ariejan de Vroom 90e248e745 Add basics for ACIA 6551:w 2014-08-17 16:49:22 +02:00
Ariejan de Vroom 7e5984cd6f Merge pull request #8 from ariejan/issue_8_roms
Add Rom support
2014-08-17 16:22:23 +02:00
Ariejan de Vroom 0e1d9eaa8f Add ROM Memory 2014-08-17 16:20:30 +02:00
Ariejan de Vroom 91a55fd823 Update README.md 2014-08-17 16:01:00 +02:00
Ariejan de Vroom b4bbadd369 Merge pull request #5 from ariejan/issue_5_documentation
Update Godoc documentation
2014-08-17 15:59:03 +02:00
Ariejan de Vroom c361eedc46 Fix OpType attribute ordering 2014-08-17 15:57:12 +02:00
Ariejan de Vroom e77a599b10 Add more documentation 2014-08-17 15:53:35 +02:00
Ariejan de Vroom 22432de785 Add docs for AddressBus; minor refactorings 2014-08-17 13:07:22 +02:00
Ariejan de Vroom 4eeba4d940 Add package documentation 2014-08-17 10:31:28 +02:00
Ariejan de Vroom 36e18e5730 Merge pull request #4 from ariejan/issue_4_code_cleanup
Proper Golang packaging
2014-08-16 22:04:53 +02:00
Ariejan de Vroom 9ee72dc145 Clean up code / Refactorings 2014-08-16 21:54:06 +02:00
Ariejan de Vroom 6207a06423 Update README
[ci skip]
2014-08-16 11:43:55 +02:00
Ariejan de Vroom 955e7db2dc Reorder tests for faster feedback. 2014-08-16 10:47:03 +02:00
Ariejan de Vroom f607b92430 Add 6502 functional test listing 2014-08-16 10:39:51 +02:00
Ariejan de Vroom 33ca177f90 Implement remaining opcodes; tests 2014-08-16 10:37:56 +02:00
Ariejan de Vroom f3f95dda39 Implement more opcodes, minor improvements 2014-08-14 21:31:04 +02:00
Ariejan de Vroom 9c8f47abbc Implement ADC, including Carry, Overflow, Decimal 2014-08-13 22:42:26 +02:00
Ariejan de Vroom c3ffb2e87b Implement NOP instruction 2014-08-13 13:51:53 +02:00
Ariejan de Vroom 0fe91268ad Add Cpu program loading 2014-08-13 11:49:49 +02:00
Ariejan de Vroom c8d2f31a65 Add Guardfile for continuious testing 2014-08-13 11:49:33 +02:00
Ariejan de Vroom e96ce1e84a Add basic Cpu/Bus/Ram architecture. 2014-08-13 09:26:33 +02:00
Ariejan de Vroom f88946a622 Use testify for cleaner tests 2014-08-13 06:19:44 +02:00
Ariejan de Vroom 1f7867cfb6 Add CI badge to README
[ci skip]
2014-08-12 21:50:52 +02:00
Ariejan de Vroom 57b940dce1 Add NewCpu() 2014-08-12 21:28:30 +02:00
Ariejan de Vroom 0eaa592103 Remove old prototype code.
This code can still be found in the `prototype` branch.

https://github.com/ariejan/i6502/tree/prototype
2014-08-12 20:58:07 +02:00
Ariejan de Vroom afa7d0d3f6 Wip 2014-08-12 20:46:41 +02:00
Ariejan de Vroom 9e3c9454e8 Working Rx/Tx for serial/websockets 2014-08-11 14:40:21 +02:00
Ariejan de Vroom b692c8a7b1 Working websockets 2014-08-11 12:04:55 +02:00
Ariejan de Vroom 12f64bf7d3 WIP 2014-08-11 10:15:56 +02:00