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