1
0
mirror of https://github.com/safiire/n65.git synced 2024-12-12 00:29:03 +00:00
Commit Graph

50 Commits

Author SHA1 Message Date
Saf
34cc52c6a8 Linted symbol_table.rb 2020-08-30 13:20:17 -07:00
Saf
d3ed4e81ec Linted regexes.rb 2020-08-30 13:04:07 -07:00
Saf
9acca01731 Linted parser.rb 2020-08-30 12:58:42 -07:00
Saf
1b57c0a04d Linted opcodes.rb 2020-08-30 12:53:04 -07:00
Saf
b61003d489 Linted memory_space.rb 2020-08-30 12:48:37 -07:00
Saf
963dab73cc Linted instruction_base.rb 2020-08-30 12:36:50 -07:00
Saf
92e315b3ed Linted instruction.rb a bit 2020-08-30 12:35:07 -07:00
Saf
9f5f71cd4a Linted front_end.rb 2020-08-30 12:06:22 -07:00
Saf
520a5198af Linting is somewhat better in n64.rb now 2020-08-30 11:55:55 -07:00
Saf
fdc3317c12 configuring rubocop and cleaning up the first few files 2020-08-30 11:32:49 -07:00
Safiire
afb78e4c0d Added a subroutine cycle count option, fixed a warning with the usage of Fixnum 2017-09-27 14:58:34 -07:00
Safiire
eca1831e35 Updates to the assembler's output concerning the sizes of banks, how much are used, a --quiet option was added, and a -s option to produce a symbol map. 2017-09-26 10:11:12 -07:00
Safiire
6b387e20df Added the ability to do arithmetic on symbolic names :) 2017-09-23 01:07:35 -07:00
Safiire
21af1f0bf6 Added Bank switching code 2017-09-22 03:00:54 -07:00
Safiire
a48ce496e8 Update for Ruby 2.4 2016-12-13 15:12:39 -08:00
Safiire
ad088d0164 Added --version option 2015-04-17 02:08:16 -07:00
Safiire
927023d048 Some cleanup, minor clarifications, removed some commented code. 2015-04-17 02:04:05 -07:00
Safiire
7ffd2dc8ac Removed all trailing whitespace 2015-04-11 21:03:13 -07:00
Safiire
d6a9f7ac7d A few little updates, comment cleanup, removal of commented code 2015-03-31 13:14:30 -07:00
Safiire
1013280f9e Made n65 into a RubyGem 2015-03-31 02:50:55 -07:00
Safiire
6e655963f7 Renaming the program to n65 2015-03-29 10:19:19 -07:00
Safiire
dc60139aaa Improvement to the .bytes directive, can now take hex literals, binary literals, and symbols both zero page and 16-bit 2015-03-29 10:01:41 -07:00
Safiire
2736408a14 Disabled writing the symbol table to a file, as it is not usually nessessary 2015-03-27 16:36:11 -07:00
Safiire
483c4d13d1 Adding first version of a MIDI to NES converter and sound engine 2015-03-27 15:50:13 -07:00
Safiire
ee643af3ef Binary literals are now working 2015-03-22 15:52:13 -07:00
Safiire
a48d10474e Fixed an issue with referencing outer scoped symbols 2015-03-22 00:55:14 -07:00
Safiire
e5ef0fac5f Updated my nes symbol library, register names, fixed a problem with hex numbers 2015-03-14 05:01:27 -07:00
Safiire
1b12e0216d Pointing out a bug for later 2015-03-13 14:55:25 -07:00
Safiire
6d3401b2a5 Added .inc directive, and created a NES symbols include file 2015-03-12 11:46:59 -07:00
Safiire
0c6c8ab80e Added zp suffix to explicitly force zero page instructions when using symbols 2015-03-12 08:54:59 -07:00
Safiire
8e788a19d1 We can now create C like structs using .scope and .space, however, when we load zero page values from the symbol table, they create absolute addressed instructions, so that needs to be fixed 2015-03-05 21:55:13 -08:00
Safiire
17dcd185c8 Fixed anonymous scopes 2015-03-05 18:49:44 -08:00
Safiire
dfb4410497 Updated the demo, realized anonymous scopes don't work right :( 2015-03-05 17:21:51 -08:00
Safiire
8f2500dd60 I made it so starting a named scope serves the dual purpose of creating a symbolic reference to the current PC 2015-03-05 16:53:55 -08:00
Safiire
4edbff55a5 Added scope directive 2015-03-05 13:45:19 -08:00
Safiire
2c938f7312 This is s a big rewrite including: A scoped symbol table, segment and
bank management, Use of promises to resolve symbols that are used before
they are defined.  A base class for all instructions and assembler
directives.  Hopefully my scoped symbols can be used to create C like
data structures in the zero page, ie sprite.x   New code to prodce the
final ROM.  Basically everything was rewritten.
2015-03-05 12:33:56 -08:00
Safiire
4235742c7d Creating a symbol table that has scope 2015-03-04 04:20:18 -08:00
Safiire
8f01494fbb Trying to re-organize my classes, and add a base class for objects which can emit_bytes to the ROM 2015-02-24 17:37:00 -08:00
Safiire
3dc1c22aae Separated the frontend commandline stuff from the actual assembler 2015-02-24 16:43:50 -08:00
Safiire
4bc880eb37 Trying to make the demo asm a bit nicer, before moving onto treetop parser 2015-02-23 23:46:53 -08:00
Safiire
337688b456 Made error messages a bit better, error on mapper other than 0, fixed scrolling in demo 2015-02-23 00:24:57 -08:00
Safiire
8752d7afac A kind of better ROM assembly... 2015-02-22 22:49:30 -08:00
Safiire
eaa80000b2 Can use lower case instruction names and hex now 2015-02-22 18:49:24 -08:00
Safiire
d10709e0b0 Some updates but assemblying programs with multiple banks, or more prog and char sections is messed up 2015-02-22 17:39:35 -08:00
Safiire
a52ead091e this branch sucks 2015-02-22 06:33:36 -08:00
Safiire
404934479f Intermediate commit 2015-02-22 05:59:03 -08:00
Safiire
427b676502 Ported NES101 tutor to this assembler, fixed the PROG and CHR positioning in the ROM, added more directives .ascii etc. 2015-02-18 18:36:22 -08:00
Safiire
07ae7812ed Accidentally had the opcode for TXA be NOP, don't know how that happened. I ported background.asm from NESASM format to my format, it is veeeery similar so not much needed changing, and the resulting ROM worked fine :) 2015-02-18 03:56:39 -08:00
Safiire
ac46228b9f I have added many directives, such as .org, ines header, .dw, .bytes, and made it produce proper Roms launch into the entry point at 0xC000 from the reset vector. I basically rewrote the Assembler class, this could still use some cleaning up though, more unit tests, and to compile some code with CHR segments 2015-02-18 03:05:18 -08:00
Safiire
69e3d2fb0c Initial Commit 2015-02-17 19:05:37 -08:00