diff --git a/apps/assort.subx b/apps/assort.subx index d0b11485..1969407b 100644 --- a/apps/assort.subx +++ b/apps/assort.subx @@ -7,13 +7,13 @@ # because we don't know if they refer to the line above or the line below. # # To run: -# $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/assort.subx -o apps/assort +# $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/assort.subx -o apps/assort # $ cat x # == code # abc # == code # def -# $ cat x |./subx run apps/assort +# $ cat x |./bootstrap run apps/assort # == code # abc # def diff --git a/apps/crenshaw2-1.subx b/apps/crenshaw2-1.subx index 3273811d..e37b58e7 100644 --- a/apps/crenshaw2-1.subx +++ b/apps/crenshaw2-1.subx @@ -3,8 +3,8 @@ # except that we support hex digits. # # To run: -# $ ./subx translate init.linux 0*.subx apps/crenshaw2-1.subx -o apps/crenshaw2-1 -# $ echo '3' |./subx run apps/crenshaw2-1 +# $ ./bootstrap translate init.linux 0*.subx apps/crenshaw2-1.subx -o apps/crenshaw2-1 +# $ echo '3' |./bootstrap run apps/crenshaw2-1 # Expected output: # # syscall(exit, 3) # bb/copy-to-ebx 3/imm32 @@ -12,14 +12,14 @@ # cd/syscall 0x80/imm8 # # To run the generated output: -# $ echo '3' |./subx run apps/crenshaw2-1 > z1.subx -# $ ./subx translate init.linux z1.subx -o z1 -# $ ./subx run z1 +# $ echo '3' |./bootstrap run apps/crenshaw2-1 > z1.subx +# $ ./bootstrap translate init.linux z1.subx -o z1 +# $ ./bootstrap run z1 # $ echo $? # 3 # # Stdin must contain just a single hex digit. Other input will print an error: -# $ echo 'xyz' |./subx run apps/crenshaw2-1 +# $ echo 'xyz' |./bootstrap run apps/crenshaw2-1 # Error: integer expected # # Names in this file sometimes follow Crenshaw's original rather than my usual diff --git a/apps/crenshaw2-1b.subx b/apps/crenshaw2-1b.subx index be02fbb8..89791bea 100644 --- a/apps/crenshaw2-1b.subx +++ b/apps/crenshaw2-1b.subx @@ -3,8 +3,8 @@ # except that we support hex numbers of multiple digits. # # To run: -# $ ./subx translate init.linux 0*.subx apps/crenshaw2-1b.subx -o apps/crenshaw2-1b -# $ echo '1a' |./subx run apps/crenshaw2-1b +# $ ./bootstrap translate init.linux 0*.subx apps/crenshaw2-1b.subx -o apps/crenshaw2-1b +# $ echo '1a' |./bootstrap run apps/crenshaw2-1b # Expected output: # # syscall(exit, 1a) # bb/copy-to-ebx 3/imm32 @@ -12,14 +12,14 @@ # cd/syscall 0x80/imm8 # # To run the generated output: -# $ echo '1a' |./subx run apps/crenshaw2-1b > z1.subx -# $ ./subx translate init.linux z1.subx -o z1 -# $ ./subx run z1 +# $ echo '1a' |./bootstrap run apps/crenshaw2-1b > z1.subx +# $ ./bootstrap translate init.linux z1.subx -o z1 +# $ ./bootstrap run z1 # $ echo $? # 26 # 0x1a in decimal # # Stdin must contain just a single hex digit. Other input will print an error: -# $ echo 'xyz' |./subx run apps/crenshaw2-1b +# $ echo 'xyz' |./bootstrap run apps/crenshaw2-1b # Error: integer expected # # Names in this file sometimes follow Crenshaw's original rather than my usual diff --git a/apps/dquotes.subx b/apps/dquotes.subx index b4bd60ce..6f961e34 100644 --- a/apps/dquotes.subx +++ b/apps/dquotes.subx @@ -2,11 +2,11 @@ # Replace them with references to new variables in the data segment. # # To run: -# $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/dquotes.subx -o apps/dquotes +# $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/dquotes.subx -o apps/dquotes # $ cat x # == code # ab "cd ef"/imm32 -# $ cat x |./subx run apps/dquotes +# $ cat x |./bootstrap run apps/dquotes # == code # ab __string1/imm32 # == data diff --git a/apps/ex1.subx b/apps/ex1.subx index a851613c..acd7ea00 100644 --- a/apps/ex1.subx +++ b/apps/ex1.subx @@ -2,8 +2,8 @@ # Just return 42. # # To run: -# $ ./subx translate init.linux examples/ex1.2.subx -o examples/ex1 -# $ ./subx run examples/ex1 +# $ ./bootstrap translate init.linux apps/ex1.2.subx -o apps/ex1 +# $ ./bootstrap run apps/ex1 # Expected result: # $ echo $? # 42 diff --git a/apps/ex10.subx b/apps/ex10.subx index 483f59d7..7ec86202 100644 --- a/apps/ex10.subx +++ b/apps/ex10.subx @@ -1,8 +1,8 @@ # String comparison: return 1 iff the two args passed in at the commandline are equal. # # To run: -# $ ./subx translate init.linux examples/ex10.subx -o examples/ex10 -# $ ./subx run examples/ex10 abc abd +# $ ./bootstrap translate init.linux apps/ex10.subx -o apps/ex10 +# $ ./bootstrap run apps/ex10 abc abd # Expected result: # $ echo $? # 0 # false diff --git a/apps/ex11.subx b/apps/ex11.subx index a1f5e6aa..cacd22da 100644 --- a/apps/ex11.subx +++ b/apps/ex11.subx @@ -6,8 +6,8 @@ # a null-terminated 'kernel string' with a length-prefixed 'SubX string'. # # To run: -# $ ./subx translate init.linux examples/ex11.subx -o examples/ex11 -# $ ./subx run examples/ex11 # runs a series of tests +# $ ./bootstrap translate init.linux apps/ex11.subx -o apps/ex11 +# $ ./bootstrap run apps/ex11 # runs a series of tests # ...... # all tests pass # # (We can't yet run the tests when given a "test" commandline argument, diff --git a/apps/ex12.subx b/apps/ex12.subx index 9c67f909..0c0d4315 100644 --- a/apps/ex12.subx +++ b/apps/ex12.subx @@ -2,8 +2,8 @@ # Create a new segment using mmap, save the address, write to it. # # To run: -# $ ./subx translate init.linux examples/ex12.subx -o examples/ex12 -# $ ./subx run examples/ex12 +# $ ./bootstrap translate init.linux apps/ex12.subx -o apps/ex12 +# $ ./bootstrap run apps/ex12 # You shouldn't get a segmentation fault. == code diff --git a/apps/ex13.subx b/apps/ex13.subx index 9e407f32..320c9559 100644 --- a/apps/ex13.subx +++ b/apps/ex13.subx @@ -1,8 +1,8 @@ # Compare 3 and 3. # # To run: -# $ ./subx translate init.linux examples/ex13.subx -o examples/ex13 -# $ ./subx run examples/ex13 +# $ ./bootstrap translate init.linux apps/ex13.subx -o apps/ex13 +# $ ./bootstrap run apps/ex13 # Expected result: # $ echo $? # 1 diff --git a/apps/ex2.subx b/apps/ex2.subx index 8df4c62c..11c04432 100644 --- a/apps/ex2.subx +++ b/apps/ex2.subx @@ -1,8 +1,8 @@ # Add 1 and 1, and return the result in the exit code. # # To run: -# $ ./subx translate init.linux examples/ex2.subx -o examples/ex2 -# $ ./subx run examples/ex2 +# $ ./bootstrap translate init.linux apps/ex2.subx -o apps/ex2 +# $ ./bootstrap run apps/ex2 # Expected result: # $ echo $? # 2 diff --git a/apps/ex3.subx b/apps/ex3.subx index 66f2b3a3..d75db65a 100644 --- a/apps/ex3.subx +++ b/apps/ex3.subx @@ -1,8 +1,8 @@ # Add the first 10 numbers, and return the result in the exit code. # # To run: -# $ ./subx translate init.linux examples/ex3.subx -o examples/ex3 -# $ ./subx run examples/ex3 +# $ ./bootstrap translate init.linux apps/ex3.subx -o apps/ex3 +# $ ./bootstrap run apps/ex3 # Expected result: # $ echo $? # 55 diff --git a/apps/ex4.subx b/apps/ex4.subx index 78a97433..72f03254 100644 --- a/apps/ex4.subx +++ b/apps/ex4.subx @@ -1,8 +1,8 @@ # Read a character from stdin, save it to a global, write it to stdout. # # To run: -# $ ./subx translate init.linux examples/ex4.subx -o examples/ex4 -# $ ./subx run examples/ex4 +# $ ./bootstrap translate init.linux apps/ex4.subx -o apps/ex4 +# $ ./bootstrap run apps/ex4 == data diff --git a/apps/ex5.subx b/apps/ex5.subx index bacef8d4..6e9c6a5a 100644 --- a/apps/ex5.subx +++ b/apps/ex5.subx @@ -1,8 +1,8 @@ # Read a character from stdin, save it to a local on the stack, write it to stdout. # # To run: -# $ ./subx translate init.linux examples/ex5.subx -o examples/ex5 -# $ ./subx run examples/ex5 +# $ ./bootstrap translate init.linux apps/ex5.subx -o apps/ex5 +# $ ./bootstrap run apps/ex5 == code # instruction effective address register displacement immediate diff --git a/apps/ex6.subx b/apps/ex6.subx index 42612578..585362f1 100644 --- a/apps/ex6.subx +++ b/apps/ex6.subx @@ -1,8 +1,8 @@ # Print out a (global variable) string to stdout. # # To run: -# $ ./subx translate init.linux examples/ex6.subx -o examples/ex6 -# $ ./subx run examples/ex6 +# $ ./bootstrap translate init.linux apps/ex6.subx -o apps/ex6 +# $ ./bootstrap run apps/ex6 # Hello, world! == code diff --git a/apps/ex7.subx b/apps/ex7.subx index 1c551cad..73cb2720 100644 --- a/apps/ex7.subx +++ b/apps/ex7.subx @@ -5,8 +5,8 @@ # the character read. # # To run: -# $ ./subx translate init.linux examples/ex7.subx -o examples/ex7 -# $ ./subx run examples/ex7 +# $ ./bootstrap translate init.linux apps/ex7.subx -o apps/ex7 +# $ ./bootstrap run apps/ex7 # Expected result: # $ echo $? # 97 diff --git a/apps/ex8.subx b/apps/ex8.subx index 868aa743..84d27195 100644 --- a/apps/ex8.subx +++ b/apps/ex8.subx @@ -1,8 +1,8 @@ # Example reading commandline arguments: compute length of first arg. # # To run: -# $ ./subx translate init.linux examples/ex8.subx -o examples/ex8 -# $ ./subx run examples/ex8 abc de fghi +# $ ./bootstrap translate init.linux apps/ex8.subx -o apps/ex8 +# $ ./bootstrap run apps/ex8 abc de fghi # Expected result: # $ echo $? # 3 # length of 'abc' diff --git a/apps/ex9.subx b/apps/ex9.subx index a3cd4049..327ac655 100644 --- a/apps/ex9.subx +++ b/apps/ex9.subx @@ -4,8 +4,8 @@ # letter of second arg. # # To run: -# $ ./subx translate init.linux examples/ex9.subx -o examples/ex9 -# $ ./subx run examples/ex9 z x +# $ ./bootstrap translate init.linux apps/ex9.subx -o apps/ex9 +# $ ./bootstrap run apps/ex9 z x # Expected result: # $ echo $? # 2 diff --git a/apps/factorial.subx b/apps/factorial.subx index d8dc894a..651552e0 100644 --- a/apps/factorial.subx +++ b/apps/factorial.subx @@ -1,14 +1,14 @@ ## compute the factorial of 5, and return the result in the exit code # # To run: -# $ ./subx translate init.linux 0*.subx apps/factorial.subx -o apps/factorial -# $ ./subx run apps/factorial +# $ ./bootstrap translate init.linux 0*.subx apps/factorial.subx -o apps/factorial +# $ ./bootstrap run apps/factorial # Expected result: # $ echo $? # 120 # # You can also run the automated test suite: -# $ ./subx run apps/factorial test +# $ ./bootstrap run apps/factorial test # Expected output: # ........ # Every '.' indicates a passing test. Failing tests get a 'F'. diff --git a/apps/factorial2.subx b/apps/factorial2.subx index 7c76cc9a..a3bcb079 100644 --- a/apps/factorial2.subx +++ b/apps/factorial2.subx @@ -5,13 +5,13 @@ # # To run: # $ ./translate_subx init.linux 0*.subx apps/factorial.subx -o apps/factorial -# $ ./subx run apps/factorial +# $ ./bootstrap run apps/factorial # Expected result: # $ echo $? # 120 # # You can also run the automated test suite: -# $ ./subx run apps/factorial test +# $ ./bootstrap run apps/factorial test # Expected output: # ........ # Every '.' indicates a passing test. Failing tests get a 'F'. diff --git a/apps/factorial3.subx b/apps/factorial3.subx index dd0fd888..d97eb6e2 100644 --- a/apps/factorial3.subx +++ b/apps/factorial3.subx @@ -6,13 +6,13 @@ # # To run: # $ ./translate_subx init.linux 0*.subx apps/factorial.subx -o apps/factorial -# $ ./subx run apps/factorial +# $ ./bootstrap run apps/factorial # Expected result: # $ echo $? # 120 # # You can also run the automated test suite: -# $ ./subx run apps/factorial test +# $ ./bootstrap run apps/factorial test # Expected output: # ........ # Every '.' indicates a passing test. Failing tests get a 'F'. diff --git a/apps/factorial4.subx b/apps/factorial4.subx index eb42adf2..9ab7038f 100644 --- a/apps/factorial4.subx +++ b/apps/factorial4.subx @@ -7,13 +7,13 @@ # # To run: # $ ./translate_subx init.linux 0*.subx apps/factorial.subx -o apps/factorial -# $ ./subx run apps/factorial +# $ ./bootstrap run apps/factorial # Expected result: # $ echo $? # 120 # # You can also run the automated test suite: -# $ ./subx run apps/factorial test +# $ ./bootstrap run apps/factorial test # Expected output: # ........ # Every '.' indicates a passing test. Failing tests get a 'F'. diff --git a/apps/handle.subx b/apps/handle.subx index 27052fc4..8e0a7ec3 100644 --- a/apps/handle.subx +++ b/apps/handle.subx @@ -13,8 +13,8 @@ # offset 4: address # # To run: -# $ ./subx translate init.linux 0*.subx apps/handle.subx -o apps/handle -# $ ./subx run apps/handle +# $ ./bootstrap translate init.linux 0*.subx apps/handle.subx -o apps/handle +# $ ./bootstrap run apps/handle # Expected result is a successful lookup followed by a hard abort: # lookup succeeded # lookup failed diff --git a/apps/hex.subx b/apps/hex.subx index 84c6bda6..81019840 100644 --- a/apps/hex.subx +++ b/apps/hex.subx @@ -3,8 +3,8 @@ # comments between '#' and newline. # # To run: -# $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/hex.subx -o apps/hex -# $ echo '80 81 82 # comment' |./subx run apps/hex |xxd - +# $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/hex.subx -o apps/hex +# $ echo '80 81 82 # comment' |./bootstrap run apps/hex |xxd - # Expected output: # 00000000: 8081 82 # diff --git a/apps/pack.subx b/apps/pack.subx index 076c880c..36ae590b 100644 --- a/apps/pack.subx +++ b/apps/pack.subx @@ -3,8 +3,8 @@ # uses are left untouched. # # To run: -# $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/pack.subx -o apps/pack -# $ echo '05/add-to-eax 0x20/imm32' |./subx run apps/pack +# $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/pack.subx -o apps/pack +# $ echo '05/add-to-eax 0x20/imm32' |./bootstrap run apps/pack # Expected output: # 05 20 00 00 00 # 05/add-to-eax 0x20/imm32 # The original instruction gets included as a comment at the end of each diff --git a/apps/random.subx b/apps/random.subx index 535b89e4..70eaffa2 100644 --- a/apps/random.subx +++ b/apps/random.subx @@ -1,8 +1,8 @@ # Repeatedly read 32-bit numbers from /dev/random, print them to stdout. # # To run: -# $ ./subx translate init.linux 0*.subx apps/random.subx -o apps/random -# $ ./subx run apps/random +# $ ./bootstrap translate init.linux 0*.subx apps/random.subx -o apps/random +# $ ./bootstrap run apps/random == code 0x09000000 # instruction effective address register displacement immediate diff --git a/apps/sigils.subx b/apps/sigils.subx index ab922eda..93ca612a 100644 --- a/apps/sigils.subx +++ b/apps/sigils.subx @@ -2,36 +2,36 @@ # other related arguments. # # To run: -# $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/sigils.subx -o apps/sigils +# $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/sigils.subx -o apps/sigils # # We currently support the following notations: # # 1. -# $ echo '%eax' | ./subx run apps/sigils +# $ echo '%eax' | ./bootstrap run apps/sigils # 3/mod 0/rm32 # # 2. -# $ echo '*eax' | ./subx run apps/sigils +# $ echo '*eax' | ./bootstrap run apps/sigils # 0/mod 0/rm32 # # 3. -# $ echo '*(eax+4)' | ./subx run apps/sigils +# $ echo '*(eax+4)' | ./bootstrap run apps/sigils # 2/mod 0/rm32 4/disp32 # # 4. -# $ echo '*(eax+ecx)' | ./subx run apps/sigils +# $ echo '*(eax+ecx)' | ./bootstrap run apps/sigils # 0/mod 4/rm32 0/base 1/index 0/scale # # 5. -# $ echo '*(eax+ecx+4)' | ./subx run apps/sigils +# $ echo '*(eax+ecx+4)' | ./bootstrap run apps/sigils # 2/mod 4/rm32 0/base 1/index 0/scale 4/disp32 # # 6. -# $ echo '*(eax+ecx<<2+4)' | ./subx run apps/sigils +# $ echo '*(eax+ecx<<2+4)' | ./bootstrap run apps/sigils # 2/mod 4/rm32 0/base 1/index 2/scale 4/disp32 # # 7. -# $ echo '*Foo' | ./subx run apps/sigils +# $ echo '*Foo' | ./bootstrap run apps/sigils # 0/mod 5/rm32/.disp32 Foo/disp32 # # Addition isn't commutative here. Template must always be (base+index<