diff options
-rw-r--r-- | subx/054string-equal.subx | 2 | ||||
-rw-r--r-- | subx/055stream.subx | 2 | ||||
-rw-r--r-- | subx/056trace.subx | 17 | ||||
-rw-r--r-- | subx/058stream-equal.subx | 6 | ||||
-rw-r--r-- | subx/060read.subx | 4 | ||||
-rw-r--r-- | subx/065hex.subx | 10 | ||||
-rw-r--r-- | subx/066write-buffered.subx | 2 | ||||
-rw-r--r-- | subx/072slice.subx | 4 | ||||
-rw-r--r-- | subx/073next-token.subx | 4 | ||||
-rw-r--r-- | subx/074print-int-decimal.subx | 2 | ||||
-rw-r--r-- | subx/075array-equal.subx | 8 | ||||
-rwxr-xr-x | subx/apps/assort | bin | 28146 -> 28140 bytes | |||
-rwxr-xr-x | subx/apps/crenshaw2-1 | bin | 22990 -> 22984 bytes | |||
-rwxr-xr-x | subx/apps/crenshaw2-1b | bin | 23549 -> 23543 bytes | |||
-rwxr-xr-x | subx/apps/factorial | bin | 21906 -> 21900 bytes | |||
-rwxr-xr-x | subx/apps/handle | bin | 22712 -> 22706 bytes | |||
-rwxr-xr-x | subx/apps/hex | bin | 25999 -> 25993 bytes | |||
-rwxr-xr-x | subx/apps/pack | bin | 43060 -> 43054 bytes | |||
-rw-r--r-- | subx/apps/subx-common.subx | 4 | ||||
-rwxr-xr-x | subx/apps/survey | bin | 28481 -> 28475 bytes |
20 files changed, 32 insertions, 33 deletions
diff --git a/subx/054string-equal.subx b/subx/054string-equal.subx index daaaa936..9784e2ad 100644 --- a/subx/054string-equal.subx +++ b/subx/054string-equal.subx @@ -63,7 +63,7 @@ $string-equal?:lengths: $string-equal?:loop: # if (currs >= maxs) return true 39/compare 3/mod/direct 6/rm32/ESI . . . 1/r32/ECX . . # compare ESI with ECX - 7d/jump-if-greater-or-equal $string-equal?:true/disp8 + 73/jump-if-greater-or-equal-unsigned $string-equal?:true/disp8 # c1 = *currs 8a/copy-byte 0/mod/indirect 6/rm32/ESI . . . 0/r32/AL . . # copy byte at *ESI to AL # c2 = *currb diff --git a/subx/055stream.subx b/subx/055stream.subx index 92049634..f2969861 100644 --- a/subx/055stream.subx +++ b/subx/055stream.subx @@ -37,7 +37,7 @@ clear-stream: # f : (address stream) -> <void> $clear-stream:loop: # if (EAX >= ECX) break 39/compare 3/mod/direct 0/rm32/EAX . . . 1/r32/ECX . . # compare EAX with ECX - 7d/jump-if-greater-or-equal $clear-stream:end/disp8 + 73/jump-if-greater-or-equal-unsigned $clear-stream:end/disp8 # *EAX = 0 c6 0/subop/copy 0/mod/direct 0/rm32/EAX . . . . . 0/imm8 # copy byte to *EAX # ++EAX diff --git a/subx/056trace.subx b/subx/056trace.subx index 3b665a82..b984a447 100644 --- a/subx/056trace.subx +++ b/subx/056trace.subx @@ -263,14 +263,13 @@ check-trace-scans-to: # line : (address string), msg : (address string) 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # . save registers 50/push-EAX - # EAX = trace-scan(*Trace-stream, line) + # EAX = trace-scan(line) # . . push args ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 . # push *(EBP+8) - ff 6/subop/push 0/mod/indirect 5/rm32/.disp32 . . . Trace-stream/disp32 # push *Trace-stream # . . call e8/call trace-scan/disp32 # . . discard args - 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP # check-ints-equal(EAX, 1, msg) # . . push args ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12) @@ -571,12 +570,12 @@ next-line-matches?: # t : (address stream), line : (address string) -> result/E $next-line-matches?:loop: # if (currl/ESI >= maxl/ECX) break 39/compare 3/mod/direct 6/rm32/ESI . . . 1/r32/ECX . . # compare ESI and ECX - 7d/jump-if-greater-or-equal $next-line-matches?:break/disp8 + 73/jump-if-greater-or-equal-unsigned $next-line-matches?:break/disp8 # if (currt/EDI >= maxt/EDX) return false # . EAX = false b8/copy-to-EAX 0/imm32/false 39/compare 3/mod/direct 7/rm32/EDI . . . 2/r32/EDX . . # compare EDI and EDX - 7d/jump-if-greater-or-equal $next-line-matches?:end/disp8 + 73/jump-if-greater-or-equal-unsigned $next-line-matches?:end/disp8 # if (*currt/EDI != *currl/ESI) return false 31/xor 3/mod/direct 0/rm32/EAX . . . 0/r32/EAX . . # clear EAX 31/xor 3/mod/direct 3/rm32/EAX . . . 3/r32/EAX . . # clear EBX @@ -738,7 +737,7 @@ skip-next-line: # t : (address stream) $skip-next-line:loop: # if (curr/ECX >= max/EBX) break 39/compare 3/mod/direct 1/rm32/ECX . . . 3/r32/EBX . . # compare ECX and EBX - 7d/jump-if-greater-or-equal $skip-next-line:end/disp8 + 73/jump-if-greater-or-equal-unsigned $skip-next-line:end/disp8 # ++i/EDX 42/increment-EDX # if (*curr/ECX == '\n') break @@ -831,7 +830,7 @@ clear-trace-stream: $clear-trace-stream:loop: # if (EAX >= ECX) break 39/compare 3/mod/direct 0/rm32/EAX . . . 1/r32/ECX . . # compare EAX with ECX - 7d/jump-if-greater-or-equal $clear-trace-stream:end/disp8 + 73/jump-if-greater-or-equal-unsigned $clear-trace-stream:end/disp8 # *EAX = 0 c7 0/subop/copy 0/mod/direct 0/rm32/EAX . . . . . 0/imm32 # copy to *EAX # EAX += 4 @@ -904,10 +903,10 @@ _append-4: # out : address, outend : address, in : address, inend : address -> $_append-4:loop: # if (in >= inend) break 39/compare 3/mod/direct 6/rm32/ESI . . . 1/r32/ECX . . # compare ESI with ECX - 7d/jump-if-greater-or-equal $_append-4:end/disp8 + 73/jump-if-greater-or-equal-unsigned $_append-4:end/disp8 # if (out >= outend) abort # just to catch test failures fast 39/compare 3/mod/direct 7/rm32/EDI . . . 2/r32/EDX . . # compare EDI with EDX - 7d/jump-if-greater-or-equal $_append-4:abort/disp8 + 73/jump-if-greater-or-equal-unsigned $_append-4:abort/disp8 # *out = *in 8a/copy-byte 0/mod/indirect 6/rm32/ESI . . . 3/r32/BL . . # copy byte at *ESI to BL 88/copy-byte 0/mod/indirect 7/rm32/EDI . . . 3/r32/BL . . # copy byte at BL to *EDI diff --git a/subx/058stream-equal.subx b/subx/058stream-equal.subx index b9ab889b..c65112cc 100644 --- a/subx/058stream-equal.subx +++ b/subx/058stream-equal.subx @@ -19,7 +19,7 @@ stream-data-equal?: # f : (address stream), s : (address string) -> EAX : boole 8b/copy 1/mod/*+disp8 5/rm32/EBP . . . 6/r32/ESI 8/disp8 . # copy *(EBP+8) to ESI # EAX = f->write 8b/copy 0/mod/indirect 6/rm32/ESI . . . 0/r32/EAX . . # copy *ESI to EAX - # max/EDX = f->data + f->write + # maxf/EDX = f->data + f->write 8d/copy-address 1/mod/*+disp8 4/rm32/sib 6/base/ESI 0/index/EAX . 2/r32/EDX 0xc/disp8 . # copy ESI+EAX+12 to EDX # currf/ESI = f->data 81 0/subop/add 3/mod/direct 6/rm32/ESI . . . . . 0xc/imm32 # add to ESI @@ -34,9 +34,9 @@ stream-data-equal?: # f : (address stream), s : (address string) -> EAX : boole 31/xor 3/mod/direct 0/rm32/EAX . . . 0/r32/EAX . . # clear EAX 31/xor 3/mod/direct 1/rm32/ECX . . . 1/r32/ECX . . # clear ECX $stream-data-equal?:loop: - # if (curr >= max) return true + # if (currf >= maxf) return true 39/compare 3/mod/direct 6/rm32/ESI . . . 2/r32/EDX . . # compare ESI with EDX - 7d/jump-if-greater-or-equal $stream-data-equal?:true/disp8 + 73/jump-if-greater-or-equal-unsigned $stream-data-equal?:true/disp8 # AL = *currs 8a/copy-byte 0/mod/indirect 6/rm32/ESI . . . 0/r32/AL . . # copy byte at *ESI to AL # CL = *curr diff --git a/subx/060read.subx b/subx/060read.subx index d377a1ad..61ee75b0 100644 --- a/subx/060read.subx +++ b/subx/060read.subx @@ -165,10 +165,10 @@ _buffer-4: # out : address, outend : address, in : address, inend : address -> $_buffer-4:loop: # if (in >= inend) break 39/compare 3/mod/direct 6/rm32/ESI . . . 1/r32/ECX . . # compare ESI with ECX - 7d/jump-if-greater-or-equal $_buffer-4:end/disp8 + 73/jump-if-greater-or-equal-unsigned $_buffer-4:end/disp8 # if (out >= outend) break # for now silently ignore filled up buffer 39/compare 3/mod/direct 7/rm32/EDI . . . 2/r32/EDX . . # compare EDI with EDX - 7d/jump-if-greater-or-equal $_buffer-4:end/disp8 + 73/jump-if-greater-or-equal-unsigned $_buffer-4:end/disp8 # *out = *in 8a/copy-byte 0/mod/indirect 6/rm32/ESI . . . 3/r32/BL . . # copy byte at *ESI to BL 88/copy-byte 0/mod/indirect 7/rm32/EDI . . . 3/r32/BL . . # copy byte at BL to *EDI diff --git a/subx/065hex.subx b/subx/065hex.subx index c888b520..374168db 100644 --- a/subx/065hex.subx +++ b/subx/065hex.subx @@ -23,7 +23,7 @@ is-hex-int?: # in : (address slice) -> EAX : boolean # if s is empty return false b8/copy-to-EAX 0/imm32/false 39/compare 3/mod/direct 1/rm32/ECX . . . 2/r32/EDX . . # compare ECX with EDX - 7d/jump-if-greater-or-equal $is-hex-int?:end/disp8 + 73/jump-if-greater-or-equal-unsigned $is-hex-int?:end/disp8 # skip past leading '-' # . if (*curr == '-') ++curr 31/xor 3/mod/direct 3/rm32/EBX . . . 3/r32/EBX . . # clear EBX @@ -44,7 +44,7 @@ $is-hex-int?:initial-0: $is-hex-int?:initial-0x: # . if (curr >= in->end) return true 39/compare 3/mod/direct 1/rm32/ECX . . . 2/r32/EDX . . # compare ECX with EDX - 7d/jump-if-greater-or-equal $is-hex-int?:true/disp8 + 73/jump-if-greater-or-equal-unsigned $is-hex-int?:true/disp8 # . if (*curr != 'x') jump to loop # the previous '0' is still valid so doesn't need to be checked again 31/xor 3/mod/direct 3/rm32/EBX . . . 3/r32/EBX . . # clear EBX 8a/copy-byte 0/mod/indirect 1/rm32/ECX . . . 3/r32/BL . . # copy byte at *ECX to BL @@ -55,7 +55,7 @@ $is-hex-int?:initial-0x: $is-hex-int?:loop: # if (curr >= in->end) return true 39/compare 3/mod/direct 1/rm32/ECX . . . 2/r32/EDX . . # compare ECX with EDX - 7d/jump-if-greater-or-equal $is-hex-int?:true/disp8 + 73/jump-if-greater-or-equal-unsigned $is-hex-int?:true/disp8 # EAX = is-hex-digit?(*curr) # . . push args 8a/copy-byte 0/mod/indirect 1/rm32/ECX . . . 0/r32/AL . . # copy byte at *ECX to AL @@ -356,7 +356,7 @@ $parse-hex-int:initial-0: $parse-hex-int:initial-0x: # . if (curr >= in->end) return result 39/compare 3/mod/direct 1/rm32/ECX . . . 2/r32/EDX . . # compare ECX with EDX - 7d/jump-if-greater-or-equal $parse-hex-int:end/disp8 + 73/jump-if-greater-or-equal-unsigned $parse-hex-int:end/disp8 # . if (*curr != 'x') jump to loop # the previous '0' is still valid so doesn't need to be checked again 31/xor 3/mod/direct 0/rm32/EAX . . . 0/r32/EAX . . # clear EAX 8a/copy-byte 0/mod/indirect 1/rm32/ECX . . . 0/r32/AL . . # copy byte at *ECX to AL @@ -367,7 +367,7 @@ $parse-hex-int:initial-0x: $parse-hex-int:loop: # if (curr >= in->end) break 39/compare 3/mod/direct 1/rm32/ECX . . . 2/r32/EDX . . # compare ECX with EDX - 7d/jump-if-greater-or-equal $parse-hex-int:negate/disp8 + 73/jump-if-greater-or-equal-unsigned $parse-hex-int:negate/disp8 # EAX = from-hex-char(*curr) # . . copy arg to EAX 8a/copy-byte 0/mod/indirect 1/rm32/ECX . . . 0/r32/AL . . # copy byte at *ECX to AL diff --git a/subx/066write-buffered.subx b/subx/066write-buffered.subx index 3b7092c4..35f75199 100644 --- a/subx/066write-buffered.subx +++ b/subx/066write-buffered.subx @@ -52,7 +52,7 @@ write-buffered: # f : (address buffered-file), msg : (address array byte) -> <v $write-buffered:loop: # if (in >= inend) break 39/compare 3/mod/direct 6/rm32/ESI . . . 1/r32/ECX . . # compare ESI with ECX - 7d/jump-if-greater-or-equal $write-buffered:loop-end/disp8 + 73/jump-if-greater-or-equal-unsigned $write-buffered:loop-end/disp8 # if (f->write >= f->length) flush and clear f's stream 39/compare 3/mod/direct 3/rm32/EBX . . . 2/r32/EDX . . # compare EBX with EDX 7c/jump-if-lesser $write-buffered:to-stream/disp8 diff --git a/subx/072slice.subx b/subx/072slice.subx index abf88580..c9836429 100644 --- a/subx/072slice.subx +++ b/subx/072slice.subx @@ -147,7 +147,7 @@ $slice-equal?:nonnull-string: $slice-equal?:loop: # if (currs >= maxs) return true 39/compare 3/mod/direct 2/rm32/EDX . . . 6/r32/ESI . . # compare EDX with ESI - 7d/jump-if-greater-or-equal $slice-equal?:true/disp8 + 73/jump-if-greater-or-equal-unsigned $slice-equal?:true/disp8 # AL = *currp 8a/copy-byte 0/mod/indirect 3/rm32/EBX . . . 0/r32/AL . . # copy byte at *EBX to AL # CL = *currs @@ -723,7 +723,7 @@ write-slice-buffered: # out : (address buffered-file), s : (address slice) $write-slice-buffered:loop: # if (curr >= max) break 39/compare 3/mod/direct 1/rm32/ECX . . . 6/r32/ESI . . # compare ECX with ESI - 7d/jump-if-greater-or-equal $write-slice-buffered:loop-end/disp8 + 73/jump-if-greater-or-equal-unsigned $write-slice-buffered:loop-end/disp8 # if (out->write >= out->length) flush and clear out's stream 39/compare 3/mod/direct 3/rm32/EBX . . . 2/r32/EDX . . # compare EBX with EDX 7c/jump-if-lesser $write-slice-buffered:to-stream/disp8 diff --git a/subx/073next-token.subx b/subx/073next-token.subx index 7376c1d0..942d9878 100644 --- a/subx/073next-token.subx +++ b/subx/073next-token.subx @@ -693,7 +693,7 @@ skip-chars-matching-in-slice: # curr : (address byte), end : (address byte), de $skip-chars-matching-in-slice:loop: # if (curr >= end) break 39/compare 3/mod/direct 0/rm32/EAX . . . 1/r32/ECX . . # compare EAX with ECX - 7d/jump-if-greater-or-equal $skip-chars-matching-in-slice:end/disp8 + 73/jump-if-greater-or-equal-unsigned $skip-chars-matching-in-slice:end/disp8 # if (*curr != delimiter) break 8a/copy-byte 0/mod/indirect 0/rm32/EAX . . . 3/r32/BL . . # copy byte at *EAX to BL 39/compare 3/mod/direct 3/rm32/EBX . . . 2/r32/EDX . . # compare EBX and EDX @@ -789,7 +789,7 @@ skip-chars-not-matching-in-slice: # curr : (address byte), end : (address byte) $skip-chars-not-matching-in-slice:loop: # if (curr >= end) break 39/compare 3/mod/direct 0/rm32/EAX . . . 1/r32/ECX . . # compare EAX with ECX - 7d/jump-if-greater-or-equal $skip-chars-not-matching-in-slice:end/disp8 + 73/jump-if-greater-or-equal-unsigned $skip-chars-not-matching-in-slice:end/disp8 # if (*curr == delimiter) break 8a/copy-byte 0/mod/indirect 0/rm32/EAX . . . 3/r32/BL . . # copy byte at *EAX to BL 39/compare 3/mod/direct 3/rm32/EBX . . . 2/r32/EDX . . # compare EBX and EDX diff --git a/subx/074print-int-decimal.subx b/subx/074print-int-decimal.subx index 04dcd1a5..57daad01 100644 --- a/subx/074print-int-decimal.subx +++ b/subx/074print-int-decimal.subx @@ -89,7 +89,7 @@ $print-int32-decimal:write-loop: 74/jump-if-equal $print-int32-decimal:write-break/disp8 # if (curr >= max) abort 39/compare 3/mod/direct 1/rm32/ECX . . . 3/r32/EBX . . # compare ECX with EBX - 7d/jump-if-greater-or-equal $print-int32-decimal:abort/disp8 + 73/jump-if-greater-or-equal-unsigned $print-int32-decimal:abort/disp8 $print-int32-decimal:write-char: # *curr = AL 88/copy-byte 0/mod/indirect 1/rm32/ECX . . . 0/r32/AL . . # copy AL to byte at *ECX diff --git a/subx/075array-equal.subx b/subx/075array-equal.subx index 8834d709..0623dab2 100644 --- a/subx/075array-equal.subx +++ b/subx/075array-equal.subx @@ -294,7 +294,7 @@ parse-array-of-ints: # ad : (address allocation-descriptor), s : (address strin $parse-array-of-ints:loop1: # if (curr >= end) break 39/compare 3/mod/direct 1/rm32/ECX . . . 2/r32/EDX . . # compare ECX with EDX - 7d/jump-if-greater-or-equal $parse-array-of-ints:break1/disp8 + 73/jump-if-greater-or-equal-unsigned $parse-array-of-ints:break1/disp8 # curr = skip-chars-matching-in-slice(curr, end, ' ') # . EAX = skip-chars-matching-in-slice(curr, end, ' ') # . . push args @@ -309,7 +309,7 @@ $parse-array-of-ints:loop1: 89/copy 3/mod/direct 1/rm32/ECX . . . 0/r32/EAX . . # copy EAX to ECX # if (curr >= end) break 39/compare 3/mod/direct 1/rm32/ECX . . . 2/r32/EDX . . # compare ECX with EDX - 7d/jump-if-greater-or-equal $parse-array-of-ints:break1/disp8 + 73/jump-if-greater-or-equal-unsigned $parse-array-of-ints:break1/disp8 # curr = skip-chars-not-matching-in-slice(curr, end, ' ') # . EAX = skip-chars-not-matching-in-slice(curr, end, ' ') # . . push args @@ -355,7 +355,7 @@ $parse-array-of-ints:pass2: $parse-array-of-ints:loop2: # if (slice->curr >= end) break 39/compare 0/mod/indirect 1/rm32/ECX . . . 2/r32/EDX . . # compare *ECX with EDX - 7d/jump-if-greater-or-equal $parse-array-of-ints:end/disp8 + 73/jump-if-greater-or-equal-unsigned $parse-array-of-ints:end/disp8 # slice->curr = skip-chars-matching-in-slice(slice->curr, end, ' ') # . EAX = skip-chars-matching-in-slice(slice->curr, end, ' ') # . . push args @@ -370,7 +370,7 @@ $parse-array-of-ints:loop2: 89/copy 0/mod/indirect 1/rm32/ECX . . . 0/r32/EAX . . # copy EAX to *ECX # if (slice->curr >= end) break 39/compare 0/mod/indirect 1/rm32/ECX . . . 2/r32/EDX . . # compare *ECX with EDX - 7d/jump-if-greater-or-equal $parse-array-of-ints:end/disp8 + 73/jump-if-greater-or-equal-unsigned $parse-array-of-ints:end/disp8 # slice->end = skip-chars-not-matching-in-slice(slice->curr, end, ' ') # . EAX = skip-chars-not-matching-in-slice(curr, end, ' ') # . . push args diff --git a/subx/apps/assort b/subx/apps/assort index f35c0d85..22c3e183 100755 --- a/subx/apps/assort +++ b/subx/apps/assort Binary files differdiff --git a/subx/apps/crenshaw2-1 b/subx/apps/crenshaw2-1 index 997d2bb0..cbb8aa36 100755 --- a/subx/apps/crenshaw2-1 +++ b/subx/apps/crenshaw2-1 Binary files differdiff --git a/subx/apps/crenshaw2-1b b/subx/apps/crenshaw2-1b index e59a4320..acb9285a 100755 --- a/subx/apps/crenshaw2-1b +++ b/subx/apps/crenshaw2-1b Binary files differdiff --git a/subx/apps/factorial b/subx/apps/factorial index 1140b31e..d5953751 100755 --- a/subx/apps/factorial +++ b/subx/apps/factorial Binary files differdiff --git a/subx/apps/handle b/subx/apps/handle index 5e1f2dca..dbc511df 100755 --- a/subx/apps/handle +++ b/subx/apps/handle Binary files differdiff --git a/subx/apps/hex b/subx/apps/hex index dbaf0af4..78e7b899 100755 --- a/subx/apps/hex +++ b/subx/apps/hex Binary files differdiff --git a/subx/apps/pack b/subx/apps/pack index e50a6843..936b691b 100755 --- a/subx/apps/pack +++ b/subx/apps/pack Binary files differdiff --git a/subx/apps/subx-common.subx b/subx/apps/subx-common.subx index e37319dc..f4034e84 100644 --- a/subx/apps/subx-common.subx +++ b/subx/apps/subx-common.subx @@ -71,7 +71,7 @@ $get-or-insert:not-found: # if (table->write >= table->length) abort 8b/copy 0/mod/indirect 6/rm32/ESI . . . 1/r32/ECX . . # copy *ESI to ECX 3b/compare 1/mod/*+disp8 6/rm32/ESI . . . 1/r32/ECX 8/disp8 . # compare ECX with *(ESI+8) - 7d/jump-if-greater-or-equal $get-or-insert:abort/disp8 + 73/jump-if-greater-or-equal-unsigned $get-or-insert:abort/disp8 # *max = key # . EAX = key 8b/copy 1/mod/*+disp8 5/rm32/EBP . . . 0/r32/EAX 0xc/disp8 . # copy *(EBP+12) to EAX @@ -290,7 +290,7 @@ get-or-insert-slice: # table : (address stream {string, _}), key : (address sli $get-or-insert-slice:search-loop: # if (curr >= max) break 39/compare 3/mod/direct 1/rm32/ECX . . . 2/r32/EDX . . # compare ECX with EDX - 7d/jump-if-greater-or-equal $get-or-insert-slice:not-found/disp8 + 73/jump-if-greater-or-equal-unsigned $get-or-insert-slice:not-found/disp8 # if (slice-equal?(key, *curr)) return curr+4 # . EAX = slice-equal?(key, *curr) # . . push args diff --git a/subx/apps/survey b/subx/apps/survey index e1d3185d..1d4c0914 100755 --- a/subx/apps/survey +++ b/subx/apps/survey Binary files differ |