about summary refs log tree commit diff stats
path: root/subx/apps
Commit message (Collapse)AuthorAgeFilesLines
...
* 4851Kartik Agaram2018-12-062-21/+187
| | | | | | | Bugfix in scenarios where scan-next-byte needs to abort. I'm starting to have trouble keeping strings, streams and buffered-files straight.
* 4850Kartik Agaram2018-12-062-1/+137
|
* 4849Kartik Agaram2018-12-062-1/+90
|
* 4848Kartik Agaram2018-12-062-7/+6
|
* 4847Kartik Agaram2018-12-064-14/+14
|
* 4846Kartik Agaram2018-12-065-66/+327
| | | | | | | | | | | | | | Clean up a few things: a) Call scan-next-byte in hex.subx with the right number of args. Turns out tests continue to work fine if they never use the other args. b) Tear down a test for 'stop' in the right order. Not important since we have no EBP to restore. But can still be misleading. c) Have 'check-ints-equal' return nothing. Handy for it to not mess up EAX. I never use the result anyway, and the name also is imperative suggesting callers won't expect a return value.
* 4845Kartik Agaram2018-12-061-3/+0
|
* 4844Kartik Agaram2018-12-063-0/+0
|
* 4845Kartik Agaram2018-12-062-0/+823
| | | | Making progress on hex1 (http://web.archive.org/web/20061108010907/http://www.rano.org/bcompiler.html)
* 4841Kartik Agaram2018-12-043-0/+0
| | | | New helper: print an error message, then a numeric byte, then abort.
* 4840Kartik Agaram2018-12-045-2/+2
| | | | New helper: printing a string to a buffered file.
* 4838Kartik Agaram2018-12-043-0/+0
| | | | Better to use EDI as a mnemonic for 'destination'.
* 4837Kartik Agaram2018-12-044-2/+2
| | | | Let's standardize to use opcode 39 rather than 3b by default.
* 4834Kartik Agaram2018-12-043-0/+0
| | | | Fix CI since 4827.
* 4833Kartik Agaram2018-12-043-0/+0
|
* 4832Kartik Agaram2018-12-042-0/+6
| | | | | | Let's start adding ':end' labels in all functions, just because it helps us visualize where function calls end in traces, thanks to the '--map' commandline argument.
* 4828 - writing to buffered-fileKartik Agaram2018-12-033-0/+0
| | | | | This is likely a sub-optimal interface, but I'm trying not to agonize. The whole point of Mu is to permit radical changes at any point in time.
* 4827Kartik Agaram2018-12-033-0/+0
| | | | | | | | | I was 'returning' a phantom value from 'write' when the underlying '_write' returns nothing. In general, returning counts of bytes written is not so useful for error checking when my primitives abstract away from that. We'll come back to error signalling later.
* 4826Kartik Agaram2018-12-032-2/+2
|
* 4822Kartik Agaram2018-12-033-0/+0
| | | | | | | Fix CI. It's kind of a hassle (and wasteful) that I need to redefine 'main' in every single layer.
* 4821Kartik Agaram2018-12-025-82/+0
|
* 4819Kartik Agaram2018-12-023-5/+5
|
* 4818Kartik Agaram2018-12-022-12/+13
|
* 4815Kartik Agaram2018-12-022-8/+18
|
* 4813Kartik Agaram2018-12-012-2/+2
|
* 4812Kartik Agaram2018-11-303-4/+4
|
* 4810Kartik Agaram2018-11-302-0/+0
|
* 4808 - clean up comments in all subx filesKartik Agaram2018-11-303-189/+183
|
* 4803Kartik Agaram2018-11-301-128/+128
|
* 4802Kartik Agaram2018-11-303-261/+261
| | | | | | | | | | | | | | | | Some automated commenting cleanup. Still needs more careful manual scanning. sed -i 's/^# 1-3/# . 1-3/' *.subx */*.subx sed -i 's/^# op/# . op/' *.subx */*.subx sed -i 's/# vim/# . . vim/' *.subx */*.subx sed -i 's/^ # push args/ # . . push args/' *.subx */*.subx sed -i 's/^ # discard args/ # . . discard args/' *.subx */*.subx sed -i 's/^ # call/ # . . call/' *.subx */*.subx sed -i 's/^ # prolog/ # . prolog/' *.subx */*.subx sed -i 's/^ # epilog/ # . epilog/' *.subx */*.subx sed -i 's/^ # save registers/ # . save registers/' *.subx */*.subx sed -i 's/^ # restore registers/ # . restore registers/' *.subx */*.subx sed -i 's/ operand / register /' *.subx */*.subx
* 4801Kartik Agaram2018-11-303-1060/+1060
| | | | Reindent all SubX code to make some room for the new comment style.
* 4800Kartik Agaram2018-11-302-10/+11
|
* 4799Kartik Agaram2018-11-301-4/+4
|
* 4797Kartik Agaram2018-11-302-2/+2
|
* 4796Kartik Agaram2018-11-301-146/+146
|
* 4776Kartik Agaram2018-11-252-1/+1
| | | | | | | | | | | | | Crenshaw compiler now runs natively as well. It turns out I was misreading the Intel manual, and the jump instructions that I thought take disp16 operands actually take disp32 operands by default on both i686 and x86_64 processors. The disp16 versions are some holdover from the 16-bit days. This was the first time I've used one of these erstwhile-disp16 instructions, but I still haven't tested most of them. We'll see if we run into future issues.
* 4775Kartik Agaram2018-11-244-213/+847
| | | | | | | Start with an exactly corresponding version to Crenshaw 2-1: single-digit numbers. The only change: we assume the number is in hex. The next version now supports multi-digit hex numbers.
* 4774Kartik Agaram2018-11-242-19/+2
| | | | Simplification.
* 4773 - done with crenshaw chapter 2-1Kartik Agaram2018-11-242-7/+121
| | | | In the process I had to fix a couple more bugs in support for disp16 instructions.
* 4770Kartik Agaram2018-11-241-6/+6
|
* 4768Kartik Agaram2018-11-242-0/+0
|
* 4766Kartik Agaram2018-11-241-3/+4
|
* 4765Kartik Agaram2018-11-231-1/+2
|
* 4764Kartik Agaram2018-11-232-5/+221
|
* 4763 - back to the 'trivial' crenshaw2-1 compilerKartik Agaram2018-11-232-2/+422
| | | | | This time I've ported (and test-driven) 'GetChar' and 'GetNum'. The new tests bring together our new testable interfaces for read() and exit().
* 4756Kartik Agaram2018-11-192-0/+0
| | | | | Long-standing and long-copied typo has been messing with our exit status on test failures.
* 4755 - read-byte (sometimes called getchar)Kartik Agaram2018-11-192-0/+0
|
* 4747 - subx: 'read' primitiveKartik Agaram2018-11-182-0/+0
|
* 4745Kartik Agaram2018-11-172-0/+0
|
* 4743Kartik Agaram2018-11-122-0/+0
|