about summary refs log tree commit diff stats
path: root/subx/010core.cc
Commit message (Collapse)AuthorAgeFilesLines
* 4350Kartik Agaram2018-07-151-281/+0
| | | | | | | Reorganize layers to introduce the translation workflow right at the start. We also avoid duplicating parsing code. Programs are always parsed into the `program` data structure.
* 4342Kartik Agaram2018-07-111-0/+2
|
* 4338 - preliminary support for data segmentsKartik Agaram2018-07-101-5/+20
|
* 4337Kartik Agaram2018-07-101-51/+24
| | | | | | | | Return to the usual whitespace-skipping istreams. No need to go beyond word-based parsing. This exercise reinforces the amount of duplication between load_program() and transform_immediate().
* 4336Kartik Agaram2018-07-101-2/+2
|
* 4329Kartik Agaram2018-07-081-1/+0
| | | | | | | | Drop a safety net; we now assume that Memory is large enough for any addresses we may encounter. Dropping all comparisons with Mem.size() now makes our Memory_offset indirection airtight.
* 4328Kartik Agaram2018-07-081-12/+14
| | | | Insert an indirection to avoid over-allocating memory for RAM.
* 4327Kartik Agaram2018-07-081-7/+44
| | | | Encapsulate RAM management.
* 4311 - subx running binaries with global variablesKartik Agaram2018-07-031-0/+1
| | | | | | | | | | | | | Learning to use the data segment. Currently, subx can only run the teensy files generated from flat assembler: test4 test5 test7 This is not a priority to fix. These files are just useful references to have around.
* 4303 - subx: first real transformKartik Agaram2018-07-011-1/+1
| | | | We'll see if this is useful. Mostly just stretching our legs.
* 4302 - a more elaborate pass-through phaseKartik Agaram2018-06-301-0/+1
| | | | Starting to work out the skeleton every phase needs to have.
* 4300 - get set up to unit test translatorKartik Agaram2018-06-301-1/+2
|
* 4298 - framework for translating SubX programsKartik Agaram2018-06-301-3/+3
|
* 4297Kartik Agaram2018-06-301-0/+1
|
* 4289 - beginnings of a translator to ELFKartik Agaram2018-06-301-1/+3
| | | | | The source 'language' is still entirely open. We'll see how it evolves as I write programs in machine code.
* 4183Kartik K. Agaram2018-01-241-0/+14
|
* 4078Kartik K. Agaram2017-10-171-1/+3
|
* 4069Kartik K. Agaram2017-10-151-0/+2
| | | | subx: unconditional 'jump'
* 4068Kartik K. Agaram2017-10-151-3/+3
|
* 4064Kartik K. Agaram2017-10-141-0/+4
|
* 4062Kartik K. Agaram2017-10-131-0/+4
|
* 4044Kartik K. Agaram2017-10-121-2/+1
| | | | subx: now starting on subtraction instructions.
* 4043Kartik K. Agaram2017-10-121-0/+1
|
* 4040Kartik K. Agaram2017-10-121-2/+2
| | | | | | | subx: add immediate First example of a more complex opcode that needs to do its own decoding to decide what instruction to run.
* 4038Kartik K. Agaram2017-10-121-5/+7
|
* 4037Kartik K. Agaram2017-10-121-1/+1
| | | | Fix non-standard switch statement.
* 4034Kartik K. Agaram2017-10-121-0/+2
| | | | Start implementing core x86 addressing mode decoding.
* 4032Kartik K. Agaram2017-10-121-13/+13
| | | | Consistent naming for the common terms 'register' and 'memory'.
* 4031Kartik K. Agaram2017-10-121-7/+7
| | | | | | No, go back to a vector for `Memory`. We need it to be contiguously laid out in memory so that we can write words all at once rather than a byte at a time.
* 4030Kartik K. Agaram2017-10-121-18/+53
| | | | Take control of hex byte parsing.
* 4029Kartik K. Agaram2017-10-121-25/+25
|
* 4028Kartik K. Agaram2017-10-121-3/+3
|
* 4026Kartik K. Agaram2017-10-121-29/+35
| | | | | | | | | | Make memory a sparse map rather than contiguous vector. In the process, a bugfix for `load_program`: support multiple lines of comments. Also save a local copy of the x86 cheatsheet I've been using: https://net.cs.uni-bonn.de/fileadmin/user_upload/plohmann/x86_opcode_structure_and_instruction_overview.pdf
* 4025Kartik K. Agaram2017-10-111-0/+1
| | | | Fix CI.
* 4023Kartik K. Agaram2017-10-111-4/+4
|
* 4022Kartik K. Agaram2017-10-111-2/+4
|
* 4021Kartik K. Agaram2017-10-111-2/+2
|
* 4019Kartik K. Agaram2017-10-111-4/+4
|
* 4018Kartik K. Agaram2017-10-111-3/+3
|
* 4017Kartik K. Agaram2017-10-111-6/+6
|
* 4014 - core skeleton for x86 interpreterKartik K. Agaram2017-10-111-0/+173